Klusteranalyse er en uovervåget læringsteknik, der bruges til at opdage grupper af data, hvor objekterne i hver gruppe (eller klynge) har lignende egenskaber. Et klassisk eksempel på at bruge en klusteralgoritme er at klassificere kundernes købspræferencer for bestemte produkter. For eksempel kan en frugtbutik ønske at identificere, hvor mange kunder der foretrækker at købe specifikke frugter som æbler, ananas, bananer, pærer eller druer, samt hvor meget de køber. Afhængig af undersøgelsesresultaterne kan butikken opdele kunderne i forskellige grupper eller klynger. Dette er et typisk eksempel på eksklusiv klustering, hvor hver kunde kun kan tilhøre én gruppe uden nogen overlapning mellem grupperne.

Associeringsregler er en teknik, der bruges til at afdække skjulte relationer mellem variabler i store datasæt. Det er en metode til at finde mønstre eller relationer mellem variabler i dataene og bruge disse relationer til at lave forudsigelser eller beslutninger. Et klassisk eksempel er at identificere relationer mellem produkter, der ofte købes sammen. For eksempel kan en regel være: "Hvis en kunde køber et stor-skærms tv, vil de også sandsynligvis købe et vægmonteringsbeslag". Denne type regler kan hjælpe med at informere beslutninger om butikslayout, produktplacering og markedsføringsstrategier.

Lad os nu fokusere på klusteralgoritmer. Ifølge Fig. 8.1 kan vi overveje fire typer af klusteralgoritmer:

  1. Eksklusiv klustering

  2. Overlappende klustering

  3. Hierarkisk klustering

  4. Probabilistisk klustering

Lad os undersøge disse algoritmer nærmere én ad gangen.

Eksklusiv klusteralgoritme

Som nævnt tidligere er eksklusiv klustering en form for hård klustering, hvor et datapunkt udelukkende tilhører én klynge. Denne type klustering adskiller sig fra blød klustering, hvor datapunkter kan tilhøre flere klynger i forskellige grader. K-means-algoritmen er et klassisk eksempel på eksklusiv klustering. Denne algoritme deler dataene op i K klynger, hvor K er et forudbestemt antal klynger. K-means er centroidsbaseret, hvilket betyder, at hver klynge har et centralt punkt, kaldet centroiden. Alle datapunkter i klyngen er tættest på denne centroid.

K-means-algoritmen fungerer ved først at tildele nogle tilfældige centroids til datasættet og derefter placere datapunkterne i de klynger, der er nærmest deres respektive centroid. Centroiden for hver klynge opdateres derefter ved at beregne gennemsnittet af alle datapunkter i den klynge. Denne proces fortsætter, indtil centroids ikke ændrer sig mere, hvilket indikerer, at modellen er optimeret. Men hvordan finder man det optimale K-værdi? To metoder bruges ofte til at bestemme den optimale K:

  1. Elbow-metoden

  2. Silhouette-metoden

Elbow-metoden

Elbow-metoden er en af de mest populære metoder til at bestemme K-værdien i K-means-algoritmen. Målet er at finde den værdi af K, hvor den samlede afstand (Sum of Squared Distance, SSD) mellem datapunkterne og deres respektive centroids begynder at flade ud. Når SSD-værdien ikke længere reduceres væsentligt ved at øge K, har vi fundet den optimale K. Grafisk kan dette ses som et knæk ("elbow") i SSD-kurven. Når K er for lille, vil SSD være højt, da datapunkterne ikke er godt fordelt i klyngerne, men når K stiger, vil SSD falde, indtil det flader ud, hvilket indikerer den optimale K.

Silhouette-metoden

Silhouette-metoden er en anden teknik, der bruges til at evaluere, hvor godt datapunkter er tildelt deres klynger. Metoden måler, hvor tæt et punkt er på de andre punkter i samme klynge (kohæsion), sammenlignet med afstanden til punkterne i andre klynger (separation). Silhouettescoren for et punkt beregnes som forskellen mellem disse to afstande, divideret med den største af de to værdier. Et højt silhouettescore indikerer, at punktet er godt tildelt sin klynge. Ved at teste forskellige værdier af K kan man finde den K, der giver den højeste silhouettescore og dermed den optimale klyngefordeling.

Overlappende klusteralgoritme

I modsætning til eksklusiv klustering, hvor datapunkter kun tilhører én klynge, tillader overlappende klustering datapunkter at tilhøre flere klynger i forskellige grader. Dette er en form for blød klustering, hvor et datapunkt kan være delvist tilknyttet flere klynger. Et klassisk eksempel på brug af overlappende klustering er i analyse af kundeklubber. For eksempel kan en kunde, der er medlem af Costco, også være medlem af Sam’s Club og måske endda være medlem af JB Club. Denne type klustering bruges til at finde overlapninger og vurdere, hvordan kunder interagerer med forskellige klynger af produkter eller tjenester.

Det er vigtigt at bemærke, at valget af klusteralgoritme afhænger af datatypen og formålet med analysen. Eksklusiv klustering er ideel til situationer, hvor datapunkter entydigt skal tildeles én kategori, mens overlappende klustering er mere velegnet til scenarier, hvor datapunkterne har flere egenskaber, der kan gøre dem del af flere grupper. Desuden skal der tages højde for, at hver metode kræver, at K-værdien bestemmes korrekt, og dette kan være en udfordring, især for større og mere komplekse datasæt. Yderligere kan resultaterne af klustring bruges til mere avancerede analyser og beslutningsstøtteværktøjer i forretningsstrategi og markedsføring.

Hvordan vurderer man effektiviteten af en regressionsmodel?

At minimere fejl og opnå en bedst mulige pasform i en regressionsanalyse kræver en systematisk tilgang. Dette kan gøres gennem en matematisk operation, hvor målet er at finde værdierne af β0 og β1, der reducerer summen af kvadraterne af fejlene. En sådan optimering kan udtrykkes med den matematiske ligning, som har til formål at minimere summen af kvadraterne af de residuale fejl mellem de observerede og de beregnede værdier.

Når man arbejder med lineær regression, er et centralt mål at finde en model, der bedst beskriver forholdet mellem de uafhængige og afhængige variable. I mange tilfælde vil man støde på to forskellige modeller: en hvor y-skæringen er inkluderet og en anden hvor den ikke er. Hvordan vurderer man, hvilken model der er bedst? Dette kan gøres ved at bruge R² metoden, også kaldet bestemmelseskoefficienten. R² er et mål for, hvor tæt de værdier, som modellen beregner, ligger på de faktiske data, og giver et billede af, hvor godt modellen forudsiger den afhængige variabel.

R² beregnes ud fra residualvariansen i den tilpassede model og falder altid mellem 0 og 1. Jo højere R²-værdien er, desto bedre er modellen til at forudsige dataene. Det er også vigtigt at forstå, at residualerne, som er forskellen mellem de observerede og de estimerede værdier, skal være tilfældige og ikke vise et mønster, da et mønster i residualerne kan indikere, at modellen ikke passer ordentligt til dataene.

For eksempel kan to regressioner med forskellige R²-værdier bruges til at vurdere kvaliteten af de respektive modeller. Hvis man har to regressionslinjer, hvor den ene har en R² på 0,82 og den anden en R² på 0,84, så indikerer det, at den anden model er mere præcis. Dette er dog kun en del af vurderingen.

Når man udfører en regressionsanalyse, skal man altid tage højde for den kontekst, som dataene er baseret på. Hvis man forsøger at finde fysiske koefficienter, som har praktisk betydning, skal man sikre sig, at den model, man bruger, afspejler de fysiske love, som dataene beskriver. Det er derfor afgørende at forstå, hvad dataene repræsenterer, hvordan de blev målt, og hvordan de er modelleret, når man vurderer modellens kvalitet.

En metode til at vurdere modellens præstation på nye data er brugen af valideringsteknikker som krydsvalidering, holdout-validering og resubstitutionsvalidering. Disse metoder giver mulighed for at teste, hvordan modellen klarer sig med data, som ikke var en del af træningsdatasættet. I mange tilfælde foretrækker man krydsvalidering, da den automatisk opdeler datasættet i forskellige segmenter for træning, test og evaluering af modellen. Uanset hvilken valideringsteknik man vælger, er det vigtigt at have klare mål for, hvad man ønsker at opnå med regressionsmodellen og evaluere den i lyset af disse mål.

Det er også vigtigt at være opmærksom på, at når man arbejder med data fra virkelige projekter, som for eksempel estimering af en motors rotationshastighed baseret på inputspænding, kan det være nødvendigt at anvende en lineær regressionsmodel for at identificere de rigtige koefficienter. For sådanne systemer kan man bruge specifikke programmer som Regression Learner i MATLAB, som giver en intuitiv måde at bygge og evaluere regressionsmodeller på. For at sikre den bedst mulige pasform kan man bruge forskellige metoder til at opdele dataene, så man kan validere og evaluere modellen på en robust måde.

Det er afgørende at bruge passende valideringsteknikker og forstå de matematiske grundlag, som ligger bag lineær regression, for at sikre, at de valgte modeller giver en præcis beskrivelse af forholdet mellem variablerne. Korrekt valg af model og valideringsmetode er nøglen til at sikre pålidelige og realistiske resultater, især i forbindelse med praktiske anvendelser som maskinlæring og fysisk modellering.

Hvordan KNN-algoritmen anvendes til regression i ikke-lineære modeller

Når alle datapunkter i træningsdatasættet er beregnet, fortsætter algoritmen med at finde de K-nærmeste naboer baseret på de beregnede afstande. Den præcise metode til at vælge de nærmeste naboer kan variere, men en almindelig fremgangsmåde er at sortere afstandene i stigende rækkefølge og vælge de K datapunkter med de korteste afstande.

Efter at have identificeret de K-nærmeste naboer, foretager algoritmen forudsigelser baseret på de etiketter eller værdier, der er knyttet til disse naboer. Ved klassifikationsopgaver tildeles den mest hyppige klasse blandt de K-naboer som den forudsigne etiket for det nye datapunkt. Ved regressionsopgaver beregnes gennemsnittet eller det vægtede gennemsnit af værdierne for de K-naboer, og det tildeles som den forudsigne værdi.

Givet et træningsdatasæt X med n datapunkter, hvor hvert datapunkt er repræsenteret af en d-dimensional egenskabsvektor Xi, og Y er de tilhørende etiketter eller værdier for hver datapunkt i X, beregner algoritmen afstanden mellem et nyt datapunkt x og hvert datapunkt Xi i X ved hjælp af en afstandsmetrik, såsom Euclidean-afstand. Når afstanden er beregnet, vælger algoritmen de K datapunkter fra X, som har de korteste afstande til x. For klassifikation tildeler algoritmen den etiket y, der er mest hyppig blandt de K-nærmeste naboer. For regression beregnes den forudsigne værdi som gennemsnittet af værdierne y fra de K-nærmeste naboer.

KNN-algoritmen anvendes i vid udstrækning i klassifikationsopgaver, men kan også bruges til både klassifikation og regression. På grund af dens alsidighed og relative enkelhed er den ofte en førstevalgsmaskine i mange datadrevne opgaver. Dette kan være en af grundene til, at MATLAB ikke har en prædefineret funktion eller app til KNN-algoritmen. I stedet kræver det, at vi bruger en kundespecificeret funktion, K-Nearest Neighbor (KNN) Regressor, for at opbygge KNN-modeller.

KNN-regression er særlig effektiv, når vi arbejder med ikke-lineære datamønstre. Algoritmen opdeler ikke nødvendigvis dataene i foruddefinerede grupper som ved klassifikation, men søger de nærmeste datapunkter for at udlede en forudsigelse baseret på det lokale mønster i dataene. Dette gør den velegnet til opgaver, hvor sammenhængen mellem input og output er kompleks og ikke nødvendigvis kan beskrives med en lineær funktion.

Når man anvender KNN til regression, er der fem hovedtrin i processen. Først samles dataene, som omfatter både inputfunktioner og de målte målte outputværdier. For regressionsopgaver er målte outputværdierne kontinuerlige og repræsenterer de værdier, der skal forudsiges.

Dernæst skal antallet af naboer, K, vælges. Dette er en hyperparameter, der kan justeres baseret på dataenes karakteristika. Et lille K (f.eks. 1 eller 3) kan føre til støjende forudsigelser, mens et stort K kan føre til overdrevent glatte forudsigelser.

Afstandsmålingen, der anvendes i KNN, spiller en væsentlig rolle, og det er muligt at vælge forskellige metrikker afhængigt af datatypen. De mest almindelige metrikker er Euclidean-afstand, Manhattan-afstand og Minkowski-afstand, og valget af metrik afhænger af, hvordan dataene er struktureret og hvad der bedst repræsenterer deres indre relationer.

Når man foretager en forudsigelse for et nyt inputpunkt, beregner KNN afstanden mellem dette punkt og alle de øvrige datapunkter i datasættet. Derefter vælges de K nærmeste naboer, og den forudsigte værdi beregnes som gennemsnittet af de tilhørende målte outputværdier for disse naboer. Dette kan være et simpelt aritmetisk gennemsnit, eller et vægtet gennemsnit, hvor nærmere naboer har større indflydelse på den endelige forudsigelse.

KNN-regression kan implementeres effektivt i et programmeringsmiljø som MATLAB, hvor funktioner som kNNeighborsRegressor() kan benyttes til at definere modellen. Denne funktion har tre hovedparametre: K (antallet af naboer), metric (afstandsmåling) og weights (vægtfunktion). Værdien af K bestemmer antallet af nærmeste naboer, mens metric definerer afstanden, og weights bestemmer, om alle naboer skal have lige vægt (uniform) eller vægtet efter deres afstand fra datapunktet (distance).

For at demonstrere, hvordan KNN-regression fungerer i praksis, kan et eksempel tages med et motorsystem, hvor inputvariablen er spændingen og outputvariablen er motorsystemets hastighed. Koden for at implementere og evaluere modellen består af at læse dataset, vælge input og outputvariabler, definere testdata og så udføre regressionen med de valgte parametre. Resultaterne af forudsigelserne kan visualiseres ved hjælp af plotfunktioner, som sammenligner de oprindelige data med de forudsagte værdier.

Når du arbejder med KNN-regression, er det vigtigt at tage højde for, hvordan valget af K, metrik og vægtfunktion påvirker præstationen af modellen. Valget af K kan for eksempel have en betydelig indflydelse på, om forudsigelserne bliver overdrevent glatte eller for støjende. Det kræver ofte eksperimentering og evaluering af modellens præstation på testdata for at finde den optimale kombination af disse parametre.

KNN-regression er en fleksibel og relativt simpel metode til at modellere ikke-lineære forhold, men det er vigtigt at forstå dens begrænsninger og tilpasse valgene af parametre efter den specifikke problemstilling og dataene.

Hvordan træner man en klassifikationsmodel for diabetes ved hjælp af MATLAB?

I arbejdet med klassifikationsmodeller spiller databehandling og korrekt valg af parametre en central rolle i modellens præstationer. I denne kontekst vil vi se på, hvordan man opretter og træner en klassifikationsmodel for at forudsige diabetesstatus, baseret på et datasæt, der indeholder informationer om faktorer som blodtryk, hudtykkelse, insulinproduktion, BMI, alder og en række genetiske faktorer. Dette datasæt giver en detaljeret indsigt i, hvordan man bygger en prædiktiv model med MATLAB's Classification Learner-app.

Først og fremmest er det vigtigt at forstå, at datasættet, der bruges i eksemplet, er en 768 × 9 matrix, som indeholder både inputdata og de ønskede outputklassifikationer (0 for ingen diabetes og 1 for diabetes). Dette datasæt kan findes på Springers FTP-websted, og vi arbejder her med en fil kaldet Diabetes.csv. Når datasættet er tilgængeligt, er første skridt at importere dataene til MATLAB.

Når MATLAB er åbnet, går man til App-fanen og vælger "Classification Learner"-appen. Herefter importeres datasættet ved at vælge “New Session” og hente filen fra den lokale mappe. Under importprocessen er der et par vigtige parametre at tage højde for: Outputkolonnen (Outcome) skal være en klassifikationsværdi (0 eller 1), men i datasættet er den oprindeligt lagret som et dobbeltværdi. MATLAB vil automatisk konvertere denne kolonne til en passende klasse.

Efter at have importeret dataene, kan man vælge at afsætte en del af dataene som testdata, eksempelvis 10 % af de 768 optegnelser. Dette kan gøres ved at markere afkrydsningsfeltet "Set aside a test data set" i importvinduet. Når dataene er klar, klikker man på "Start Session" for at begynde selve træningen af modellen.

Et godt udgangspunkt er at bruge den automatiserede træning i Classification Learner-appen, som giver mulighed for at træne forskellige modeller hurtigt. I sektionen “Models” vælger man indstillingen “All Quick-To-Train”, som træner samtlige modeller, der er hurtige at tilpasse til datasættet. Ved at vælge "Train All" trænes modellerne, og resultaterne vises i venstre panel, hvor man hurtigt kan se præstationen af hver model. Det viser sig, at den bedste model, model 2.10 (Efficient Logistic Regression Tree), opnår en valideringsnøjagtighed på 76,7 %.

For at evaluere resultaterne af træningen anvender man flere metoder. En af de mest populære måder er at sammenligne præstationen af modellerne ved at plotte resultaterne, som i figuren, hvor man vælger variabler som blodtryk og glukose. Her markeres korrekte forudsigelser med et “o” og forkerte med et “x”. Farverne blå og brun angiver henholdsvis klassifikationen for ikke-diabetes (0) og diabetes (1).

En anden vigtig evaluering er Confusion Matrix (forvirringsmatrixen), som viser, hvor godt modellerne klassificerer de to klasser: diabetes og ikke-diabetes. I matrixen kan man se, hvordan de forkerte klassifikationer fordeler sig på de forskellige klasser. Udtrykkene "True Positive Rate" (TPR), "False Negative Rate" (FNR), "Positive Predictive Value" (PPV) og "False Discovery Rate" (FDR) bruges til at beskrive præstationen af modellen.

Endelig er en af de mest informative måder at vurdere modelkvalitet at bruge Receiver Operating Characteristic (ROC) kurven. ROC-kurven viser forholdet mellem "True Positive Rate" (TPR) og "False Positive Rate" (FPR) for forskellige tærskler. AUC (Area Under the Curve)-værdien bruges som et mål for modellens overordnede præstation. En højere AUC-værdi indikerer en bedre præstation.

Når man ser på de træningsresultater, der er opnået, er det muligt at vælge den bedste model baseret på præstationer som nøjagtighed, TPR og AUC. Det er dog vigtigt at bemærke, at selvom model 2.10 har den højeste præcision, er det altid en god idé at eksperimentere med forskellige modeller og justere dem efter behov for at opnå den bedst mulige præstation.

Det er også væsentligt at forstå, at mens en høj nøjagtighed er ønskelig, er det ikke den eneste faktor at overveje. I medicinske anvendelser, såsom diabetesklassifikation, kan det være mere vigtigt at reducere antallet af falske negative resultater (dvs. fejlagtigt at klassificere personer med diabetes som raske), da dette kan have alvorlige sundhedsmæssige konsekvenser. Derfor bør modeller evalueres ikke kun på nøjagtighed, men også på deres evne til at minimere risici som FNR.