Cara menggunakan scikit belajar dengan python

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

# Using .head() method to view the first few records of the data set
sales_data.head()
8 dan
# Using .head() method to view the first few records of the data set
sales_data.head()
9

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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0,
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
1,
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
2, dan kemudian mencoba menggunakan teknik plotting dari
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
3 untuk memvisualisasikan data kami

Kemudian kita akan mendalami scikit-learn dan menggunakan

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
4 di scikit-learn untuk memproses data, dan
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
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
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
6 yang disediakan oleh perpustakaan scikit-learn. Kami juga akan memvisualisasikan skor kinerja berbagai model menggunakan scikit-learn dan visualisasi Yellowbrick

Untuk mendapatkan hasil maksimal dari posting ini, Anda mungkin sudah merasa nyaman

  • dasar panda
  • Dasar-dasar seaborn dan matplotlib

Jika Anda perlu memoles topik ini, lihat posting blog panda dan visualisasi data ini

Kumpulan data

Untuk 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 data

Pertama kita akan mengimpor modul panda dan menggunakan variabel

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
7 untuk menyimpan url dari mana kumpulan data akan diunduh

#import necessary modules
import pandas as pd
#store the url in a variable
url = "https://community.watsonanalytics.com/wp-content/uploads/2015/04/WA_Fn-UseC_-Sales-Win-Loss.csv"

Selanjutnya, kita akan menggunakan metode

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
8 yang disediakan oleh modul panda untuk membaca file
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
9 yang berisi nilai yang dipisahkan koma dan mengubahnya menjadi DataFrame panda

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)

Cuplikan kode di atas mengembalikan variabel

# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0 tempat kerangka data sekarang disimpan

Bagi mereka yang baru mengenal panda, metode

# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
_1 dalam kode di atas membuat struktur data tabular yang dikenal sebagai
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
2, di mana kolom pertama berisi indeks yang menandai setiap baris data secara unik dan baris pertama berisi label/nama untuk . Variabel
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
_0 dalam cuplikan kode di atas akan memiliki struktur yang mirip dengan diagram yang ditunjukkan di bawah ini

Cara menggunakan scikit belajar dengan python

Sumber. 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_0

# Using .head() method to view the first few records of the data set
sales_data.head()

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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_0 menunjukkan kepada kita beberapa record pertama dari kumpulan data. Metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_0 adalah alat yang sangat bagus yang disediakan oleh panda yang membantu kita merasakan konten kumpulan data. Kami akan berbicara lebih banyak tentang metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_0 di bagian selanjutnya

Eksplorasi Data

Sekarang 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0 yang sama yang kita gunakan di bagian sebelumnya untuk melihat beberapa catatan pertama dari kumpulan data yang diimpor, karena
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0 sebenarnya mampu melakukan lebih dari itu. Kami dapat menyesuaikan metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0 untuk hanya menampilkan sejumlah rekaman tertentu

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)

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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0 untuk menampilkan hanya dua rekaman pertama dari kumpulan data kami. Bilangan bulat '2' dalam argumen
# Using .tail() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.tail(n=2)
2 sebenarnya menunjukkan
# Using .tail() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.tail(n=2)
3 kedua dari Dataframe
# Using .tail() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.tail(n=2)
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 rekaman

Sekarang 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_1, yang memiliki sintaks yang mirip dengan metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0. Mari kita lihat apa yang dapat dilakukan oleh metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_1

# Using .tail() method to view the last few records from the dataframe
sales_data.tail()

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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_1 dalam cuplikan kode di atas mengembalikan beberapa record terakhir dari kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0. Kami juga dapat meneruskan argumen ke metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
1 untuk melihat hanya sejumlah catatan terbatas dari kerangka data kami

# Using .tail() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.tail(n=2)

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

# Using .tail() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.tail(n=2)
2 di dalam metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
1. Mirip dengan metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0, bilangan bulat '2' dalam argumen
# Using .tail() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.tail(n=2)
2 dalam metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
1 menunjuk ke indeks kedua dari dua catatan terakhir dalam kumpulan data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0

Kisah apa yang diceritakan oleh dua catatan terakhir ini kepada kita? . Ini terbukti dari nomor 'indeks' catatan yang ditampilkan dengan metode

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
1

Sekarang, alangkah baiknya jika kita dapat melihat berbagai tipe data yang tersedia dalam kumpulan data ini; . Kita bisa melakukannya dengan metode

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
2 di panda

# using the dtypes() method to display the different datatypes available
sales_data.dtypes
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object

Seperti yang dapat kita lihat pada cuplikan kode di atas, dengan menggunakan metode

# using the dtypes() method to display the different datatypes available
sales_data.dtypes
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
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
0 dan kolom 'Ukuran Klien Berdasarkan Pendapatan' adalah tipe data
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
1. Jadi, sekarang kita tahu kolom mana yang berisi bilangan bulat dan kolom mana yang berisi data string

Visualisasi data

Sekarang 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
3

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# set the background colour of the plot to white
sns.set(style="whitegrid", color_codes=True)
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(11.7,8.27)})
# create a countplot
sns.countplot('Route To Market',data=sales_data,hue = 'Opportunity Result')
# Remove the top and down margin
sns.despine(offset=10, trim=True)
# display the plotplt.show()

Cara menggunakan scikit belajar dengan python

Sekarang setelah Seaborn disiapkan, mari kita lihat lebih dalam apa yang baru saja kita lakukan

Pertama kami mengimpor modul Seaborn dan modul matplotlib. Metode

Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
_4 di baris berikutnya membantu mengatur properti yang berbeda untuk plot kita, seperti 'gaya', 'warna' dll. Menggunakan cuplikan kode
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
_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. 27px

Selanjutnya, kami membuat plot menggunakan

Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
7. Metode
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
_8 membantu kita membuat countplot dan memaparkan beberapa argumen untuk menyesuaikan countplot sesuai kebutuhan kita. Di sini, dalam argumen pertama metode
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
_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
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
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
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0

Rincian 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
0 dan
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
1. Tetapi bidang lain seperti 'Wilayah', 'Grup Persediaan' dll. juga dapat digunakan untuk membuat plot dengan cara yang sama

Sekarang 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

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# set the background colour of the plot to white
sns.set(style="whitegrid", color_codes=True)
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(11.7,8.27)})
# create a countplot
sns.countplot('Route To Market',data=sales_data,hue = 'Opportunity Result')
# Remove the top and down margin
sns.despine(offset=10, trim=True)
# display the plotplt.show()
_4, jadi mari kita buat plot biola dan lihat apa yang dapat diceritakan oleh gaya plot itu kepada kita

Kami akan menggunakan metode

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# set the background colour of the plot to white
sns.set(style="whitegrid", color_codes=True)
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(11.7,8.27)})
# create a countplot
sns.countplot('Route To Market',data=sales_data,hue = 'Opportunity Result')
# Remove the top and down margin
sns.despine(offset=10, trim=True)
# display the plotplt.show()
_5 yang disediakan oleh modul Seaborn untuk membuat plot biola. Pertama mari kita impor modul
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# set the background colour of the plot to white
sns.set(style="whitegrid", color_codes=True)
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(11.7,8.27)})
# create a countplot
sns.countplot('Route To Market',data=sales_data,hue = 'Opportunity Result')
# Remove the top and down margin
sns.despine(offset=10, trim=True)
# display the plotplt.show()
_6 dan gunakan metode
Opportunity Number int64
Supplies Subgroup object
Supplies Group object
Region object
Route To Market object
Elapsed Days In Sales Stage int64
Opportunity Result object
Sales Stage Change Count int64
Total Days Identified Through Closing int64
Total Days Identified Through Qualified int64
Opportunity Amount USD int64
Client Size By Revenue int64
Client Size By Employee Count int64
Revenue From Client Past Two Years int64
Competitor Type object
Ratio Days Identified To Total Days float64
Ratio Days Validated To Total Days float64
Ratio Days Qualified To Total Days float64
Deal Size Category int64
dtype: object
4 untuk menyesuaikan ukuran plot kita. Kami akan melihat ukuran plot sebagai 16. 7px kali 13. 27px

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})

Selanjutnya, kita akan menggunakan metode

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# set the background colour of the plot to white
sns.set(style="whitegrid", color_codes=True)
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(11.7,8.27)})
# create a countplot
sns.countplot('Route To Market',data=sales_data,hue = 'Opportunity Result')
# Remove the top and down margin
sns.despine(offset=10, trim=True)
# display the plotplt.show()
_5 untuk membuat plot biola dan kemudian menggunakan metode
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# set the background colour of the plot to white
sns.set(style="whitegrid", color_codes=True)
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(11.7,8.27)})
# create a countplot
sns.countplot('Route To Market',data=sales_data,hue = 'Opportunity Result')
# Remove the top and down margin
sns.despine(offset=10, trim=True)
# display the plotplt.show()
9 untuk menampilkan plot –

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
0
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
1

Sekarang, 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
3

Memproses Data

Sekarang 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

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_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
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
1 mari kita perhatikan gambar di bawah ini

Gambar di bawah mewakili kerangka data yang memiliki satu kolom bernama 'warna' dan tiga catatan 'Merah', 'Hijau' dan 'Biru'

Cara menggunakan scikit belajar dengan python

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

Cara menggunakan scikit belajar dengan python

Sekarang, mari kita mulai proses konversi yang sebenarnya. Kami akan menggunakan metode

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
3 yang disediakan oleh
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
1 untuk menyandikan label di kolom kategori seperti 'Rute Ke Pasar' di kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0 dan mengubahnya menjadi label numerik yang serupa dengan yang kami visualisasikan dalam diagram di atas. Fungsi
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_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.
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_7 dan kami akan mencoba untuk menyandikan label string ini menjadi sesuatu yang mirip dengan ini –
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
8

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
2
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
3

Voila. Kami telah berhasil mengubah label string menjadi label numerik. Bagaimana kita melakukannya? . Kemudian kami membuat objek yang mewakili tipe

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
1. Selanjutnya kami menggunakan fungsi
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_3 objek ini untuk membedakan antara kelas unik yang berbeda dari daftar
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
7 dan kemudian mengembalikan daftar dengan nilai yang disandikan masing-masing, i. e.
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_04

Perhatikan bagaimana metode

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_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 2

Ada lebih banyak fungsi yang disediakan oleh

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_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
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
1 dan fungsi terkaitnya dijelaskan secara mendetail

Karena, kami sekarang memiliki ide bagus tentang cara kerja

# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
1, kami dapat melanjutkan dengan menggunakan metode ini untuk menyandikan label kategori dari kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
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. -

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
4
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
5

Kami sekarang telah meletakkan kolom kategori yang berbeda dari kerangka data

# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
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

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
6

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. 15421511165801020426302163163035020. 000001. 0000000. 000000121674737524224178282775011021. 000000. 0000000. 00000013167522482121605124124011001. 000000. 0000000. 00000014168978520426901191136975611020. 000000. 1411250. 0000004

Jadi apa yang baru saja kita lakukan? . Kemudian kami membuat objek

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_13 dari tipe
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
14. Dalam beberapa baris berikutnya kami menggunakan fungsi
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
_3 yang disediakan oleh
# import the seaborn module
import seaborn as sns
# import the matplotlib module
import matplotlib.pyplot as plt
# setting the plot size for all plots
sns.set(rc={'figure.figsize':(16.7,13.27)})
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 numerik

Sekarang 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 Tes

Algoritme 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

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
7

Subgrup 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

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
17. Selanjutnya, kami membuat kerangka data baru
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
18 dengan kolom dalam daftar
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
17. Ini akan berfungsi sebagai set fitur kami. Kemudian kami mengambil kolom 'Hasil Peluang' dari kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0 dan membuat kerangka data baru
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
21

Itu dia. Kami siap dengan mendefinisikan fitur dan target kami menjadi dua kerangka data terpisah. Selanjutnya kita akan membagi dataframe

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_18 dan
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
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
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_5 di scikit-learn dapat digunakan untuk membagi data

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
8

Dengan 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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_5 untuk membagi data menjadi set pelatihan (data_train,target_train) dan set tes (data_test,data_train). Argumen pertama dari metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_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 saat

Sekarang, 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 Model

Ada

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_27 tersedia di situs web scikit learn yang dapat kita gunakan sebagai referensi cepat saat memilih algoritme. Ini terlihat seperti ini

Cara menggunakan scikit belajar dengan python

Kita 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

  • Lebih dari 50 sampel – Periksa
  • Apakah kami memprediksi kategori – Periksa
  • Kami telah memberi label data? . ) - Memeriksa
  • Kurang dari 100k sampel – Periksa

Berdasarkan daftar periksa yang kami siapkan di atas dan mengikuti

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
27, kami dapat mencoba algoritme yang disebutkan di bawah

  • Naif Bayes
  • SVC linier
  • Pengklasifikasi K-Tetangga

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-Bayes

Scikit-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

Cara menggunakan scikit belajar dengan python

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

Cara menggunakan scikit belajar dengan python

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

Cara menggunakan scikit belajar dengan python

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

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
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 dalam

Sekarang mari terapkan algoritma Gaussian Naive Bayes atau

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
30 dari scikit-learn untuk membuat model prediksi kita

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
9
# Using .head() method to view the first few records of the data set
sales_data.head()
0

Sekarang mari kita lihat lebih dekat apa yang baru saja kita lakukan. Pertama, kami mengimpor metode

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_30 dan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
32. Kemudian kami membuat objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_33 dari jenis
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
30. Setelah ini, kami melatih algoritme pada data pengujian(data_train) dan target pengujian(target_train) menggunakan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
35, lalu memprediksi target dalam data pengujian menggunakan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
36. Akhirnya kami mencetak skor menggunakan metode
# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_6 dan dengan ini kami telah berhasil menerapkan algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
38 untuk membangun model prediksi

Sekarang mari kita lihat bagaimana kinerja algoritme lain dalam daftar kami dibandingkan dengan algoritme Naive-Bayes

LinearSVC

LinearSVC 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

Cara menggunakan scikit belajar dengan python

Sumber. StackOverflow

Pada gambar di atas implementasi

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_40 mencoba membagi ruang dua dimensi sedemikian rupa sehingga kedua kelas data i. e
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
41 dan
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
42 dibagi dengan jelas. Di sini dua baris secara visual mewakili berbagai divisi yang
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
40 coba terapkan untuk memisahkan dua kelas yang tersedia

Langganan yang sangat bagus menjelaskan

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
44 dapat ditemukan di sini bagi mereka yang ingin lebih detail, tetapi untuk saat ini, mari selami dan kotori tangan kita

# Using .head() method to view the first few records of the data set
sales_data.head()
1
# Using .head() method to view the first few records of the data set
sales_data.head()
2

Mirip dengan apa yang kami lakukan selama implementasi GaussianNB, kami mengimpor modul yang diperlukan di dua baris pertama. Kemudian kami membuat objek

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_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

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
6

Sekarang kami telah mencoba

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_30 dan
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
40 algoritma kami akan mencoba algoritma terakhir dalam daftar kami dan itu adalah
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
50

Pengklasifikasi K-Tetangga

Dibandingkan dengan dua algoritme sebelumnya yang telah kami kerjakan, pengklasifikasi ini sedikit lebih kompleks. Untuk keperluan tutorial ini, lebih baik kita menggunakan kelas

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
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

# Using .head() method to view the first few records of the data set
sales_data.head()
3
# Using .head() method to view the first few records of the data set
sales_data.head()
4

Kode di atas dapat dijelaskan seperti implementasi sebelumnya. Pertama kami mengimpor modul yang diperlukan, lalu kami membuat objek

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
52 bertipe KNeighborsClassifier dengan jumlah tetangga
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
53. Kemudian kami menggunakan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_35 untuk melatih algoritme kami pada set pelatihan, lalu kami menguji model tersebut pada data uji. Terakhir, kami mencetak skor akurasi

Sekarang 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 Kinerja

Pada bagian sebelumnya kita telah menggunakan metode

# Using head() method with an argument which helps us to restrict the number of initial records that should be displayed
sales_data.head(n=2)
_6 untuk mengukur akurasi dari berbagai algoritma. Sekarang, kita akan menggunakan kelas
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_57 yang disediakan oleh perpustakaan
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
58 untuk memberi kita laporan visual tentang kinerja model kita

GaussianNB

Mari kita mulai dengan model ________13______30

# Using .head() method to view the first few records of the data set
sales_data.head()
5

Cara menggunakan scikit belajar dengan python

Pada kode di atas, pertama-tama kita mengimpor kelas ________13______57 yang disediakan oleh modul

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
61. Selanjutnya, objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_62 bertipe
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
57 dibuat. Di sini argumen pertama adalah
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_30 objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
33 yang dibuat saat menerapkan
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
38 algoritma di bagian 'Naive-Bayes'. Argumen kedua berisi label 'Menang' dan 'Kalah' dari kolom 'Hasil Peluang' dari kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0

Selanjutnya, kami menggunakan metode

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_35 untuk melatih objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
62. Ini diikuti oleh metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_70, yang menggunakan objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
33 untuk melakukan prediksi sesuai dengan algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
30 dan kemudian menghitung skor akurasi dari prediksi yang dibuat oleh algoritma ini. Akhirnya, kami menggunakan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
73 untuk menggambar plot skor yang berbeda untuk algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
30. Perhatikan bagaimana skor yang berbeda diletakkan terhadap masing-masing label 'Menang' dan 'Kalah';

LinearSVC

Mirip dengan apa yang baru saja kita lakukan di bagian sebelumnya, kita juga dapat memplot skor akurasi dari algoritme

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
40

# Using .head() method to view the first few records of the data set
sales_data.head()
_6

Cara menggunakan scikit belajar dengan python

Pada kode di atas, pertama-tama kita mengimpor kelas

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
57 yang disediakan oleh modul
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
61. Selanjutnya, objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_62 bertipe
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
57 telah dibuat. Di sini argumen pertama adalah objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_40
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
45, yang dibuat saat menerapkan algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
40 di bagian 'LinearSVC'. Argumen kedua berisi label 'Menang' dan 'Kalah' dari kolom 'Hasil Peluang' dari kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0

Selanjutnya, kami menggunakan metode

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
35 untuk melatih objek 'svc_model'. Ini diikuti oleh metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_70 yang menggunakan objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
45 untuk melakukan prediksi sesuai dengan algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
40 dan kemudian menghitung skor akurasi dari prediksi yang dibuat oleh algoritma ini. Akhirnya, kami menggunakan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_73 untuk menggambar plot skor yang berbeda untuk algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
40

KNeighborsClassifier

Sekarang, mari lakukan hal yang sama untuk skor K-Neighbours Classifier

# Using .head() method to view the first few records of the data set
sales_data.head()
_7

Cara menggunakan scikit belajar dengan python

Sekali lagi, pertama-tama kita mengimpor kelas

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_57 yang disediakan oleh modul
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
61. Selanjutnya, objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_62 bertipe
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
57 dibuat. Di sini argumen pertama adalah objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_51
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
52, yang dibuat saat mengimplementasikan algoritme
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
51 di bagian 'KNeighboursClassifier'. Argumen kedua berisi label 'Menang' dan 'Kalah' dari kolom 'Hasil Peluang' dari kerangka data
# Using .tail() method to view the last few records from the dataframe
sales_data.tail()
0

Selanjutnya, kami menggunakan metode

# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_35 untuk melatih objek 'tetangga'. Ini diikuti oleh metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_70 yang menggunakan objek
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
52 untuk melakukan prediksi sesuai dengan algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
51 dan kemudian menghitung skor akurasi dari prediksi yang dibuat oleh algoritma ini. Akhirnya kami menggunakan metode
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
_73 untuk menggambar plot skor yang berbeda untuk algoritma
# Read in the data with `read_csv()`
sales_data = pd.read_csv(url)
51

Sekarang setelah kami memvisualisasikan hasilnya, jauh lebih mudah bagi kami untuk membandingkan skor dan memilih algoritme yang paling sesuai dengan kebutuhan kami

Kesimpulan

Pustaka 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

Cara menggunakan scikit belajar dengan python

Cara menggunakan scikit belajar dengan python

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 Pal

Saya 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 scikit

Bagaimana 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