Normalizacja polega na przekształceniu danych tak, aby mieściły się w określonym zakresie (zwykle od 0 do 1). Jest to przydatne, gdy dane mają bardzo różne skale, a chcemy by na wejściu algorytmu wartości mieściły się w określonym przedziale.
Wzór na normalizację:
gdzie:
Przeprowadzenie normalizacji w języku Python możliwe jest przy pomocy biblioteki Scikit-Learn
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df_normalized = scaler.fit_transform(df) # Normalizacja całego DataFrame
df_normalized = pd.DataFrame(df_normalized, columns=df.columns)
Standaryzacja polega na przekształceniu danych tak, aby miały średnią równą 0 i odchylenie standardowe równe 1. Jest to przydatne, gdy chcemy, aby różne cechy miały porównywalny wpływ na model (niektóre algorytmy jak regresja liniowa czy SVM są bardzo wrażliwe na skalę danych).
Formuła standaryzacji:
gdzie:
Zastosowanie standaryzacji w języku Python możliwe jest przy pomocy biblioteki Scikit-Learn
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df_standardized = scaler.fit_transform(df) # Standaryzacja całego DataFrame
df_standardized = pd.DataFrame(df_standardized, columns=df.columns)
Należy pamiętać, że po podzieleniu datasetu na zbiór treningowy, walidacyjny i testowy należy wykorzystywać ten sam
imputer
iskalery
dla wszystkich zbiorów. Oznacza to, że należy wykorzystaćfit
lubfit_transform
przy zbiorze treningowym, a dla pozostałych wykorzystywać samotransform
.
Przejdź do kolejnego zagadnienia (Inżynieria cech) lub kliknij tutaj, aby wrócić do strony głównej tematu.