Salah satu aspek kunci dari pembelajaran mesin yang diawasi adalah evaluasi dan validasi model. Saat Anda mengevaluasi kinerja prediktif model Anda, penting agar prosesnya tidak bias. Menggunakan _7 dari perpustakaan ilmu data scikit-learn, Anda dapat membagi kumpulan data menjadi subkumpulan yang meminimalkan potensi bias dalam proses evaluasi dan validasi Anda Show
Dalam tutorial ini, Anda akan belajar
Selain itu, Anda akan mendapatkan informasi tentang alat terkait dari Bonus Gratis. yang mengarahkan Anda ke tutorial, video, dan buku terbaik untuk meningkatkan keterampilan NumPy Anda Pentingnya Pemisahan DataPembelajaran mesin yang diawasi adalah tentang membuat model yang secara tepat memetakan input yang diberikan (variabel independen, atau prediktor) ke output yang diberikan (variabel dependen, atau respons) Bagaimana Anda mengukur ketepatan model Anda bergantung pada jenis masalah yang Anda coba selesaikan. Dalam , Anda biasanya menggunakan koefisien determinasi, kesalahan kuadrat akar rata-rata, kesalahan absolut rata-rata, atau besaran serupa. Untuk masalah, Anda sering menerapkan akurasi, presisi, daya ingat, skor F1, dan indikator terkait Nilai numerik yang dapat diterima yang mengukur presisi bervariasi dari bidang ke bidang. Anda dapat menemukan penjelasan mendetail dari Statistics By Jim, Quora, dan banyak sumber lainnya Yang paling penting untuk dipahami adalah bahwa Anda biasanya memerlukan evaluasi yang tidak memihak untuk menggunakan langkah-langkah ini dengan benar, menilai kinerja prediksi model Anda, dan memvalidasi model tersebut. Artinya, Anda tidak dapat mengevaluasi performa prediktif model dengan data yang sama dengan yang Anda gunakan untuk pelatihan. Anda perlu mengevaluasi model dengan data baru yang belum pernah dilihat oleh model sebelumnya. Anda dapat melakukannya dengan memisahkan dataset Anda sebelum Anda menggunakannya Hilangkan iklanPelatihan, Validasi, dan Set TesMemisahkan kumpulan data Anda sangat penting untuk evaluasi kinerja prediksi yang tidak bias. Dalam kebanyakan kasus, membagi kumpulan data Anda secara acak menjadi tiga subkumpulan sudah cukup
Dalam kasus yang tidak terlalu rumit, saat Anda tidak perlu menyetel hyperparameter, Anda boleh bekerja hanya dengan set pelatihan dan pengujian Underfitting dan OverfittingMemisahkan kumpulan data mungkin juga penting untuk mendeteksi jika model Anda mengalami salah satu dari dua masalah yang sangat umum, yang disebut underfitting dan overfitting
Anda dapat menemukan penjelasan yang lebih rinci tentang underfitting dan overfitting Prasyarat untuk Menggunakan $ conda install -c anaconda scikit-learn=0.23 7Sekarang setelah Anda memahami perlunya membagi set data untuk melakukan evaluasi model yang tidak bias dan mengidentifikasi underfitting atau overfitting, Anda siap mempelajari cara membagi set data Anda sendiri Anda akan menggunakan versi 0. 23. 1 dari scikit-belajar, atau 2. Ini memiliki banyak paket untuk ilmu data dan pembelajaran mesin, tetapi untuk tutorial ini Anda akan fokus pada paket 3, khususnya pada fungsi 7Anda dapat menginstal _2 dengan 6 _Jika Anda menggunakan Anaconda, Anda mungkin sudah menginstalnya. Namun, jika Anda ingin menggunakan lingkungan baru, pastikan Anda memiliki versi yang ditentukan, atau menggunakan Miniconda, maka Anda dapat menginstal 2 dari Anaconda Cloud dengan 8
Anda juga memerlukan NumPy, tetapi Anda tidak perlu menginstalnya secara terpisah. Anda harus mendapatkannya bersama _2 jika Anda belum menginstalnya. Jika Anda ingin menyegarkan kembali pengetahuan NumPy Anda, lihat dokumentasi resminya atau lihat Look Ma, No For-Loops. Pemrograman Array Dengan NumPyPenerapan $ conda install -c anaconda scikit-learn=0.23 _7Anda perlu mengimpor 7 dan NumPy sebelum Anda dapat menggunakannya, sehingga Anda dapat memulai dengan pernyataan 2>>> _Sekarang setelah Anda mengimpor keduanya, Anda dapat menggunakannya untuk membagi data menjadi set pelatihan dan set pengujian. Anda akan membagi input dan output secara bersamaan, dengan satu panggilan fungsi Dengan _7, Anda perlu memberikan urutan yang ingin Anda pisahkan serta argumen opsional apa pun. Ini mengembalikan daftar array NumPy, urutan lain, atau matriks jarang SciPy jika sesuai
_4 adalah urutan daftar, larik NumPy, panda DataFrames, atau objek serupa larik yang menyimpan data yang ingin Anda pisahkan. Semua objek ini bersama-sama membentuk kumpulan data dan harus memiliki panjang yang samaDalam aplikasi pembelajaran mesin yang diawasi, Anda biasanya akan bekerja dengan dua urutan tersebut
7 adalah argumen kata kunci opsional yang dapat Anda gunakan untuk mendapatkan perilaku yang diinginkan
Sekarang saatnya mencoba pemisahan data. Anda akan mulai dengan membuat kumpulan data sederhana untuk digunakan. Dataset akan berisi input dalam array dua dimensi 5 dan output dalam array satu dimensi 6>>> _Untuk mendapatkan data Anda, Anda menggunakan _9, yang sangat nyaman untuk menghasilkan array berdasarkan rentang numerik. Anda juga menggunakan _0 untuk memodifikasi bentuk array yang dikembalikan oleh 9 dan mendapatkan struktur data dua dimensiAnda dapat membagi set data input dan output dengan satu panggilan fungsi >>> _Diberikan dua urutan, seperti _5 dan 6 di sini, 7 melakukan pemisahan dan mengembalikan empat urutan (dalam hal ini array NumPy) dalam urutan ini
Anda mungkin mendapat hasil yang berbeda dari apa yang Anda lihat di sini. Ini karena pemisahan dataset dilakukan secara acak secara default. Hasilnya berbeda setiap kali Anda menjalankan fungsi. Namun, ini seringkali bukan yang Anda inginkan Terkadang, agar pengujian Anda dapat direproduksi, Anda memerlukan pemisahan acak dengan keluaran yang sama untuk setiap pemanggilan fungsi. Anda dapat melakukannya dengan parameter ________26______9. Nilai 9 tidak penting—dapat berupa bilangan bulat bukan negatif. Anda bisa menggunakan instance 5 sebagai gantinya, tetapi itu adalah pendekatan yang lebih kompleksPada contoh sebelumnya, Anda menggunakan dataset dengan dua belas observasi (baris) dan mendapatkan sampel pelatihan dengan sembilan baris dan sampel uji dengan tiga baris. Itu karena Anda tidak menentukan ukuran set pelatihan dan pengujian yang diinginkan. Secara default, 25 persen sampel ditetapkan ke set pengujian. Rasio ini umumnya baik untuk banyak aplikasi, tetapi tidak selalu yang Anda butuhkan Biasanya, Anda ingin menentukan ukuran set pengujian (atau pelatihan) secara eksplisit, dan terkadang Anda bahkan ingin bereksperimen dengan nilai yang berbeda. Anda dapat melakukannya dengan parameter _8 atau 4Ubah kode sehingga Anda dapat memilih ukuran set pengujian dan mendapatkan hasil yang dapat direproduksi >>> _Dengan perubahan ini, Anda mendapatkan hasil yang berbeda dari sebelumnya. Sebelumnya, Anda memiliki set pelatihan dengan sembilan item dan set tes dengan tiga item. Sekarang, berkat argumen 8, set pelatihan memiliki delapan item dan set tes memiliki empat item. Anda akan mendapatkan hasil yang sama dengan _9 karena 33 persen dari dua belas kira-kira empatAda satu lagi perbedaan yang sangat penting antara dua contoh terakhir. Anda sekarang mendapatkan hasil yang sama setiap kali Anda menjalankan fungsi. Ini karena Anda telah memperbaiki pembuat nomor acak dengan 0Gambar di bawah menunjukkan apa yang terjadi saat Anda menelepon 7Sampel dataset diacak secara acak dan kemudian dibagi menjadi set pelatihan dan pengujian sesuai dengan ukuran yang Anda tentukan Anda dapat melihat bahwa _6 memiliki enam angka nol dan enam angka satu. Namun, set tes memiliki tiga nol dari empat item. Jika Anda ingin (kira-kira) menjaga proporsi 6 nilai melalui set pelatihan dan tes, maka lulus 4. Ini akan memungkinkan pemisahan stratifikasi>>> _Sekarang _9 dan 1 memiliki rasio nol dan satu yang sama dengan larik 6 asliPemisahan bertingkat diinginkan dalam beberapa kasus, seperti saat Anda mengklasifikasikan kumpulan data yang tidak seimbang, kumpulan data dengan perbedaan yang signifikan dalam jumlah sampel yang termasuk dalam kelas yang berbeda Terakhir, Anda dapat mematikan pengocokan data dan pembagian acak dengan 8>>> _Sekarang Anda memiliki pemisahan di mana dua pertiga sampel pertama dalam array 5 asli dan 6 ditugaskan ke set pelatihan dan sepertiga terakhir ke set pengujian. Tidak ada pengacakan. Tidak ada keacakanHilangkan iklanPembelajaran Mesin yang Diawasi Dengan $ conda install -c anaconda scikit-learn=0.23 7Sekarang saatnya untuk melihat _7 beraksi saat memecahkan masalah pembelajaran yang diawasi. Anda akan mulai dengan masalah regresi kecil yang dapat diselesaikan dengan regresi linier sebelum melihat masalah yang lebih besar. Anda juga akan melihat bahwa Anda juga dapat menggunakan 7 untuk klasifikasiContoh Minimalis Regresi LinearDalam contoh ini, Anda akan menerapkan apa yang telah Anda pelajari sejauh ini untuk menyelesaikan masalah regresi kecil. Anda akan mempelajari cara membuat set data, membaginya menjadi subset pelatihan dan pengujian, dan menggunakannya untuk regresi linier Seperti biasa, Anda akan mulai dengan mengimpor paket, fungsi, atau kelas yang diperlukan. Anda membutuhkan NumPy, 4, dan 7>>> _Sekarang setelah Anda mengimpor semua yang Anda butuhkan, Anda dapat membuat dua array kecil, 5 dan 6, untuk mewakili pengamatan dan kemudian membaginya menjadi set pelatihan dan pengujian seperti yang Anda lakukan sebelumnya>>> 0Kumpulan data Anda memiliki dua puluh pengamatan, atau 5- 6 pasang. Anda menentukan argumen 00, sehingga dataset dibagi menjadi set pelatihan dengan dua belas pengamatan dan satu set tes dengan delapan pengamatanSekarang Anda dapat menggunakan set pelatihan agar sesuai dengan model >>> 1 _4 membuat objek yang mewakili model, saat melatih, atau menyesuaikan, model dan mengembalikannya. Dengan regresi linier, menyesuaikan model berarti menentukan nilai intersep ( 03) dan kemiringan ( 04) terbaik dari garis regresiMeskipun Anda dapat menggunakan 5 dan 9 untuk memeriksa kesesuaiannya, ini bukan praktik terbaik. Estimasi yang tidak bias dari performa prediktif model Anda didasarkan pada data pengujian>>> 2mengembalikan koefisien determinasi, atau R², untuk data yang diteruskan. Maksimumnya adalah _08. Semakin tinggi nilai R², semakin cocok. Dalam hal ini, data pelatihan menghasilkan koefisien yang sedikit lebih tinggi. Namun, R² yang dihitung dengan data pengujian merupakan ukuran yang tidak bias dari performa prediksi model AndaIni adalah tampilannya pada grafik Titik hijau mewakili _5- 6 pasangan yang digunakan untuk pelatihan. Garis hitam, yang disebut garis estimasi regresi, ditentukan oleh hasil model fitting. intersep dan kemiringan. Jadi, ini mencerminkan posisi titik-titik hijau sajaTitik putih mewakili set tes. Anda menggunakannya untuk memperkirakan performa model (garis regresi) dengan data yang tidak digunakan untuk pelatihan Contoh RegresiSekarang Anda siap membagi kumpulan data yang lebih besar untuk menyelesaikan masalah regresi. Anda akan menggunakan yang terkenal, yang termasuk dalam 2. Dataset ini memiliki 506 sampel, 13 variabel input, dan nilai rumah sebagai outputnya. Anda dapat mengambilnya denganPertama, impor _7 dan 12>>> 3Sekarang setelah kedua fungsi diimpor, Anda bisa mendapatkan data untuk digunakan >>> 4Seperti yang Anda lihat, 12 dengan argumen 16 mengembalikan tuple dengan dua array NumPy
Langkah selanjutnya adalah membagi data dengan cara yang sama seperti sebelumnya >>> 5Sekarang Anda memiliki set pelatihan dan tes. Data pelatihan terdapat di _5 dan 9, sedangkan data untuk pengujian ada di 7 dan 1Saat Anda bekerja dengan kumpulan data yang lebih besar, biasanya lebih nyaman untuk lulus pelatihan atau ukuran pengujian sebagai rasio. _21 berarti sekitar 40 persen sampel akan ditugaskan ke data uji, dan 60 persen sisanya akan ditugaskan ke data pelatihanTerakhir, Anda dapat menggunakan set pelatihan ( 5 dan 9) agar sesuai dengan model dan set pengujian ( 7 dan 1) untuk evaluasi model yang tidak bias. Dalam contoh ini, Anda akan menerapkan tiga algoritme regresi terkenal untuk membuat model yang sesuai dengan data Anda
Prosesnya hampir sama dengan contoh sebelumnya
Inilah kode yang mengikuti langkah-langkah yang dijelaskan di atas untuk ketiga algoritme regresi >>> 6Anda telah menggunakan kumpulan data pelatihan dan pengujian agar sesuai dengan tiga model dan mengevaluasi kinerjanya. Ukuran akurasi yang diperoleh dengan 07 adalah koefisien determinasi. Itu dapat dihitung dengan set pelatihan atau tes. Namun, seperti yang telah Anda pelajari, skor yang diperoleh dengan rangkaian tes mewakili estimasi kinerja yang tidak biasSeperti yang disebutkan dalam dokumentasi, Anda dapat memberikan argumen opsional untuk 26, 27, dan 28. 27 dan 28 menggunakan parameter 9 untuk alasan yang sama dengan 7. untuk menangani keacakan dalam algoritme dan memastikan reproduktifitasUntuk beberapa metode, Anda mungkin juga memerlukan penskalaan fitur. Dalam kasus seperti itu, Anda harus menyesuaikan penskala dengan data pelatihan dan menggunakannya untuk mengubah data pengujian Hilangkan iklanContoh KlasifikasiAnda dapat menggunakan _7 untuk memecahkan masalah klasifikasi dengan cara yang sama seperti yang Anda lakukan untuk analisis regresi. Dalam pembelajaran mesin, masalah klasifikasi melibatkan pelatihan model untuk menerapkan label, atau mengklasifikasikan, nilai input dan mengurutkan kumpulan data Anda ke dalam kategoriDalam tutorial Regresi Logistik dengan Python, Anda akan menemukan contoh tugas. Contoh tersebut memberikan demonstrasi lain tentang pemisahan data menjadi set pelatihan dan pengujian untuk menghindari bias dalam proses evaluasi Fungsi Validasi LainnyaPaket ini menawarkan banyak fungsi terkait pemilihan dan validasi model, termasuk yang berikut ini
Validasi silang adalah seperangkat teknik yang menggabungkan ukuran kinerja prediksi untuk mendapatkan estimasi model yang lebih akurat Salah satu metode validasi silang yang banyak digunakan adalah. Di dalamnya, Anda membagi kumpulan data menjadi k (biasanya lima atau sepuluh) himpunan bagian, atau lipatan, dengan ukuran yang sama, lalu melakukan prosedur pelatihan dan pengujian sebanyak k kali. Setiap kali, Anda menggunakan lipatan yang berbeda sebagai set pengujian dan semua lipatan yang tersisa sebagai set pelatihan. Ini memberikan k ukuran kinerja prediktif, dan Anda kemudian dapat menganalisis rata-rata dan standar deviasinya Anda dapat menerapkan validasi silang dengan 41, 42, 43, dan beberapa kelas dan fungsi lain dari 0Kurva pembelajaran, terkadang disebut kurva pelatihan, menunjukkan bagaimana skor prediksi set pelatihan dan validasi bergantung pada jumlah sampel pelatihan. Anda dapat menggunakan _45 untuk mendapatkan dependensi ini, yang dapat membantu Anda menemukan ukuran optimal dari set pelatihan, memilih hyperparameter, membandingkan model, dan seterusnyaPenyesuaian hyperparameter, juga disebut pengoptimalan hyperparameter, adalah proses menentukan kumpulan hyperparameter terbaik untuk menentukan model pembelajaran mesin Anda. _0 memberi Anda beberapa opsi untuk tujuan ini, termasuk 47, 48, 49, dan lainnya. Memisahkan data Anda juga penting untuk penyetelan hyperparameterKesimpulanAnda sekarang tahu mengapa dan bagaimana menggunakan 7 dari 2. Anda telah mempelajari bahwa, untuk estimasi kinerja prediksi model pembelajaran mesin yang tidak bias, Anda harus menggunakan data yang belum digunakan untuk pemasangan model. Itulah mengapa Anda perlu membagi set data menjadi pelatihan, pengujian, dan dalam beberapa kasus, subset validasiDalam tutorial ini, Anda telah mempelajari caranya
Anda juga telah melihat bahwa modul _0 menawarkan beberapa alat lain untuk validasi model, termasuk validasi silang, kurva pembelajaran, dan penyetelan hyperparameterJika Anda memiliki pertanyaan atau komentar, silakan taruh di bagian komentar di bawah ini Tandai sebagai Selesai Tonton Sekarang Tutorial ini memiliki kursus video terkait yang dibuat oleh tim Real Python. Tonton bersama dengan tutorial tertulis untuk memperdalam pemahaman Anda. Memisahkan Set Data Dengan scikit-learn dan train_test_split() 🐍 Trik Python 💌 Dapatkan Trik Python singkat & manis yang dikirim ke kotak masuk Anda setiap beberapa hari. Tidak pernah ada spam. Berhenti berlangganan kapan saja. Dikuratori oleh tim Real Python Kirimi Saya Trik Python » Tentang Mirko Stojiljkovic Mirko memiliki Ph. D. di Teknik Mesin dan bekerja sebagai profesor universitas. Ia adalah seorang Pythonista yang menerapkan metode hybrid optimization dan machine learning untuk mendukung pengambilan keputusan di sektor energi » Lebih lanjut tentang MirkoSetiap tutorial di Real Python dibuat oleh tim pengembang sehingga memenuhi standar kualitas tinggi kami. Anggota tim yang mengerjakan tutorial ini adalah Aldren Geir Arne Joanna Yakub Kyle Master Keterampilan Python Dunia Nyata Dengan Akses Tanpa Batas ke Python Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas pakar Pythonista Tingkatkan Keterampilan Python Anda » Guru Keterampilan Python Dunia Nyata Bergabunglah dengan kami dan dapatkan akses ke ribuan tutorial, kursus video langsung, dan komunitas ahli Pythonista Tingkatkan Keterampilan Python Anda » Bagaimana menurut anda? Nilai artikel ini Tweet Bagikan Bagikan EmailApa takeaway # 1 Anda atau hal favorit yang Anda pelajari? Kiat Berkomentar. Komentar yang paling berguna adalah yang ditulis dengan tujuan belajar dari atau membantu siswa lain. dan dapatkan jawaban atas pertanyaan umum di portal dukungan kami Bagaimana Anda membagi satu set menjadi dua dengan Python?Hal ini dapat dilakukan dengan menggunakan langkah-langkah berikut. . Dapatkan panjang daftar menggunakan fungsi len() Jika panjang bagian tidak diberikan, bagi panjang daftar dengan 2 menggunakan operator lantai untuk mendapatkan indeks tengah daftar Iris daftar menjadi dua bagian menggunakan [. middle_index] dan [middle_index. ] Apa yang dilakukan STR split ()?Membagi string menjadi jumlah maksimum substring berdasarkan karakter pembatas yang ditentukan dan, secara opsional, opsi .
Bagaimana Anda membagi titik dengan Python?Contoh pemisahan string
. Kami membaginya menggunakan karakter titik. " bagian = s. pisah(". ")
Bisakah split () mengambil 2 argumen?split() menerima dua argumen . Argumen opsional pertama adalah separator , yang menentukan jenis pemisah apa yang akan digunakan untuk memisahkan string. Jika argumen ini tidak disediakan, nilai defaultnya adalah sembarang spasi, yang berarti string akan terpisah kapan saja. |