Feature Scaling (in Python)

HerrDrachen

Lieutenant
Registriert
Feb. 2016
Beiträge
589
Hallo,

ich wollte fragen, was genau Feature Scaling ist,
https://ibb.co/XL1YdS7
Die Spalten Level (X) und Salary (y) werden in Zahlen umgewandelt.
Warum wird das gemacht? Warum ist das nötig?
Kann mir das jemand anhand der Tabelle rechts oben erklären?

Kann mir das bitte jemand mit EIGENEN WORTEN erklären, ich verstehe das nicht.
Ich habe schon gegoogelt und auch den Wikipedia Artikel dazu gelesen, aber ich versteh es leider nicht -.-

Feature scaling is essential for machine learning algorithms that calculate distances between data. If not scale, the feature with a higher value range starts dominating when calculating distances, as explained intuitively in the “why?” section.

Feature Scaling wird in der Pre-processing Phase gemacht.
Ich arbeite gerade einen Udemy Kurs zum Thema Data Science durch. In dem Fall wird das in Python gemacht.
 
Das ist nichts python spezifisches - Feature scaling wird zur Normalisierung auf trainingsdaten angewendet.
Was normalisierung ist und warum man seine trainingdaten normalisiert weisst du schon? Falls nicht gern schreiben
 
HerrDrachen schrieb:
Warum wird das gemacht?
Weil man den selben Einfluss von verschiedenen Features haben möchte.

Wenn du z.B. K-nearest neighbours nimmst, hat das Feature mit der höheren Bandbreite von Werten einen höheren Einfluss, da die Distanz von dem Feature mit einer hohen Bandbreite eiinen viel größeren Unterschied macht.

Mach mal einen 2D Plot von den Datenpunkten und mach KNN auf denen.
Einmal unskaliert und einmal skaliert.
Du wirst es schnell selbst merken.
 
  • Gefällt mir
Reaktionen: BeBur
Nein, was ist denn Normalisierung und warum muss das manchmal (nicht immer) gemacht werden?

Kannst du mir das mal anhand meiner Tabelle erklären und bitte ausführlich, ich versteh es nicht.
 
Du willst Abstände minimieren. In der ersten Dimension liegen deine Daten im Bereich [-1,1] im anderen im Bereich [-1.000,1.000]. Wie wichtig ist es auf die erste Dimension zu schauen, bei welcher der maximale Abstand sowieso nur 2 beträgt?

Plotte dir mal zwei Gleichverteilungen für diese Bereiche. Das Ergebnis sieht aus wie eine Linie, korreliert super und das obwohl du auf zwei komplett unabhängige Variablen schaust.
 
Das verstehe ich nicht, wo soll in der Spalte Salary der Abstand [-1.000,1.000] betragen?
 
Manche Inputs haben einen massiven Einfluss auf ein Ergebnis, obwohl der Bereich in dem sich der Input bewegt sehr klein ist.
Wenn nun ein zweiter Input vorhanden ist, der vom Betrag her deutlich größer ist und auch in einem größeren Bereich arbeitet, kann Input 1 praktisch im "rauschen" vom zweitem Input komplett untergehen.

Entsprechend normalisiert bzw. standardisiert man die Eingaenge, so dass diese gleichgewichtet eingehen koennen.

Je nach Einsatzgebiet spielt auch der Wertebereich allemein eine Rolle.
Bspw. arbeiten Aktivierungsfunktionen von neuronalen Netzen haeufig bei [-1,1] oder [0,1].
Wenn die Inputs nun bei einem Wert von 1.000 liegen, muessen diese erst Mal durch anpassen der Gewichte auf dieses Niveau gebracht werden, damit ueberhaupt etwas Sinnvolles herauskommt.
Das kostet Zeit und ggf. wird auch das Ergebnis schlechter.

Teste einfach mal eine praktische Anwendung mit und ohne skalierte Werte, dann wirst du es merken.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: BeBur
Zurück
Oben