Wanneer u begint met het leren van machinaal leren, is een van de eerste splitsingen deze: wat voor soort leren doet u? Het antwoord verandert alles: de algoritmen die voor u beschikbaar zijn, de gegevens die u nodig heeft en wat u van uw model kunt verwachten.
De twee fundamentele categorieën zijn onder toezicht leren en onbegeleid leren. Het begrijpen van het verschil is niet alleen academisch; het is de eerste beslissing die u neemt als u een nieuw ML-probleem aanpakt.
Het meest fundamentele verschil tussen begeleid en onbewaakt leren is of uw trainingsgegevens labels bevatten.
Gelabelde gegevens betekent dat elk voorbeeld in uw dataset het 'juiste antwoord' bevat: de uitkomst die u door het model wilt laten voorspellen of classificeren:
# Labelled dataset (supervised)
email_text | label
------------------------------------|-------
"Congratulations! You've won £1000" | spam
"Meeting rescheduled to Thursday" | not_spam
"URGENT: Your account is suspended" | spam
Niet-gelabelde gegevens betekent dat u over de invoer beschikt, maar geen vooraf gedefinieerde antwoorden – alleen de ruwe observaties:
# Unlabelled dataset (unsupervised)
customer_id | age | annual_spend | frequency | location
------------|-----|--------------|-----------|----------
C001 | 34 | £2,400 | 12/year | London
C002 | 52 | £18,000 | 52/year | Manchester
C003 | 28 | £650 | 3/year | London
Gelabelde gegevens zijn duur en tijdrovend om te produceren; er zijn mensen nodig om voorbeelden handmatig te annoteren. Er is een overvloed aan ongelabelde data (de meeste data ter wereld hebben geen labels). Deze praktische beperking bepaalt welke aanpak mogelijk is voor een bepaald probleem.
Bij begeleid leren leert het model een mapping van input naar output door gelabelde voorbeelden te bestuderen. De 'supervisor' is de gelabelde data zelf; elk trainingsvoorbeeld vertelt het model wat de juiste output zou moeten zijn.
Wanneer de uitvoer een afzonderlijke categorie is, is er sprake van een classificatieprobleem.
Voorbeelden:
Gemeenschappelijke algoritmen:
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
classifier = RandomForestClassifier(n_estimators=100)
classifier.fit(X_train, y_train)
accuracy = classifier.score(X_test, y_test)
print(f"Test accuracy: {accuracy:.2%}")
Als de uitvoer een continu getal is, is er sprake van een regressieprobleem.
Voorbeelden:
Gemeenschappelijke algoritmen:
from sklearn.ensemble import GradientBoostingRegressor
model = GradientBoostingRegressor(n_estimators=200, learning_rate=0.1)
model.fit(X_train, y_train)
predictions = model.predict(X_test)
# predictions = [245000, 182000, 412000, ...] (house prices in £)
Bij onbewaakt leren onderzoekt het model de structuur van gegevens zonder labels. In plaats van een mapping naar een bekende output te leren, ontdekt het zelf verborgen patronen, groeperingen of representaties.
Clusteralgoritmen groeperen vergelijkbare datapunten zonder dat hen wordt verteld wat de groepen moeten zijn.
Voorbeelden:
Gemeenschappelijke algoritmen:
from sklearn.cluster import KMeans
# We don't know how many customer segments exist — let's try 4
kmeans = KMeans(n_clusters=4, random_state=42)
kmeans.fit(customer_data_scaled)
# Each customer now has a cluster label (0, 1, 2, or 3)
df['segment'] = kmeans.labels_
# Analyse what each segment looks like
print(df.groupby('segment')[['age', 'annual_spend', 'frequency']].mean())
Comprimeer hoogdimensionale gegevens in minder dimensies, terwijl zoveel mogelijk structuur behouden blijft. Gebruikt voor visualisatie, voorverwerking en verwijdering van overtollige informatie.
Gemeenschappelijke algoritmen:
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# Reduce 50-dimensional data to 2D for visualisation
pca = PCA(n_components=2)
X_2d = pca.fit_transform(X_scaled)
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=cluster_labels, cmap='tab10')
plt.title('Customer segments visualised in 2D')
plt.show()
Het onderscheid tussen toezicht en toezicht is fundamenteel, maar het ML-landschap is rijker dan alleen deze twee categorieën.
Gebruikt een kleine hoeveelheid gelabelde gegevens gecombineerd met een grote hoeveelheid niet-gelabelde gegevens. Dit is erg praktisch omdat etiketteren duur is.
Voorbeeld: u heeft 1.000 gelabelde medische scans en 100.000 niet-gelabelde scans. Met semi-gecontroleerd leren kunt u profiteren van de niet-gelabelde gegevens om de prestaties te verbeteren boven wat de 1.000 labels alleen al zouden kunnen bereiken.
Een speciaal geval waarbij de labels automatisch worden gegenereerd op basis van de gegevens zelf. Dit is hoe moderne grote taalmodellen vooraf worden getraind.
Voorbeeld: Neem een zin, verberg enkele woorden en train het model om de ontbrekende woorden te voorspellen. De "labels" (de juiste woorden) zijn gratis; ze komen rechtstreeks uit de tekst zelf. Zo is BERT opgeleid.
Input: "The cat sat on the [MASK]."
Target: "mat"
Zelfgestuurd leren heeft een transformatief effect gehad omdat het training op internetschaal mogelijk maakt zonder menselijke annotatie.
Een agent leert door acties te ondernemen in een omgeving en beloningen of strafpunten te ontvangen. Er zijn geen labels – alleen feedbacksignalen van uitkomsten.
Voorbeelden: schaken, een robot trainen om te lopen, het koelsysteem van een datacenter optimaliseren. We gaan hier uitgebreid op in in zijn eigen les.
Hier is een praktisch beslissingskader:
Do you have labelled data?
├── YES → Supervised Learning
│ ├── Output is a category? → Classification
│ │ (spam/not spam, dog/cat, fraud/legit)
│ └── Output is a number? → Regression
│ (price, temperature, sales volume)
└── NO → Unsupervised Learning
├── Want to find groups? → Clustering
│ (customer segments, document topics)
├── Want to compress data? → Dimensionality Reduction
│ (visualisation, pre-processing)
└── Want to detect anomalies? → Anomaly Detection
(fraud, equipment failure)
Partially labelled? → Semi-Supervised Learning
Learning from interaction? → Reinforcement Learning
Je hebt 50.000 productrecensies zonder sterbeoordelingen of sentimentlabels. U wilt ze automatisch op onderwerp groeperen. Welke leeraanpak moet je gebruiken?
Inloggen deelnemen aan de discussie