Tutorial Python

RUMAH Python Pengenalan Python Python Memulai Sintaks Python Komentar Python Variabel Python Tipe Data Python Nomor Python Pengecoran Python String Python Python Boolean Operator Python Daftar Python Tuple Python Set Python Kamus Python Python Jika...Lain Python Sementara Loop Python Untuk Loop Fungsi Python Python Lambda Array Python Kelas/Objek Python Warisan Python Python Iterator Lingkup Python Modul Python Tanggal Python Python Matematika Python JSON Python RegEx Python PIP Python Coba...Kecuali Masukan Pengguna Python Pemformatan String Python

Penanganan Berkas

Penanganan File Python File Baca Python Python Tulis/Buat File Python Hapus File

Modul Python

Tutorial NumPy Panduan Panda Tutorial sip

Python Matplotlib

Pengantar Matplotlib Matplotlib Memulai Matplotlib Pyplot Merencanakan Matplotlib Penanda Matplotlib Garis Matplotlib Label Matplotlib Kotak Matplotlib Subplot Matplotlib Penyebaran Matplotlib Matplotlib Bar Histogram Matplotlib Bagan Pai Matplotlib

Pembelajaran mesin

Mulai Mode Median Rata-rata Standar Deviasi Persentil Distribusi Data Distribusi Data Normal Plot Pencar Regresi linier Regresi Polinomial Regresi Berganda Skala Kereta/Tes Pohon Keputusan

Python MySQL

MySQL Memulai MySQL Buat Basis Data MySQL Buat Tabel Sisipan MySQL MySQL Pilih MySQL Dimana MySQL Dipesan Oleh Hapus MySQL Tabel Drop MySQL Pembaruan MySQL Batas MySQL MySQL Bergabung

Python MongoDB

MongoDB Memulai MongoDB Buat Basis Data MongoDB Buat Koleksi Sisipan MongoDB Temukan MongoDB Permintaan MongoDB Sortir MongoDB Hapus MongoDB Koleksi Jatuhkan MongoDB Pembaruan MongoDB Batas MongoDB

Referensi Python

Ikhtisar Python Fungsi bawaan Python Metode String Python Metode Daftar Python Metode Kamus Python Metode Tuple Python Metode Set Python Metode File Python Kata Kunci Python Pengecualian Python Daftar Istilah Python

Referensi Modul

Modul Acak Modul Permintaan Modul Statistik Modul Matematika Modul cMath

Python Bagaimana caranya?

Hapus Duplikat Daftar Membalikkan String Tambahkan Dua Angka

Contoh Python

Contoh Python Kompilator Python Latihan Python Kuis Python Sertifikat Python

Pembelajaran Mesin - Kereta/Tes


Evaluasi Model Anda

Dalam Machine Learning kami membuat model untuk memprediksi hasil dari peristiwa tertentu, seperti pada bab sebelumnya di mana kami memprediksi emisi CO2 mobil ketika kami mengetahui berat dan ukuran mesin.

Untuk mengukur apakah model sudah cukup baik, kita dapat menggunakan metode yang disebut Train/Test.


Apa itu Kereta/Tes

Train/Test adalah metode untuk mengukur keakuratan model Anda.

Disebut Train/Test karena Anda membagi set data menjadi dua set: set pelatihan dan set pengujian.

80% untuk pelatihan, dan 20% untuk pengujian.

Anda melatih model menggunakan set pelatihan.

Anda menguji model menggunakan set pengujian.

Melatih model berarti membuat model.

Menguji model berarti menguji keakuratan model.


Mulai Dengan Kumpulan Data

Mulailah dengan kumpulan data yang ingin Anda uji.

Kumpulan data kami menggambarkan 100 pelanggan di sebuah 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 melakukan pembelian.

Sumbu y menunjukkan jumlah uang yang dihabiskan untuk pembelian.



Dibagi Menjadi Kereta/Tes

Set pelatihan harus merupakan pilihan acak 80% dari data asli.

Set pengujian harus menjadi 20% sisanya.

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

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


Tampilkan Set Pelatihan

Tampilkan plot sebar yang sama dengan set pelatihan:

Contoh

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

Hasil:

Sepertinya kumpulan data asli, jadi sepertinya ini pilihan yang adil:


Tampilkan Set Pengujian

Untuk memastikan set pengujian tidak sepenuhnya berbeda, kami akan melihat set pengujian juga.

Contoh

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

Hasil:

Kumpulan pengujian juga terlihat seperti kumpulan data asli:


Sesuaikan Kumpulan Data

Seperti apa kumpulan data itu? Menurut pendapat saya, saya pikir yang paling cocok adalah regresi polinomial , jadi mari kita menggambar garis regresi polinomial.

Untuk menggambar garis melalui titik data, kami menggunakan plot()metode modul matplotlib:

Contoh

Gambarlah garis regresi polinomial melalui titik-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:

Hasilnya dapat mendukung saran saya tentang kumpulan data yang cocok dengan regresi polinomial, meskipun itu akan memberi kita beberapa hasil yang aneh jika kita mencoba memprediksi nilai di luar kumpulan data. Contoh: garis menunjukkan bahwa pelanggan yang menghabiskan 6 menit di toko akan melakukan pembelian senilai 200. Itu mungkin tanda overfitting.

Tapi bagaimana dengan skor R-kuadrat? Skor R-kuadrat adalah indikator yang baik tentang seberapa baik kumpulan data saya sesuai dengan model.


R2

Ingat R2, juga dikenal sebagai R-kuadrat?

Ini mengukur hubungan antara sumbu x dan sumbu y, dan nilainya berkisar dari 0 hingga 1, di mana 0 berarti tidak ada hubungan, dan 1 berarti benar-benar terkait.

Modul sklearn memiliki metode yang dipanggil r2_score() yang akan membantu kita menemukan hubungan ini.

Dalam hal ini kami ingin mengukur hubungan antara menit pelanggan tinggal di toko dan berapa banyak uang yang mereka belanjakan.

Contoh

Seberapa cocok data pelatihan saya 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)

Catatan: Hasil 0,799 menunjukkan hubungan yang OK.

Bawa Set Pengujian

Sekarang kami telah membuat model yang OK, setidaknya dalam hal data pelatihan.

Sekarang kami ingin menguji model dengan data pengujian juga, untuk melihat apakah memberi kami hasil yang sama.

Contoh

Mari kita cari skor R2 saat menggunakan data pengujian:

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)

Catatan: Hasil 0,809 menunjukkan bahwa model juga cocok dengan set pengujian, dan kami yakin bahwa kami dapat menggunakan model untuk memprediksi nilai di masa mendatang.


Prediksi Nilai

Sekarang setelah kami menetapkan bahwa model kami baik-baik saja, kami dapat mulai memprediksi nilai baru.

Contoh

Berapa banyak uang yang akan dibelanjakan pelanggan yang membeli, jika dia tinggal di toko selama 5 menit?

print(mymodel(5))

Contoh tersebut memperkirakan pelanggan menghabiskan 22,88 dolar, seperti yang terlihat pada diagram: