Inleiding tot machine learning-algoritmen

Machine Learning is de studie van voorspellende analyses die werkt op het principe dat computers leren van eerdere gegevens en vervolgens voorspellingen doen over de nieuwe gegevens. De komst van Machine Learning-algoritmen was lang geleden toen de computers werden ontwikkeld. De recente hype is echter een gevolg van de grote hoeveelheden gegevens die worden gegenereerd en de enorme rekenkracht die moderne computers bezitten. Dit heeft geresulteerd in de opkomst van Deep Learning, een subveld van Machine Learning dat gedijt op meer gegevens. Het werkt als een menselijk brein waar neuronen worden gebruikt om betere beslissingen te nemen. Op dezelfde manier vormen de neurale netwerken in Deep Learning de lagen die het principe van doorsturen en achterwaartse propagatie volgen om betere beslissingen te nemen.

Categorieën machine-algoritmen

Het veld van Machine Learning Algorithms kan worden onderverdeeld in -

  • Supervised Learning - In Supervised Learning is de gegevensset gelabeld, dat wil zeggen dat er voor elke functie of onafhankelijke variabele overeenkomstige gegevens zijn die we zouden gebruiken om het model te trainen.
  • UN-Supervised Learning - In tegenstelling tot Supervised Learning is de dataset in dit geval niet gelabeld. Aldus wordt clusteringstechniek gebruikt om de gegevens te groeperen op basis van de overeenkomst tussen de gegevenspunten in dezelfde groep.
  • Versterkingsleren - Een speciaal type machinaal leren waarbij het model leert van elke actie die wordt ondernomen. Het model wordt beloond voor elke juiste beslissing en bestraft voor elke verkeerde beslissing waardoor het de patronen kan leren en betere nauwkeurige beslissingen kan nemen over onbekende gegevens.

Afdeling van machine learning algoritmen

De problemen in Machine Learning Algorithms kunnen worden onderverdeeld in -

  • Regressie - Er is een continu verband tussen de afhankelijke en de onafhankelijke variabelen. De doelvariabele is numeriek van aard, terwijl de onafhankelijke variabelen numeriek of categorisch kunnen zijn.
  • Classificatie - De meest voorkomende probleemstelling die u in de echte wereld zou aantreffen, is het classificeren van een gegevenspunt in een binaire, multinomiale of ordinale klasse. In het probleem Binaire classificatie heeft de doelvariabele slechts twee uitkomsten (Ja / Nee, 0/1, Waar / Niet waar). In het probleem Multinomiale classificatie zijn er meerdere klassen in de doelvariabele (Apple / Orange / Mango, enzovoort). In het classificatieprobleem Ordinal is de doelvariabele geordend (bijvoorbeeld - het cijfer van studenten).

Om dit soort problemen op te lossen, hebben programmeurs en wetenschappers een aantal programma's of algoritmen ontwikkeld die op de gegevens kunnen worden gebruikt om voorspellingen te doen. Deze algoritmen kunnen worden onderverdeeld in lineaire en niet-lineaire of boomgebaseerde algoritmen. Lineaire algoritmen zoals Lineaire regressie, Logistische regressie worden meestal gebruikt wanneer er een lineair verband is tussen het kenmerk en de doelvariabele, terwijl de gegevens die niet-lineaire patronen vertonen, de op boom gebaseerde methoden zoals beslissingsboom, willekeurig bos, gradiëntversterking, enz. hebben de voorkeur.

Tot nu toe hebben we een korte intuïtie over Machine Learning. Nu zou je enkele van de voorgeprogrammeerde algoritmen leren die je in je volgende project zou kunnen gebruiken.

algoritmes

Er zijn momenteel veel machine learning-algoritmen op de markt en deze zal alleen maar toenemen gezien de hoeveelheid onderzoek die op dit gebied wordt gedaan. Lineaire en logistieke regressie zijn over het algemeen de eerste algoritmen die je leert als Data Scientist, gevolgd door meer geavanceerde algoritmen.

Hieronder staan ​​enkele van de machine learning-algoritmen samen met voorbeeldcodefragmenten in python.

1. Lineaire regressie

Zoals de naam suggereert, kan dit algoritme worden gebruikt in gevallen waarin de doelvariabele die continu van aard is lineair afhankelijk is van de afhankelijke variabelen. Het wordt vertegenwoordigd door -

y = a * x + b + e, waarbij y de doelvariabele is die we proberen te voorspellen, a is de onderschepping en b is de helling, x is onze afhankelijke variabele die wordt gebruikt om de voorspelling te maken. Dit is een eenvoudige lineaire regressie omdat er slechts één onafhankelijke variabele is. In het geval van Multiple Linear Regression zou de vergelijking zijn geweest -

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

Hier is e de foutterm en a1, a2 .. a (n) zijn de coëfficiënt van de onafhankelijke variabelen.

Om de prestaties van het model te evalueren, wordt een metriek gebruikt die in dit geval Root Mean Square Error kan zijn. Dit is de vierkantswortel van het gemiddelde van de som van het verschil tussen de werkelijke en de voorspelde waarden.

Het doel van lineaire regressie is om de best passende lijn te vinden die het verschil tussen de werkelijke en de voorspelde gegevenspunten zou minimaliseren.

Lineaire regressie kan worden geschreven in Python zoals hieronder -

2. Logistische regressie

In termen van het handhaven van een lineaire relatie is dit hetzelfde als lineaire regressie. Anders dan bij lineaire regressie is de doelvariabele in logistische regressie echter categorisch, dwz binair, multinomiaal of ordinaal van aard. De keuze van de activeringsfunctie is belangrijk in Logistische regressie, omdat voor binaire classificatieproblemen, het logboek van kansen in het voordeel, dwz de sigmoïde functie wordt gebruikt.

In het geval van een probleem met meerdere klassen, heeft de softmax-functie de voorkeur omdat een sigmoïde functie veel rekentijd kost.

De metriek die wordt gebruikt om een ​​classificatieprobleem te evalueren is over het algemeen Nauwkeurigheid of de ROC-curve. Hoe meer het gebied onder het ROC, hoe beter het model is. Een willekeurige grafiek zou een AUC van 0, 5 hebben. De waarde 1 geeft de meeste nauwkeurigheid aan, terwijl 0 de minste nauwkeurigheid aangeeft.

Logistieke regressie zou in het leren kunnen worden geschreven als -


3. K-dichtstbijzijnde buren

Machine Learning Algorithms kunnen worden gebruikt voor zowel classificatie- als regressieproblemen. Het idee achter de KNN-methode is dat deze de waarde van een nieuw datapunt voorspelt op basis van zijn K Dichtstbijzijnde buren. K heeft over het algemeen de voorkeur als een oneven nummer om conflicten te voorkomen. Bij het classificeren van een nieuw gegevenspunt wordt rekening gehouden met de klasse met de hoogste modus binnen de buren. Terwijl voor het regressieprobleem het gemiddelde als de waarde wordt beschouwd.

Ik heb geleerd dat de KNN is geschreven als -


KNN wordt gebruikt bij het bouwen van een aanbevelingsmotor.

4. Ondersteuning van vectormachines

Een classificatie-algoritme waarbij een hyperplane de twee klassen scheidt. In een binair classificatieprobleem worden twee vectoren uit twee verschillende klassen beschouwd als de ondersteunende vectoren en wordt het hyperplane getekend op maximale afstand van de ondersteunende vectoren.

Zoals u ziet, scheidt een enkele lijn de twee klassen. In de meeste gevallen zouden de gegevens echter niet zo perfect zijn en zou een eenvoudig hyperplane de klassen niet kunnen scheiden. Daarom moet u parameters afstemmen zoals Regularisatie, Kernel, Gamma, enzovoort.

De kernel kan lineair of polynoom zijn, afhankelijk van hoe de gegevens worden gescheiden. In dit geval is de kern lineair van aard. In het geval van regularisatie moet u een optimale waarde van C kiezen, omdat de hoge waarde kan leiden tot overfitting terwijl een kleine waarde het model zou kunnen passen. De invloed van een enkel trainingsvoorbeeld wordt bepaald door Gamma. Punten dichtbij de lijn worden beschouwd in hoog gamma en vice versa voor laag gamma.

In sklearn wordt SVM geschreven als -


5. Naïeve Bayes

Het werkt volgens het principe van de stelling van Bayes, dat de waarschijnlijkheid van een gebeurtenis, rekening houdend met enkele echte omstandigheden, vaststelt. Bayes Theorem wordt weergegeven als -

Het algoritme wordt Naive genoemd omdat het gelooft dat alle variabelen onafhankelijk zijn en de aanwezigheid van de ene variabele geen relatie heeft met de andere variabelen, wat in het echte leven nooit het geval is. Naive Bayes zou kunnen worden gebruikt in de classificatie van e-mailspam en in tekst.

Naïeve Bayes-code in Python -

6. Beslisboom

Het Decision Tree-algoritme wordt gebruikt voor zowel classificatie- als regressieproblemen en is een van de meest eenvoudige en gemakkelijk te interpreteren Machine Learning-algoritmen. Het wordt niet beïnvloed door uitbijters of ontbrekende waarden in de gegevens en kan de niet-lineaire relaties tussen de afhankelijke en de onafhankelijke variabelen vastleggen.

Om een ​​beslissingsboom te bouwen, worden eerst alle functies beschouwd, maar de functie met de maximale informatieversterking wordt genomen als de laatste basisknoop op basis waarvan de opeenvolgende splitsing wordt uitgevoerd. Dit splitsen gaat door op het onderliggende knooppunt op basis van de maximale informatiecriteria en stopt totdat alle instanties zijn geclassificeerd of de gegevens niet verder konden worden gesplitst. Beslisbomen zijn vaak gevoelig voor overfitting en daarom is het noodzakelijk om de hyperparameter af te stemmen, zoals maximale diepte, minimale bladknopen, minimale monsters, maximale functies enzovoort. Om overfitting te verminderen, is er een hebzuchtige aanpak die beperkingen oplegt bij elke stap en de best mogelijke criteria voor die splitsing kiest. Er is nog een betere aanpak genaamd Snoeien waarbij de boom eerst wordt opgebouwd tot een bepaalde vooraf gedefinieerde diepte en vervolgens vanaf de onderkant worden de knooppunten verwijderd als het model niet wordt verbeterd.

In sklearn worden beslissingsbomen gecodeerd als -



7. Willekeurig bos

Om overfitting in de beslissingsboom te verminderen, is het nodig om de variantie van het model te verminderen en zo is het concept van zakken ingevoerd. Bagging is een techniek waarbij de output van verschillende classificaties wordt genomen om de uiteindelijke output te vormen. Random Forest is zo'n methode voor het in zakken doen, waarbij de dataset wordt bemonsterd in meerdere datasets en de functies willekeurig worden geselecteerd voor elke set. Vervolgens wordt op elke bemonsterde gegevens het beslissingsboomalgoritme toegepast om de uitvoer van elke modus te krijgen. In het geval van een regressieprobleem wordt het gemiddelde van de output van alle modellen genomen, terwijl in het geval van classificatieprobleem de klasse met de maximale stem wordt geacht het gegevenspunt te classificeren. Random Forest wordt niet beïnvloed door uitbijters, ontbrekende waarden in de gegevens en het helpt ook bij het verminderen van de dimensionaliteit. Het is echter niet interpreteerbaar wat een nadeel is voor Random Forest. In Python zou je Random Forest kunnen coderen als -


8. K-betekent Clustering

Tot dusverre hebben we gewerkt met begeleide leerproblemen waarbij voor elke invoer een overeenkomstige uitvoer bestaat. Nu zouden we leren over niet-gecontroleerd leren waarbij de gegevens niet zijn geëtiketteerd en in specifieke groepen moeten worden geclusterd. Er zijn verschillende clusteringstechnieken beschikbaar. De meest voorkomende daarvan is echter de K-middelclustering. Inkt betekent, k verwijst naar het aantal clusters dat moet worden ingesteld voordat de maximale variantie in de gegevensset wordt gehandhaafd. Zodra de k is ingesteld, worden de zwaartepunten geïnitialiseerd. De zwaartepunten worden vervolgens herhaaldelijk aangepast zodat de afstand tussen de gegevenspunten binnen een zwaartepunt maximaal is en de afstand tussen twee afzonderlijke is maximaal. Euclidische afstand, Manhattan-afstand, enz., Zijn enkele van de afstandsformules die voor dit doel worden gebruikt.

De waarde van k kan worden gevonden uit de elleboogmethode.

K-betekent clustering wordt gebruikt in e-commerce-industrieën waar klanten worden gegroepeerd op basis van hun gedragspatronen. Het kan ook worden gebruikt in Risicoanalyse. Hieronder staat de python-code -


Conclusie: algoritmen voor machine learning

Data Scientist is de meest sexy baan in de 21ste eeuw en Machine Learning is zeker een van de belangrijkste expertisegebieden. Om een ​​Data Scientist te zijn, moet je een diepgaand begrip hebben van al deze algoritmen en ook verschillende andere nieuwe technieken zoals Deep Learning.

Aanbevolen artikelen

Dit is een handleiding voor machine learning-algoritmen. Hier hebben we het Concept, Categorieën, problemen en verschillende algoritmen van Machinetaal besproken. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Technieken voor machinaal leren
  2. Wat is diep leren
  3. Data Scientist versus Machine Learning
  4. Begeleid leren versus onbegeleid leren
  5. Machine leren van hyperparameter
  6. Wat is versterkingsleren?
  7. Meest gebruikte technieken van ensemble leren
  8. Volledige gids voor voorbeelden van C ++ algoritme
  9. Gids voor stadia van de levenscyclus van machine learning

Categorie: