Belajar Mesin - Latihan/Pengujian
- Halaman Sebelumnya Pemindahan Skala
- Halaman Berikutnya Pohon Keputusan
Mengukur model
Dalam pemBELAJARAN mesin, kami menciptakan model untuk memprediksi hasil suatu peristiwa, seperti di bab sebelumnya ketika kita mengerti berat dan disiplin mesin, memprediksi emisi karbon dioksida kendaraan mobil.
Untuk mengukur apakah model cukup baik, kami boleh menggunakan metode yang disebut pelatihan/pengujian.
Apakah pelatihan/pengujian
Pelatihan/pengujian adalah metode untuk mengukur akurasi model.
Karena kami membagi data set menjadi dua kelompok: set pelatihan dan set pengujian.
80% digunakan untuk pelatihan, 20% digunakan untuk pengujian.
Anda boleh menggunakan set pelatihan untuk melatih model.
Anda boleh menggunakan set pengujian untuk menguji model.
Melatih model berarti menciptakan model.
Menguji model berarti menguji akurasi model.
Mulai dengan data set.
Mulai dengan data set yang akan diuji.
Data set kami menunjukkan 100 pengguna 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 menit sebelum pembelian.
sumbu y menunjukkan jumlah uang yang dihabiskan dalam pembelian.

memisahkan pelatihan/test
dataset pelatihan seharusnya adalah pemilihan acak 80% data asli.
set uji seharusnya adalah 20% yang tersisa.
train_x = x[:80] train_y = y[:80] test_x = x[80:] test_y = y[80:]
menampilkan dataset pelatihan
menampilkan grafik titik yang sama dengan dataset pelatihan:
Contoh
plt.scatter(train_x, train_y) plt.show()
hasil:
terlihat seperti dataset asli, sehingga ini mungkin adalah pilihan yang masuk akal:

menampilkan set uji
untuk memastikan bahwa set uji bukan yang berbeda sepenuhnya, kita juga harus melihat set uji.
Contoh
plt.scatter(test_x, test_y) plt.show()
hasil:
set uji terlihat seperti dataset asli:

menggabungkan dataset
dataset seperti apa? Saya percaya yang paling sesuai untuk diukur adalah regresi polinomial, jadi mari kita gambar garis regresi polinomial.
untuk menggambar garis melalui titik data, kita menggunakan modul matplotlib plott()
metode:
Contoh
menggambar garis regresi polinomial melalui 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 penggunaan regresi polinomial untuk dataset, bahkan jika kami mencoba memprediksi nilai di luar dataset akan memberikan hasil yang mengejutkan. Contohnya: baris ini menunjukkan bahwa pelanggan yang berbelanja 6 menit di toko akan menyelesaikan一笔交易 dengan nilai 200. Ini mungkin tanda overfitting.
tetapi skore R-squared? Skore R-squared sangat baik menunjukkan tingkat penggabungan dataset dengan model.
R2
ingat R2, disebut juga R-kuadrat (R-squared)?
yang mengukur hubungan antara sumbu x dan y, berada dalam rentang 0 sampai 1, di mana 0 menunjukkan tidak ada hubungan, sementara 1 menunjukkan hubungan yang sepenuhnya.
modul sklearn memiliki nama rs_score()
pada metode, metode ini akan membantu kita menemukan hubungan ini.
di sini, kita akan mengukur hubungan antara masa berada pelanggan di toko dengan berapa banyak uang yang dihabiskan.
Contoh
bagaimana ketinggian yang sesuai data pelatihan kami 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.
membawa masuk set uji
sekarang, paling sedikit di data pelatihan, kami telah membangun model yang bagus.
kemudian, kita perlu menggunakan data uji untuk menguji model, untuk memeriksa apakah memberikan hasil yang sama.
Contoh
Berikan R2 score saat menggunakan data uji:
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 kita percaya bahwa kita dapat menggunakan model ini untuk memprediksi nilai masa depan.
Nilai Prediksi
Sekarang kita sudah menetapkan bahwa model kita yang bagus, kita dapat mulai memprediksi nilai baru.
Contoh
Berapa banyak uang yang akan digunakan pelanggan jika mereka berada di toko selama 5 menit?
print(mymodel(5))
Contoh ini memprediksi pengeluaran pelanggan sebesar 22.88 dolar, sepertinya sejalan dengan grafik:

- Halaman Sebelumnya Pemindahan Skala
- Halaman Berikutnya Pohon Keputusan