Sukurkite savo pirmąjį mašininio mokymosi klasifikatorių „Python“



Šis straipsnis padės sukurti „Python“ mašininio mokymosi klasifikatorių iš „Scratch“. Tai taip pat suteiks jums išsamių žinių apie klasifikavimą.

dabar yra madingas žodis. Keletas neįtikėtinų dalykų daroma mašininio mokymosi pagalba. Nuo to, kad esame mūsų Asmeninis asistentas , sprendžiant mūsų kelionių maršrutai , padėti mums apsipirkti, padėti valdyti verslą, rūpintis savimi sveikata ir sveikata, mašininis mokymasis yra integruotas į mūsų kasdienį egzistavimą tokiais pagrindiniais lygmenimis, kad dažniausiai net nesusimąstome, kad juo remiamės. Šiame straipsnyje mes laikysimės pradedančiųjų požiūrio, kad įdiegtume standartinį mašininio mokymosi klasifikatorių „Python“.

Mašininio mokymosi apžvalga

Mašininis mokymasis yra sąvoka, leidžianti mašinai mokytis iš pavyzdžių ir patirties, taip pat ir be aiškaus programavimo. Taigi vietoj to, kad rašytumėte kodą, jūs darote duomenis į bendrą algoritmą, o algoritmas / mašina kuria logiką remdamasi pateiktais duomenimis.





Mašinų mokymosi klasifikatorius

kas yra java

Mašininis mokymasis apima mašinų gebėjimą priimti sprendimus, įvertinti savo veiksmų rezultatus ir pagerinti savo elgesį, kad paeiliui būtų geresni rezultatai.



Mokymosi procesas vyksta trimis pagrindiniais būdais

  • Vadovaujamasi mokymuisi
  • Neprižiūrimas mokymasis
  • Sustiprinimo mokymasis

Mašininio mokymosi klasifikatorių šablonas

Mašininio mokymosi priemonės yra gana patogios „Python“ bibliotekoje, pavadintoje „scikit-learn“, kurias labai paprasta pasiekti ir pritaikyti.



Įdiekite „scikit-learn“ per komandų eilutę naudodami:

„pip install -U scikit-learn“

Jei esate „anaconda“ vartotojas, „anaconda“ raginime galite naudoti:

conda install scikit-learn

Norint įdiegti, reikia iš anksto įdiegti „NumPy“ ir „SciPy“ paketus į jūsų sistemą.

Išankstinis apdorojimas: Pirmasis ir būtiniausias bet kokio mašininio mokymosi pagrindu atliekamos duomenų analizės etapas yra išankstinio apdorojimo dalis. Teisingas duomenų pateikimas ir valymas yra būtinas, kad ML modelis galėtų gerai treniruotis ir išnaudoti savo galimybes.

1 žingsnis - Importuoti reikalingas bibliotekas

import numerio kaip np importo pandos kaip pd importo matplotlib.pyplot kaip plt

2 žingsnis - Importuokite duomenų rinkinį

duomenų rinkinys = pd.read_csv ()

Tada duomenų rinkinį padalijame į nepriklausomus ir priklausomus kintamuosius. Nepriklausomi kintamieji yra įvesties duomenys, o priklausomasis kintamasis yra išvesties duomenys.

X = duomenų rinkinys.iloc []. Reikšmės y = duomenų rinkinys.iloc []. Reikšmės

3 žingsnis - Tvarkykite trūkstamus duomenis

Duomenų rinkinyje gali būti tuščių arba nulinių verčių, o tai gali sukelti klaidų mūsų rezultatuose. Taigi turime spręsti tokius įrašus. Įprasta praktika yra pakeisti nulines reikšmes į bendrą vertę, pvz., Vidurkį arba dažniausią to stulpelio vertę.

kaip padaryti žodyną java
iš „sklearn.preprocessing“ importo „imputer“ įterpėjas = „imputer“ (trūksta reikšmių = „NaN“, strategija = „vidutinė“, ašis = 0) „imputer“ = „imputer.fit“ (X []) X [] = „imputer“.

4 žingsnis - Konvertuoti kategorinius kintamuosius į skaitinius kintamuosius

iš importo „sklearn.preprocessing“ „LabelEncoder“ le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Dabar, užkodavus, gali atsitikti taip, kad mašina perima skaitmeninius duomenis kaip užkoduotų stulpelių reitingą. Taigi, kad gautume vienodą svorį, mes turime konvertuoti skaičius į vienkartinius vektorius, naudodami „OneHotEncoder“ klasę.

iš „sklearn.preprocessing“ importavimo „OneHotEncoder“ oneHE = „OneHotEncoder“ (kategorijos_funkcijos = []) X = oneHE.fit_transform (X) .toarray ()

5 žingsnis - Atlikite mastelį

Šiuo žingsniu siekiama išspręsti neatitikimus, atsirandančius dėl neatitikusių kintamųjų skalių. Taigi mes skalaujame juos visus į tą patį diapazoną, kad jie gautų vienodą svorį, tuo pačiu įvedant modelį. Tam tikslui naudojame „StandardScaler“ klasės objektą.

iš „sklearn.preprocessing“ importo „StandardScaler“ sc_X = „StandardScaler“ () X = sc_X.fit_transform (X)

6 žingsnis - Suskirstykite duomenų rinkinį į mokymo ir testavimo duomenis

Kaip paskutinį išankstinio apdorojimo žingsnį, duomenų rinkinį reikia suskirstyti į mokymo rinkinį ir bandymų rinkinį. Standartinis traukinio testo padalijimo santykis yra 75–25%. Mes galime modifikuoti pagal reikalavimus. Tą mums gali padaryti funkcija „train_test_split ()“.

iš sklearn.model_selection importuoti traukinio_testo_split X_train, X_test, y_train, y_test = traukinio_test_split (X, y, test_size = 0,25)

Modelio pastatas: Šis žingsnis iš tikrųjų yra gana paprastas. Kai nuspręsime, kurį modelį taikyti duomenims, galime sukurti atitinkamos klasės objektą ir pritaikyti objektą savo mokymų rinkinyje, X_train laikydami įvestimi, o y_train - išvestimi.

iš sklearn. import klasifikatorius = () klasifikatorius.fit (X_train, y_train)

Dabar modelis yra apmokytas ir paruoštas. Dabar mes galime pritaikyti savo modelį bandymų rinkiniui ir rasti numatomą rezultatą.

y_pred = klasifikatorius.prognozuoti (X_test)

Rezultatų peržiūra: Klasifikatoriaus veikimą galima įvertinti pagal tikslumo, tikslumo, atšaukimo ir f1 balų parametrus. Šias reikšmes galima pamatyti naudojant metodą, žinomą kaip klasifikacijos_ ataskaita (). t taip pat gali būti vertinama kaip painiavos matrica, padedanti mums žinoti, kiek tos kategorijos duomenų buvo teisingai klasifikuojami.

iš sklearn.metrics importuoti painiavos_matrica cm = sumišimo_matrica (y_test, y_pred) spausdinti (cm) iš sklearn.metrics importuoti klasifikacijos_atrašą target_names = [] spausdinti (klasifikacijos_atrašą (y_test, y_pred, target_names = target_names))

Mašinų mokymosi klasifikatoriaus problema

Mes naudosime labai populiarų ir paprastą Iris duomenų rinkinį, kuriame yra gėlių matmenys 3 kategorijose - Iris-setosa, Iris-versicolor ir Iris-virginica. Duomenų rinkinyje yra 150 įrašų.

# Bibliotekų importavimas importuokite numpy kaip np importuokite matplotlib.pyplot kaip plt importuokite pandas kaip pd # Duomenų rinkinio importas dataset = pd.read_csv ('iris.csv')

Peržiūrėkime duomenų rinkinį dabar.

dataset.head ()

Mes turime 4 nepriklausomus kintamuosius (išskyrus Id), būtent stulpelių numerius 1–4, o 5 stulpelis yra priklausomas kintamasis. Taigi galime juos atskirti.

X = duomenų rinkinys.iloc [:, 1: 5]. Reikšmės y = duomenų rinkinys.iloc [:, 5]. Vertės

Dabar duomenų rinkinį galime suskirstyti į mokymą ir testavimą.

# Duomenų rinkinio padalijimas į mokymų rinkinį ir testų rinkinį iš sklearn.model_selection importuoti traukinio_testą_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Dabar duomenų rinkiniui pritaikysime logistinės regresijos klasifikatorių.

# Modelio kūrimas ir mokymas iš „sklearn.linear_model“ importavimo „LogisticRegression“ klasifikatoriaus = LogisticRegression () klasifikatoriaus.fit (X_train, y_train) # Testo rinkinio rezultatų numatymas y_pred = klasifikatorius.predict (X_test)

Paskutinis žingsnis bus išanalizuoti apmokyto modelio veikimą.

# Sudarymo matricos kūrimas iš sklearn.metrics importuoti confusion_matrix cm = confusion_matrix (y_test, y_pred) spausdinti (cm)

Tai rodo, kad 13 pirmosios kategorijos įrašų, 11 antrosios ir 9 trečiosios kategorijos modeliai yra teisingai numatyti.

# Tikslumo, tikslumo, atšaukimo ir f1 balų generavimas iš „sklearn.metrics“ importo klasifikacijos_ ataskaita tiksliniai_vardai = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] spausdinti (klasifikacijos_ ataskaita (y_test, y_pred, target_names = target_names) )

kas yra esmė pitone

Ataskaitoje parodytos mūsų bandymų rinkinio, kurį sudaro 38 įrašai (25% duomenų rinkinio), modelio tikslumo, atšaukimo, f1 balo ir tikslumo vertės.

Sveikiname, jūs sėkmingai sukūrėte ir įdiegėte savo pirmąjį mašininio mokymosi klasifikatorių „Python“! Norėdami gauti išsamių žinių apie Kartu su įvairiomis jo programomis galite užsiregistruoti į tiesioginius „Python“ internetinius mokymus, palaikydami visą parą ir visą parą.