logo

Mācību modeļu veidošana programmā Scikit-learn

Scikit-learn ir atvērtā pirmkoda Python bibliotēka, kas vienkāršo mašīnmācīšanās modeļu veidošanas procesu. Tas piedāvā tīru un konsekventu saskarni, kas palīdz efektīvi strādāt gan iesācējiem, gan pieredzējušiem lietotājiem.

  • Atbalsta tādus uzdevumus kā klasifikācijas regresijas klasterēšana un pirmapstrāde
  • Padara modeļu izveidi ātru un uzticamu
  • Nodrošina lietošanai gatavus rīkus apmācībai un novērtēšanai
  • Samazina sarežģītību, izvairoties no manuālas algoritmu ieviešanas

Scikit instalēšana un lietošana-learn

Pirms sākam veidot modeļus, mums ir jāinstalē Scikit-mācīties. Tam nepieciešama Python 3.8 vai jaunāka versija, un tas ir atkarīgs no divām svarīgām bibliotēkām: NumPy un SciPy. Vispirms pārliecinieties, vai tie ir instalēti.

datu struktūras java

Lai instalētu Scikit-learn, palaidiet šādu komandu:



pip install -U scikit-learn

Tādējādi tiks lejupielādēta un instalēta jaunākā Scikit-learn versija kopā ar tās atkarībām. Apskatīsim dažādus soļus, kas saistīti ar modeļa izveides procesu, izmantojot Scikit-learn bibliotēku.

1. darbība: datu kopas ielāde

Datu kopa sastāv no:

  • Funkcijas (X): Ievadiet mainīgos, kas apraksta datus
  • Mērķis (y): Vērtība, ko vēlamies prognozēt

Scikit-learn nodrošina iebūvētas datu kopas, piemēram, Iris Digits un Boston Housing. Izmantojot Iris datu kopu:

  • load_iris() ielādē datus
  • X saglabā funkciju datus
  • y veikalos mērķa etiķetes
  • elementu_nosaukumi un mērķa_nosaukumi dod aprakstošus nosaukumus

Mēs varam pārbaudīt dažas pirmās rindas, lai saprastu struktūru. Pielāgotām datu kopām Pandas parasti izmanto, lai ielādētu ārējos failus, piemēram, CSV.

Python
from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target feature_names = iris.feature_names target_names = iris.target_names print('Feature names:' feature_names) print('Target names:' target_names) print('nType of X is:' type(X)) print('nFirst 5 rows of X:n' X[:5]) 

Izvade: 

modelis1' title=Notiek datu kopas ielāde

Dažreiz mums ir jāstrādā ar saviem pielāgotajiem datiem, pēc tam mēs ielādējam ārēju datu kopu. Šim nolūkam mēs varam izmantot pandas bibliotēka ērtai datu kopu ielādei un apstrādei.

Par to varat skatīt mūsu rakstu par Kā importēt csv failu pandas ?

2. darbība. Datu kopas sadalīšana

Lai godīgi novērtētu modeli, mēs sadalām datus:

  • Treniņu komplekts: izmanto modeļa apmācīšanai
  • Testēšanas komplekts: izmanto, lai novērtētu, cik labi modelis vispārina

Izmantojot train_test_split, mēs sadalām Iris datu kopu tā, lai 60% būtu paredzēti apmācībai un 40% testēšanai (test_size=0,4). random_state=1 nodrošina reproducējamību.

Pēc sadalīšanas mēs iegūstam:

  • X_train y_train -> Apmācības dati
  • X_test y_test -> Testēšanas dati

Pārbaudot formas, tiek nodrošināts, ka dati ir sadalīti pareizi.

Python
from sklearn.model_selection import train_test_split X_train X_test y_train y_test = train_test_split(X y test_size=0.4 random_state=1) 

Tagad pārbaudīsim Formas Sadalīto datu daļu, lai nodrošinātu, ka abām kopām ir pareizas datu proporcijas, izvairoties no iespējamām kļūdām modeļa novērtēšanā vai apmācībā.

Python
print('X_train Shape:' X_train.shape) print('X_test Shape:' X_test.shape) print('Y_train Shape:' y_train.shape) print('Y_test Shape:' y_test.shape) 

Izvade:

modelis2' loading='lazy' title=Sadalīto datu forma

3. darbība. Kategorisko datu apstrāde

Mašīnmācīšanās algoritmi darbojas ar skaitļu ievadi, tāpēc kategoriski (teksta) dati ir jāpārvērš skaitļos. Ja modeļi nav pareizi kodēti, kategorijas var tikt nepareizi interpretētas. Scikit-learn nodrošina vairākas kodēšanas metodes:

1. Etiķetes kodēšana : Tas pārvērš katru kategoriju par unikālu veselu skaitli. Piemēram, kolonnā ar tādām kategorijām kā “kaķis” “suns” un “putns” tās pārvērstu attiecīgi par 0 1 un 2. Šī metode darbojas labi, ja kategorijām ir nozīmīga secība, piemēram, zema, vidēja un augsta.

  • LabelEncoder(): Tas ir inicializēts, lai izveidotu kodētāja objektu, kas kategoriskas vērtības pārvērš skaitliskās etiķetēs.
  • fit_transform(): Šī metode vispirms pielāgo kodētāju kategoriskiem datiem un pēc tam pārveido kategorijas atbilstošās ciparu etiķetēs.
Python
from sklearn.preprocessing import LabelEncoder categorical_feature = ['cat' 'dog' 'dog' 'cat' 'bird'] encoder = LabelEncoder() encoded_feature = encoder.fit_transform(categorical_feature) print('Encoded feature:' encoded_feature) 

Izvade:

java concat virkne

Kodēta funkcija: [1 2 2 1 0]

2. Viena karsta kodēšana : One-Hot Encoding katrai kategorijai izveido atsevišķas binārās kolonnas. Tas ir noderīgi, ja kategorijām nav dabiskas secības. Piemērs: kaķu suņu putns —> 3 jaunas kolonnas (kaķis/suns/putns) ar 1 un 0.

  • Ievade ir jāpārveido par 2D masīvu
  • OneHotEncoder(sparse_output=False) ģenerē bināras kolonnas
Python
from sklearn.preprocessing import OneHotEncoder import numpy as np categorical_feature = ['cat' 'dog' 'dog' 'cat' 'bird'] categorical_feature = np.array(categorical_feature).reshape(-1 1) encoder = OneHotEncoder(sparse_output=False) encoded_feature = encoder.fit_transform(categorical_feature) print('OneHotEncoded feature:n' encoded_feature) 

Izvade:

modelis3' loading='lazy' title=

Papildus etiķešu kodēšanai un vienreizējai kodēšanai ir arī citas metodes, piemēram Vidējais kodējums .

4. darbība: modeļa apmācība

Tagad, kad mūsu dati ir gatavi, ir pienācis laiks apmācīt mašīnmācīšanās modeli. Scikit-learn ir daudz algoritmu ar konsekventu interfeisu apmācību prognozēšanai un novērtēšanai. Šeit mēs izmantosim Loģistiskā regresija kā piemēru.

java virkne uz json

Piezīme : Mēs neiedziļināsimies algoritma darbības detaļās, jo mēs esam ieinteresēti izprast tikai tā ieviešanu. 

  • log_reg = LogisticRegression (max_iter=200): Loģistiskās regresijas klasifikatora objekta izveide.
  • log_reg.fit(X_train y_train): Izmantojot šo loģistikas regresijas modelis pielāgo modeļa parametrus, lai tie vislabāk atbilstu datiem.
Python
from sklearn.linear_model import LogisticRegression log_reg = LogisticRegression(max_iter=200) log_reg.fit(X_train y_train) 
modelis4' loading='lazy' title=Apmācība, izmantojot loģistikas regresiju.

5. darbība: veiciet prognozes

Pēc apmācības mēs izmantojam modeli, lai prognozētu testa datus X_test, izsaucot prognozēšanas metodi. Tas atgriež paredzētās iezīmes y_pred.

  • log_reg.predict: Tas izmanto apmācītu loģistikas regresijas modeli, lai prognozētu testa datu X_test etiķetes.
Python
y_pred = log_reg.predict(X_test) 

6. darbība: modeļa precizitātes novērtēšana

Pārbaudiet, cik labi darbojas mūsu modelis, salīdzinot y_test un y_pred. Šeit mēs izmantojam metrikas moduļa metodi accuracy_score.

Python
from sklearn import metrics print('Logistic Regression model accuracy:' metrics.accuracy_score(y_test y_pred)) 

Izvade:

Loģistiskās regresijas modeļa precizitāte: 0,966666666666667

Tagad mēs vēlamies, lai mūsu modelis prognozētu jaunus datu paraugus. Tad parauga ievadi var vienkārši nodot tādā pašā veidā, kā mēs nododam jebkuru pazīmju matricu. Šeit mēs to izmantojām kā paraugu = [[3 5 4 2] [2 3 5 4]]

Python
sample = [[3 5 4 2] [2 3 5 4]] preds = log_reg.predict(sample) pred_species = [iris.target_names[p] for p in preds] print('Predictions:' pred_species) 

Izvade: 

Prognozes: [np.str_('virginica') np.str_('virginica')]

Scikit-learn funkcijas

Scikit-learn tiek izmantots, jo tas padara mašīnmācīšanās modeļu izveidi vienkāršu un efektīvu. Šeit ir daži svarīgi iemesli:

  1. Lietošanai gatavi rīki : Tas nodrošina iebūvētas funkcijas tādiem izplatītiem uzdevumiem kā datu pirmapstrādes apmācības modeļi un prognožu veidošana. Tas ietaupa laiku, izvairoties no nepieciešamības kodēt algoritmus no nulles.
  2. Vienkārša modeļa novērtēšana : Izmantojot tādus rīkus kā savstarpēja validācija un veiktspējas metrika, tas palīdz izmērīt, cik labi mūsu modelis darbojas, un noteikt jomas, kurās jāveic uzlabojumi.
  3. Plašs algoritmu atbalsts : Tas piedāvā daudzus populārus mašīnmācīšanās algoritmus, tostarp klasifikācijas regresiju un klasterizāciju, kas sniedz mums elastību, lai izvēlētos pareizo modeli mūsu problēmai.
  4. Vienmērīga integrācija : izveidots, pamatojoties uz svarīgām Python bibliotēkām, piemēram, NumPy un SciPy, lai tas iekļautos mūsu esošajā datu analīzes darbplūsmā.
  5. Vienkāršs un konsekvents interfeiss : Viena un tā pati vienkāršā sintakse darbojas dažādos modeļos, palīdz atvieglot mācīšanos un pārslēgšanos starp algoritmiem.
  6. Modeļu regulēšana ir vienkārša : tādi rīki kā režģa meklēšana palīdz mums precīzi noregulēt mūsu modeļa iestatījumus, lai uzlabotu precizitāti bez papildu problēmām.

Scikit-learn lietošanas priekšrocības

  • Lietotājam draudzīgs : Scikit-learn konsekventais un vienkāršais interfeiss padara to pieejamu iesācējiem un vislabāko ekspertiem.
  • Laika taupīšana: Iepriekš izveidotie rīki un algoritmi samazina izstrādes laiku, kas ļauj mums vairāk koncentrēties uz problēmu risināšanu, nevis detaļu kodēšanu.
  • Labāka modeļa veiktspēja : ērti lietojami regulēšanas un novērtēšanas rīki palīdz uzlabot modeļa precizitāti un uzticamību.
  • Elastīgs un mērogojams : atbalsta plašu algoritmu klāstu un vienmērīgi integrējas ar citām Python bibliotēkām, palīdz padarīt to piemērotu jebkura lieluma projektiem.
  • Spēcīgs kopienas atbalsts : liela aktīva kopiena nodrošina regulāru plašas dokumentācijas atjaunināšanu un daudz resursu, lai palīdzētu, ja mēs iestrēgstam.
Izveidojiet viktorīnu