Python Eğitimi

Python ANA SAYFA Python Tanıtımı Python Başlarken Python Sözdizimi Python Yorumları Python Değişkenleri Python Veri Türleri Python Numaraları Python Döküm Python Dizeleri Python Boole'leri Python Operatörleri Python Listeleri piton demetleri Python Setleri Python Sözlükleri Python Eğer... Başka Python while Döngüleri Döngüler için Python Python Fonksiyonları piton lambda Python Dizileri Python Sınıfları/Nesneleri Python Kalıtımı Python Yineleyiciler Python Kapsamı Python Modülleri Python Tarihleri Python Matematik Python JSON'u Python Normal İfade Python PIP'si Python Deneyin... Hariç Python Kullanıcı Girişi Python Dize Biçimlendirme

Dosya yönetimi

Python Dosya İşleme Python Okuma Dosyaları Python Dosyaları Yazma/Oluşturma Python Dosyaları Sil

Python Modülleri

NumPy Eğitimi Panda İzlenecek Yol Scipy Eğitimi

Python Matplotlib'i

Matplotlib'e Giriş Matplotlib Başlarken Matplotlib Pyplot Matplotlib Çizimi Matplotlib İşaretçileri Matplotlib Hattı Matplotlib Etiketleri Matplotlib Izgarası Matplotlib Alt Noktaları Matplotlib Dağılımı Matplotlib Çubukları Matplotlib Histogramları Matplotlib Pasta Grafikleri

Makine öğrenme

Başlarken Ortalama Medyan Modu Standart sapma Yüzdelik Veri Dağıtımı Normal Veri Dağılımı Dağılım grafiği Doğrusal Regresyon Polinom Regresyon Çoklu regresyon Ölçek Tren/Test Karar ağacı

Python MySQL

MySQL'e Başlayın MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Ekle MySQL Seçimi MySQL Nerede MySQL Sıralaması MySQL Sil MySQL Bırakma Tablosu MySQL Güncellemesi MySQL Sınırı MySQL'e Katılma

Python MongoDB

MongoDB Başlarken MongoDB Veritabanı Oluştur MongoDB Koleksiyon Oluştur MongoDB Ekle MongoDB Bul MongoDB Sorgusu MongoDB Sıralaması MongoDB Sil MongoDB Damla Koleksiyonu MongoDB Güncellemesi MongoDB Sınırı

Python Referansı

Python'a Genel Bakış Python Yerleşik İşlevleri Python Dizisi Yöntemleri Python Liste Yöntemleri Python Sözlük Yöntemleri Python Tuple Yöntemleri Python Kümesi Yöntemleri Python Dosya Yöntemleri Python Anahtar Kelimeleri Python İstisnaları Python Sözlüğü

Modül Referansı

Rastgele Modül İstek Modülü İstatistik Modülü Matematik Modülü cMath Modülü

Python Nasıl Yapılır?

Liste Kopyalarını Kaldır Bir Dizeyi Ters Çevir İki Sayı Ekle

Python Örnekleri

Python Örnekleri Python Derleyici Python Alıştırmaları Python Testi Python Sertifikası

Makine Öğrenimi - Eğitim/Test


Modelinizi Değerlendirin

Makine Öğreniminde, ağırlığı ve motor boyutunu bildiğimizde bir arabanın CO2 emisyonunu tahmin ettiğimiz önceki bölümde olduğu gibi, belirli olayların sonucunu tahmin etmek için modeller oluşturuyoruz.

Modelin yeterince iyi olup olmadığını ölçmek için Train/Test adlı bir yöntem kullanabiliriz.


Tren/Test Nedir?

Eğit/Test, modelinizin doğruluğunu ölçmek için kullanılan bir yöntemdir.

Eğitim/Test olarak adlandırılır çünkü veri kümesini iki kümeye bölersiniz: bir eğitim kümesi ve bir test kümesi.

Eğitim için %80 ve test için %20.

Modeli eğitim setini kullanarak eğitirsiniz .

Test setini kullanarak modeli test edersiniz .

Modeli eğitmek , modeli oluşturmak anlamına gelir .

Modeli test etmek, modelin doğruluğunu test etmek anlamına gelir.


Bir Veri Kümesiyle Başlayın

Test etmek istediğiniz bir veri seti ile başlayın.

Veri setimiz bir mağazadaki 100 müşteriyi ve onların alışveriş alışkanlıklarını göstermektedir.

Örnek

import numpy
import matplotlib.pyplot as plt
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

plt.scatter(x, y)
plt.show()

Sonuç:

X ekseni, satın alma yapmadan önceki dakika sayısını temsil eder.

Y ekseni, satın alma işlemine harcanan para miktarını temsil eder.



Tren/Test olarak Böl

Eğitim seti, orijinal verilerin % 80'inden rastgele bir seçim olmalıdır.

Test seti kalan %20 olmalıdır.

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]


Eğitim Setini Görüntüle

Eğitim seti ile aynı dağılım grafiğini görüntüleyin:

Örnek

plt.scatter(train_x, train_y)
plt.show()

Sonuç:

Orijinal veri kümesine benziyor, bu nedenle adil bir seçim gibi görünüyor:


Test Setini Görüntüle

Test setinin tamamen farklı olmadığından emin olmak için test setine de bir göz atacağız.

Örnek

plt.scatter(test_x, test_y)
plt.show()

Sonuç:

Test seti ayrıca orijinal veri setine benziyor:


Veri Kümesini Sığdır

Veri seti neye benziyor? Bence en uygun olanı polinom regresyonu olur, bu yüzden bir polinom regresyon doğrusu çizelim.

Veri noktalarından bir çizgi çekmek plot()için matplotlib modülünün yöntemini kullanıyoruz:

Örnek

Veri noktalarından bir polinom regresyon çizgisi çizin:

import numpy
import matplotlib.pyplot as plt
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

myline = numpy.linspace(0, 6, 100)

plt.scatter(train_x, train_y)
plt.plot(myline, mymodel(myline))
plt.show()

Sonuç:

Sonuç, veri kümesinin dışındaki değerleri tahmin etmeye çalışırsak bize bazı garip sonuçlar verecek olsa da, bir polinom regresyonuna uyan veri kümesi önerimi destekleyebilir. Örnek: satır, mağazada 6 dakika geçiren bir müşterinin 200 değerinde bir satın alma yapacağını gösterir. Bu muhtemelen fazla uydurmanın bir işaretidir.

Peki ya R-kare puanı? R-kare puanı, veri setimin modele ne kadar iyi uyduğunun iyi bir göstergesidir.


R2

R-kare olarak da bilinen R2'yi hatırlıyor musunuz?

X ekseni ile y ekseni arasındaki ilişkiyi ölçer ve 0 ile 1 arasında değişir, burada 0 ilişki yok ve 1 tamamen ilişkili anlamına gelir.

r2_score() Sklearn modülünün bu ilişkiyi bulmamıza yardımcı olacak adında bir yöntemi vardır .

Bu durumda müşterinin mağazada kaldığı dakikalar ile ne kadar para harcadıkları arasındaki ilişkiyi ölçmek istiyoruz.

Örnek

Eğitim verilerim bir polinom regresyonuna ne kadar uyuyor?

import numpy
from sklearn.metrics import r2_score
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

r2 = r2_score(train_y, mymodel(train_x))

print(r2)

Not: 0,799 sonucu, bir OK ilişkisinin olduğunu gösterir.

Test Setini Getirin

Şimdi, en azından eğitim verileri söz konusu olduğunda, tamam olan bir model yaptık.

Şimdi aynı sonucu verip vermediğini görmek için modeli test verileriyle de test etmek istiyoruz.

Örnek

Test verilerini kullanırken R2 puanını bulalım:

import numpy
from sklearn.metrics import r2_score
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

r2 = r2_score(test_y, mymodel(test_x))

print(r2)

Not: 0.809 sonucu, modelin test kümesine de uyduğunu gösterir ve modeli gelecekteki değerleri tahmin etmek için kullanabileceğimizden eminiz.


Tahmin Değerleri

Artık modelimizin tamam olduğunu belirlediğimize göre, yeni değerleri tahmin etmeye başlayabiliriz.

Örnek

Satın alan bir müşteri, dükkanda 5 dakika kalırsa ne kadar para harcar?

print(mymodel(5))

Örnek, şemaya karşılık geldiği gibi, müşterinin 22.88 dolar harcamasını öngördü: