Begreper & referanser
Alle nøkkelbegrepene, formlene og referansene fra Clustering og anomalideteksjon, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.
Begreper
Sentrale begreper fra kapittelet med korte definisjoner.
Å gruppere observasjoner etter likhet uten å ha kjente klasselabels.
En algoritme som veksler mellom å tilordne punkter til nærmeste sentroide og å beregne nye sentroider.
En tetthetsbasert algoritme som kan finne uregelmessige clusterformer og merke spredte punkter som støy.
Et DBSCAN-punkt med minst det påkrevde antallet punkter i sitt lokale nabolag.
Et punkt som DBSCAN verken gjør til kjernepunkt eller kobler tetthetsmessig til et cluster.
Å identifisere observasjoner som avviker tydelig fra hovedmønsteret i dataene.
En ensemblemetode som finner anomalier ved at uvanlige punkter vanligvis isoleres med få tilfeldige splitter.
Formler
Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.
k-means-målet
k-means søker cluster og sentroider som minimerer summen av kvadrerte avstander innen clusterne.
Sentroide
Sentroiden er gjennomsnittet av punktene som for tiden tilhører cluster .
DBSCAN-nabolag
DBSCAN teller punkter innen radius for å avgjøre om et punkt ligger i et tett område.
Isolation Forest-score
Kort forventet isolasjonssti gir en score nær 1 og tyder på at observasjonen er uvanlig.
Kodesnutter
Kodesnutter fra kapittelet, vist literal.
Fire k-means-iterasjoner med NumPy
import numpy as np rng = np.random.default_rng(4172)venstre = rng.normal(loc=(-1.8, -0.5), scale=0.35, size=(25, 2))hoyre = rng.normal(loc=(1.6, 0.8), scale=0.45, size=(25, 2))X = np.vstack([venstre, hoyre])sentroider = X[[3, 31]].copy() for steg in range(4): avstand = np.linalg.norm(X[:, None, :] - sentroider[None, :, :], axis=2) cluster = avstand.argmin(axis=1) maal = np.sum((X - sentroider[cluster]) ** 2) print(f"steg {steg}: mål={maal:.3f}, sentroider={np.round(sentroider, 2)}") sentroider = np.vstack([X[cluster == k].mean(axis=0) for k in range(2)])Implementasjonen viser de to vekslende k-means-stegene: nærmeste sentroide og nytt gjennomsnitt. Målet faller eller står stille for hver full iterasjon.
DBSCAN og Isolation Forest på samme syntetiske data
import numpy as npfrom sklearn.cluster import DBSCANfrom sklearn.ensemble import IsolationForestfrom sklearn.preprocessing import StandardScaler rng = np.random.default_rng(4172)normal = rng.normal(loc=(0, 0), scale=(1.0, 0.35), size=(90, 2))uvanlig = np.array([[4.2, 3.5], [-4.0, 3.2], [0.2, -3.8]])X = np.vstack([normal, uvanlig])Z = StandardScaler().fit_transform(X) cluster = DBSCAN(eps=0.45, min_samples=5).fit_predict(Z)anomali = IsolationForest(contamination=3 / len(Z), random_state=4172).fit_predict(Z) print("DBSCAN-støypunkter:", np.flatnonzero(cluster == -1))print("Isolation Forest-anomalier:", np.flatnonzero(anomali == -1))Metodene kan markere ulike observasjoner fordi DBSCAN spør om lokal tetthet, mens Isolation Forest spør hvor lett et punkt isoleres av tilfeldige splitter.
Læringsmål
Hva du skal kunne etter å ha lest kapittelet.
- 01Utføre tilordnings- og oppdateringssteget i k-means og beregne målfunksjonen
- 02Forklare hvordan skalering, initialisering og valg av k påvirker k-means
- 03Klassifisere kjerne-, grense- og støypunkter med DBSCAN-parametre
- 04Tolke Isolation Forest-stilengde og anomaliscore uten å kalle den en sannsynlighet
- 05Velge clustering- eller anomalimetode ut fra geometri, antakelser og bruksbehov