Belajar Mesin - Pelatihan/tes
- Halaman Sebelumnya Perbesar
- Halaman Berikutnya Pohon Keputusan
Mengukur model
Dalam pembelajaran mesin, kami menciptakan model untuk memprediksi hasil beberapa peristiwa, seperti di bab sebelumnya saat kita mengetahui berat dan volume silinder mesin, memprediksi emisi karbon dioksida kendaraan mobil.
Untuk mengukur apakah model cukup baik, kami dapat menggunakan metode yang disebut pelatihan/tes.
Apa itu pelatihan/tes
Pelatihan/tes adalah metode untuk mengukur akurasi model.
Karena kami membagi data set menjadi dua kelompok: set pelatihan dan set tes.
80% digunakan untuk pelatihan, 20% digunakan untuk tes.
Anda dapat menggunakan set pelatihan untuk melatih model.
Anda dapat menggunakan set tes untuk menguji model.
Melatih model berarti menciptakan model.
Menguji model berarti menguji akurasi model.
Mulai dari data set.
Mulai dari data set yang akan diuji.
Data set kami menunjukkan 100 pelanggan toko dan kebiasaan belanja mereka.
Contoh
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()
Hasil:
Sumbu x menunjukkan jumlah menit sebelum pembelian.
Sumbu y menunjukkan jumlah uang yang dihabiskan dalam pembelian.

Pemecahan pelatihan/uji
Set pelatihan seharusnya pemilihan acak dari data asli yang sebanyak 80%.
Set uji seharusnya 20% sisanya.
train_x = x[:80] train_y = y[:80] test_x = x[80:] test_y = y[80:]
Tampilkan train set
Tampilkan scatter plot yang sama seperti yang ada di train set:
Contoh
plt.scatter(train_x, train_y) plt.show()
Hasil:
Itu terlihat seperti data set asli, sehingga mungkin adalah pilihan yang masuk akal:

Tampilkan set uji
Untuk memastikan bahwa set uji bukan yang berbeda, kita juga harus melihat set uji.
Contoh
plt.scatter(test_x, test_y) plt.show()
Hasil:
Set uji juga terlihat seperti data set asli:

Fitting data set
Data set seperti apa? Saya pikir yang paling cocok untuk disesuaikan adalah regresi polinomial, jadi biar kita gambar garis regresi polinomial.
Untuk menggambar garis melintasi titik data, kita menggunakan modul matplotlib plott()
Metode:
Contoh
Menggambar garis regresi polinomial yang melintasi titik data:
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()
Hasil:

Hasil ini dapat mendukung saran kami tentang fittess data set ke regresi polinomial, bahkan jika kami mencoba memprediksi nilai di luar data set akan memberikan hasil yang aneh. Contohnya: baris ini menunjukkan bahwa seorang konsumen menghabiskan 6 menit berbelanja di toko, akan menyelesaikan belanja yang bernilai 200. Ini mungkin tanda overfitting.
Tapi apa dengan skor R-squared? Skor R-squared score dengan baik menunjukkan kesiapan data set kita untuk model.
R2
Ingat R2, yang disebut juga R-squared (R-squared)?
Itu mengukur hubungan antara sumbu x dan sumbu y, berbagai nilai dari 0 sampai 1, di mana 0 menunjukkan tidak ada hubungan, sedangkan 1 menunjukkan hubungan yang sempurna.
Modul sklearn memiliki nama rs_score()
Metodenya, metode ini akan membantu kita menemukan hubungan tersebut.
Di sini, kita harus mengukur hubungan antara waktu penstoppenganggan di toko dengan berapa banyak uang yang mereka belanjakan.
Contoh
Bagaimana kesiapan data pelatihan kita dalam regresi polinomial?
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)
Keterangan:Hasil 0.799 menunjukkan hubungan yang bagus.
Memasukkan set uji
Sekarang, setidaknya dalam data pelatihan, kita telah membangun model yang bagus.
Lalu, kita harus menggunakan data uji untuk menguji model, untuk memeriksa apakah memberikan hasil yang sama.
Contoh
Biarkan kita menentukan skor R2 saat menggunakan data tes:
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)
Keterangan:Hasil 0,809 menunjukkan bahwa model ini juga cocok untuk set tes, dan kami percaya bahwa kita dapat menggunakan model ini untuk memprediksi nilai masa mendatang.
Nilai Prediksi
Sekarang kita sudah menentukan bahwa model kita cukup baik, jadi kita dapat mulai memprediksi nilai baru.
Contoh
Jika pelanggan yang membeli tinggal di toko selama 5 menit, berapa uang yang dia habiskan?
print(mymodel(5))
Contoh ini mencegah konsumen menghabiskan 22,88 dolar AS, yang sepertinya sesuai dengan grafik:

- Halaman Sebelumnya Perbesar
- Halaman Berikutnya Pohon Keputusan