InfoNu.nl > Pc en Internet > Diversen > Voorspellen met Machine Learning

Voorspellen met Machine Learning

Voorspellen met Machine Learning Onder Machine Learning vallen alle technieken die het mogelijk maken dat een computer een bepaalde taak goed kan doen, zonder dat daarvoor expliciet de opdracht is geprogrammeerd. Doel is om verbanden te leren zien, zodat analyses en voorspellingen kunnen worden gedaan, waarop gewogen besluiten kunnen worden genomen. Dit automatisch leren of Machine Learning, ML of Machinaal Leren, valt als (interdisciplinair) onderzoeksveld binnen Kunstmatige Intelligentie (Artificial Intelligence, kortweg: AI). Door de ontwikkeling van algoritmes en technieken waarmee computers kunnen leren is het mogelijk dat computers zelfstandig taken, waaronder analyses en voorspellingen, uitvoeren. Hierdoor kan veel sneller en goedkoper worden gewerkt.

Wat is Machine Learning?

In het vakgebied Machine Learning (ML) staat het onderzoek naar de formulering van algoritmes centraal. Een algoritme is een bepaalde reeks van instructies die vanaf een vast bepaald startpunt naar een gegeven doel leidt. Het gaat dus om een beschrijving van een bepaalde beginsituatie met instructies over hoe daarmee moet worden omgegaan, met daarin opgesloten de oplossing voor een bepaald probleem. Het kan dan gaan om het verklaren van het verleden of het voorspellen van de toekomst. Wil je de toekomst kunnen voorspellen zul je eerst inzicht moeten krijgen in het verleden.

Een recept voor witloftaart is ook een soort algoritme: je hebt je beginsituatie en je weet wat het eindresultaat moet zijn. Vervolgens leg je in stapjes, in de juiste volgorde, uit hoe je bij het eindproduct komt. Een formeel algoritme gaat meestal over informatie en betreft een rekenkundig proces zodat de computer exact weet welke stappen er moeten gebeuren en in welke volgorde deze moeten plaatsvinden om tot een gegeven eindresultaat te komen. Hierin moet nauwkeurig worden vastgelegd wat de mogelijke invoerdata kunnen zijn en hoe hiermee om te gaan. Dit gebeurt met een computerprogramma waarin je het algoritme in een bepaalde computertaal uitvoert. Dit is de broncode.

Programmeren

Er zijn verschillende manieren om tegen een situatie aan te kijken en het mogelijke eindresultaat te bereiken. Dit vertaalt zich in verschillende manieren van programmeren. Zo heb je procedureel programmeren (ook imperatief programmeren genoemd) waarin stap voor stap wordt uiteengezet wat het programma achtereenvolgens moet doen. Maar je hebt ook object georiënteerd programmeren waarin je programmeert door objecten in te delen in klassen en hier eigenschappen aan te hangen (attributen) en functies (acties, berekeningen, bewerkingen, enzovoorts). Programmeertalen voor data-analyse zijn bijvoorbeeld R, Python en Scala.

Algoritmes

Een algoritme moet kunnen leren van en analyses en voorspellingen kunnen doen op basis van inkomende data. Door deze te analyseren kan de computer zijn oorspronkelijke opdracht steeds verder verfijnen, waarbij het doel hetzelfde blijft, maar de methode om dit te bereiken wordt geoptimaliseerd onder invloed van de eigen (statistische) data-analyse. De opdracht die je het algoritme meegeeft is dus heel belangrijk.

De opkomst van Machine Learning

Machine Learning is niet nieuw, maar wel belangrijk in opkomst in de 21e eeuw. Door big data, de overvloed aan gegevens, de behoefte aan uitbreiding van de data-analysemogelijkheden en voorspelmodellen door de behoefte aan business intelligence, en de beschikbaarheid van de benodigde rekenkracht.

De beperkingen van Machine Learning

De analyses en voorspelmodellen geven een correlationeel verband, maar niet per se een causaal verband. Je weet dus dat er samenhang is, maar niet hoe die samenhang er precies uitziet. Veel voorspelmodellen zijn gebaseerd op historische data en het verleden is niet altijd een garantie voor de toekomst.

In veel gevallen verdeel je je data in een (willekeurig) deel trainingsdata en een groter deel testdata. Zo train je je voorspelmodel.
Je berekent altijd eerst de beschrijvende statistieken van je data. Vaak ga je hier later mee aan de slag in je algoritme.
De algoritmes zijn door mensen gemaakt en kunnen dus bias hebben (een bepaalde vooringenomenheid) of uitgaan van andere (onbewust of bewust) verkeerde principes. De keuzes die de data-scientist of programmeur maakt tijdens het bouwen van het algoritme zijn rechtstreeks van invloed op het resultaat en dus goed om mee te nemen.

De resultaten van de voorspelmodellen moeten op een goede manier geïnterpreteerd worden. De analyse van het resultaat is daarmee een erg belangrijke factor om tot een goed voorspelmodel te kunnen komen. Als je ziet dat uit data blijkt dat mensen met kinderen minder snel een baan vinden dan mensen zonder kinderen zou je kunnen denken dat dit ligt aan de ouders zelf of aan de kinderen op zich, maar hoogstwaarschijnlijk zit daar bijvoorbeeld de noodzaak voor goede kinderopvang of flexibele werktijden achter.

De methoden van Machine Learning

Er kunnen twee methoden van Machine Learning worden onderscheiden, naast een derde restcategorie:
  1. Supervised learning
  2. Unsupervised learning
  3. Andere types of Semi-supervised learning

Binnen deze categorieën vallen onder meer de volgende methoden:

1. Supervised learning
  • Classificatie
  • Regressie

2. Unsupervised learning
  • Clustering
  • Anomalie detectie
  • Frequent subsets
  • Association rules

3. Andere types
  • Reinforcement Learning
  • Recommender Systems
  • Deep Learning

Supervised learning

Via Supervised Learning ofwel gecontroleerd leren leer je een computer om data te interpreteren door zowel de inputdata als de outputdata te leveren. De machine gaat dus zelf aan de slag om de data te categoriseren op basis van de informatie die je aanlevert. Je geeft bijvoorbeeld de criteria op waaraan een bepaalde bloem moet voldoen om tot een gegeven soort te worden gerekend (input) en geeft aan wat de output moet zijn, wat betreft label, klasse of doel. Denk aan de grootte van de bloemblaadjes, kleur van de bloemblaadjes, lengte van de stengel, enzovoorts. De computer analyseert de data en komt met een resultaat; een voorspelmodel. Wat is de kans dat een bloem tot een bepaalde soort behoort? Zo kunnen de onderliggende, voorspellende modellen worden gevonden. Maar hiervoor is het altijd noodzakelijk dat de data wordt gelabeld volgens het gewenste resultaat. En dat moet je dan natuurlijk wel weten.

Classificatie

Verschillende datapunten worden onderverdeeld in klassen. Dit is het label dat je meegeeft. Het model voorspelt tot welke klasse een nieuw datapunt moet behoren. Dit is een handige methode wanneer er een snelle beslissing op basis van de data nodig is.
Voorbeelden van algoritmes hier zijn:
  • logistische regressie: het verband tussen een dichotome afhankelijke variabele, een variabele met twee uitkomstmogelijkheden, zoals dood of levend of wel versus niet, en een of meerdere onafhankelijke variabelen of predictoren. Als voorbeeld: zullen mensen wel of niet een huis kopen als we de leeftijd, het inkomen en het aantal dagen dat mensen een woning zoeken weten?
  • k-NN ofwel k-Nearest Neighbour: Hiermee bepaal je de kans dat een bepaald datapunt behoort tot een bepaalde klasse gelet op de klasse waar het meest dichtstbijzijnde punt of punten (afhankelijk van je definitie van K=x) toebehoort.
  • neurale netwerken: complexe adaptieve netwerken bestaande uit processoren (vergelijkbaar met breinneuronen) die input en output van data genereren, die met elkaar in verbinding staan en waarvan je de weging van de verbindingen kan variëren. Bij supervised learning zorg je ervoor dat het neurale netwerk heel veel voorbeelden krijgt als input met het gewenste of bekende resultaat. Door deze trainingsset, en er geldt hoe groter hoe betrouwbaarder, kan het zichzelf leren te optimaliseren en steeds beter te worden in het herkennen van patronen.
  • Naive Bayesiaanse classifier: Geschikt voor grote datasets, omdat er geen gecompliceerde parameters geformuleerd hoeven te worden, onderzoekt dit algoritme in hoeverre predictoren onafhankelijk van elkaar zijn op basis van het theorem van Bayes. De regel van Bayes is de voorwaardelijke kans P(A|B) voordat bekend is of de gebeurtenis B al of niet heeft plaatsgevonden.
  • Support Vector Machine: Bij een Support Vector Machine (SVM) worden de datapunten uitgezet in een vectorruimte (een driedimensionale ruimte waarin datapunten met de coördinaten x, y, x worden voorgesteld). De classificatie wordt vervolgens uitgevoerd door te zoeken naar punten die de marge tussen twee klassen maximaliseren: het hypervlak, zodat de scheiding tussen de twee klassen zo groot mogelijk is. De vectors die het hypervlak bepalen, en dus het meest dichtbij liggen, zijn de support vectors.
  • decision trees of random forests: vooraf moet ingegeven worden welke kolom in de dataset de onderscheidende factor moet worden. Het model deelt vervolgens de dataset op in steeds meer homogene subsets, zodat de gelijkenis met een boom ontstaat. Elke 'decision node' of beslisknoop verwijst naar een beslissing of klasse, waarbij de 'root node', ofwel de eerste en bovenste knoop, de beste voorspeller is. Kijk je naar een dataset met gegevens over de personen die op de Titanic waren, dan kun je als onderscheidende eigenschap 'Wel/Niet overleden' nemen om te bepalen wat de beslissende factoren waren om de Titanic wel of niet te overleven. Een random forest is een verzameling van decision trees.

Mogelijke toepassingen: Medische diagnoses, klantprofielen, beeldherkenning, beoordeling van kredietaanvragen, churn (rate) prediction (hoeveel klanten of abonnees verlaten een leverancier in een gegeven periode).

Regressie

Op basis van een gegeven set van numerieke waarden kun je voorspellingen doen over de numerieke waarde van een nieuw datapunt, waarbij het label waarmee je je data categoriseert ook een numerieke waarde heeft.

Voorbeelden van algoritmes hier zijn:
  • (Multiple) lineaire regressie: door de geobserveerde data met de te voorspellen data te vergelijken voor een afhankelijke uitkomstvariabele (=y) kom je tot een voorspelling van een of meer onafhankelijke voorspeller (x). Door te achterhalen hoe je de relatie tussen x en y het beste kunt weergeven voorspel je kortom de ideale regressielijn. Bijvoorbeeld als je geïnteresseerd bent in de samenhang tussen lengte en gewicht en de leeftijd van het kind, dan verwachten we dat lengte en gewicht (de onafhankelijke x-variabelen) voorspellers zijn voor de leeftijd van het kind (de afhankelijke y-variabele). Dus hoe groter en zwaarder, hoe ouder het kind zal zijn. Op basis van de data kun je de leeftijd voorspellen bij gegeven datapunten voor lengte en gewicht.
  • En opnieuw k-NN, neurale netwerken, support vector machine, decision trees.

Mogelijke toepassingen: Voorspellingen van aandelen, omzetprijzen, huizenprijzen (bijvoorbeeld: gegeven het aantal kamers, de grootte van de tuin en de nabijheid van natuur wat is dan de verwachte verkoopprijs, gelet op de bekende huizenprijzen in de dataset.

Unsupervised learning

Bij unsupervised learning geef je het model geen voorbeelden of labels mee, maar laat je het zelf patronen en structuren in de data ontdekken.

Clustering

Als je een set van datapunten als uitgangspunt neemt is de vraag hier: kunnen we binnen deze data groepen vinden? Dit is handig om de data te verkennen en bepaalde kenmerken van de data te ontdekken.

Anomaly Detection

Met behulp van dit algoritme kun je zien of er uitschieters (outliers) zijn in een gegeven dataset.

Frequent Subsets

Welke data items horen bij elkaar en vormen subsets in een dataset.

Association rules

Bij dit algoritme wordt onderzocht in welke mate er samenhang is tussen de support voor een item (X, het aantal keer dat een item voorkomt in de database) en de confidence voor een itemset (Y, het aantal keer dat items samen voorkomen; vergelijkbaar met het algoritme van frequent subsets). Door het totaal aantal transacties (T) mee te nemen in de vergelijking kan een regel (rule) worden opgesteld. Bijvoorbeeld de regel dat boter, brood en pindakaas relatief vaak samen worden gekocht. Vervolgens kan op basis van deze gegevens de lift worden bepaald. Is deze gelijk aan 1 dan zijn de variabelen onafhankelijk, anders komen ze vaker of minder vaak voor dan je zou verwachten en is er dus sprake van een afhankelijkheidsrelatie. Om de kracht van de voorspelling te bepalen wordt de conviction bepaald van de rule, waarin je rekening houdt met de kans dat de rule behoort tot het aantal incorrecte voorspellingen. Zo kun je op basis van de data bepalen voorspellen welke items betekenisvol samen voorkomen, zodat je je marketing, prijsbeleid of product placement hierop kunt aanpassen.

Mogelijke toepassingen: fraudeherkenning, sensor monitoring, data opschonen (het proces om foutieve en corrupte data te ontdekken en aan te passen of te verwijderen), market-basket-analyse om je dienstverlening op aan te passen (shampoo wordt vaak samen met crèmespoeling gekocht, een burger van de gemeente zal wanneer hij aangeeft sinds kort op zoek te zijn naar werk ook vaak een sollicitatietraining willen volgen).

Andere types

Hierbij gaat het om algoritmes die zowel binnen supervised als unsupervised leren vallen of juist in geen van de twee categorieën. Het algoritme leert gedrag door een (al dan niet vertraagde) beloning of straf. Een voorbeeld hiervan is het spel Go.

Reinforcement learning

Bij reinforcement learning is het de bedoeling dat het algoritme leert via trial en error door feedback te geven aan de 'agent' in de vorm van beloning of straf welke acties de hoogste beloning in een dynamische omgeving binnen een bepaalde tijd opleveren.
Zo leert het algoritme ons welke acties de grootste beloningen opleveren en dus de voorkeur verdienen. Reinforcement leren wordt vaak ingezet voor robotica, (serious) gaming en navigatiebegeleiding.

Recommender Systems

Een voorbeeld van Recommender Systems is de service van onder meer Amazon en bol.com om via een voorspelmodel suggesties te doen voor verdere aankopen op basis van de eigen eerdere aankopen en aankopen van miljoenen andere kopers.

Deep Learning

Onderdeel van Machine Learning is Deep Learning. In plaats van taakgerichte algoritmes wordt hier patroonherkenning gebruikt om algoritmes uit te voeren. Met behulp van zogenaamde digitale hersencellen worden neurale netwerken gevormd die informatie inventariseren, analyseren en combineren. Hierdoor kan een computer een taal leren, zich de verkeersregels eigen maken en leren schaken. Er ontstaat een steeds duidelijker en meer gedetailleerd beeld van de data, zoals je ook in het (schemer)donker steeds meer contouren ziet als je je blijft focussen op je omgeving.

Heeft je neurale netwerk meer dan twee tussenlagen, dan spreken we van deep neural networks, waarbij elke tussenlaag een aparte taak heeft, zodat je het herkenningsproces opdeelt in kleine stapjes. Door de complexiteit van deze neurale netwerken is hier sprake van Deep Learning. Een voorbeeld van Deep Learning is DeepDream, Google's herkenningssoftware voor onder meer verkeer, gezichten en katten.

De toekomst van Machine Learning

Anno 2018 wordt ons leven al meer gestuurd door algoritmes dan we beseffen. We laten overal onze digitale voetsporen en vingerafdrukken na. Deze data worden gebruikt, voor gerichte marketing, maar ook voor algemene data-analyses en voorspellingen. De machtstructuren van grote bedrijven en overheden bepalen hierin wat er gebeurt. Elke keer dat we invullen wat we verstaan onder een verkeerslicht of een auto bijvoorbeeld helpen we Google's algoritme bij verkeersherkenning, zodat onder meer zelfrijdende auto's dichterbij komen. Ons surfgedrag op internet verraadt waar we ons mee bezighouden en geeft onze angsten, behoeften en verlangens bloot. Klantcontacten worden opgenomen. Ook de overheid wil graag meer van ons weten om de veiligheid en controle te verhogen. WhatsApp geeft aan wanneer we online zijn, maar weet ook wie onze contacten zijn, waar we zijn wanneer we berichten sturen en aan wie. Google scant de inhoud van onze mails en geeft suggesties op basis daarvan. We zien wat we willen zien. Of wat het algoritme denkt dat we willen zien. We worden constant in de gaten gehouden en gemanipuleerd. Ontsnappen is feitelijk niet mogelijk. Privacy en big data staan dan ook op gespannen voet met elkaar.

De macht van Machine Learning

Het besef van de macht van algoritmes komt gaandeweg op gang, maar veel mensen realiseren zich niet dat ze er al door geleefd worden. Niet alleen ons leven wordt bepaald door AI, maar wijzelf ook. Er is wel een tegengeluid, maar dat komt ook in 2018 moeizaam en langzaam op gang. In de AVG (internationaal bekend als de GDPR) bijvoorbeeld staat bepaald dat bijvoorbeeld een hypotheek niet mag worden beoordeeld door een algoritme alleen, maar dat bij ingrijpende beslissingen ook een mens naar de informatie moet hebben gekeken. Maar wie kan alles controleren? En als je het algoritme vertrouwt, waarom zou je het dan tegenspreken? Dat is de vraag. Mensen maken zich wel druk over Facebook, Google, Samsung en WhatsApp, maar niet genoeg. Want als je een bepaalde directe service krijgt, ruil je er je het abstracte privacy er voor in. Mensen gaan ervan uit dat grote bedrijven en overheden zich ethisch gedragen, dat ze zich gedragen zoals het hoort. Maar hoe hoort het eigenlijk? En wie bepaalt dat? Wie heeft de macht of wie is de macht? Om hier een goed antwoord op te vinden en goed mee om te kunnen gaan is meer nodig dan een GDPR of nieuwe ethiek. Daarvoor zijn nieuwe wereldwijde wetten nodig. Hoe eerder hoe beter.
© 2018 Sage, het auteursrecht (tenzij anders vermeld) van dit artikel ligt bij de infoteur. Zonder toestemming van de infoteur is vermenigvuldiging verboden.
Gerelateerde artikelen
Kunstmatige intelligentie: een inleidingEr wordt veel over gesproken: kunstmatige intelligentie. Volgens velen is dit het einde van de mensheid. Robots zullen i…
Van kleine instructies naar grote processenVan kleine instructies naar grote processenHet centrale deel van de computer is de processor, de CPU. De processor voert eenvoudige instructies uit die achter elka…
Effectiever leren met blended learningEffectiever leren met blended learningLeren doe je van en met elkaar, dat was altijd de basis van opleiding en onderwijs. Dat is nog steeds zo, maar in deze t…
TLC (televisiezender)TLC (televisiezender)TLC is een themakanaal van Discovery Channel en heette eerst 'The Learning Channel'. Oorspronkelijk komt TLC uit Amerika…
Organisatieleren: de actietheoretische benaderingDe actietheoretische benadering is één van de benaderingen waaruit gekeken kan worden naar het leren van organisaties. D…
Bronnen en referenties
  • Inleidingsfoto: GDJ, Openclipart (bewerkt)
  • http://www.saedsayad.com/modeling.htm (laatst geraadpleegd op 28 oktober 2018)
  • https://tweakers.net/reviews/5901/3/neurale-netwerken-de-beslissende-kracht-achter-internet-hoe-werkt-een-neuraal-netwerk.html (laatst geraadpleegd op 28 oktober 2018)
  • http://user.it.uu.se/~kostis/Teaching/DM-05/Slides/association1.pdf (laatst geraadpleegd op 28 oktober 2018)
  • https://en.wikipedia.org/wiki/Association_rule_learning (laatst geraadpleegd op 28 oktober 2018)
  • https://www.theguardian.com/commentisfree/2018/oct/28/regulate-ai-new-laws-code-of-ethics-technology-power (laatst geraadpleegd op 28 oktober 2018)

Reageer op het artikel "Voorspellen met Machine Learning"

Plaats als eerste een reactie, vraag of opmerking bij dit artikel. Reacties moeten voldoen aan de huisregels van InfoNu.
Meld mij aan voor de tweewekelijkse InfoNu nieuwsbrief
Ik ga akkoord met de privacyverklaring en ben bekend met de inhoud hiervan
Infoteur: Sage
Laatste update: 31-10-2018
Rubriek: Pc en Internet
Subrubriek: Diversen
Bronnen en referenties: 6
Schrijf mee!