Bygg din første Machine Learning Classifier i Python



Denne artikkelen vil hjelpe deg med å bygge en Machine Learning Classifier i Python fra Scratch. Det vil også gi deg detaljert kunnskap om klassifisering.

er moteordet akkurat nå. Noen utrolige ting blir gjort ved hjelp av maskinlæring. Fra å være vår personlig assistent , til å bestemme vår reiseruter , hjelper oss å handle, hjelper oss med å drive virksomheten vår, til å ta vare på våre Helse og velvære, maskinlæring er integrert i vår daglige tilværelse på slike grunnleggende nivåer, at vi for det meste ikke en gang innser at vi stoler på det. I denne artikkelen vil vi følge en nybegynnertilnærming for å implementere standard en maskinlæringsklassifisering i Python.

Oversikt over maskinlæring

Machine Learning er et konsept som lar maskinen lære av eksempler og erfaringer, og det også uten å være eksplisitt programmert. Så i stedet for at du skriver koden, mater du data til den generiske algoritmen, og algoritmen / maskinen bygger logikken basert på de gitte dataene.





Machine Learning Classifier

Maskinlæring innebærer maskinens evne til å ta beslutninger, vurdere resultatene av handlingene sine og forbedre deres atferd for å få bedre resultater suksessivt.



Læringsprosessen foregår på tre hovedmåter

  • Veiledet læring
  • Uovervåket læring
  • Forsterkningslæring

lage kopi av objektet java

En mal for klassifisering av maskinlæring

Maskinlæringsverktøy leveres ganske praktisk i et Python-bibliotek kalt scikit-learning, som er veldig enkle å få tilgang til og bruke.



Installer scikit-learning gjennom ledeteksten ved å bruke:

pip install -U scikit-lær

Hvis du er en anaconda-bruker, kan du i anaconda-meldingen bruke:

conda installer scikit-lær

Installasjonen krever forhåndsinstallasjon av NumPy- og SciPy-pakker på systemet ditt.

Forbehandling: Det første og mest nødvendige trinnet i maskinlæringsbasert dataanalyse er forhåndsbehandlingsdelen. Riktig fremstilling og rensing av dataene er helt avgjørende for at ML-modellen skal trene godt og prestere til sitt potensial.

Trinn 1 - Importer nødvendige biblioteker

importer numpy som np importer pandaer som pd importer matplotlib.pyplot som plt

Steg 2 - Importer datasettet

datasett = pd.read_csv ()

Deretter deler vi datasettet i uavhengige og avhengige variabler. De uavhengige variablene skal være inngangsdataene, og den avhengige variabelen er utdataene.

X = datasett.iloc []. Verdier y = datasett.iloc []. Verdier

Trinn 3 - Håndter manglende data

Datasettet kan inneholde tomme eller nullverdier, noe som kan forårsake feil i resultatene. Derfor må vi håndtere slike oppføringer. En vanlig praksis er å erstatte nullverdiene med en felles verdi, som middelverdien eller den hyppigste verdien i den kolonnen.

fra sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Trinn 4 - Konverter kategoriske variabler til numeriske variabler

fra sklearn.preprocessing importerer LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Nå, etter koding, kan det hende at maskinen antar de numeriske dataene som en rangering for de kodede kolonnene. Dermed, for å gi like vekt, må vi konvertere tallene til en-hot-vektorer, ved hjelp av OneHotEncoder-klassen.

fra sklearn.preprocessing importerer OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

Trinn 5 - Utfør skalering

Dette trinnet er å håndtere avvik som oppstår på grunn av uoverensstemmende skalaer for variablene. Derfor skalerer vi dem alle til samme område, slik at de får like stor vekt mens de blir lagt inn i modellen. Vi bruker et objekt fra StandardScaler-klassen til dette formålet.

fra sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Trinn 6 - Del datasettet i opplærings- og testdata

Som det siste trinnet med forbehandling, må datasettet deles inn i et treningssett og testsett. Standardforholdet for togtestdelingen er 75% -25%. Vi kan endre etter behov. Train_test_split () -funksjonen kan gjøre dette for oss.

fra sklearn.model_selection importerer train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Modellbygging: Dette trinnet er faktisk ganske enkelt. Når vi først har bestemt oss for hvilken modell vi skal bruke på dataene, kan vi opprette et objekt av tilsvarende klasse, og plassere objektet på treningssettet vårt, med tanke på X_train som inngang og y_train som utgang.

fra sklearn. importer klassifiser = () classifier.fit (X_train, y_train)

Modellen er nå trent og klar. Vi kan nå bruke modellen vår på testsettet og finne forventet utdata.

java hvordan du avslutter et program
y_pred = classifier.predict (X_test)

Viser resultater: Ytelsen til en klassifikator kan vurderes av parametrene nøyaktighet, presisjon, tilbakekalling og f1-score. Disse verdiene kan sees ved hjelp av en metode som kalles klassifiseringsrapport (). t kan også sees på som en forvirringsmatrise som hjelper oss å vite hvor mange av hvilke datakategorier som er klassifisert riktig.

fra sklearn.metrics importerer confusion_matrix cm = confusion_matrix (y_test, y_pred) utskrift (cm) fra sklearn.metrics importerer klassifikasjon_rapport target_names = [] utskrift (klassifikasjonsrapport (y_test, y_pred, target_names = target_names))

Machine Learning Classifier Problem

Vi vil bruke det veldig populære og enkle Iris-datasettet, som inneholder dimensjoner av blomster i 3 kategorier - Iris-setosa, Iris-versicolor og Iris-virginica. Det er 150 oppføringer i datasettet.

# Importerer bibliotekene importerer numpy som np importerer matplotlib.pyplot som plt importerer pandas som pd # Importerer datasettet dataset = pd.read_csv ('iris.csv')

La oss se datasettet nå.

dataset.head ()

Vi har 4 uavhengige variabler (unntatt Id), nemlig kolonnetall 1-4, og kolonne 5 er den avhengige variabelen. Så vi kan skille dem ut.

X = datasett.iloc [:, 1: 5] .verdier y = datasett.iloc [:, 5] .verdier

Nå kan vi dele datasettet i opplæring og testing.

# Deling av datasettet i treningssettet og testsettet fra sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Nå vil vi bruke en Logistic Regression classifier på datasettet.

# Bygge og trene modellen fra sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Forutsi testsettets resultater y_pred = classifier.predict (X_test)

Det siste trinnet vil være å analysere ytelsen til den trente modellen.

# Å lage forvirringsmatrisen fra sklearn.metrics importere confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Dette viser oss at 13 oppføringer i den første kategorien, 11 i den andre og 9 i den tredje kategorien er riktig forutsagt av modellen.

# Genererer nøyaktighet, presisjon, tilbakekalling og f1-poengsum fra sklearn.metrics import klassifisering_rapport target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] utskrift (klassifikasjonsrapport (y_test, y_pred, target_names = target_names) )

Rapporten viser nøyaktighets-, tilbakekallings-, f1-poengsummen og nøyaktighetsverdiene til modellen på vårt testsett, som består av 38 oppføringer (25% av datasettet).

Gratulerer, du har vellykket opprettet og implementert din første maskinlæringsklassifiseringsprogram i Python! Å få inngående kunnskap om sammen med de forskjellige applikasjonene, kan du registrere deg for live Python online-opplæring med 24/7 support og livstidsadgang.