Scikit-learn adalah perpustakaan pembelajaran mesin gratis untuk Python. Ini menampilkan berbagai algoritme seperti mesin vektor dukungan, hutan acak, dan k-tetangga, dan juga mendukung perpustakaan numerik dan ilmiah Python seperti 8 dan 9 Show
Dalam tutorial ini kita akan belajar membuat kode python dan menerapkan Pembelajaran Mesin dengan bantuan perpustakaan scikit-learn, yang dibuat untuk membuat pembelajaran mesin dengan Python lebih mudah dan lebih kuat Untuk melakukannya, kami akan menggunakan kumpulan data Sales_Win_Loss dari repositori Watson IBM. Kami akan mengimpor kumpulan data menggunakan panda, menjelajahi data menggunakan metode panda seperti 0, 1, 2, dan kemudian mencoba menggunakan teknik plotting dari 3 untuk memvisualisasikan data kamiKemudian kita akan mendalami scikit-learn dan menggunakan 4 di scikit-learn untuk memproses data, dan 5 untuk membagi kumpulan data menjadi sampel uji dan latih. Kami juga akan menggunakan lembar contekan untuk membantu kami memutuskan algoritme mana yang akan digunakan untuk kumpulan data. Terakhir, kami akan menggunakan tiga algoritme berbeda (Naive-Bayes, LinearSVC, K-Neighbors Classifier) untuk membuat prediksi dan membandingkan kinerjanya menggunakan metode seperti 6 yang disediakan oleh perpustakaan scikit-learn. Kami juga akan memvisualisasikan skor kinerja berbagai model menggunakan scikit-learn dan visualisasi YellowbrickUntuk mendapatkan hasil maksimal dari posting ini, Anda mungkin sudah merasa nyaman
Jika Anda perlu memoles topik ini, lihat posting blog panda dan visualisasi data ini Kumpulan dataUntuk tutorial ini, kami akan menggunakan kumpulan data Penjualan-Menang-Kalah yang tersedia di situs web IBM Watson. Kumpulan data ini berisi data kampanye penjualan pemasok grosir suku cadang otomotif Kami akan menggunakan scikit-learn untuk membangun model prediktif untuk memberi tahu kami kampanye penjualan mana yang akan menghasilkan kerugian dan mana yang akan menghasilkan kemenangan Mari kita mulai dengan mengimpor kumpulan data Mengimpor kumpulan dataPertama kita akan mengimpor modul panda dan menggunakan variabel 7 untuk menyimpan url dari mana kumpulan data akan diunduh
Selanjutnya, kita akan menggunakan metode 8 yang disediakan oleh modul panda untuk membaca file 9 yang berisi nilai yang dipisahkan koma dan mengubahnya menjadi DataFrame panda
Cuplikan kode di atas mengembalikan variabel 0 tempat kerangka data sekarang disimpanBagi mereka yang baru mengenal panda, metode _1 dalam kode di atas membuat struktur data tabular yang dikenal sebagai 2, di mana kolom pertama berisi indeks yang menandai setiap baris data secara unik dan baris pertama berisi label/nama untuk . Variabel _0 dalam cuplikan kode di atas akan memiliki struktur yang mirip dengan diagram yang ditunjukkan di bawah iniSumber. Tumpukan Luapan Dalam diagram di atas, baris0, baris1, baris2 adalah indeks untuk setiap record dalam kumpulan data dan col0, col1, col2 dll adalah nama kolom untuk setiap kolom(fitur) kumpulan data Sekarang kita telah mengunduh kumpulan data dari sumbernya dan mengubahnya menjadi kerangka Data panda, mari kita tampilkan beberapa catatan dari kerangka data ini. Untuk ini kami akan menggunakan metode _0
Jumlah PeluangSupplies SubgrupSupplies GroupWilayahRute Ke PasarHari-Hari yang Berlalu Dalam Tahap PenjualanHasil PeluangPenghitungan Perubahan Tahap PenjualanTotal Hari Teridentifikasi Melalui PenutupanTotal Hari Teridentifikasi Melalui KualifikasiJumlah Peluang USDUkuran Klien Berdasarkan PendapatanUkuran Klien Menurut Hitungan KaryawanPendapatan Dari Klien Dua Tahun TerakhirTipe PesaingRasio Hari Diidentifikasi Terhadap Total HariRasio Hari Divalidasi Terhadap Total HariRasio Hari Yang Memenuhi Syarat . 696360. 1139850. 154215111658010Exterior AccessoriesCar AccessoriesPacificReseller63Loss21631630350Unknown0. 000001. 0000000. 000000121674737Motorcycle PartsPerformance & Non-autoPacificReseller24Won782827750110Unknown1. 000000. 0000000. 000000131675224Shelter & RVKinerja & Non-otomatisMidwestReseller16Kerugian51241240110Dikenal1. 000000. 0000000. 000000141689785Exterior AccessoriesCar AccessoriesPacificReseller69Loss11911369756110Unknown0. 000000. 1411250. 0000004 Seperti yang dapat dilihat dari tampilan di atas, metode _0 menunjukkan kepada kita beberapa record pertama dari kumpulan data. Metode _0 adalah alat yang sangat bagus yang disediakan oleh panda yang membantu kita merasakan konten kumpulan data. Kami akan berbicara lebih banyak tentang metode _0 di bagian selanjutnyaEksplorasi DataSekarang kita telah mendapatkan kumpulan data yang diunduh dan diubah menjadi kerangka data panda, mari kita lakukan eksplorasi cepat dari data tersebut untuk melihat cerita apa yang dapat diceritakan oleh data tersebut sehingga kita dapat merencanakan tindakan kita. Eksplorasi data adalah langkah yang sangat penting dalam proyek Ilmu Data atau Pembelajaran Mesin apa pun. Bahkan eksplorasi cepat dari kumpulan data dapat memberi kita informasi penting yang mungkin kita lewatkan, dan informasi itu dapat menyarankan pertanyaan penting yang dapat kita coba jawab melalui proyek kita. Untuk menjelajahi kumpulan data, kami akan menggunakan beberapa pustaka Python pihak ketiga untuk membantu kami memproses data sehingga dapat digunakan secara efektif dengan algoritme kuat scikit-learn. Tapi kita bisa mulai dengan metode 0 yang sama yang kita gunakan di bagian sebelumnya untuk melihat beberapa catatan pertama dari kumpulan data yang diimpor, karena 0 sebenarnya mampu melakukan lebih dari itu. Kami dapat menyesuaikan metode 0 untuk hanya menampilkan sejumlah rekaman tertentu
Jumlah PeluangSupplies SubgrupSupplies GroupWilayahRute Ke PasarHari-Hari yang Berlalu Dalam Tahap PenjualanHasil PeluangPenghitungan Perubahan Tahap PenjualanTotal Hari Teridentifikasi Melalui PenutupanTotal Hari Teridentifikasi Melalui KualifikasiJumlah Peluang USDUkuran Klien Berdasarkan PendapatanUkuran Klien Menurut Hitungan KaryawanPendapatan Dari Klien Dua Tahun TerakhirTipe PesaingRasio Hari Diidentifikasi Terhadap Total HariRasio Hari Divalidasi Terhadap Total HariRasio Hari Yang Memenuhi Syarat . 696360. 1139850. 154215111658010Exterior AccessoriesCar AccessoriesPacificReseller63Loss21631630350Unknown0. 000001. 0000000. 0000001 Dalam cuplikan kode di atas, kami menggunakan argumen di dalam metode 0 untuk menampilkan hanya dua rekaman pertama dari kumpulan data kami. Bilangan bulat '2' dalam argumen 2 sebenarnya menunjukkan 3 kedua dari Dataframe 4. Dengan menggunakan ini, kita dapat melihat sekilas jenis data yang harus kita kerjakan. Misalnya, kita dapat melihat bahwa kolom seperti 'Grup Persediaan' dan 'Wilayah' berisi data string, sedangkan kolom seperti Hasil Peluang, Nomor Peluang, dll. mengandung bilangan bulat. Selain itu, kita dapat melihat bahwa kolom 'Nomor Peluang' berisi pengidentifikasi unik untuk setiap rekamanSekarang kita telah melihat catatan awal dari kerangka data kita, mari kita coba melihat beberapa catatan terakhir dalam kumpulan data. Ini dapat dilakukan dengan menggunakan metode _1, yang memiliki sintaks yang mirip dengan metode 0. Mari kita lihat apa yang dapat dilakukan oleh metode _1
Jumlah PeluangSupplies SubgrupSupplies GroupWilayahRute Ke PasarHari-Hari yang Berlalu Dalam Tahap PenjualanHasil PeluangPenghitungan Perubahan Tahap PenjualanTotal Hari Teridentifikasi Melalui PenutupanTotal Hari Teridentifikasi Melalui KualifikasiJumlah Peluang USDUkuran Klien Berdasarkan PendapatanUkuran Klien Menurut Hitungan KaryawanPendapatan Dari Klien Dua Tahun TerakhirTipe PesaingRasio Hari Diidentifikasi Terhadap Total HariRasio Hari Divalidasi Terhadap Total HariRasio Hari Yang Memenuhi Syarat . 00. 00. 067802110089961Shelter & RVPerformance & Non-autoNortheastReseller0Won100180000110Unknown0. 00. 00. 057802210090145Exterior AccessoriesCar AccessoriesSoutheastReseller0Loss20090000110Unknown0. 00. 00. 047802310090430Exterior AccessoriesCar AccessoriesSoutheastFields Sales0Loss200120000110Unknown1. 00. 00. 057802410094255Interior AccessoriesCar AccessoriesMid-AtlanticReseller0Loss10090000110Unknown0. 00. 00. 04 Metode _1 dalam cuplikan kode di atas mengembalikan beberapa record terakhir dari kerangka data 0. Kami juga dapat meneruskan argumen ke metode 1 untuk melihat hanya sejumlah catatan terbatas dari kerangka data kami
Jumlah PeluangSupplies SubgrupSupplies GroupWilayahRute Ke PasarHari-Hari yang Berlalu Dalam Tahap PenjualanHasil PeluangPenghitungan Perubahan Tahap PenjualanTotal Hari Teridentifikasi Melalui PenutupanTotal Hari Teridentifikasi Melalui KualifikasiJumlah Peluang USDUkuran Klien Berdasarkan PendapatanUkuran Klien Menurut Hitungan KaryawanPendapatan Dari Klien Dua Tahun TerakhirTipe PesaingRasio Hari Diidentifikasi Terhadap Total HariRasio Hari Divalidasi Terhadap Total HariRasio Hari Yang Memenuhi Syarat . 00. 00. 057802410094255Interior AccessoriesCar AccessoriesMid-AtlanticReseller0Loss10090000110Unknown0. 00. 00. 04 Kita sekarang hanya dapat melihat dua catatan terakhir dari kerangka data, seperti yang ditunjukkan oleh argumen 2 di dalam metode 1. Mirip dengan metode 0, bilangan bulat '2' dalam argumen 2 dalam metode 1 menunjuk ke indeks kedua dari dua catatan terakhir dalam kumpulan data 0Kisah apa yang diceritakan oleh dua catatan terakhir ini kepada kita? . Ini terbukti dari nomor 'indeks' catatan yang ditampilkan dengan metode 1Sekarang, alangkah baiknya jika kita dapat melihat berbagai tipe data yang tersedia dalam kumpulan data ini; . Kita bisa melakukannya dengan metode 2 di panda
Seperti yang dapat kita lihat pada cuplikan kode di atas, dengan menggunakan metode 9, kita dapat mencantumkan berbagai kolom yang tersedia di Dataframe beserta tipe datanya masing-masing. Misalnya, kita dapat melihat bahwa kolom Subgrup Perbekalan adalah tipe data 0 dan kolom 'Ukuran Klien Berdasarkan Pendapatan' adalah tipe data 1. Jadi, sekarang kita tahu kolom mana yang berisi bilangan bulat dan kolom mana yang berisi data stringVisualisasi dataSekarang kita telah melakukan beberapa eksplorasi data dasar, mari kita coba membuat beberapa plot yang bagus untuk merepresentasikan data secara visual dan mengungkap lebih banyak cerita yang tersembunyi di kumpulan data Ada banyak library python yang menyediakan fungsi untuk melakukan visualisasi data; . Untuk menggunakan plot Seaborn, kita harus memastikan bahwa modul python ini diunduh dan diinstal Mari siapkan kode untuk menggunakan modul 3
Sekarang setelah Seaborn disiapkan, mari kita lihat lebih dalam apa yang baru saja kita lakukan Pertama kami mengimpor modul Seaborn dan modul matplotlib. Metode _4 di baris berikutnya membantu mengatur properti yang berbeda untuk plot kita, seperti 'gaya', 'warna' dll. Menggunakan cuplikan kode _5 kami mengatur latar belakang plot menjadi warna terang. Kemudian kita mengatur ukuran plot dengan potongan kode ________48______6, yang menentukan ukuran gambar plot menjadi 11. 7px dan 8. 27pxSelanjutnya, kami membuat plot menggunakan 7. Metode _8 membantu kita membuat countplot dan memaparkan beberapa argumen untuk menyesuaikan countplot sesuai kebutuhan kita. Di sini, dalam argumen pertama metode _8, kami mendefinisikan sumbu X sebagai kolom 'Rute Ke Pasar' dari kumpulan data kami. Argumen kedua adalah sumber data, yang dalam hal ini adalah kerangka data 0 yang kita buat di bagian pertama tutorial ini. Argumen ketiga adalah warna barplot yang kami tetapkan ke 'biru' untuk label 'menang' dan 'hijau' untuk label 'kalah' dari kolom 'Hasil Peluang' dari kerangka data 0Rincian lebih lanjut tentang plot hitungan Seaborn dapat ditemukan di sini Jadi, apa yang diceritakan countplot tentang datanya? . Melihat sumbu x dan batang yang sesuai untuk setiap label pada sumbu x, kita dapat melihat bahwa sebagian besar data dari kumpulan data kita terkonsentrasi di sisi kiri plot. menuju kategori 'Penjualan Lapangan' dan 'Pengecer'. Hal lain yang perlu diperhatikan adalah kategori ‘Penjualan Lapangan’ lebih banyak merugi daripada kategori ‘Reseller’ Kami memilih kolom Route To Market untuk plot kami karena sepertinya itu akan memberikan informasi yang bermanfaat setelah studi awal kami tentang output metode 0 dan 1. Tetapi bidang lain seperti 'Wilayah', 'Grup Persediaan' dll. juga dapat digunakan untuk membuat plot dengan cara yang samaSekarang kita telah mendapatkan visualisasi yang cukup bagus tentang seperti apa keseluruhan data kita, mari kita lihat lebih banyak informasi yang dapat kita gali dengan bantuan plot Seaborn lainnya. Opsi populer lainnya adalah _4, jadi mari kita buat plot biola dan lihat apa yang dapat diceritakan oleh gaya plot itu kepada kitaKami akan menggunakan metode _5 yang disediakan oleh modul Seaborn untuk membuat plot biola. Pertama mari kita impor modul _6 dan gunakan metode 4 untuk menyesuaikan ukuran plot kita. Kami akan melihat ukuran plot sebagai 16. 7px kali 13. 27px
Selanjutnya, kita akan menggunakan metode _5 untuk membuat plot biola dan kemudian menggunakan metode 9 untuk menampilkan plot – 0 1Sekarang, setelah plot kita dibuat, mari kita lihat apa yang diceritakannya kepada kita. Dalam bentuknya yang paling sederhana, plot biola menampilkan distribusi data di seluruh label. Dalam plot di atas kami memiliki label 'menang' dan 'kalah' pada sumbu x dan nilai 'Ukuran Klien Berdasarkan Pendapatan' pada sumbu y. Plot biola menunjukkan kepada kita bahwa distribusi data terbesar ada di ukuran klien '1', dan label ukuran klien lainnya memiliki lebih sedikit data Plot biola ini memberi kami wawasan yang sangat berharga tentang bagaimana data didistribusikan dan fitur serta label mana yang memiliki konsentrasi data terbesar, tetapi ada lebih dari yang terlihat dalam kasus plot biola. Anda dapat menggali lebih dalam tentang penggunaan plot biola tambahan melalui dokumentasi resmi modul 3Memproses DataSekarang setelah kita memiliki pemahaman yang baik tentang seperti apa data kita, kita dapat beralih ke mempersiapkannya untuk membuat model prediksi menggunakan scikit-learn Kami melihat dalam eksplorasi awal kami bahwa sebagian besar kolom dalam kumpulan data kami adalah string, tetapi algoritme dalam scikit-learn hanya memahami data numerik. Untungnya, pustaka scikit-learn memberi kita banyak metode untuk mengonversi data string menjadi data numerik. Salah satu metode tersebut adalah metode _1. Kami akan menggunakan metode ini untuk mengubah label kategori dalam kumpulan data kami seperti 'menang' dan 'kalah' menjadi label numerik. Untuk memvisualisasikan apa yang ingin kita capai dengan metode 1 mari kita perhatikan gambar di bawah iniGambar di bawah mewakili kerangka data yang memiliki satu kolom bernama 'warna' dan tiga catatan 'Merah', 'Hijau' dan 'Biru' Karena algoritme pembelajaran mesin di scikit-learn hanya memahami input numerik, kami ingin mengonversi label kategori seperti 'Merah, 'Hijau', dan 'Biru' menjadi label numerik. Ketika kami selesai mengonversi label kategori dalam kerangka data asli, kami akan mendapatkan sesuatu seperti ini Sekarang, mari kita mulai proses konversi yang sebenarnya. Kami akan menggunakan metode 3 yang disediakan oleh 1 untuk menyandikan label di kolom kategori seperti 'Rute Ke Pasar' di kerangka data 0 dan mengubahnya menjadi label numerik yang serupa dengan yang kami visualisasikan dalam diagram di atas. Fungsi _3 mengambil label yang ditentukan pengguna sebagai input dan kemudian mengembalikan label yang disandikan. Mari kita lihat contoh singkat untuk memahami bagaimana pengodean dilakukan. Pada contoh kode di bawah ini kami memiliki daftar kota i. e. _7 dan kami akan mencoba untuk menyandikan label string ini menjadi sesuatu yang mirip dengan ini – 8 2 3Voila. Kami telah berhasil mengubah label string menjadi label numerik. Bagaimana kita melakukannya? . Kemudian kami membuat objek yang mewakili tipe 1. Selanjutnya kami menggunakan fungsi _3 objek ini untuk membedakan antara kelas unik yang berbeda dari daftar 7 dan kemudian mengembalikan daftar dengan nilai yang disandikan masing-masing, i. e. _04Perhatikan bagaimana metode _1 menetapkan nilai numerik ke kelas dalam urutan huruf pertama kelas dari daftar asli. "(a)msterdam" mendapat penyandian '0' , "(p)aris mendapat penyandian 1" dan "(t)okyo" mendapat penyandian 2Ada lebih banyak fungsi yang disediakan oleh _1 yang berguna dalam berbagai persyaratan penyandian. Kami tidak membutuhkannya di sini, tetapi untuk mempelajari lebih lanjut, tempat yang baik untuk memulai adalah halaman resmi scikit-learn di mana 1 dan fungsi terkaitnya dijelaskan secara mendetailKarena, kami sekarang memiliki ide bagus tentang cara kerja 1, kami dapat melanjutkan dengan menggunakan metode ini untuk menyandikan label kategori dari kerangka data 0 dan mengubahnya menjadi label numerik. Di bagian sebelumnya selama eksplorasi awal kumpulan data, kami melihat bahwa kolom berikut berisi nilai string. 'Subgrup Pasokan', 'Wilayah', 'Rute Ke Pasar', 'Hasil Peluang', 'Jenis Pesaing', dan 'Grup Pasokan'. Sebelum kita mulai menyandikan label string ini, mari kita lihat sekilas label berbeda yang terdapat dalam kolom ini. - 4 5Kami sekarang telah meletakkan kolom kategori yang berbeda dari kerangka data 0 dan kelas unik di bawah masing-masing kolom ini. Sekarang, saatnya menyandikan string ini ke dalam label numerik. Untuk melakukan ini, kami akan menjalankan kode di bawah ini dan kemudian menyelam lebih dalam untuk memahami cara kerjanya 6Jumlah PeluangSupplies SubgrupSupplies GroupWilayahRute Ke PasarHari-Hari yang Berlalu Dalam Tahap PenjualanHasil PeluangPenghitungan Perubahan Tahap PenjualanTotal Hari Teridentifikasi Melalui PenutupanTotal Hari Teridentifikasi Melalui KualifikasiJumlah Peluang USDUkuran Klien Berdasarkan PendapatanUkuran Klien Menurut Hitungan KaryawanPendapatan Dari Klien Dua Tahun TerakhirTipe PesaingRasio Hari Diidentifikasi Terhadap Total HariRasio Hari Divalidasi Terhadap Total HariRasio Hari Yang Memenuhi Syarat . 696360. 1139850. 15421511165801020426302163163035020. 000001. 0000000. 000000121674737524224178282775011021. 000000. 0000000. 00000013167522482121605124124011001. 000000. 0000000. 00000014168978520426901191136975611020. 000000. 1411250. 0000004 Jadi apa yang baru saja kita lakukan? . Kemudian kami membuat objek _13 dari tipe 14. Dalam beberapa baris berikutnya kami menggunakan fungsi _3 yang disediakan oleh 1 dan mengonversi label kategori dari kolom yang berbeda seperti 'Supplies Subgroup', 'Region', Route To Market' menjadi label numerik. Dalam melakukan ini, kami berhasil mengonversi semua kolom kategori (string) menjadi nilai numerikSekarang setelah kami menyiapkan dan mengonversi data, data tersebut hampir siap digunakan untuk membangun model prediktif kami. Tapi kita masih perlu melakukan satu hal penting Set Pelatihan dan Set TesAlgoritme Pembelajaran Mesin perlu dilatih pada kumpulan data untuk mempelajari hubungan antara berbagai fitur dan bagaimana fitur ini memengaruhi variabel target. Untuk ini kita perlu membagi seluruh kumpulan data menjadi dua kumpulan. Salah satunya adalah set pelatihan tempat kami akan melatih algoritme kami untuk membuat model. Yang lainnya adalah set pengujian di mana kami akan menguji model kami untuk melihat seberapa akurat prediksinya Namun sebelum melakukan semua pemisahan ini, mari kita pisahkan fitur dan variabel target terlebih dahulu. Seperti sebelumnya dalam tutorial ini, pertama-tama kita akan menjalankan kode di bawah ini, lalu melihat lebih dekat apa yang dilakukannya 7Subgrup PasokanGrup PasokanWilayahRute ke PasarHari-Hari Berlalu Dalam Tahap PenjualanJumlah Perubahan Tahap PenjualanTotal Hari Diidentifikasi Melalui PenutupanTotal Hari Diidentifikasi Melalui KualifikasiJumlah Peluang USDUkuran Klien Berdasarkan PendapatanUkuran Klien Berdasarkan Hitungan KaryawanPendapatan Dari Klien Dua Tahun TerakhirTipe PesaingRasio Hari Diidentifikasi Terhadap Total HariRasio Hari Divalidasi Terhadap Total HariRasio Hari Yang Memenuhi Syarat Terhadap Total HariDeal . 696360. 1139850. 154215112042632163163035020. 000001. 0000000. 0000001 Oke, jadi apa yang baru saja kita lakukan? . Juga, kami ingin memprediksi 'Hasil Peluang', jadi itu harus menjadi 'target' kami daripada bagian dari 'data'. Jadi, pada baris pertama kode di atas, kami hanya memilih kolom yang tidak cocok dengan 'Nomor Peluang' dan 'Hasil Peluang' dan menugaskannya ke variabel 17. Selanjutnya, kami membuat kerangka data baru 18 dengan kolom dalam daftar 17. Ini akan berfungsi sebagai set fitur kami. Kemudian kami mengambil kolom 'Hasil Peluang' dari kerangka data 0 dan membuat kerangka data baru 21Itu dia. Kami siap dengan mendefinisikan fitur dan target kami menjadi dua kerangka data terpisah. Selanjutnya kita akan membagi dataframe _18 dan 21 menjadi set pelatihan dan set pengujian. Saat memisahkan kumpulan data, kami akan menyimpan 30% data sebagai data pengujian dan 70% sisanya sebagai data pelatihan. Namun perlu diingat bahwa angka-angka itu sewenang-wenang dan pemisahan terbaik akan bergantung pada data spesifik yang Anda gunakan. Jika Anda tidak yakin cara membagi data, prinsip 80/20 di mana Anda menyimpan 80% data sebagai data pelatihan dan menggunakan 20% sisanya sebagai data pengujian adalah standar yang layak. Namun, untuk tutorial ini, kami akan tetap berpegang pada keputusan kami sebelumnya untuk menyisihkan 30% data sebagai data uji. Metode _5 di scikit-learn dapat digunakan untuk membagi data 8Dengan ini, kami sekarang telah berhasil menyiapkan satu set pengujian dan satu set pelatihan. Pada kode di atas pertama-tama kita mengimpor modul train_test_split. Selanjutnya kami menggunakan metode _5 untuk membagi data menjadi set pelatihan (data_train,target_train) dan set tes (data_test,data_train). Argumen pertama dari metode _5 adalah fitur yang kita pisahkan di bagian sebelumnya, argumen kedua adalah target('Hasil Peluang'). Argumen ketiga 'test_size' adalah persentase data yang ingin kita pisahkan sebagai data pelatihan. Dalam kasus kami 30% , meskipun ini bisa berupa angka berapa pun. Argumen keempat 'random_state' hanya memastikan bahwa kami mendapatkan hasil yang dapat direproduksi setiap saatSekarang, kita sudah menyiapkan semuanya dan inilah bagian terpenting dan menarik dari tutorial ini. membangun model prediksi menggunakan perpustakaan besar algoritma yang tersedia melalui scikit-learn Membangun ModelAda _27 tersedia di situs web scikit learn yang dapat kita gunakan sebagai referensi cepat saat memilih algoritme. Ini terlihat seperti iniKita dapat menggunakan peta ini sebagai contekan untuk memilih algoritme yang dapat kita coba untuk membangun model prediksi kita. Dengan menggunakan daftar periksa, mari kita lihat di kategori mana kita termasuk
Berdasarkan daftar periksa yang kami siapkan di atas dan mengikuti 27, kami dapat mencoba algoritme yang disebutkan di bawah
Keindahan sebenarnya dari pustaka scikit-learn adalah ia memaparkan API tingkat tinggi untuk algoritme yang berbeda, sehingga memudahkan kami untuk mencoba algoritme yang berbeda dan membandingkan keakuratan model untuk melihat mana yang terbaik untuk kumpulan data kami Mari mulai mencoba berbagai algoritme satu per satu Naif-BayesScikit-learn menyediakan sekumpulan algoritma klasifikasi yang “secara naif” mengasumsikan bahwa dalam kumpulan data setiap pasang fitur bersifat independen. Asumsi ini adalah prinsip yang mendasari teorema Bayes. Algoritma yang didasarkan pada prinsip ini dikenal sebagai algoritma Naive-Bayes Pada level yang sangat tinggi algoritma Naive-Bayes menghitung probabilitas koneksi suatu fitur dengan variabel target dan kemudian memilih fitur dengan probabilitas tertinggi. Mari kita coba memahami ini dengan pernyataan masalah yang sangat sederhana. Akankah hujan hari ini? . Berdasarkan kumpulan fitur ini, kita dapat membuat tabel untuk menunjukkan berapa kali pasangan fitur/target tertentu terjadi. Ini akan terlihat seperti ini Pada tabel di atas fitur (kolom) 'Cuaca' berisi label ('Sebagian Mendung' dan 'Berawan') dan kolom 'Hujan' berisi kejadian hujan yang bertepatan dengan fitur 'Cuaca' (Ya/Tidak). Setiap kali suatu fitur bertepatan dengan hujan, itu dicatat sebagai 'Ya' dan ketika fitur itu tidak menyebabkan hujan, itu dicatat sebagai 'Tidak'. Kami sekarang dapat menggunakan data dari tabel kejadian untuk membuat tabel lain yang dikenal sebagai 'Tabel frekuensi' di mana kami dapat merekam jumlah 'Ya' dan jumlah jawaban 'Tidak' yang terkait dengan setiap fitur Terakhir, kami menggabungkan data dari 'tabel kejadian' dan 'tabel frekuensi' dan membuat 'tabel kemungkinan'. Tabel ini mencantumkan jumlah 'Ya' dan 'Tidak' untuk setiap fitur dan kemudian menggunakan data ini untuk menghitung probabilitas kontribusi setiap fitur terhadap terjadinya hujan Perhatikan kolom 'Probabilitas Individu' pada tabel di atas. Kami memiliki 6 kemunculan fitur 'Partially Cloudy' dan 'Cloudy' dari 'Tabel Occurrence' dan dari 'Kemungkinan tabel' jelas bahwa fitur 'Partially Cloudy' memiliki 4 kemunculan (2 untuk 'Tidak' dan 2 untuk . Ketika kami membagi jumlah kemunculan 'Tidak' dan 'Ya' dari fitur tertentu dengan 'total' dari 'tabel kemunculan', kami mendapatkan probabilitas dari fitur tersebut. Dalam kasus kami jika kami perlu mengetahui fitur mana yang memiliki probabilitas terkuat untuk berkontribusi terhadap terjadinya Hujan, maka kami mengambil jumlah total 'Tidak' dari setiap fitur dan menambahkannya ke nomor 'Ya' masing-masing dari ' . Ini memberi kita kemungkinan dari masing-masing fitur ini bertepatan dengan hujan Algoritme yang akan kita gunakan untuk data penjualan kita adalah 29 dan didasarkan pada konsep yang mirip dengan contoh cuaca yang baru saja kita jelajahi di atas, walaupun secara matematis jauh lebih rumit. Penjelasan lebih rinci tentang algoritme 'Naive-Bayes' dapat ditemukan di sini bagi mereka yang ingin mempelajari lebih dalamSekarang mari terapkan algoritma Gaussian Naive Bayes atau 30 dari scikit-learn untuk membuat model prediksi kita 9 0Sekarang mari kita lihat lebih dekat apa yang baru saja kita lakukan. Pertama, kami mengimpor metode _30 dan metode 32. Kemudian kami membuat objek _33 dari jenis 30. Setelah ini, kami melatih algoritme pada data pengujian(data_train) dan target pengujian(target_train) menggunakan metode 35, lalu memprediksi target dalam data pengujian menggunakan metode 36. Akhirnya kami mencetak skor menggunakan metode _6 dan dengan ini kami telah berhasil menerapkan algoritma 38 untuk membangun model prediksiSekarang mari kita lihat bagaimana kinerja algoritme lain dalam daftar kami dibandingkan dengan algoritme Naive-Bayes LinearSVCLinearSVC atau Linear Support Vector Classification adalah subkelas dari kelas ________13______39 (Support Vector Machine). Kami tidak akan membahas seluk-beluk matematika yang terlibat dalam kelas algoritme ini, tetapi pada tingkat yang sangat dasar LinearSVC mencoba membagi data ke dalam bidang yang berbeda sehingga dapat menemukan pengelompokan terbaik dari kelas yang berbeda. Untuk mendapatkan pemahaman yang jelas tentang konsep ini, mari kita bayangkan kumpulan data 'titik' dan 'persegi' yang dibagi menjadi ruang dua dimensi sepanjang dua sumbu, seperti yang ditunjukkan pada gambar di bawah ini Sumber. StackOverflow Pada gambar di atas implementasi _40 mencoba membagi ruang dua dimensi sedemikian rupa sehingga kedua kelas data i. e 41 dan 42 dibagi dengan jelas. Di sini dua baris secara visual mewakili berbagai divisi yang 40 coba terapkan untuk memisahkan dua kelas yang tersediaLangganan yang sangat bagus menjelaskan 44 dapat ditemukan di sini bagi mereka yang ingin lebih detail, tetapi untuk saat ini, mari selami dan kotori tangan kita 1 2Mirip dengan apa yang kami lakukan selama implementasi GaussianNB, kami mengimpor modul yang diperlukan di dua baris pertama. Kemudian kami membuat objek _45 bertipe LinearSVC dengan random_state sebagai '0'. Tunggu. Apa itu "random_state"? Selanjutnya, kami melatih LinearSVC pada data pelatihan dan kemudian memprediksi target menggunakan data uji. Terakhir, kami memeriksa skor akurasi menggunakan metode 6Sekarang kami telah mencoba _30 dan 40 algoritma kami akan mencoba algoritma terakhir dalam daftar kami dan itu adalah 50Pengklasifikasi K-TetanggaDibandingkan dengan dua algoritme sebelumnya yang telah kami kerjakan, pengklasifikasi ini sedikit lebih kompleks. Untuk keperluan tutorial ini, lebih baik kita menggunakan kelas 51 yang disediakan oleh scikit-learn tanpa terlalu mengkhawatirkan cara kerja algoritme. (Tetapi jika Anda tertarik, penjelasan yang sangat mendetail tentang kelas algoritme ini dapat ditemukan di sini)Sekarang, mari terapkan K-Neighbors Classifier dan lihat bagaimana skornya 3 4Kode di atas dapat dijelaskan seperti implementasi sebelumnya. Pertama kami mengimpor modul yang diperlukan, lalu kami membuat objek 52 bertipe KNeighborsClassifier dengan jumlah tetangga 53. Kemudian kami menggunakan metode _35 untuk melatih algoritme kami pada set pelatihan, lalu kami menguji model tersebut pada data uji. Terakhir, kami mencetak skor akurasiSekarang setelah kami menerapkan semua algoritme dalam daftar kami, kami cukup membandingkan skor semua model untuk memilih model dengan skor tertinggi. Namun, bukankah menyenangkan jika kita memiliki cara untuk membandingkan performa berbagai model secara visual? Perbandingan KinerjaPada bagian sebelumnya kita telah menggunakan metode _6 untuk mengukur akurasi dari berbagai algoritma. Sekarang, kita akan menggunakan kelas _57 yang disediakan oleh perpustakaan 58 untuk memberi kita laporan visual tentang kinerja model kitaGaussianNBMari kita mulai dengan model ________13______30 5Pada kode di atas, pertama-tama kita mengimpor kelas ________13______57 yang disediakan oleh modul 61. Selanjutnya, objek _62 bertipe 57 dibuat. Di sini argumen pertama adalah _30 objek 33 yang dibuat saat menerapkan 38 algoritma di bagian 'Naive-Bayes'. Argumen kedua berisi label 'Menang' dan 'Kalah' dari kolom 'Hasil Peluang' dari kerangka data 0Selanjutnya, kami menggunakan metode _35 untuk melatih objek 62. Ini diikuti oleh metode _70, yang menggunakan objek 33 untuk melakukan prediksi sesuai dengan algoritma 30 dan kemudian menghitung skor akurasi dari prediksi yang dibuat oleh algoritma ini. Akhirnya, kami menggunakan metode 73 untuk menggambar plot skor yang berbeda untuk algoritma 30. Perhatikan bagaimana skor yang berbeda diletakkan terhadap masing-masing label 'Menang' dan 'Kalah'; LinearSVCMirip dengan apa yang baru saja kita lakukan di bagian sebelumnya, kita juga dapat memplot skor akurasi dari algoritme 40 _6Pada kode di atas, pertama-tama kita mengimpor kelas 57 yang disediakan oleh modul 61. Selanjutnya, objek _62 bertipe 57 telah dibuat. Di sini argumen pertama adalah objek _40 45, yang dibuat saat menerapkan algoritma 40 di bagian 'LinearSVC'. Argumen kedua berisi label 'Menang' dan 'Kalah' dari kolom 'Hasil Peluang' dari kerangka data 0Selanjutnya, kami menggunakan metode 35 untuk melatih objek 'svc_model'. Ini diikuti oleh metode _70 yang menggunakan objek 45 untuk melakukan prediksi sesuai dengan algoritma 40 dan kemudian menghitung skor akurasi dari prediksi yang dibuat oleh algoritma ini. Akhirnya, kami menggunakan metode _73 untuk menggambar plot skor yang berbeda untuk algoritma 40KNeighborsClassifierSekarang, mari lakukan hal yang sama untuk skor K-Neighbours Classifier _7Sekali lagi, pertama-tama kita mengimpor kelas _57 yang disediakan oleh modul 61. Selanjutnya, objek _62 bertipe 57 dibuat. Di sini argumen pertama adalah objek _51 52, yang dibuat saat mengimplementasikan algoritme 51 di bagian 'KNeighboursClassifier'. Argumen kedua berisi label 'Menang' dan 'Kalah' dari kolom 'Hasil Peluang' dari kerangka data 0Selanjutnya, kami menggunakan metode _35 untuk melatih objek 'tetangga'. Ini diikuti oleh metode _70 yang menggunakan objek 52 untuk melakukan prediksi sesuai dengan algoritma 51 dan kemudian menghitung skor akurasi dari prediksi yang dibuat oleh algoritma ini. Akhirnya kami menggunakan metode _73 untuk menggambar plot skor yang berbeda untuk algoritma 51Sekarang setelah kami memvisualisasikan hasilnya, jauh lebih mudah bagi kami untuk membandingkan skor dan memilih algoritme yang paling sesuai dengan kebutuhan kami KesimpulanPustaka scikit-learn menyediakan banyak algoritme berbeda yang dapat diimpor ke dalam kode dan kemudian digunakan untuk membangun model seperti kita akan mengimpor pustaka Python lainnya. Ini membuatnya lebih mudah untuk membuat model yang berbeda dengan cepat dan membandingkan model ini untuk memilih model dengan skor tertinggi Dalam tutorial ini, kami hanya menggores permukaan dari apa yang mungkin dengan pustaka scikit-learn. Untuk menggunakan perpustakaan Pembelajaran Mesin ini secara maksimal, ada banyak sumber daya yang tersedia di halaman resmi scikit-learn dengan dokumentasi mendetail yang dapat Anda selami. Panduan memulai cepat untuk scikit-learn dapat ditemukan di sini, dan itu adalah titik masuk yang bagus untuk pemula yang baru mulai menjelajahi dunia Machine Learning Tetapi untuk benar-benar menghargai kekuatan perpustakaan scikit-learn yang sebenarnya, yang benar-benar perlu Anda lakukan adalah mulai menggunakannya pada kumpulan data terbuka yang berbeda dan membangun model prediktif menggunakan kumpulan data ini. Sumber untuk kumpulan data terbuka mencakup Kaggle dan Data. dunia. Keduanya berisi banyak kumpulan data menarik di mana seseorang dapat berlatih membuat model prediktif dengan menggunakan algoritme yang disediakan oleh perpustakaan scikit-learn Apakah tutorial ini membantu?Pilih jalur Anda untuk terus mempelajari keterampilan data yang berharga Tutorial Python Latih keterampilan pemrograman Python Anda saat Anda mengerjakan tutorial gratis kami kursus ilmu data Berkomitmen pada studi Anda dengan kursus sains data interaktif dalam browser Anda di Python, R, SQL, dan lainnya Tentang Penulis Satyabrata PalSaya seorang insinyur perangkat lunak yang berbasis di Pune, India. Saya sangat tertarik dengan AI, Pembelajaran mesin, dan segala sesuatu yang suatu hari nanti dapat membuat fiksi ilmiah menjadi kenyataan. ) Bagaimana Anda menggunakan sklearn dengan Python?Berikut adalah alat dan pustaka yang perlu diinstal sebelumnya sebelum menggunakan Scikit-learn. Piton (2. 7 atau lebih tinggi) NumPy (1. 6. 1 atau lebih tinggi) . Mengimpor Kumpulan Data Menjelajahi data Visualisasi data Belajar dan memprediksi Memilih fitur/bidang Mempersiapkan Data Set pelatihan dan set Tes Bagaimana cara menambahkan sklearn ke Python?Menginstal scikit-learn . Instal versi scikit-learn yang disediakan oleh sistem operasi Anda atau distribusi Python. Ini adalah opsi tercepat bagi mereka yang memiliki sistem operasi yang mendistribusikan scikit-learn Instal rilis resmi. . Instal versi pengembangan terbaru Apa Scikit yang digunakan dalam Python?Scikit-learn adalah pustaka analisis data open source , dan standar terbaik untuk Machine Learning (ML) dalam ekosistem Python. Konsep dan fitur utama termasuk. Metode pengambilan keputusan algoritmik, termasuk. Klasifikasi. mengidentifikasi dan mengkategorikan data berdasarkan pola.
Bagaimana cara belajar scikitBagaimana cara menginstal Scikit-Learn? . Unduh pemasang SciPy menggunakan tautan SciPy. Perpustakaan Ilmiah untuk Python - Telusuri /scipy/0. 16. 1 di SourceForge. bersih Instal Pip dengan mengetikkan python get_pip. py di terminal baris perintah Instal scikit-learn dengan mengetikkan pip install scikit-learn di baris perintah |