Ga naar hoofdinhoud

Introductie tot unsupervised learning

Leer over unsupervised learning, de typen—clustering, association rule mining en dimensionality reduction—en hoe het verschilt van supervised learning.
Kurtis Pykes
Kurtis Pykes

Maak je gratis account aan

Oefen en volg je voortgang.

Ga verder met GoogleDoor verder te gaan, accepteer je ons Gebruiksvoorwaarden, onze Privacybeleid en dat je gegevens in de VS worden opgeslagen.

Unsupervised learning, een fundamenteel type machine learning, blijft zich ontwikkelen. Deze benadering, die zich richt op inputvectoren zonder bijbehorende doelwaarden, heeft opmerkelijke vooruitgang geboekt in het groeperen en interpreteren van informatie op basis van gelijkenissen, patronen en verschillen. De nieuwste ontwikkelingen in diepe unsupervised-leermodellen hebben dit vermogen versterkt, waardoor een genuanceerder begrip van complexe datasets mogelijk is.

In 2024 zijn unsupervised-learningalgoritmen, die traditioneel niet vertrouwen op mappings van input naar output, nog autonomer en efficiënter geworden in het ontdekken van de onderliggende structuren van ongelabelde data. Deze onafhankelijkheid van ‘een leraar’ is versterkt door de opkomst van geavanceerde zelf-supervised learning-technieken, waardoor de afhankelijkheid van gelabelde data aanzienlijk afneemt.

Bovendien heeft het vakgebied stappen gezet in de integratie van unsupervised learning met andere AI-disciplines, zoals reinforcement learning, wat leidt tot meer adaptieve en intelligente systemen. Deze systemen blinken uit in het identificeren van patronen en afwijkingen in data en banen zo de weg voor innovatieve toepassingen in diverse sectoren. Dit artikel gaat dieper in op unsupervised learning, de verschillende typen en waar ze voor worden gebruikt. 

Supervised vs unsupervised learning 

In de onderstaande tabel vergelijken we enkele van de belangrijkste verschillen tussen unsupervised en supervised learning: 

 

Supervised learning

Unsupervised learning

Doel

Een functie benaderen die inputs naar outputs mapt op basis van voorbeeldparen van input en output. 

Een compacte representatie van de data opbouwen en daaruit creatieve inhoud genereren. 

Nauwkeurigheid

Zeer nauwkeurig en betrouwbaar.

Minder nauwkeurig en betrouwbaar. 

Complexiteit 

Eenvoudigere methode.

Rekenkundig complex.

Klassen 

Aantal klassen is bekend.

Aantal klassen is onbekend.

Output

Een gewenste outputwaarde (ook wel het supervisiesignaal genoemd).

Geen bijbehorende outputwaarden.

Typen unsupervised learning

In de inleiding noemden we dat unsupervised learning een methode is om data te groeperen wanneer er geen labels aanwezig zijn. Omdat er geen labels zijn, worden unsupervised-methoden meestal toegepast om een compacte representatie van de data te bouwen zodat we er creatieve inhoud uit kunnen afleiden. 

Als we bijvoorbeeld een nieuw product lanceren, kunnen we unsupervised-methoden gebruiken om te identificeren wie de doelgroep voor het nieuwe product zal zijn: er is immers geen historische informatie over wie de beoogde klant is en wat hun demografie is. 

Unsupervised learning is grofweg op te delen in drie hoofdactiviteiten: 

  • Clustering
  • Association rules
  • Dimensionality reduction.  

Laten we elk onderdeel verder verkennen:

Clustering

Vanuit theoretisch oogpunt hebben instanties binnen dezelfde groep doorgaans vergelijkbare eigenschappen. Je kunt dit fenomeen zien in het periodiek systeem. Leden van dezelfde groep, gescheiden door achttien kolommen, hebben hetzelfde aantal elektronen in de buitenste schillen van hun atomen en vormen bindingen van hetzelfde type. 

Dit idee ligt ten grondslag aan clusteringalgoritmen; clusteringmethoden groeperen ongetagde data op basis van hun gelijkenissen en verschillen. Wanneer twee instanties in verschillende groepen voorkomen, kunnen we afleiden dat ze uiteenlopende eigenschappen hebben. 

Clustering is een populaire vorm van unsupervised learning. Je kunt het nog verder opsplitsen in verschillende soorten clustering, bijvoorbeeld: 

  • Exclusieve clustering: Data wordt zo gegroepeerd dat een enkel datapunt exclusief tot één cluster behoort. 
  • Overlappende clustering: Een zachte clusterindeling waarbij een enkel datapunt tot meerdere clusters kan behoren met uiteenlopende lidmaatschapsgraden. 
  • Hiërarchische clustering: Een type clustering waarbij groepen worden gecreëerd zodat vergelijkbare instanties in dezelfde groep zitten en verschillende objecten in andere groepen. 
  • Probabilistische clustering: Clusters worden gecreëerd met behulp van kansverdelingen.

Association rule mining

Dit type unsupervised machine learning gebruikt een regelgebaseerde aanpak om interessante relaties tussen kenmerken in een dataset te ontdekken. Het werkt door met een interestmaat sterke regels te identificeren die in een dataset worden aangetroffen. 

Association rule mining zien we meestal bij market-basketanalyse: dit is een dataminingtechniek die retailers gebruiken om klantkooppatronen beter te begrijpen op basis van de relaties tussen verschillende producten. 

Het meest gebruikte algoritme voor association rule learning is het Apriori-algoritme. Er zijn echter ook andere algoritmen voor dit type unsupervised learning, zoals de Eclat- en FP-growth-algoritmen. 

Dimensionality reduction

Populaire algoritmen voor dimensionality reduction zijn onder meer principal component analysis (PCA) en singular value decomposition (SVD). Deze algoritmen proberen data van hoogdimensionale naar laagdimensionale ruimten te transformeren zonder dat betekenisvolle eigenschappen van de oorspronkelijke data verloren gaan. Deze technieken worden doorgaans ingezet tijdens exploratory data analysis (EDA) of tijdens dataverwerking om de data voor te bereiden op modellering.

Het is nuttig om tijdens EDA de dimensionaliteit van een dataset te verkleinen om data te kunnen visualiseren: data visualiseren in meer dan drie dimensies is namelijk lastig. Vanuit een dataverwerkingsperspectief vereenvoudigt het reduceren van de dimensionaliteit het modelleringsprobleem.

Wanneer er meer invoerkenmerken aan het model worden aangeboden, moet het model een complexere benaderingsfunctie leren. Dit fenomeen staat bekend als de “vloek van dimensionaliteit.” 

Toepassingen van unsupervised learning

De meeste leidinggevenden kunnen zonder moeite use-cases voor supervised machine learning benoemen; dat ligt anders voor unsupervised learning. 

Een mogelijke reden hiervoor is het eenvoudige gegeven van risico. Unsupervised learning brengt veel meer risico met zich mee dan supervised learning, omdat er geen duidelijke manier is om resultaten offline aan de werkelijkheid te toetsen, en een online evaluatie mogelijk te risicovol is. 

Toch zijn er op ondernemingsniveau verschillende waardevolle use-cases voor unsupervised learning. Naast het verkennen van data met unsupervised-technieken, zijn enkele veelvoorkomende toepassingen in de praktijk: 

  • Natural language processing (NLP). Google News staat erom bekend unsupervised learning te gebruiken om artikelen te categoriseren op hetzelfde verhaal uit verschillende nieuwsbronnen. Zo kunnen de resultaten van de voetbaltransferperiode allemaal onder voetbal worden gecategoriseerd.
  • Beeld- en videoanalyse. Visuele-perceptietaken zoals objectherkenning maken gebruik van unsupervised learning.
  • Detectie van anomalieën. Unsupervised learning wordt gebruikt om datapunten, gebeurtenissen en/of observaties te identificeren die afwijken van het normale gedrag van een dataset.
  • Klantsegmentatie. Interessante buyer persona’s kunnen worden opgesteld met unsupervised learning. Dit helpt bedrijven om de gemeenschappelijke kenmerken en koopgewoonten van hun klanten te begrijpen en hun producten daar beter op af te stemmen.
  • Aanbevelingssystemen. Eerder koopgedrag in combinatie met unsupervised learning kan bedrijven helpen datatrends te ontdekken die ze kunnen gebruiken om effectieve cross-sellingstrategieën te ontwikkelen.

Voorbeeld van unsupervised learning in Python

Principal component analysis (PCA) is het proces waarbij de hoofdcomponenten worden berekend en vervolgens gebruikt om een basisverandering op de data uit te voeren. Met andere woorden: PCA is een unsupervised-techniek voor dimensionality reduction. 

Het is om twee hoofdredenen nuttig om de dimensionaliteit van een dataset te verminderen: 

  1. Wanneer een dataset te veel dimensies heeft om te visualiseren 
  2. Om de meest voorspellende n dimensies te identificeren voor featureselectie bij het bouwen van een voorspellend model. 

In deze sectie implementeren we het PCA-algoritme in Python op de Iris-dataset en visualiseren we het vervolgens met matplotlib. Bekijk dit DataLab-werkboek om de code in deze tutorial te volgen. 

Laten we beginnen met het importeren van de benodigde libraries en de data.

from sklearn.datasets import load_iris # Dataset
from sklearn.decomposition import PCA # Algorithm
import matplotlib.pyplot as plt # Visualization

# Load the data 
iris_data = load_iris(as_frame=True)

# Preview
iris_data.data.head()
 

sepal length (cm)

sepal width (cm)

petal length (cm)

petal width (cm)

0

5.1

3.5

1.4

0.2

1

4.9

3

1.4

0.2

2

4.7

3.2

1.3

0.2

3

4.6

3.1

1.5

0.2

4

5

3.6

1.4

0.2

De Iris-dataset heeft vier features. Data in vier of meer dimensies visualiseren is onmogelijk, omdat we geen idee hebben hoe dingen er in zo’n hoge dimensie uitzien. Het op één na beste dat we kunnen doen, is het in drie dimensies weergeven. Dat is niet onmogelijk, maar nog steeds uitdagend. 

Bijvoorbeeld:

"""
Credit: Rishikesh Kumar Rishi
Link: https://www.tutorialspoint.com/how-to-make-a-4d-plot-with-matplotlib-using-arbitrary-data
"""
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
sepal_length = iris_data.data["sepal length (cm)"]
sepal_width = iris_data.data["sepal width (cm)"]
petal_length = iris_data.data["petal length (cm)"]
petal_width = iris_data.data["petal width (cm)"]

ax.scatter(sepal_length, sepal_width, petal_length, c=petal_width)
plt.show()

image1.png

Het is behoorlijk lastig om inzichten uit deze visualisatie te halen, omdat alle instanties door elkaar staan: we hebben in dit scenario bij 3D-visualisatie maar één gezichtspunt tot onze beschikking.  

Met PCA kunnen we de dimensies van de data terugbrengen naar twee, waardoor het eenvoudiger wordt om onze data te visualiseren en de klassen van elkaar te onderscheiden. 

Let op: Leer hoe je PCA in R implementeert in “Principal Component Analysis in R Tutorial.”

# Instantiate PCA with 2 components
pca = PCA(n_components=2)

# Train the model 
pca.fit(iris_data.data)
iris_data_reduced = pca.fit_transform(iris_data.data)

# Plot data
plt.scatter(
    iris_data_reduced[:,0],
    iris_data_reduced[:,1],
    c=iris_data.target
)
plt.show()

image2.png

In de bovenstaande code transformeren we de features van de Iris-dataset, waarbij we slechts twee componenten behouden, en plotten we de gereduceerde data vervolgens in een tweedimensionaal vlak.  

Nu is het veel eenvoudiger om informatie over de data en de scheiding tussen de klassen te verzamelen. We kunnen dit inzicht gebruiken om te beslissen over de volgende stappen als we een machinelearningmodel op onze data zouden fitten. 

Tot slot

Unsupervised learning verwijst naar een klasse problemen in machine learning waarbij een model wordt gebruikt om relaties in data te karakteriseren of te extraheren. 

In tegenstelling tot supervised learning ontdekken unsupervised-learningalgoritmen de onderliggende structuur van een dataset uitsluitend met invoerkenmerken. Dit betekent dat unsupervised-leermodellen geen leraar nodig hebben die ze corrigeert, anders dan bij supervised learning. 

In dit artikel heb je de drie hoofdtypen van unsupervised learning geleerd: association rule mining, clustering en dimensionality reduction. Je hebt ook verschillende toepassingen van unsupervised learning gezien en geleerd hoe je dimensionality reduction uitvoert met het PCA-algoritme in Python. 

Bekijk deze resources om verder te leren: 

Veelgestelde vragen

Wat is unsupervised learning in machine learning?

Unsupervised learning is een type machine learning waarbij een model wordt gebruikt om de onderliggende structuur van een dataset te ontdekken met alleen invoerkenmerken, zonder dat een leraar het model hoeft te corrigeren.

Wat zijn de hoofdtaken van unsupervised learning?

De hoofdtaken van unsupervised learning zijn clustering, association rules en dimensionality reduction.

Wat is clustering in unsupervised learning?

Clustering is een type unsupervised learning waarbij ongetagde data wordt gegroepeerd op basis van hun gelijkenissen en verschillen. Dit helpt om groepen met vergelijkbare eigenschappen te identificeren.

Wat is association rule mining in unsupervised learning?

Association rule mining is een type unsupervised learning dat een regelgebaseerde aanpak gebruikt om interessante relaties tussen kenmerken in een dataset te ontdekken. Dit wordt vaak gebruikt voor market-basketanalyse.

Wat is dimensionality reduction in unsupervised learning?

Dimensionality reduction is een techniek in unsupervised learning om data van hoogdimensionale naar laagdimensionale ruimten te transformeren zonder dat betekenisvolle eigenschappen van de oorspronkelijke data verloren gaan. Dit helpt om het modelleringsprobleem te vereenvoudigen.

Wat zijn enkele toepassingen van unsupervised learning?

Enkele toepassingen van unsupervised learning zijn natural language processing, beeld- en videoanalyse, anomaliedetectie, klantsegmentatie en aanbevelingssystemen.

Hoe kan PCA worden gebruikt voor dimensionality reduction in unsupervised learning?

PCA is een populair algoritme voor dimensionality reduction in unsupervised learning. Het probeert data van hoogdimensionale naar laagdimensionale ruimten te transformeren zonder dat betekenisvolle eigenschappen van de oorspronkelijke data verloren gaan. Dit kan het modelleringsprobleem vereenvoudigen en het visualiseren van data makkelijker maken.

Hoe is unsupervised learning de afgelopen jaren geëvolueerd?

Unsupervised learning heeft een aanzienlijke evolutie doorgemaakt, vooral met vooruitgang in deep learning. In de afgelopen jaren zijn geavanceerdere deep unsupervised-leermodellen ontwikkeld die uitblinken in patroonherkenning en datainterpretatie. Innovaties in generatieve modellen, self-supervised learning en integratie met reinforcement learning zijn eveneens noemenswaardig. Deze ontwikkelingen hebben de toepasbaarheid van unsupervised learning vergroot in complexe scenario’s zoals analyse van hoogdimensionale data, realistische datageneratie en autonome beslissystemen.

Wat zijn de verschillen tussen supervised, unsupervised en semi-supervised learning?

Supervised learning traint een model op een gelabelde dataset, waarbij elk voorbeeld is gekoppeld aan een outputlabel. Unsupervised learning werkt daarentegen met ongelabelde data en richt zich op het identificeren van patronen en structuren in de data. Semi-supervised learning combineert elementen van beide: een kleine hoeveelheid gelabelde data naast een grotere set ongelabelde data, wat vooral nuttig is wanneer gelabelde data verkrijgen duur of tijdrovend is.

Wat zijn generatieve modellen in unsupervised learning, en hoe worden ze gebruikt?

Generatieve modellen in unsupervised learning zijn algoritmen die leren om nieuwe datapunten te genereren die lijken op de inputdata. Deze modellen vangen de verdeling en patronen van de inputdataset en produceren nieuwe, synthetische datainstanties. Ze worden uitgebreid gebruikt in diverse toepassingen, zoals beeld- en videogeneratie, medicijnontdekking en het synthetiseren van realistisch ogende data voor het trainen van andere machinelearningmodellen.

Onderwerpen

Gerelateerd