Pirmā mašīnmācīšanās klasifikatora izveide Python



Šis raksts palīdzēs jums izveidot mašīnmācīšanās klasifikatoru Python no Scratch. Tas arī sniegs jums detalizētas zināšanas par klasifikāciju.

ir modes vārds šobrīd. Dažas neticamas lietas tiek darītas ar mašīnmācīšanās palīdzību. No tā, ka esam mūsu personīgais asistents , lai izlemtu mūsu ceļojumu maršruti , palīdzot mums iepirkties, palīdzot mums vadīt uzņēmējdarbību, rūpēties par mums veselība un labsajūta, mašīnmācīšanās ir integrēta mūsu ikdienas pastāvēšanai tik fundamentālos līmeņos, ka lielāko daļu laika mēs pat neapzināmies, ka paļaujamies uz to. Šajā rakstā mēs sekosim iesācēju pieejai, lai ieviestu standarta mašīnmācīšanās klasifikatoru Python.

Mašīnmācīšanās pārskats

Mašīnmācība ir jēdziens, kas ļauj mašīnai mācīties no piemēriem un pieredzes, un arī tas bez īpašas programmēšanas. Tātad tā vietā, lai jūs rakstītu kodu, jūs darāt datus ar vispārējo algoritmu, un algoritms / mašīna veido loģiku, pamatojoties uz dotajiem datiem.





Mašīnmācīšanās klasifikators

Mašīnmācība ietver mašīnu spēju pieņemt lēmumus, novērtēt savu darbību rezultātus un uzlabot savu uzvedību, lai pēc kārtas iegūtu labākus rezultātus.



Mācību process notiek trīs galvenajos veidos

  • Vadīta mācīšanās
  • Bez uzraudzības mācīšanās
  • Mācības pastiprināšanai

Veidne mašīnmācīšanās klasifikatoriem

Mašīnmācīšanās rīki tiek nodrošināti diezgan ērti Python bibliotēkā ar nosaukumu scikit-learn, kuriem ir ļoti viegli piekļūt un tos izmantot.



Instalējiet scikit-learn, izmantojot komandu uzvedni, izmantojot:

pip instalēt -U scikit-mācīties

Ja esat anaconda lietotājs, anakonda uzvednē varat izmantot:

conda instalēt scikit-mācīties

Instalēšanai nepieciešama iepriekšēja NumPy un SciPy pakotņu instalēšana jūsu sistēmā.

ligzdu programmēšana java piemērā

Priekšapstrāde: Pirmais un nepieciešamākais solis jebkurā mašīnmācībā balstītā datu analīzē ir priekšapstrādes daļa. Pareiza datu attēlošana un tīrīšana ir absolūti nepieciešama, lai ML modelis varētu labi trenēties un darboties atbilstoši tā iespējām.

1. solis - Importēt nepieciešamās bibliotēkas

import numpy kā np importa pandas kā pd importa matplotlib.pyplot kā plt

2. solis - Importējiet datu kopu

datu kopa = pd.read_csv ()

Tad mēs sadalām datu kopu neatkarīgos un atkarīgos mainīgos. Neatkarīgie mainīgie ir ievaddati, un atkarīgais mainīgais ir izejas dati.

X = datu kopa.iloc []. Vērtības y = datu kopa.iloc []. Vērtības

3. solis - Apstrādājiet trūkstošos datus

Datu kopa var saturēt tukšas vai nulles vērtības, kas var izraisīt kļūdas mūsu rezultātos. Tāpēc mums jātiek galā ar šādiem ierakstiem. Parasti tiek aizstāts nulles vērtības ar kopēju vērtību, piemēram, vidējo vai biežāko vērtību šajā kolonnā.

no sklearn.preprocessing importētājierīce = imputer (trūkstošās vērtības = 'NaN', stratēģija = 'vidējais', ass = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

4. solis - Konvertēt kategoriskos mainīgos skaitliskos mainīgajos

no sklearn.preprocessing importēt LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Pēc kodēšanas var gadīties, ka iekārta pieņem ciparu datus kā kodēto kolonnu rangu. Tādējādi, lai nodrošinātu vienādu svaru, mums skaitļi jāpārvērš par karstajiem vektoriem, izmantojot OneHotEncoder klasi.

no sklearn.preprocessing importa OneHotEncoder oneHE = OneHotEncoder (kategoriskās_funkcijas = []) X = oneHE.fit_transform (X). toarray ()

5. solis - Veiciet mērogošanu

Šis solis ir risināt neatbilstības, kas rodas mainīgo lielumu neatbilstošās skalas dēļ. Tādējādi mēs visus mērogojam vienā diapazonā, lai viņi saņemtu vienādu svaru, kamēr tiek ievadīti modelī. Šim nolūkam mēs izmantojam StandardScaler klases objektu.

no sklearn.procrocing importēšanas StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

6. solis - Sadaliet datu kopu apmācības un testēšanas datos

Kā pēdējais priekšapstrādes posms datu kopa ir jāsadala apmācības komplektā un testa komplektā. Vilciena testa sadalījuma standarta attiecība ir 75% –25%. Mēs varam modificēt atbilstoši prasībām. Funkcija train_test_split () to var izdarīt mūsu vietā.

atšķirība starp maināmu un nemainīgu
no sklearn.model_selection importēt vilciena_testa_splitu X_train, X_test, y_train, y_test = vilciena_test_split (X, y, test_size = 0,25)

Modeļa veidošana: Šis solis patiesībā ir pavisam vienkāršs. Kad būsim izlēmuši, kuru modeli piemērot datiem, mēs varam izveidot tā atbilstošās klases objektu un ievietot objektu mūsu mācību komplektā, uzskatot X_train par ievadi un y_train par izvadi.

no sklearn. importēt klasifikatoru = () klasifikators.fit (X_train, y_train)

Tagad modelis ir apmācīts un gatavs. Tagad mēs varam piemērot savu modeli testa kopai un atrast paredzamo rezultātu.

y_pred = klasifikators. prognozēt (X_test)

Rezultātu skatīšana: Klasifikatora veiktspēju var novērtēt pēc precizitātes, precizitātes, atsaukšanas un f1 rādītāja parametriem. Šīs vērtības var redzēt, izmantojot metodi, kas pazīstama kā klasifikācijas_ziņojums (). t var uzskatīt arī par neskaidrības matricu, kas mums palīdz uzzināt, cik no kuras datu kategorijas ir pareizi klasificētas.

no sklearn.metrics importēt confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) no sklearn.metrics importēt klasifikācijas_ziņojumu target_names = [] print (klasifikācijas_ziņojums (y_test, y_pred, target_names = target_names))

Mašīnmācīšanās klasifikatora problēma

Mēs izmantosim ļoti populāro un vienkāršo Iris datu kopu, kas satur ziedu izmērus 3 kategorijās - Iris-setosa, Iris-versicolor un Iris-virginica. Datu kopā ir 150 ieraksti.

galīgi beidzot pabeigt java
# Bibliotēku importēšana importē numpy kā np import matplotlib.pyplot kā plt importēšanas pandas kā pd # Datu kopas importēšana dataset = pd.read_csv ('iris.csv')

Apskatīsim datu kopu tūlīt.

dataset.head ()

Mums ir 4 neatkarīgi mainīgie (izņemot Id), proti, kolonnu numuri 1–4, un 5. kolonna ir atkarīgais mainīgais. Lai mēs tos varētu nošķirt.

X = datu kopa.iloc [:, 1: 5]. Vērtības y = datu kopa.iloc [:, 5]. Vērtības

Tagad mēs varam sadalīt datu kopu apmācībā un testēšanā.

# Datu kopas sadalīšana apmācību komplektā un testa komplektā no sklearn.model_selection importēt vilciena_testa_splitu X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Tagad datu kopai izmantosim loģistiskās regresijas klasifikatoru.

# Modeļa izveide un apmācība no sklearn.linear_model importēšanas LogisticRegression klasifikatora = LogisticRegression () klasifikatora.fit (X_train, y_train) # Testa kopas rezultātu paredzēšana y_pred = klasifikators.predict (X_test)

Pēdējais solis būs apmācītā modeļa veiktspējas analīze.

# Apjukuma matricas izveidošana no sklearn.metrics importē confusion_matrix cm = confusion_matrix (y_test, y_pred) druka (cm)

Tas parāda, ka modelis ir pareizi paredzējis 13 pirmās kategorijas, 11 otrās un 9 trešās kategorijas ierakstus.

# Precizitātes, precizitātes, atsaukšanas un f1 rādītāja ģenerēšana no sklearn.metrics importēšanas_ziņojuma mērķa_nosaukumi = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] drukāt (klasifikācijas_ziņojums (y_test, y_pred, target_names = target_names) )

Pārskatā tiek parādīts modeļa precizitāte, atsaukšana, f1 rādītājs un precizitātes vērtības mūsu testa komplektā, kas sastāv no 38 ierakstiem (25% no datu kopas).

Apsveicam, jūs esat veiksmīgi izveidojis un ieviesis savu pirmo mašīnmācīšanās klasifikatoru Python! Lai iegūtu padziļinātas zināšanas par kopā ar tā dažādajām lietojumprogrammām varat reģistrēties tiešsaistes tiešsaistes Python apmācībai ar 24/7 atbalstu un piekļuvi mūža garumā.