Esimese masinõppeklassifikaatori loomine Pythonis

See artikkel aitab teil luua Scratchist Pythonis masinõppe klassifikaatori. See annab teile ka üksikasjalikud teadmised klassifikatsioonist.

on praegu moesõna. Masinõppe abil tehakse midagi uskumatut. Meie olemisest isiklik assistent , meie otsustamiseks reisimarsruute , aidata meil poodides, aidata meil oma ettevõtteid juhtida, meie eest hoolitseda tervis ja heaolu, masinõpe on integreeritud meie igapäevase eksistentsiga sellistel fundamentaalsetel tasanditel, et enamasti ei saa me isegi aru, et me sellele loodame. Selles artiklis järgime Pythonis masinaõppe klassifikaatori standardse juurutaja lähenemist.



java c ++ python

Masinõppe ülevaade

Masinõpe on mõiste, mis võimaldab masinal õppida näidetest ja kogemustest ning seda ka ilma selgesõnaliselt programmeerimata. Nii et koodi kirjutamise asemel sisestate andmed üldisele algoritmile ja algoritm / masin ehitab antud andmetele tuginedes loogika.



Masinõppe klassifikaator

Masinõpe hõlmab masinate võimet otsuseid langetada, hinnata oma tegevuse tulemusi ja parandada oma käitumist, et järjest paremaid tulemusi saavutada.



Õppeprotsess toimub kolmel peamisel viisil

  • Juhendatud õppimine
  • Järelevalveta õppimine
  • Tugevdusõpe

Masin masinõppe klassifikaatoritele

Masinõppevahendeid pakutakse üsna mugavalt Pythoni teegis, mille nimi on scikit-learn, millele on juurdepääs ja rakendamine väga lihtne.



Installige scikit-learn käsurea kaudu, kasutades järgmist:

pip install -U scikit-learn

Kui olete anaconda kasutaja, saate anaconda viipal kasutada:

conda installi scikit-õppida

Installimine eeldab NumPy ja SciPy pakettide eelnevat installimist teie süsteemi.

Eeltöötlus: Masinõppepõhise andmeanalüüsi esimene ja kõige vajalikum samm on eeltöötluse osa. Andmete õige esitamine ja puhastamine on hädavajalik, et ML-mudel saaks hästi treenida ja oma potentsiaali täita.

Samm 1 - Importige vajalikke teeke

impordi numpy kui np impordipandad kui pd impordi matplotlib.pyplot kui plt

2. samm - Importige andmekogum

andmekogum = pd.read_csv ()

Seejärel jagasime andmekogumi sõltumatuteks ja sõltuvateks muutujateks. Sõltumatud muutujad on sisendandmed ja sõltuv muutuja on väljundandmed.

X = andmekogum.iloc []. Väärtused y = andmekogum.iloc []. Väärtused

3. samm - Käsitsege puuduvaid andmeid

Andmekogum võib sisaldada tühje või nullväärtusi, mis võib põhjustada meie tulemustes vigu. Seetõttu peame selliste sissekannetega tegelema. Levinud tava on nullväärtuste asendamine ühise väärtusega, näiteks selle veeru keskmine või kõige sagedasem väärtus.

impordija impordijalt sklearn.preprocessing

4. samm - Teisendage kategoorilised muutujad numbrilisteks muutujateks

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

Nüüd, pärast kodeerimist, võib juhtuda, et masin võtab arvandmed kodeeritud veergude paremusjärjestusena. Seega peame võrdse kaalu tagamiseks teisendama numbrid ühe kuumaga vektoriteks, kasutades OneHotEncoderi klassi.

from sklearn.preprocessing importimine OneHotEncoder oneHE = OneHotEncoder (kategoorilised_omadused = []) X = oneHE.fit_transform (X). toarray ()

5. samm - Tehke skaleerimine

See samm on tegeleda muutujate mittevastavast skaalast tulenevate lahknevustega. Seega skaleerime nad kõik samasse vahemikku, nii et nad saaksid mudelisse sisestamise ajal võrdse kaalu. Selleks kasutame klassi StandardScaler objekti.

importimisest sklearn.preprocessing StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

6. samm - Jagage andmekogum koolituse ja testimise andmeteks

stl sort c ++

Eeltöötluse viimase etapina tuleb andmekogum jagada treeningkomplektiks ja testikomplektiks. Rongikatse jagunemise standard suhe on 75–25%. Saame muuta vastavalt nõuetele. Funktsioon train_test_split () saab seda meie eest teha.

from sklearn.model_selection impordi rongi_testi_split X_treen, X_test, y_train, y_test = train_test_split (X, y, test_size = 0,25)

Mudeli hoone: See samm on tegelikult üsna lihtne. Kui oleme otsustanud, millist mudelit andmetele rakendada, saame luua selle vastava klassi objekti ja sobitada objekti oma treeningkomplekti, pidades sisendiks X_train ja väljundiks y_train.

alates sklearn. import klassifikaator = () klassifikaator.fit (X_train, y_train)

Nüüd on mudel koolitatud ja valmis. Nüüd saame oma mudeli rakendada testikomplektile ja leida prognoositava väljundi.

y_pred = klassifikaator.prognoos (X_test)

Tulemuste vaatamine: Klassifikaatori toimivust saab hinnata täpsuse, täpsuse, tagasikutsumise ja f1-skoori parameetrite järgi. Neid väärtusi saab näha meetodil, mida nimetatakse klassifikatsiooni_aruandeks (). t võib vaadelda ka segiajamise maatriksina, mis aitab meil teada, kui palju mis kategooria andmetest on õigesti klassifitseeritud.

lehelt sklearn.metrics impordi segaduse_maatriks cm = segaduse_maatriksi (y_test, y_pred) print (cm) lehelt sklearn.metrics impordi klassifikatsiooni_aruanne target_names = [] print (klassifikatsiooni_aruanne (y_test, y_pred, target_names = sihtnimed))

Masinaõppe klassifikaatori probleem

Kasutame väga populaarset ja lihtsat Irise andmekogumit, mis sisaldab lillede mõõtmeid kolmes kategoorias - Iris-setosa, Iris-versicolor ja Iris-virginica. Andmekogumis on 150 kirjet.

# Raamatukogude importimine impordi numpy nimega np import matplotlib.pyplot plt impordipandadena kui pd # Andmekogumi import andmekogum = pd.read_csv ('iris.csv')

Vaatame andmekogumit kohe.

dataset.head ()

Meil on 4 sõltumatut muutujat (välja arvatud Id), nimelt veergude numbrid 1–4 ja veerg 5 on sõltuv muutuja. Nii et saame need eraldada.

X = andmekogum.iloc [:, 1: 5] .väärtused y = andmekogum.iloc [:, 5] .väärtused

Nüüd saame jagada andmekogumi koolituseks ja testimiseks.

# Andmekogumi jagamine treeningukomplekti ja testikomplekti saidilt sklearn.model_selection import rongi_testi_plokk X_treen, X_test, y_train, y_test = rongi_testi_split (X, y, test_size = 0,25)

Nüüd rakendame andmekogumisse logistilise regressiooni klassifikaatorit.

# Mudeli loomine ja koolitamine saidilt sklearn.linear_model import LogisticRegression klassifikaator = LogisticRegression () klassifikaator.fit (X_train, y_train) # Testikomplekti tulemuste ennustamine y_pred = klassifikaator.predict (X_test)

Viimane samm on koolitatud mudeli toimivuse analüüs.

# Segadusmaatriksi tegemine sklearn.metrics'ist impordib confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

See näitab meile, et mudeli järgi on õigesti ennustatud 13 esimese kategooria, 11 teise ja 9 kolmanda kategooria kirjet.

mis on parim java ide
# Täpsuse, täpsuse, tagasikutsumise ja f1-skoori loomine sklearn.metrics impordi klassifikatsiooni_aruande sihtmärkide nimed = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (klassifikatsiooni_aruanne (y_test, y_pred, target_names = target_names) )

Aruanne näitab meie testikomplekti mudeli täpsust, tagasikutsumist, f1-skoori ja täpsuse väärtusi, mis koosneb 38 kirjest (25% andmekogumist).

Palju õnne, olete oma esimese masinõppe klassifikaatori Pythonis edukalt loonud ja juurutanud! Et saada põhjalikke teadmisi koos selle erinevate rakendustega saate registreeruda otse Pythoni veebikoolitusele 24/7 toe ja eluaegse juurdepääsuga.