Introduktion til maskinlæringsalgoritmer

Maskinlæring er studiet af forudsigelig analyse, der arbejder ud fra princippet om, at computere lærer af tidligere data og derefter foretager forudsigelser om de nye data. Fremkomsten af ​​Machine Learning-algoritmer var længe tilbage, da computere blev udviklet. Den nylige hype er imidlertid et resultat af de store mængder data, der genereres, og den enorme computerkraft, som nutidige computere besidder. Dette har resulteret i fremkomsten af ​​Deep Learning, et underfelt af Machine Learning, der trives med flere data. Det fungerer som en menneskelig hjerne, hvor neuroner bruges til at træffe bedre beslutninger. På lignende måde danner de neurale netværk i Deep Learning de lag, der følger princippet om videresendelse og tilbagespredning for at træffe bedre beslutninger.

Kategorier af maskinlæringsalgoritmer

Feltet med maskinlæringsalgoritmer kunne kategoriseres i -

  • Supervised Learning - I Supervised Learning er datasættet mærket, dvs. for hver funktion eller uafhængig variabel er der en tilsvarende måldata, som vi vil bruge til at træne modellen.
  • UN-Supervised Learning - I modsætning til i Supervised Learning er datasættet ikke mærket i dette tilfælde. Således bruges klyngeteknologi til at gruppere dataene baseret på deres lighed mellem datapunkterne i den samme gruppe.
  • Forstærkningslæring - En speciel type maskinlæring, hvor modellen lærer af hver handling, der er taget. Modellen belønnes for enhver korrekt beslutning, der træffes og straffes for enhver forkert beslutning, der giver den mulighed for at lære mønstre og træffe bedre nøjagtige beslutninger om ukendte data.

Afdeling af maskinlæringsalgoritmer

Problemerne i maskinlæringsalgoritmer kunne opdeles i -

  • Regression - Der er en kontinuerlig forbindelse mellem de afhængige og de uafhængige variabler. Målvariablen er numerisk, mens de uafhængige variabler kan være numeriske eller kategoriske.
  • Klassificering - Den mest almindelige problemopgørelse, du ville finde i den virkelige verden, er at klassificere et datapunkt i en binær, multinomial eller ordinal klasse. I problemet Binary Classification har målvariablen kun to resultater (Ja / Nej, 0/1, Sandt / falsk). I problemet Multinomial Classification er der flere klasser i målvariablen (Apple / Orange / Mango, og så videre). I ordinalklassificeringsproblemet ordnes målvariablen (f.eks. - elevens karakter).

For at løse denne form for problemer har programmerere og videnskabsmænd udviklet nogle programmer eller algoritmer, som kunne bruges på dataene til at fremsætte forudsigelser. Disse algoritmer kunne opdeles i lineære og ikke-lineære eller træbaserede algoritmer. Lineære algoritmer som Linear Regression, Logistic Regression bruges generelt, når der er et lineært forhold mellem funktionen og målvariablen, hvorimod dataene, der udviser ikke-lineære mønstre, de træbaserede metoder såsom Decision Tree, Random Forest, Gradient Boosting, osv. foretrækkes.

Indtil videre fik vi en kort intuition om maskinlæring. Nu lærer du nogle af dets forprogrammerede algoritmer, som du kunne bruge i dit næste projekt.

Algoritmer

Der er adskillige maskinlæringsalgoritmer, der findes på markedet i øjeblikket, og det vil kun stige i betragtning af mængden af ​​forskning, der udføres på dette felt. Lineær og logistisk regression er generelt de første algoritmer, du lærer som Data Scientist efterfulgt af mere avancerede algoritmer.

Nedenfor er nogle af maskinlæringsalgoritmerne sammen med eksempler på kodestykker i python.

1. Lineær regression

Som navnet antyder, kunne denne algoritme anvendes i tilfælde, hvor målvariablen, der er kontinuerlig, er lineært afhængig af de afhængige variabler. Det er repræsenteret af -

y = a * x + b + e, hvor y er den målvariabel, vi forsøger at forudsige, a er afskærmningen og b er hældningen, x er vores afhængige variabel, der bruges til at forudsige. Dette er en simpel lineær regression, da der kun er en uafhængig variabel. I tilfælde af multipel lineær regression, ville ligningen have været -

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Her er e fejlbetegnelsen, og a1, a2 .. a (n) er koefficienten for de uafhængige variabler.

For at evaluere modelens ydelse bruges en metrisk, som i dette tilfælde kunne være Root Mean Square Error, som er kvadratroten af ​​middelværdien af ​​summen af ​​forskellen mellem de faktiske og de forudsagte værdier.

Målet med Lineær regression er at finde den bedste fit line, der minimerer forskellen mellem de faktiske og de forudsagte datapunkter.

Lineær regression kunne skrives i Python som nedenfor -

2. Logistisk regression

Med hensyn til at opretholde et lineært forhold er det det samme som Lineær regression. I modsætning til i Lineær regression er målvariablen i logistisk regression imidlertid kategorisk, dvs. binær, multinomial eller ordinal. Valget af aktiveringsfunktion er vigtigt i logistisk regression, hvad angår binære klassificeringsproblemer, logfilen for odds til fordel, dvs. sigmoid-funktionen bruges.

I tilfælde af et multiklasse-problem foretrækkes softmax-funktionen, da en sigmoid-funktion tager meget beregningstid.

Den metrik, der bruges til at evaluere et klassificeringsproblem, er generelt nøjagtighed eller ROC-kurven. Jo mere arealet under ROC er, jo bedre er modellen. En tilfældig graf ville have en AUC på 0, 5. Værdien af ​​1 angiver mest nøjagtighed, mens 0 angiver den mindste nøjagtighed.

Logistisk regression kunne skrives i læring som -


3. K-nærmeste naboer

Maskinlæringsalgoritmer kunne bruges til både klassificerings- og regressionsproblemer. Tanken bag KNN-metoden er, at den forudsiger værdien af ​​et nyt datapunkt baseret på dets K Nærmeste naboer. K foretrækkes generelt som et ulige antal for at undgå konflikter. Under klassificering af ethvert nyt datapunkt tages klassen med den højeste tilstand inden for naboerne i betragtning. Med hensyn til regressionsproblemet betragtes middelværdien som værdien.

Jeg lærte, at KNN er skrevet som -


KNN bruges til at bygge en anbefalingsmotor.

4. Support vektormaskiner

En klassificeringsalgoritme, hvor et hyperplan adskiller de to klasser. I et binært klassificeringsproblem betragtes to vektorer fra to forskellige klasser kendt som støttevektorer, og hyperplanet tegnes i maksimal afstand fra understøtningsvektorerne.

Som du kan se, adskiller en enkelt linje de to klasser. I de fleste tilfælde ville dataene imidlertid ikke være så perfekte, og et simpelt hyperplan ville ikke være i stand til at adskille klasserne. Derfor er du nødt til at indstille parametre som regulering, kerne, gamma og så videre.

Kernen kan være lineær eller polynomisk afhængig af, hvordan dataene adskilles. I dette tilfælde er kernen lineær. I tilfælde af regulering skal du vælge en optimal værdi af C, da den høje værdi kan føre til overopfyldning, mens en lille værdi kan understøtte modellen. Indflydelsen fra et enkelt træningseksempel defineres af Gamma. Punkter tæt på linjen overvejes i høj gamma og vice versa for lav gamma.

I sklearn er SVM skrevet som -


5. Naive Bayes

Det fungerer efter princippet om Bayes sætning, som finder sandsynligheden for, at en begivenhed overvejer nogle sande forhold. Bayes sætning er repræsenteret som -

Algoritmen kaldes Naive, fordi den mener, at alle variabler er uafhængige, og tilstedeværelsen af ​​en variabel ikke har nogen relation til de andre variabler, hvilket aldrig er tilfældet i det virkelige liv. Naive Bayes kunne bruges i e-mail-spam-klassificering og i tekstklassificering.

Naïve Bayes kode i Python -

6. Beslutningstræ

Brugt til både klassificerings- og regressionsproblemer er Decision Tree-algoritmen en af ​​de mest enkle og let tolkbare Machine Learning-algoritmer. Det påvirkes ikke af outliers eller manglende værdier i dataene og kan fange de ikke-lineære forhold mellem de afhængige og de uafhængige variabler.

For at opbygge et beslutningstræ overvejes alle funktioner først, men funktionen med den maksimale informationsgevinst tages som den endelige rodnode baseret på hvilken den successive opdeling sker. Denne opdeling fortsætter på underordnekoden baseret på de maksimale informationskriterier, og den stopper, indtil alle forekomster er klassificeret, eller dataene ikke kunne opdeles yderligere. Beslutningstræer er ofte tilbøjelige til overfitting, og det er derfor nødvendigt at indstille hyperparameteret som maksimal dybde, min bladknudepunkter, mindsteprøver, maksimale funktioner osv. For at reducere overfitting er der en grådig tilgang, der sætter begrænsninger på hvert trin og vælger de bedst mulige kriterier for denne opdeling. Der er en anden bedre tilgang kaldet Beskæring, hvor træet først bygges op til en bestemt foruddefineret dybde og derefter startes fra bunden noderne fjernes, hvis det ikke forbedrer modellen.

I sklearn er beslutningstræerne kodet som -



7. Tilfældig skov

For at reducere overfitting i Decision Tree er det påkrævet at reducere variansen af ​​modellen, og dermed kom konceptet bagging på plads. Bagging er en teknik, hvor output fra flere klassifikatorer tages for at danne den endelige output. Random Forest er en sådan indpakningsmetode, hvor datasættet samples i flere datasæt, og funktionerne vælges tilfældigt for hvert sæt. Derefter anvendes beslutnings træalgoritmen på hver samplede data for at hente output fra hver tilstand. I tilfælde af et regressionsproblem tages gennemsnittet af output for alle modeller, medens klassifikationsproblemet betragtes den klasse, der får den maksimale stemme, for at klassificere datapunktet. Random Forest er ikke påvirket af outliers, manglende værdier i dataene, og det hjælper også med til reduktion af dimensionalitet. Det kan imidlertid ikke fortolkes, hvilken ulempe for Random Forest. I Python kunne du kode Random Forest som -


8. K-betyder Clustering

Indtil videre arbejdede vi med overvågede læringsproblemer, hvor der for hvert input er en tilsvarende output. Nu ville vi lære om uovervåget læring, hvor dataene er ikke-mærket og skal samles i specifikke grupper. Der er flere klyngeteknikker til rådighed. Den mest almindelige af dem er imidlertid K-betyder-gruppering. Blækmidler, k refererer til antallet af klynger, der skal indstilles, inden der opretholdes maksimal varians i datasættet. Når k er indstillet, initialiseres centroiderne. Centroids justeres derefter gentagne gange, så afstanden mellem datapunkterne i en centroid er maksimal og afstanden mellem to separate er maksimal. Euklidisk afstand, Manhattan-afstand osv. Er nogle af afstandsformlerne, der bruges til dette formål.

Værdien af ​​k kunne findes fra albue-metoden.

K-betyder-gruppering bruges i e-handelssektorer, hvor kunderne er samlet på baggrund af deres adfærdsmønstre. Det kan også bruges i Risk Analytics. Nedenfor er pythonkoden -


Konklusion: Maskinlæringsalgoritmer

Data Scientist er det mest sexede job i det 21. århundrede, og Machine Learning er bestemt et af dets vigtigste ekspertiseområder. For at være en datavidenskabsmand skal man have en dybtgående forståelse af alle disse algoritmer og også flere andre nye teknikker, såsom Deep Learning.

Anbefalede artikler

Dette har været en guide til maskinlæringsalgoritmer. Her har vi drøftet koncept, kategorier, problemer og forskellige algoritmer for maskinsprog. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Maskinindlæringsteknikker
  2. Hvad er dyb læring
  3. Data Scientist vs Machine Learning
  4. Supervised Learning vs Unsupervised Learning
  5. Hyperparameter-maskinlæring
  6. Hvad er forstærkningslæring?
  7. Mest anvendte teknikker til ensemblæring
  8. Komplet guide til eksempler på C ++ algoritme
  9. Vejledning til stadier i maskinlæringens livscyklus

Kategori: