Niektórzy deweloperzy ML mają tendencję do ślepej standaryzacji danych przed „każdym” modelem uczenia maszynowego, nie podejmując wysiłku, aby zrozumieć, dlaczego musi być użyta, a nawet czy jest potrzebna, czy nie. Tak więc celem tego postu jest wyjaśnienie jak, dlaczego i kiedy standaryzować dane.
- Standaryzacja
- Jak standaryzować dane?
- Z-score
- Kiedy standaryzować dane i dlaczego?
- 1- Przed PCA:
- 2- Przed klasteryzacją:
- 3- Przed KNN:
- 4- Przed SVM
- 5- Przed pomiarem znaczenia zmiennych w modelach regresji
- 6- Przed regresją Lasso i Ridge
- Przypadki, kiedy standaryzacja nie jest potrzebna?
- Regresja logistyczna i modele oparte na drzewach
- Zakończenie standaryzacji danych
Standaryzacja
Standaryzacja pojawia się, gdy cechy zbioru danych wejściowych mają duże różnice pomiędzy swoimi zakresami, lub po prostu, gdy są mierzone w różnych jednostkach miary (np. funty, metry, mile … etc).
Te różnice w zakresach początkowych cech powodują problemy z wieloma modelami uczenia maszynowego. Na przykład, dla modeli, które są oparte na obliczaniu odległości, jeśli jedna z cech ma szeroki zakres wartości, odległość będzie regulowana przez tę konkretną cechę.
Aby zilustrować to na przykładzie: powiedzmy, że mamy dwuwymiarowy zbiór danych z dwiema cechami, Wzrost w metrach i Waga w funtach, które mają zakres odpowiednio od metrów i funtów. Bez względu na to, jaki model oparty na odległości wykonasz na tym zbiorze danych, cecha Waga będzie dominować nad cechą Wzrost i będzie mieć większy wkład w obliczanie odległości, tylko dlatego, że ma większe wartości w porównaniu do Wzrostu. Tak więc, aby zapobiec temu problemowi, rozwiązaniem jest przekształcenie cech do porównywalnych skal przy użyciu standaryzacji.
Jak standaryzować dane?
Z-score
Z-score jest jedną z najbardziej popularnych metod standaryzacji danych, i można ją wykonać poprzez odjęcie średniej i podzielenie przez odchylenie standardowe dla każdej wartości każdej cechy.
Po wykonaniu standaryzacji wszystkie cechy będą miały średnią równą zero, odchylenie standardowe równe jeden, a więc tę samą skalę.
Istnieją też inne metody standaryzacji, ale dla uproszczenia, w tym opowiadaniu zdecyduję się na metodę Z-score.
Kiedy standaryzować dane i dlaczego?
Jak widać powyżej, dla modeli opartych na odległości, standaryzacja jest wykonywana, aby zapobiec dominacji cech o szerszych zakresach w metryce odległości. Ale powód, dla którego standaryzujemy dane nie jest taki sam dla wszystkich modeli uczenia maszynowego i różni się w zależności od modelu.
Więc przed jakimi modelami ML i metodami musisz standaryzować swoje dane i dlaczego ?
1- Przed PCA:
W Principal Component Analysis, cechy z wysokimi wariancjami/szerokimi zakresami, otrzymują większą wagę niż te z niską wariancją, i w konsekwencji, kończą nielegalnie dominując w Pierwszych Składnikach Głównych (Składnikach z maksymalną wariancją). Użyłem tutaj słowa „bezprawnie”, ponieważ powodem, dla którego te cechy mają wysoką wariancję w porównaniu do innych jest to, że zostały one zmierzone w różnych skalach.
Standaryzacja może temu zapobiec, poprzez nadanie takiej samej wagi wszystkim cechom.
2- Przed klasteryzacją:
Modele klasteryzacji są algorytmami opartymi na odległości, w celu zmierzenia podobieństwa pomiędzy obserwacjami i utworzenia klastrów używają metryki odległości. Tak więc cechy o dużych zakresach będą miały większy wpływ na klasteryzację. Dlatego przed budową modelu klasteryzacji wymagana jest standaryzacja.
3- Przed KNN:
k-nearest neighbors jest klasyfikatorem opartym na odległości, który klasyfikuje nowe obserwacje na podstawie miar podobieństwa (np. metryki odległości) z etykietowanymi obserwacjami zbioru treningowego. Standaryzacja sprawia, że wszystkie zmienne mają jednakowy wkład w miary podobieństwa .
4- Przed SVM
Support Vector Machine próbuje zmaksymalizować odległość między płaszczyzną separującą a wektorami wsparcia. Jeśli jedna cecha ma bardzo duże wartości, będzie ona dominować nad innymi cechami podczas obliczania odległości. Normalizacja daje więc wszystkim cechom taki sam wpływ na metrykę odległości.
5- Przed pomiarem znaczenia zmiennych w modelach regresji
Możesz zmierzyć znaczenie zmiennych w analizie regresji, dopasowując model regresji przy użyciu znormalizowanych zmiennych niezależnych i porównując wartość bezwzględną ich znormalizowanych współczynników. Ale, jeśli niezależne zmienne nie są znormalizowane, porównywanie ich współczynników staje się bezsensowne.
6- Przed regresją Lasso i Ridge
Regresje Lasso i Ridge nakładają karę na wielkość współczynników związanych z każdą zmienną. A skala zmiennych będzie miała wpływ na to, jak duża kara zostanie nałożona na ich współczynniki. Ponieważ współczynniki zmiennych o dużej wariancji są małe, a zatem mniej karane. Dlatego standaryzacja jest wymagana przed dopasowaniem obu regresji.
Przypadki, kiedy standaryzacja nie jest potrzebna?
Regresja logistyczna i modele oparte na drzewach
Regresja logistyczna i algorytmy oparte na drzewach, takie jak drzewo decyzyjne, las losowy i gradient boosting, nie są wrażliwe na wielkość zmiennych. Więc standaryzacja nie jest potrzebna przed dopasowaniem tego typu modeli.
Zakończenie standaryzacji danych
Jak widzieliśmy w tym poście, kiedy standaryzować, a kiedy nie, zależy od tego, jakiego modelu chcesz użyć i co chcesz z nim zrobić. Tak więc, bardzo ważne jest, aby programista ML rozumiał wewnętrzne działanie algorytmów uczenia maszynowego, aby wiedzieć kiedy standaryzować dane i zbudować udany model uczenia maszynowego.
N.B: Lista modeli i metod, kiedy standaryzacja jest wymagana, przedstawiona w tym poście nie jest wyczerpująca.
.