I arbejdet med store datasæt, som for eksempel vores modificerede dataset for jordskælvsperception (472 × 10), er det ofte nødvendigt at simplificere dataene for at gøre clusteringprocessen mere håndterbar. I dette tilfælde blev kun fem udvalgte funktioner fra datasættet anvendt til at bygge en clusteringmodel: alder, antal familiemedlemmer, etage, rystelse og frygt. For at skabe en meningsfuld model blev de første 300 observationer brugt til at træne modellen, mens de resterende 172 observationer blev brugt som testdata. Formålet var at udvikle et praktisk eksempel på k-means clustering, der kan implementeres i MATLAB ved hjælp af funktionerne og teknikkerne, der er beskrevet i koden nedenfor.
Det første skridt i processen er at definere den fulde sti til datasættet, "Earthquake Emotion.csv", og derefter læse dataene ind i MATLAB med funktionen readtable(). Når datasættet er indlæst, bliver det gemt som en lokal variabel T. Datasættets størrelse er 472 observationer med 10 funktioner, men da vi kun ønsker at arbejde med de fem funktioner, vi har udvalgt, skal vi ekstraktere de relevante kolonner fra datasættet. Det gøres ved at konvertere dataene til numeriske værdier ved hjælp af table2array()-funktionen.
Derefter opretter vi et inputmatrix, X, som samler de fem funktioner i én matrice. For at gøre visualiseringen af dataene mere klar, oprettes en ny matrice XX, der kun indeholder de to første funktioner: alder og antal familiemedlemmer. Dette gør det muligt at plotte disse to funktioner for alle observationer og få et visuelt billede af, hvordan dataene er fordelt.
For at begynde clusteringprocessen anvender vi MATLAB's kmeans()-funktion. Denne funktion kræver et inputmatrix og et specifikt antal klynger (i dette tilfælde 3). Resultatet af kmeans()-kaldet er to hovedkomponenter: en vektor idx, der indeholder clusterindeksene for hver observation, og en matrix C, der indeholder centroids for de klynger, der er blevet dannet. Centroiderne repræsenterer gennemsnittet af værdierne for hver funktion i hver klynge.
Når klyngerne er dannet, kan vi visualisere de tre klynger sammen med deres respektive centroids. Ved at plotte observationerne for alder og familiemedlem kan vi hurtigt få et indtryk af, hvordan dataene er opdelt. Det er også muligt at visualisere klyngernes centroids for at forstå de gennemsnitlige værdier af de funktioner, der definerer hver klynge.
For at afslutte analysen og visualiseringen kan vi bruge hold on og hold off kommandoerne i MATLAB, som giver os mulighed for at lave flere plot på samme figur. Ved at kombinere de tre klynger med centroids kan vi få et klart billede af, hvordan vores data er blevet opdelt.
Det er vigtigt at bemærke, at idx og C matrixerne spiller en central rolle i denne proces. idx indeholder clusterindeksene, som viser, hvilken klynge hver observation tilhører. For et datasæt med 472 observationer og 3 klynger vil værdierne i idx være mellem 1 og 3. Dette er nyttigt til at analysere, hvordan dataene er fordelt mellem klyngerne.
Matrixen C indeholder centroiderne for hver klynge og viser de gennemsnitlige værdier af de fem funktioner i hver klynge. Hver række i matrixen repræsenterer en klynge, og hver kolonne repræsenterer en funktion. Dette giver os en forståelse af, hvad der karakteriserer hver klynge, baseret på de valgte funktioner.
Det er også vigtigt at forstå, at k-means clustering ikke nødvendigvis skaber perfekte grupper. Clusteringens kvalitet afhænger af valget af funktioner og det antal klynger, der er valgt. Det er ofte nødvendigt at eksperimentere med forskellige værdier af k og forskellige funktioner for at opnå meningsfulde resultater. Derfor er det en god idé at analysere og validere de opnåede klynger ved hjælp af yderligere statistiske tests eller ved at anvende andre clusteringmetoder som k-medoids.
Når man arbejder med store datasæt som jordskælvsperceptionsdata, er det også vigtigt at overveje problemstillinger som datarensning og forbehandling. Det kan være nødvendigt at normalisere eller standardisere dataene for at sikre, at alle funktioner bidrager lige meget til clusteringprocessen. Hvis nogle funktioner har en meget større skala end andre, kan de dominere resultatet og føre til skæve klynger.
Endvidere er det vigtigt at huske, at k-means er en heuristisk metode, hvilket betyder, at den ikke garanterer den bedste opdeling af dataene, men kun den bedste opdeling inden for de givne rammer og initialiseringer. For at sikre robustheden af modellen kan det være nyttigt at køre k-means algoritmen flere gange med forskellige initialiseringer og derefter vælge den løsning, der giver den mest stabile opdeling.
Hvordan Bygges En Regressionstræ? En Praktisk Guide til fitrtree() Funktionens Anvendelse
I maskinlæringsstudier er det ikke ualmindeligt, at nybegyndere står overfor komplekse opsætnings- og konfigurationsprocesser, der kan virke som en udfordring. For at gøre læringsprocessen lettere er det vigtigt at forstå de grundlæggende funktioner og egenskaber, som bruges i maskinlæringsmodeller, især når det kommer til beslutningstræer som regressionsmodeller. Dette kan hjælpe med at reducere den læringskurve, som mange oplever. I denne sammenhæng vil vi fokusere på den populære funktion fitrtree() og vise, hvordan man kan bruge den til at bygge regressionstræer.
Regressionstræet er et kraftfuldt værktøj i maskinlæring, der anvendes til at forudsige en kontinuerlig værdi baseret på inputvariabler. Funktionen fitrtree() er et af de mest anvendte værktøjer til at skabe disse træer i MATLAB, og den giver mulighed for at bygge modeller baseret på både tabeldata og specifikke formel-syntakser. Funktionen kommer med forskellige konstruktorer, der hver især har deres specifikke anvendelser.
De fem hovedkonstruktører, der kan anvendes med fitrtree(), er:
-
tree = fitrtree(Tbl, ResponseVarName)
-
tree = fitrtree(Tbl, formula)
-
tree = fitrtree(Tbl, Y)
-
tree = fitrtree(X, Y)
-
tree = fitrtree(___, Name, Value)
Når du arbejder med den første konstruktor, Tbl, refererer den til en datatabel, der bruges til at træne modellen. Hvis Tbl indeholder den responsvariabel, du vil forudsige, kan du specificere denne ved hjælp af ResponseVarName. Hvis du kun vil bruge et udvalg af de øvrige variabler i tabellen som prediktorer, kan du anvende en formel i form af en karaktervektor eller en strengskalar som fx "Y ~ x1 + x2 + x3", hvor Y repræsenterer responsvariablen og x1, x2, x3 er de prediktorer, du ønsker at bruge.
For eksempel kan du bruge følgende kode til at bygge et regressionstræ:
Her vil modellen blive bygget ved at bruge Acceleration og Mfg som prediktorer og MPG som responsvariabel.
En af de vigtigste funktioner i fitrtree() er evnen til at tilpasse træet ved hjælp af "name-value" par. Dette giver mulighed for at justere træets opførsel og specificere forskellige parametre, som kan forbedre modelens præstation. Eksempler på sådanne par kan være:
-
'CategoricalPredictors' – Angiver, hvilke variabler der skal betragtes som kategoriske.
-
'MinParentSize' – Definerer den minimale størrelse på et forældre-niveau, hvilket kan forhindre overfitting.
-
'CrossVal' – Aktiverer krydsvalidering for at forbedre modelens generaliserbarhed.
Et eksempel på anvendelsen af name-value par kunne være:
I dette tilfælde er to prediktorer, Weight og Cylinders, anvendt, og krydsvalidering er aktiveret med 5 fold.
Når du bruger fitrtree(), er det også muligt at teste og evaluere træet med nye data. Dette gøres med funktionen predict(), som kan bruges til at forudsige resultater for et givet sæt af inputdata. For eksempel:
Her forudsiges bilens brændstoføkonomi (MPG) baseret på forskellige accelerationsværdier.
For en dybere forståelse af, hvordan træerne udvikles og opdeles, kan du også analysere antallet af opdelinger (splits) i træet. Dette kan visualiseres gennem en histogram, som giver indsigt i, hvordan træet er blevet opbygget.
Et eksempel på, hvordan man kan analysere opdelingerne:
Denne funktion giver mulighed for at se, hvordan beslutningstræet opdeler dataene i forskellige "grene" for at optimere forudsigelserne.
Det er vigtigt at forstå, at arbejdet med beslutningstræer ikke kun handler om at vælge de rigtige inputdata og anvende de passende funktioner. Det er også nødvendigt at forstå, hvordan forskellige parametre som for eksempel MinParentSize, CrossVal, og KFold påvirker træets kompleksitet og præstation. En vellykket model kræver en afbalancering af træets dybde og kompleksitet for at undgå både underfitting og overfitting. En god praksis er derfor at eksperimentere med forskellige indstillinger og evaluere modellens præstation med testdata.
I forhold til den praktiske anvendelse af regressionstræer er det afgørende at være opmærksom på, hvilke variabler der er relevante for dit specifikke problem. Fejlinformation i træet kan føre til dårligere præstationer, så det er altid en god idé at lave grundig datarensning og præ-processing, før du bygger modellen.
Hvordan begreber og ord former vores forståelse af verden?
Hvordan Opsættes og Automatiseres en DAG i Airflow
Hvordan påvirker kunstig intelligens og militær teknologi fremtidens krigsførelse?
Hvordan påvirker stor data oprindelsen og forståelsen af oprindelige folks viden og magt?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский