Moim zdaniem pytanie o skalowanie / nieskalowywanie funkcji w uczeniu maszynowym to stwierdzenie dotyczące jednostek miary funkcji. Jest to związane z wcześniejszą wiedzą, jaką masz na temat problemu.
Niektóre algorytmy, takie jak Linear Discriminant Analysis i Naive Bayes , obsługują skalowanie funkcji zgodnie z projektem i nie miałbyś żadnego wpływu na wykonanie go ręcznie. Inne, takie jak knn, mogą być przez to poważnie dotknięte.
Więc za pomocą klasyfikatora typu knn musisz zmierzyć odległości między parami próbek. Na odległości mają oczywiście wpływ zastosowane jednostki miary. Wyobraź sobie, że dzielisz populację na mężczyzn i kobiety i masz wiele pomiarów, w tym wzrost. Teraz na wynik klasyfikacji będą miały wpływ pomiary, w których podano wysokość. Jeśli wysokość jest mierzona w nanometrach, jest prawdopodobne, że k najbliższych sąsiadów będzie mieć po prostu podobne miary wysokości. Musisz skalować.
Jednak dla kontrastu wyobraź sobie klasyfikację czegoś, co ma równe jednostki miary zarejestrowane z szumem. Jak fotografia, mikromacierz lub jakieś widmo. w tym przypadku już wiesz a-priori, że twoje cechy mają równe jednostki. Gdybyś je wyskalował, wzmocniłbyś efekt cech, które są stałe we wszystkich próbkach, ale zostały zmierzone z szumem. (Jak tło zdjęcia). To znowu będzie miało wpływ na knn i może drastycznie zmniejszyć wydajność, jeśli dane mają bardziej zaszumione stałe wartości w porównaniu z tymi, które są różne. Teraz na wszelkie podobieństwa między k najbliższymi sąsiadami wpłynie hałas.
Więc to jest tak samo jak w przypadku wszystkiego innego w uczeniu maszynowym - korzystaj z wcześniejszej wiedzy, gdy tylko jest to możliwe, aw przypadku funkcji czarnej skrzynki rób jedno i drugie. zweryfikować.