Membina Pengelas Pembelajaran Mesin pertama anda di Python



Artikel ini akan membantu anda membina Pengelas Pembelajaran Mesin di Python dari Scratch. Ia juga akan memberi anda pengetahuan terperinci mengenai Klasifikasi.

adalah kata kunci sekarang. Beberapa perkara luar biasa sedang dilakukan dengan bantuan pembelajaran mesin. Dari menjadi milik kita pembantu peribadi , untuk memutuskan kami laluan perjalanan , menolong kami berbelanja, menolong kami menjalankan perniagaan, mengurus perniagaan kami kesihatan dan kesejahteraan, pembelajaran mesin disatukan dengan kehidupan kita sehari-hari pada tahap yang mendasar, yang pada kebanyakan masa kita bahkan tidak menyedari bahawa kita bergantung padanya. Dalam artikel ini, kami akan mengikuti pendekatan pemula untuk menerapkan standard pengelasan pembelajaran mesin di Python.

Gambaran Keseluruhan Pembelajaran Mesin

Pembelajaran Mesin adalah konsep yang membolehkan mesin belajar dari contoh dan pengalaman, dan itu juga tanpa diprogram secara eksplisit. Oleh itu, bukannya anda menulis kod, apa yang anda lakukan ialah memasukkan data ke algoritma generik, dan algoritma / mesin membina logik berdasarkan data yang diberikan.





Pengelas Pembelajaran Mesin

Pembelajaran Mesin melibatkan kemampuan mesin untuk mengambil keputusan, menilai hasil tindakan mereka, dan memperbaiki tingkah laku mereka untuk mendapatkan hasil yang lebih baik berturut-turut.



Proses pembelajaran berlaku dalam tiga cara utama

  • Pembelajaran yang diselia
  • Pembelajaran Tanpa Pengawasan
  • Pembelajaran Pengukuhan

Templat untuk Pengelasan Pembelajaran Mesin

Alat pembelajaran mesin disediakan dengan mudah di perpustakaan Python yang dinamakan scikit-learning, yang sangat mudah diakses dan diaplikasikan.



Pasang scikit-learn melalui command prompt menggunakan:

memasang pip -U scikit-belajar

Sekiranya anda pengguna anaconda, pada permintaan anaconda anda boleh menggunakan:

conda pasang scikit-belajar

Pemasangan memerlukan pemasangan pakej NumPy dan SciPy terlebih dahulu pada sistem anda.

__init__ ular sawa 3

Pemprosesan: Langkah pertama dan paling diperlukan dalam analisis data berasaskan pembelajaran mesin adalah bahagian praprosesan. Perwakilan dan pembersihan data yang betul sangat mustahak untuk model ML berlatih dengan baik dan berprestasi sesuai dengan potensinya.

Langkah 1 - Import perpustakaan yang diperlukan

import numpy sebagai np import panda sebagai pd import matplotlib.pyplot sebagai plt

Langkah 2 - Import set data

set data = pd.read_csv ()

Kemudian kami membahagikan set data menjadi pemboleh ubah bebas dan bersandar. Pemboleh ubah bebas adalah data input, dan pemboleh ubah bersandar adalah data output.

X = dataset.iloc []. Nilai y = dataset.iloc []. Nilai

Langkah 3 - Mengendalikan data yang hilang

Set data mungkin mengandungi nilai kosong atau kosong, yang boleh menyebabkan kesilapan dalam hasil kami. Oleh itu, kita perlu menangani penyertaan sedemikian. Amalan yang biasa dilakukan adalah untuk mengganti nilai nol dengan nilai yang sama, seperti nilai min atau nilai paling kerap dalam lajur tersebut.

dari sklearn.preprocessing import Imputer imputer = Imputer (lost_values ​​= 'NaN', strategi = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Langkah 4 - Tukarkan pemboleh ubah kategori ke pemboleh ubah berangka

apa hashset di java
dari sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Sekarang, setelah pengekodan, mesin mungkin menganggap data berangka sebagai peringkat untuk lajur yang dikodkan. Oleh itu, untuk memberikan berat yang sama, kita harus menukar nombor menjadi vektor panas, menggunakan kelas OneHotEncoder.

dari sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (ategorical_features = []) X = oneHE.fit_transform (X) .toarray ()

Langkah 5 - Lakukan penskalaan

Langkah ini adalah untuk menangani perbezaan yang timbul daripada skala pemboleh ubah yang tidak sesuai. Oleh itu, kami membuat skala ke semua dalam julat yang sama, sehingga mereka mendapat berat yang sama sambil dimasukkan ke model. Kami menggunakan objek kelas StandardScaler untuk tujuan ini.

dari sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Langkah 6 - Pisahkan kumpulan data menjadi data latihan dan ujian

Sebagai langkah terakhir proses awal, set data perlu dibahagikan kepada set latihan dan set ujian. Nisbah standard pembahagian ujian kereta adalah 75% -25%. Kita boleh mengubah mengikut keperluan. Fungsi train_test_split () dapat melakukan ini untuk kita.

dari sklearn.model_seleksi import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Bangunan Model: Langkah ini sebenarnya agak mudah. Setelah kami memutuskan model mana yang akan diterapkan pada data, kami dapat membuat objek kelas yang sesuai, dan memasukkan objek pada set latihan kami, dengan mempertimbangkan X_train sebagai input dan y_train sebagai output.

dari sklearn. import classifier = () classifier.fit (X_train, y_train)

Modelnya kini terlatih dan siap. Kita sekarang dapat menerapkan model kita ke set ujian, dan mencari hasil yang diramalkan.

y_pred = classifier.predict (Ujian X_)

Melihat Hasil: Prestasi pengkelasan dapat dinilai berdasarkan parameter ketepatan, ketepatan, penarikan dan skor f1. Nilai-nilai ini dapat dilihat dengan menggunakan kaedah yang dikenali sebagai classification_report (). t juga boleh dilihat sebagai matriks kekeliruan yang membantu kita mengetahui berapa banyak kategori data yang telah diklasifikasikan dengan betul.

dari sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) dari sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Masalah Pengelas Pembelajaran Mesin

Kami akan menggunakan set data Iris yang sangat popular dan sederhana, yang mengandungi dimensi bunga dalam 3 kategori - Iris-setosa, Iris-versicolor, dan Iris-virginica. Terdapat 150 entri dalam set data.

# Mengimport perpustakaan import numpy sebagai np import matplotlib.pyplot sebagai plt import panda sebagai pd # Mengimport set data set = pd.read_csv ('iris.csv')

Mari kita lihat set data sekarang.

cara mengatur classpath di windows
dataset.head ()

Kami mempunyai 4 pemboleh ubah bebas (tidak termasuk Id), iaitu lajur nombor 1-4, dan lajur 5 adalah pemboleh ubah bersandar. Oleh itu, kita boleh memisahkannya.

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

Sekarang kita dapat Membahagi Dataset menjadi Latihan dan Ujian.

# Memisahkan set data ke set Latihan dan set Uji dari sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Sekarang kita akan menerapkan pengkelasan Logistik Regresi pada set data.

# Membangun dan melatih model dari sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Meramalkan keputusan set ujian y_pred = classifier.predict (X_test)

Langkah terakhir adalah menganalisis prestasi model terlatih.

# Membuat Matriks Kekeliruan dari sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Ini menunjukkan kepada kita bahawa 13 penyertaan kategori pertama, 11 kategori kedua, dan 9 kategori ketiga diramalkan dengan tepat oleh model.

# Menjana ketepatan, ketepatan, ingatan dan skor f1 dari sklearn.metrik import classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Laporan menunjukkan nilai ketepatan, ingat, skor f1 dan ketepatan model pada set ujian kami, yang terdiri daripada 38 entri (25% dari set data).

Tahniah, anda berjaya mencipta dan melaksanakan pengelasan pembelajaran mesin pertama anda di Python! Untuk mendapatkan pengetahuan mendalam mengenai bersama dengan pelbagai aplikasinya, anda boleh mendaftar untuk menjalani latihan dalam talian Python secara langsung dengan sokongan 24/7 dan akses seumur hidup.