Introduktion till maskininlärningsalgoritmer

Machine Learning är studien av prediktiv analys som fungerar med principen att datorer lär sig från tidigare data och sedan gör förutsägelser om den nya informationen. Tillkomsten av maskininlärningsalgoritmer var länge tillbaka när datorerna utvecklades. Men den senaste hype är ett resultat av de stora mängder data som genereras och den enorma beräkningskraft som dagens datorer har. Detta har resulterat i uppkomsten av Deep Learning, ett underområde för maskininlärning som trivs med mer data. Det fungerar som en mänsklig hjärna där neuroner används för att fatta bättre beslut. På samma sätt bildar de neurala nätverket i Deep Learning de lager som följer principen om vidarebefordran och bakåtutbredning för att fatta bättre beslut.

Kategorier av maskininlärningsalgoritmer

Fältet för maskininlärningsalgoritmer kan kategoriseras i -

  • Supervised Learning - I Supervised Learning är datauppsättningen märkt, dvs för varje funktion eller oberoende variabel finns det motsvarande måldata som vi skulle använda för att träna modellen.
  • UN-Supervised Learning - Till skillnad från Supervised Learning är datauppsättningen inte märkt i det här fallet. Således används klusteringsteknik för att gruppera data baserat på dess likhet mellan datapunkterna i samma grupp.
  • Förstärkningslärande - En speciell typ av maskininlärning där modellen lär sig av varje åtgärd som vidtagits. Modellen belönas för alla korrekta beslut och straffas för fel beslut som gör det möjligt för den att lära sig mönstren och fatta bättre noggrannhet om okända data.

Avdelning för maskininlärningsalgoritmer

Problemen i maskininlärningsalgoritmer kan delas in i -

  • Regression - Det finns en kontinuerlig relation mellan beroende och oberoende variabler. Målvariabeln är numerisk till sin natur medan de oberoende variablerna kan vara numeriska eller kategoriska.
  • Klassificering - Det vanligaste problemmeddelandet du skulle hitta i den verkliga världen är att klassificera en datapunkt i någon binär, multinomial eller ordinal klass. I problem med binär klassificering har målvariabeln endast två resultat (Ja / Nej, 0/1, Sann / Falsk). I Multinomial Classification-problemet finns det flera klasser i målvariabeln (Apple / Orange / Mango, och så vidare). I det ordinära klassificeringsproblemet ordnas målvariabeln (t.ex. studenternas betyg).

För att lösa den här typen av problem har programmerare och forskare utvecklat några program eller algoritmer som kan användas på data för att göra förutsägelser. Dessa algoritmer kan delas in i linjära och icke-linjära eller trädbaserade algoritmer. Linjära algoritmer som Linear Regression, Logistic Regression används vanligtvis när det finns ett linjärt samband mellan funktionen och målvariabeln medan de data som uppvisar icke-linjära mönster, de trädbaserade metoderna som Decision Tree, Random Forest, Gradient Boosting, etc. föredras.

Hittills har vi fått en kort intuition om maskininlärning. Nu skulle du lära dig några av dess förprogrammerade algoritmer som du kan använda i ditt nästa projekt.

algoritmer

Det finns många maskininlärningsalgoritmer som finns på marknaden för närvarande och det kommer bara att öka med tanke på mängden forskning som görs inom detta område. Linjär och logistisk regression är vanligtvis de första algoritmerna du lär dig som datavetare följt av mer avancerade algoritmer.

Nedan finns några av maskininlärningsalgoritmerna tillsammans med exempelkodavsnitt i python.

1. Linjär regression

Som namnet antyder skulle denna algoritm kunna användas i fall där målvariabeln som är kontinuerlig i sin natur är linjärt beroende av de beroende variablerna. Det representeras av -

y = a * x + b + e, där y är den målvariabel som vi försöker förutsäga, a är skärningen och b är lutningen, x är vår beroende variabel som används för att göra förutsägelsen. Detta är en enkel linjär regression eftersom det bara finns en oberoende variabel. I fallet med multipel linjär regression skulle ekvationen ha varit -

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

Här är e feltermen och a1, a2 .. a (n) är koefficienten för de oberoende variablerna.

För att utvärdera modellens prestanda används en metrisk som i detta fall kan vara Root Mean Square Error som är kvadratroten av medelvärdet av summan av skillnaden mellan de faktiska och de förutsagda värdena.

Målet med Linjär regression är att hitta den bästa passningslinjen som skulle minimera skillnaden mellan de faktiska och de förutsagda datapunkterna.

Linjär regression kan skrivas i Python som nedan -

2. Logistisk regression

När det gäller att upprätthålla en linjär relation är det samma som Linjär regression. Till skillnad från i Linjär regression är målvariabeln i logistisk regression emellertid kategorisk, dvs. binär, multinomial eller ordinär. Valet av aktiveringsfunktion är viktigt i logistisk regression som för binära klassificeringsproblem, logg över odds till förmån, dvs. sigmoidfunktionen används.

När det gäller ett flerklassproblem föredras softmax-funktionen eftersom en sigmoidfunktion tar mycket beräkningstid.

Det metris som används för att utvärdera ett klassificeringsproblem är i allmänhet noggrannhet eller ROC-kurvan. Ju mer området under ROC, desto bättre är modellen. En slumpmässig graf skulle ha en AUC på 0, 5. Värdet 1 indikerar mest noggrannhet, medan 0 indikerar minst noggrannhet.

Logistisk regression kan skrivas i lärande som -


3. K-närmaste grannar

Maskininlärningsalgoritmer kan användas för både klassificerings- och regressionsproblem. Tanken bakom KNN-metoden är att den förutsäger värdet av en ny datapunkt baserat på dess K närmaste grannar. K föredras generellt som ett udda nummer för att undvika konflikter. Vid klassificering av alla nya datapunkter tas klassen med det högsta läget inom grannarna med i beräkningen. Medan för regressionsproblemet betraktas medelvärdet som värdet.

Jag lärde mig att KNN är skriven som -


KNN används för att bygga en rekommendationsmotor.

4. Stöd vektormaskiner

En klassificeringsalgoritm där ett hyperplan separerar de två klasserna. I ett binärt klassificeringsproblem betraktas två vektorer från två distinkta klasser kända som stödvektorerna och hyperplanet dras på maximalt avstånd från stödvektorerna.

Som ni ser skiljer en enda rad de två klasserna. Men i de flesta fall skulle uppgifterna inte vara så perfekta och ett enkelt hyperplan skulle inte kunna skilja klasserna. Därför måste du ställa in parametrar som Regularization, Kernel, Gamma, och så vidare.

Kärnan kan vara linjär eller polynom beroende på hur informationen separeras. I detta fall är kärnan linjär. När det gäller Regularisering, måste du välja ett optimalt värde på C, eftersom det höga värdet kan leda till överanpassning medan ett litet värde skulle kunna tillräckligt med modellen. Påverkan av ett enda träningsexempel definieras av Gamma. Poäng nära linjen beaktas i hög gamma och vice versa för låg gamma.

I sklearn skrivs SVM som -


5. Naive Bayes

Det fungerar på principen om Bayes sats som finner sannolikheten för en händelse med tanke på vissa verkliga förhållanden. Bayes sats representeras som -

Algoritmen kallas Naive eftersom den tror att alla variabler är oberoende och närvaron av en variabel inte har någon relation till de andra variablerna vilket aldrig är fallet i verkligheten. Naive Bayes kan användas i klassificering via e-postskräppost och i textklassificering.

Naïve Bayes kod i Python -

6. Beslutsträd

Används för både klassificerings- och regressionsproblem, är Decision Tree-algoritmen en av de mest enkla och lätt tolkbara maskininlärningsalgoritmerna. Det påverkas inte av outliers eller saknade värden i data och kan fånga de icke-linjära förhållandena mellan beroende och oberoende variabler.

För att bygga ett beslutsträd betraktas alla funktioner först men funktionen med maximal informationsförstärkning tas som den slutliga rotnoden baserad på vilken successiv delning görs. Denna delning fortsätter på barnnoden baserat på de maximala informationskriterierna och den stannar tills alla instanser har klassificerats eller data inte kunde delas vidare. Beslutsträd är ofta benägna att överanpassa och därför är det nödvändigt att ställa in hyperparametern som maximalt djup, min bladnoder, minsta prover, maximala funktioner och så vidare. För att minska överanpassningen finns det en girig inställning som sätter begränsningar vid varje steg och väljer bästa möjliga kriterier för den uppdelningen. Det finns en annan bättre metod som kallas beskärning där trädet först byggs upp till ett visst fördefinierat djup och sedan börjar noderna tas bort om det inte förbättrar modellen.

I sklearn kodas beslutsträd som -



7. Slumpmässig skog

För att minska övermontering i Decision Tree krävs det att minska modellens varians och därmed kom konceptet med påsättning på plats. Bagging är en teknik där utgången från flera klassificerare tas för att bilda den slutliga utgången. Random Forest är en sådan pålagningsmetod där datasatsen samplas till flera datasätt och funktionerna väljs slumpmässigt för varje uppsättning. Därefter tillämpas beslutsträdealgoritmen på varje samplingsdata för att få utdata från varje läge. I fallet med ett regressionsproblem tas medelvärdet för utdata från alla modeller medan, vid klassificeringsproblem, den klass som får maximal röst anses klassificera datapunkten. Random Forest påverkas inte av outliers, saknade värden i data och det hjälper också till att minska dimensionen. Det är dock inte tolkbart vilken nackdel för Random Forest. I Python kan du koda Random Forest som -


8. K-betyder Clustering

Hittills har vi arbetat med övervakade inlärningsproblem där för varje ingång finns en motsvarande utgång. Nu skulle vi lära oss om okontrollerat lärande där uppgifterna inte är märkta och måste grupperas i specifika grupper. Det finns flera klusteringstekniker tillgängliga. Men det vanligaste av dem är K-betyder-gruppering. Bläckmedel, k hänför sig till antalet kluster som måste ställas in innan du bibehåller maximal variation i datasatsen. När k har ställts in, initialiseras centroiderna. Centroids justeras sedan upprepade gånger så att avståndet mellan datapunkterna inom en centroid är maximalt och avståndet mellan två separata är maximalt. Euklidiskt avstånd, Manhattan-avstånd, etc, är några av avståndsformlerna som används för detta ändamål.

Värdet på k kunde hittas från armbågens metod.

K-betyder kluster används i e-handelsbranscher där kunder grupperas tillsammans baserat på deras beteendemönster. Det kan också användas i riskanalys. Nedan är pythonkoden -


Slutsats: Maskininlärningsalgoritmer

Data Scientist är det sexigaste jobbet under 2000-talet och Machine Learning är verkligen ett av dess viktigaste expertområden. För att vara en datavetare måste man ha en fördjupad förståelse av alla dessa algoritmer och också flera andra nya tekniker som Deep Learning.

Rekommenderade artiklar

Detta har varit en guide till maskininlärningsalgoritmer. Här har vi diskuterat begreppet, kategorier, problem och olika algoritmer för maskinspråk. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Maskininlärningstekniker
  2. Vad är djupt lärande
  3. Data Scientist vs Machine Learning
  4. Supervised Learning vs Unsupervised Learning
  5. Hyperparameter-maskininlärning
  6. Vad är förstärkningslärande?
  7. Mest använda tekniker för lärande av ensemble
  8. Komplett guide till exempel på C ++ algoritm
  9. Guide till stadier i maskinlärande livscykel

Kategori: