Pagbuo ng iyong unang Machine Learning Classifier sa Python



Tutulungan ka ng artikulong ito na bumuo ng isang Machine Learning Classifier sa Python mula sa Scratch. Magbibigay din ito sa iyo ng isang detalyadong kaalaman sa Pag-uuri.

ay ang buzzword ngayon din. Ang ilang mga hindi kapani-paniwala na bagay ay ginagawa sa tulong ng pag-aaral ng makina. Mula sa pagiging atin personal na katulong , sa pagpapasya ng aming mga ruta sa paglalakbay , pagtulong sa amin sa pamimili, pagtulong sa amin sa pagpapatakbo ng aming mga negosyo, sa pag-aalaga ng aming kalusugan at kabutihan, ang pag-aaral ng makina ay isinama sa ating pang-araw-araw na pag-iral sa gayong pangunahing mga antas, na sa karamihan ng oras ay hindi natin napagtanto na umaasa tayo dito. Sa artikulong ito, susundan namin ang diskarte ng isang nagsisimula upang ipatupad ang pamantayan ng isang machine learning classifier sa Python.

Pangkalahatang-ideya ng Pag-aaral ng Makina

Ang Machine Learning ay isang konsepto na nagbibigay-daan sa makina na matuto mula sa mga halimbawa at karanasan, at iyon din nang hindi malinaw na nai-program. Kaya sa halip na isulat mo ang code, ang ginagawa mo ay nagpapakain ka ng data sa generic algorithm, at binubuo ng algorithm / machine ang lohika batay sa ibinigay na data.





paghahambing ng mga tool ng automatikong proseso ng proseso

Machine Classifier ng Pag-aaral

Ang Pag-aaral ng Machine ay nagsasangkot ng kakayahan ng mga machine na kumuha ng mga desisyon, masuri ang mga resulta ng kanilang mga aksyon, at mapabuti ang kanilang pag-uugali upang makakuha ng mas mahusay na mga resulta sunud-sunod.



Ang proseso ng pag-aaral ay nagaganap sa tatlong pangunahing paraan

  • Pinangangasiwaang Pag-aaral
  • Hindi suportadong Pag-aaral
  • Pagpapalakas ng Pag-aaral

Isang Template para sa Mga Classifier ng Pag-aaral ng Makina

Ang mga tool sa pag-aaral ng makina ay ibinibigay nang madali sa isang library ng Python na pinangalanan bilang scikit-learn, na napakasimpleng i-access at mailapat.



I-install ang scikit-alamin sa pamamagitan ng command prompt gamit ang:

pip install -U scikit-alamin

Kung ikaw ay isang gumagamit ng anaconda, sa prompt ng anaconda maaari mong gamitin ang:

conda install scikit-alamin

Ang pag-install ay nangangailangan ng paunang pag-install ng mga package ng NumPy at SciPy sa iyong system.

Preprocessing: Ang una at pinaka-kinakailangang hakbang sa anumang pagtatasa ng data na nakabatay sa pagkatuto ng machine ay ang preprocessing na bahagi. Tamang representasyon at paglilinis ng data ay ganap na mahalaga para sa ML modelo upang sanayin nang maayos at gumanap sa potensyal nito.

Hakbang 1 - I-import ang mga kinakailangang aklatan

import numpy as np import pandas as pd import matplotlib.pyplot as plt

Hakbang 2 - I-import ang dataset

dataset = pd.read_csv ()

Pagkatapos ay pinaghiwalay namin ang dataset sa mga independyente at umaasang variable. Ang mga independiyenteng variable ay dapat na input data, at ang dependant variable ay ang output data.

X = dataset.iloc []. Mga halaga y = dataset.iloc []. Mga halagang

Hakbang 3 - Pangasiwaan ang nawawalang data

Maaaring maglaman ang dataset ng blangko o null na mga halaga, na maaaring maging sanhi ng mga pagkakamali sa aming mga resulta. Samakatuwid kailangan nating harapin ang naturang mga entry. Ang isang karaniwang kasanayan ay upang palitan ang mga null na halaga ng isang karaniwang halaga, tulad ng mean o ang pinaka-madalas na halaga sa haligi na iyon.

mula sa sklearn.preproseso ng pag-import Imputer imputer = Imputer (nawawalang mga halaga = 'NaN', diskarte = 'ibig sabihin', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Hakbang 4 - I-convert ang mga kategorya na kategorya sa mga variable ng numero

mula sa sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Ngayon, pagkatapos ng pag-encode, maaaring mangyari na ipalagay ng machine ang numerong data bilang isang ranggo para sa mga naka-encode na haligi. Kaya, upang magbigay ng pantay na timbang, kailangan nating i-convert ang mga numero sa isang-mainit na mga vector, gamit ang klase ng OneHotEncoder.

mula sa sklearn.preproseso ng pag-import ng OneHotEncoder oneHE = OneHotEncoder (kategoryang_feature = []) X = oneHE.fit_transform (X) .toarray ()

Hakbang 5 - Magsagawa ng pag-scale

Ang hakbang na ito ay upang harapin ang mga pagkakaiba na nagmumula sa mga hindi tugma na kaliskis ng mga variable. Samakatuwid, sinusukat namin silang lahat sa parehong saklaw, upang makatanggap sila ng pantay na timbang habang nai-input sa modelo. Gumagamit kami ng isang object ng klase ng StandardScaler para sa hangaring ito.

mula sa sklearn.preproseso ng pag-import ng StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Hakbang 6 - Hatiin ang dataset sa data ng pagsasanay at pagsubok

Bilang huling hakbang ng preprocessing, kailangang hatiin ang dataset sa isang hanay ng pagsasanay at hanay ng pagsubok. Ang karaniwang ratio ng split ng tren-test ay 75% -25%. Maaari naming baguhin ayon sa mga kinakailangan. Ang pag-andar ng train_test_split () ay maaaring gawin ito para sa amin.

mula sa sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Modelo ng gusali: Ang hakbang na ito ay talagang simple. Sa sandaling magpasya kami kung aling modelo ang ilalapat sa data, makakalikha kami ng isang bagay ng kaukulang klase nito, at magkakasya ng bagay sa aming hanay ng pagsasanay, isinasaalang-alang ang X_train bilang input at y_train bilang output.

mula sa sklearn. import classifier = () classifier.fit (X_train, y_train)

Ang modelo ay sinanay na at handa na. Maaari na naming mailapat ang aming modelo sa hanay ng pagsubok, at makahanap ng hinulaang output.

halimbawa ng isang klase java
y_pred = classifier.predict (X_test)

Mga Resulta sa Pagtingin: Ang pagganap ng isang classifier ay maaaring masuri ng mga parameter ng kawastuhan, katumpakan, pagpapabalik at f1-score. Ang mga halagang ito ay maaaring makita gamit ang isang pamamaraan na kilala bilang classification_report (). t maaaring matingnan din bilang isang matrix ng pagkalito na makakatulong sa amin na malaman kung ilan sa aling kategorya ng data ang nauri nang tama.

mula sa sklearn.metrics import pagkalito_matrix cm = pagkalito_matrix (y_test, y_pred) i-print (cm) mula sa sklearn.metrics pag-import ng pag-uuri_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Problema sa Classifier ng Pagkatuto ng Machine

Gagamitin namin ang napakapopular at simpleng Iris dataset, naglalaman ng mga sukat ng mga bulaklak sa 3 mga kategorya - Iris-setosa, Iris-versicolor, at Iris-virginica. Mayroong 150 mga entry sa dataset.

# Pag-import ng mga aklatan sa pag-import numpy bilang np import matplotlib.pyplot bilang plt import pandas bilang pd # Pag-import ng dataset data = pd.read_csv ('iris.csv')

Tingnan natin ngayon ang dataset.

dataset.head ()

Mayroon kaming 4 na independiyenteng mga variable (hindi kasama ang Id), katulad ng mga numero ng haligi 1-4, at ang haligi 5 ay ang umaasa na variable. Kaya't maaari nating paghiwalayin sila.

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

Ngayon ay maaari na nating Hatiin ang Dataset sa Pagsasanay at Pagsubok.

# Hinahati ang dataset sa hanay ng Pagsasanay at Itakda ang pagsubok mula sa sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Ngayon ay mag-a-apply kami ng isang Pag-uuri ng Logistic Regression sa dataset.

# Pagbubuo at pagsasanay sa modelo mula sa sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Pagtataya sa mga resulta ng hanay ng Pagsubok y_pred = classifier.predict (X_test)

Ang huling hakbang ay ang pag-aralan ang pagganap ng sinanay na modelo.

# Ang paggawa ng Confusion Matrix mula sa sklearn.metrics ay nag-import ng pagkalito_matrix cm = pagkalito_matrix (y_test, y_pred) print (cm)

Ipinapakita sa amin na 13 mga entry ng unang kategorya, 11 ng pangalawa, at 9 ng pangatlong kategorya ang wastong hinulaang ng modelo.

# Bumuo ng kawastuhan, katumpakan, pagpapabalik at f1-iskor mula sa sklearn.metrics pag-import ng klasipikasyon_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Ipinapakita ng ulat ang mga halaga ng katumpakan, pagpapabalik, f1-iskor at katumpakan ng modelo sa aming hanay ng pagsubok, na binubuo ng 38 na mga entry (25% ng dataset).

public string tostring ()

Binabati kita, matagumpay mong nalikha at naipatupad ang iyong unang klasipikasyon ng pag-aaral ng makina sa Python! Upang makakuha ng malalim na kaalaman sa kasama ang iba't ibang mga application nito, maaari kang mag-enrol para sa live na pagsasanay sa online na Python na may suporta na 24/7 at habang-buhay na pag-access.