Featureskalering på data fra overvågningsforløb
Formål
I dette forløb undersøges begrebet featureskalering med brug af data fra forløbet om overvågning i Monitorbian.
Man kan læse mere om featureskalering i noten Afstande om feature-skalering, men det er ikke en forudsætning for at arbejde med dette forløb.
De konkrete features
I datasættet er fodarealerne målt i \(cm^2\) med værdier fra 138 til 334, mens højderne er målt i \(cm\) med værdier fra 62 til 155. Så variationsbredden i fodarealer uden enhed er ca. 200, mens variationsbredden i højder uden enhed er ca. 100. Så når vi med \(kNN\) bestemmer nærmeste naboer, vil højden ofte betyde mere end fodarealet, da højderne ligger tættere på hinanden.
Enheden på data ændres
Men hvad ville der ske, hvis vi anvendte en anden enhed f.eks. for højderne. Hvad hvis vi i stedet målte højderne i \(mm\)? Så bliver variationsbredden i højderne ca. \(1000\), mens variationsbredden for fodarealerne stadig er ca. \(200\). Så vi må nu forvente, at fodarealerne betyder mere end højderne, når vi bestemmer nærmeste naboer, da fodarealerne nu ligger tættere på hinanden end højderne.
Det er naturligvis ikke praktisk, hvis den valgte enhed på data har betydning for, hvilke punkter der er tættest på hinanden.
Metode til at give begge features samme vægt
Som du måske har gættet, vil det bedste nok være, at fodareal og højde betød lige meget.
Det gøres i to trin. Først flyttes data, så både værdierne for fodarealer og værdierne for højder ligger omkring \(0\). Så værdier under gennemsnittet bliver negative og værdier over gennemsnittet bliver positive.
Dernæst gøres variationsbredderne nogenlunde lige store. Man kunne dividere alle værdierne for fodarealer med varationsbredden for fodarealerne, og tilsvarende for højderne. Derved ville de to features begge få en variationsbredde på \(1\), og dermed være ens. Man vælger dog at gøre noget lidt anderledes, bl.a fordi variationsbredden kun afhænger af to af punkterne, og ikke dem alle. I stedet for at dividere med variationsbredden, divideres med spredningen, hvorefter de fleste dataværdier kommer til at ligge mellem -2 og 2 for begge features.
Vi skal have set, hvordan det ser ud.
Denne metode er en kendt standard til at sørge for, at begge (eller alle, hvis der er flere) features vægtes lige meget, så man undgår at den vælge enhed afgør, om den ene eller anden anden feature bliver dominerende.
F.eks. bruger programmet Orange, som du anvendte i forløbet Overvågning i Monitorbian denne form for featureskalering.
Så justeringen omkring \((0,0)\) er faktisk ikke nødvendig, men indgår alligevel ofte i featureskalering, så data som standard ligger mellem -2 og 2.