Zephyrnet-logo

Verbetering van machine learning: definitie, functies, typen en functies

Datum:

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Introductie

Boosting is een belangrijk onderwerp in machine learning. Talloze analisten staan ​​versteld van de betekenis van deze uitdrukking. Daarom gaan we in dit artikel het stimuleren van Machine Learning definiëren en uitleggen. Met behulp van "boosting" kunnen machine learning-modellen de nauwkeurigheid van hun voorspellingen verbeteren. Laten we deze benadering eens nader bekijken:

Wat is stimuleren in machine learning?

Alvorens in te gaan op het onderwerp 'Machine Learning stimuleren', is het noodzakelijk om de betekenis van de term te onderzoeken. Boosting wordt gedefinieerd als 'iets aanmoedigen of helpen om te verbeteren'. Verbetering van machine learning doet hetzelfde doel door modellen voor machine learning te versterken en hun nauwkeurigheid te vergroten. Als gevolg hiervan is het een veelgebruikt algoritme in de datawetenschap.

In machine learning verwijst boosting naar de methoden die zwakke leermodellen omzetten in sterke. Stel dat we e-mails moeten categoriseren als 'Spam' of 'Geen spam'. Om deze verschillen te maken, kunnen we de volgende aanpak toepassen:

  • Als een e-mail slechts één afbeeldingsbestand bevat, is het spam (omdat de afbeelding meestal promotioneel is)
  • Als de e-mail begint met de regel 'Je hebt de loterij gewonnen', is het spam.
  • Als een e-mail alleen een verzameling links bevat, is het spam.
  • Als de e-mail afkomstig is van een bron in onze contactenlijst, is het geen spam.

Nu, terwijl we categorisatiecriteria hebben, gelooft u dat ze op zichzelf krachtig genoeg zijn om te bepalen of een e-mail oplichterij is of niet? Dat is niet het geval. Op zichzelf zijn deze principes onvoldoende om een ​​e-mail te categoriseren als 'Geen Spam' of 'Spam'. We zullen ze moeten versterken, wat we kunnen bereiken door een gewogen gemiddelde aan te nemen of door rekening te houden met de voorspelling van de meeste stemmen.

In deze situatie hebben we dus vijf classificaties, waarvan er drie de e-mail classificeren als 'Spam'. Aangezien deze klasse meer stemmen heeft dan de categorie 'Geen spam', beschouwen we een e-mail standaard als 'Spam'.

Dit voorbeeld was bedoeld om het concept van boosttechnieken te demonstreren. Ze zijn ingewikkelder dan dat.

Hoe werken ze?

Zoals te zien is in het voorgaande voorbeeld, combineert boosting zwakke leerlingen om strenge regels te genereren. Dus, hoe zou u deze gebreken in de regels herkennen? Om een ​​onbekende regel te ontdekken, moeten op instanties gebaseerde leertechnieken worden gebruikt. Telkens wanneer een basisleermethode wordt gebruikt, wordt een zwakke voorspellingsregel gegenereerd. Je herhaalt deze procedure talloze keren en het boosting-algoritme zal bij elke iteratie de zwakke regels samenvoegen tot een sterke regel.

Elke iteratie van het boosting-algoritme vindt de best mogelijke distributie. Het zal beginnen met het gelijk verdelen van de toewijzingen over verschillende categorieën. Waarnemingen krijgen meer gewicht als het eerste leerproces een fout maakt. Na het toewijzen van het gewicht gaan we naar de volgende stap.

In deze fase gaan we door met de procedure totdat de nauwkeurigheid van ons algoritme is verbeterd. De output van de zwakke leerlingen zal dan worden gecombineerd om een ​​sterke te produceren, wat ons model zal versterken en het in staat zal stellen om nauwkeurigere voorspellingen te doen. Een boosting-algoritme richt zich op de aannames die door onvoldoende regelgeving leiden tot buitensporige fouten.

Verschillende soorten stimulerende algoritmen

Boosting-algoritmen kunnen worden geïmplementeerd met behulp van een verscheidenheid aan verschillende typen onderliggende motoren, zoals margemaximalisaties, beslissingsstempels en andere. Er zijn drie primaire typen algoritmen voor vergroting van Machine Learning:

  1. Adaptive Boosting (ook bekend als AdaBoosta)
  2. Verloopversterking
  3. XGBoost

De eerste twee, AdaBoost en Gradient Boosting, worden in dit artikel kort besproken. XGBoost is een veel moeilijker onderwerp, dat we in een toekomstig artikel zullen behandelen.

Adaptief stimuleren

Denk aan een doos met vijf plussen en vijf minuten. Uw opdracht is om ze te categoriseren en te ordenen in verschillende tabellen.

In de eerste iteratie weegt u elk gegevenspunt gelijk en gebruikt u een beslissingsstomp in de doos. De lijn scheidt echter slechts twee pluspunten van de groep; de overige pluspunten blijven bij elkaar. Uw beslissingsstomp (dat is een lijn die door onze fictieve doos loopt) kan niet alle gegevenspunten nauwkeurig voorspellen en heeft drie plussen vervangen door minnen.

In de daaropvolgende iteratie geven we meer gewicht aan de drie pluspunten die we eerder over het hoofd zagen; maar deze keer scheidt de beslissingsstomp de groep slechts twee minuten van elkaar. We zullen de minnen die in deze iteratie over het hoofd zijn gezien opnieuw wegen en de procedure opnieuw starten. Na een paar herhalingen kunnen we verschillende van deze resultaten integreren om één enkele strenge voorspellingsregel te genereren.

AdaBoost werkt op dezelfde manier. Het begint door te voorspellen met behulp van de originele gegevens en elk punt gelijk te wegen. Dan geeft het meer gewicht aan observaties die de eerste leerling niet nauwkeurig kan anticiperen. Het herhaalt deze procedure totdat de nauwkeurigheid van het model een vooraf gedefinieerde limiet overschrijdt.

Adaboost ondersteunt beslissingsstempels en andere Machine Learning-methoden.

Hier is een AdaBoost-implementatie in Python:

van sklearn.ensemble importeer AdaBoostClassifier van sklearn.datasets importeer make_classification X,Y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, n_repeated=0, random_state=102) clf=(n_samples=4, n_features=0, n_informative=XNUMX, n_redundant=XNUMX, n_repeated=XNUMX, random_state=XNUMX). random_state=XNUMX, algoritme='SAMME') clf.fit(X, Y)

Verloopversterking

Gradient Boosting maakt gebruik van de Verloop afdaling aanpak om de verliesfunctie van de operatie te minimaliseren. Gradiëntdaling is een optimalisatieproces van de eerste orde voor het lokaliseren van het lokale minimum van een functie (differentieerbare functie). Gradiëntversterking traint verschillende modellen achter elkaar en kan worden gebruikt om innovatieve modellen te passen om een ​​nauwkeurigere benadering van de respons te bieden.

Het creëert nieuwe basisleerlingen die overeenkomen met de negatieve gradiënt van de verliesfunctie en zijn verbonden met het hele systeem. Gradient Tree Boosting is vereist in Python (ook bekend als GBRT). Het kan worden gebruikt om classificatie- en regressieproblemen op te lossen.

Hier is een implementatie van Python Gradient Tree Boosting:

van sklearn.ensemble import GradientBoostingRegressor model = GradientBoostingRegressor(n_estimators=3,learning_rate=1) model.fit(X,Y) # voor classificatie van sklearn.ensemble import GradientBoostingClassifier model = GradientBoostingClassifier() model.fit(X,Y)

Functies van Boosting in Machine Learning

Boosting biedt een aantal voordelen, maar net als elk ander algoritme heeft het bepaalde nadelen:

  • Aangezien boosting een ensemblemodel is, is het vrij natuurlijk om de voorspellingen ervan te interpreteren.
  • Het kiest ook indirect voor kenmerken, wat een ander voordeel is van deze techniek.
  • Boosting-algoritmen hebben een hogere voorspellende kracht dan beslisbomen en bagging.
  • Het opschalen is een beetje uitdagender, omdat elke schatter in boosting is gebaseerd op de vorige schatters.

Conclusie

Ik hoop echt dat je dit bericht over boosten informatief vond. Eerst hebben we gesproken over wat dit algoritme is en hoe het kan worden gebruikt om problemen in Machine Learning aan te pakken. Vervolgens werd nader ingegaan op de werking en de werking ervan.

We spraken ook over de vele soorten ervan. We leerden over AdaBoost en Gradient Boosting door hun voorbeelden, die we ook deelden.

Ik ben blij dat je het interessant vond. Om contact met mij op te nemen, kunt u dit op de volgende manieren doen:

LinkedIn

Mocht je nog vragen hebben, stel ze gerust via e-mail.

Lees meer artikelen over Machine Learning op onze blog.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt. 

Bron: https://www.analyticsvidhya.com/blog/2022/01/boosting-in-machine-learning-definition-functions-types-and-features/

spot_img

Laatste intelligentie

spot_img