Byg din første Machine Learning Classifier i Python

Denne artikel hjælper dig med at opbygge en Machine Learning Classifier i Python fra Scratch. Det giver dig også en detaljeret viden om klassifikation.

er buzzwordet lige nu. Nogle utrolige ting gøres ved hjælp af maskinlæring. Fra at være vores personlig assistent , at beslutte vores rejse ruter , hjælper os med at shoppe, hjælper os med at drive vores virksomheder og til at tage os af vores sundhed og velvære maskinlæring er integreret i vores daglige eksistens på så grundlæggende niveauer, at vi for det meste ikke engang er klar over, at vi stoler på det. I denne artikel vil vi følge en begynders tilgang til at implementere standard en maskinindlæringsklassificering i Python.



Oversigt over maskinindlæring

Machine Learning er et koncept, der gør det muligt for maskinen at lære af eksempler og erfaringer, og det også uden at være eksplicit programmeret. Så i stedet for at du skriver koden, føder du data til den generiske algoritme, og algoritmen / maskinen bygger logikken baseret på de givne data.



Machine Learning Classifier

Machine Learning involverer maskiners evne til at tage beslutninger, vurdere resultaterne af deres handlinger og forbedre deres adfærd for at få bedre resultater successivt.



Læringsprocessen foregår på tre store måder

  • Overvåget læring
  • Uovervåget læring
  • Forstærkningslæring

en simpel introduktion til datalogi

En skabelon til maskinindlæringsklassifikatorer

Maskinindlæringsværktøjer leveres ganske bekvemt i et Python-bibliotek navngivet som scikit-learning, som er meget enkle at få adgang til og anvende.



Installer scikit-lear gennem kommandoprompten ved hjælp af:

pip install-U scikit-lær

Hvis du er en anaconda-bruger, kan du på anaconda-prompten bruge:

conda installer scikit-lær

Installationen kræver forudgående installation af NumPy- og SciPy-pakker på dit system.

Forbehandling: Det første og mest nødvendige trin i enhver maskinindlæringsbaseret dataanalyse er forbehandlingsdelen. Korrekt repræsentation og rengøring af data er absolut nødvendigt for ML-modellen at træne godt og udføre sit potentiale.

Trin 1 - Importer nødvendige biblioteker

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

Trin 2 - Importer datasættet

datasæt = pd.read_csv ()

Derefter opdeler vi datasættet i uafhængige og afhængige variabler. De uafhængige variabler skal være inputdataene, og den afhængige variabel er outputdataene.

X = datasæt.iloc []. Værdier y = datasæt.iloc []. Værdier

Trin 3 - Håndter manglende data

Datasættet kan indeholde tomme eller nulværdier, hvilket kan forårsage fejl i vores resultater. Derfor er vi nødt til at håndtere sådanne poster. En almindelig praksis er at erstatte nulværdierne med en fælles værdi, som middelværdien eller den hyppigste værdi i den pågældende kolonne.

fra sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', strategi = 'middel', akse = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Trin 4 - Konverter kategoriske variabler til numeriske variabler

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

Nu efter kodning kan det ske, at maskinen antager de numeriske data som en rangordning for de kodede kolonner. For at give lige vægt er vi således nødt til at konvertere numrene til en-hot-vektorer ved hjælp af OneHotEncoder-klassen.

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

Trin 5 - Udfør skalering

Dette trin er at håndtere uoverensstemmelser, der skyldes uoverensstemmende skalaer for variablerne. Derfor skalerer vi dem alle til det samme interval, så de får samme vægt, mens de bliver input til modellen. Vi bruger et objekt af klassen StandardScaler til dette formål.

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

Trin 6 - Opdel datasættet i trænings- og testdata

Som sidste trin i forbehandling skal datasættet opdeles i et træningssæt og testsæt. Standardforholdet for togtestopdelingen er 75% -25%. Vi kan ændre alt efter kravene. Train_test_split () -funktionen kan gøre dette for os.

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)

Modelbygning: Dette trin er faktisk ret simpelt. Når vi først har besluttet, hvilken model der skal anvendes på dataene, kan vi oprette et objekt af dets tilsvarende klasse og tilpasse objektet på vores træningssæt, idet vi betragter X_train som input og y_train som output.

hvad er datavidenskab?
fra sklearn. import klassifikator = () klassifikator.fit (X_train, y_train)

Modellen er nu trænet og klar. Vi kan nu anvende vores model på testsættet og finde forudsagt output.

y_pred = classifier.predict (X_test)

Visningsresultater: En klassificerings ydeevne kan vurderes ved hjælp af parametrene nøjagtighed, præcision, tilbagekaldelse og f1-score. Disse værdier kan ses ved hjælp af en metode kendt som klassifikationsrapport (). t kan også ses som en forvirringsmatrix, der hjælper os med at vide, hvor mange af hvilke datakategorier der er klassificeret korrekt.

fra sklearn.metrics importerer confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) fra sklearn.metrics importerer klassifikation_rapport target_names = [] print (klassifikationsrapport (y_test, y_pred, target_names = target_names))

Machine Learning Classifier Problem

Vi bruger det meget populære og enkle Iris-datasæt, der indeholder dimensioner af blomster i 3 kategorier - Iris-setosa, Iris-versicolor og Iris-virginica. Der er 150 poster i datasættet.

# Import af bibliotekerne importerer numpy som np importerer matplotlib.pyplot som plt importerer pandas som pd # Import af datasættet = pd.read_csv ('iris.csv')

Lad os se datasættet nu.

dataset.head ()

Vi har 4 uafhængige variabler (eksklusive Id), nemlig kolonnetal 1-4, og kolonne 5 er den afhængige variabel. Så vi kan adskille dem.

X = datasæt.iloc [:, 1: 5] .værdier y = datasæt.iloc [:, 5] .værdier

Nu kan vi opdele datasættet i træning og test.

# Opdeling af datasættet i træningssættet og testsættet 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)

Nu anvender vi en logistisk regressionsklassificering til datasættet.

java scanner få næste char
# Opbygning og træning af modellen fra sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Forudsigelse af testsættets resultater y_pred = classifier.predict (X_test)

Det sidste trin vil være at analysere præstationen for den uddannede model.

# At lave forvirringsmatrix fra sklearn.metrics importere confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Dette viser os, at 13 poster i den første kategori, 11 i den anden og 9 i den tredje kategori forudsiges korrekt af modellen.

# Genererer nøjagtighed, præcision, tilbagekaldelse og f1-score fra sklearn.metrics import klassificering_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (klassifikationsrapport (y_test, y_pred, target_names = target_names) )

Rapporten viser præcision, tilbagekaldelse, f1-score og nøjagtighedsværdier for modellen på vores testsæt, som består af 38 poster (25% af datasættet).

Tillykke, du har med succes oprettet og implementeret din første machine learning klassificering i Python! At få dybdegående viden om sammen med dets forskellige applikationer kan du tilmelde dig live Python online-træning med support døgnet rundt og livstidsadgang.