Inżynieria cech
Czym jest inżynieria cech?
Inżynieria cech (ang. feature engineering) to proces tworzenia, modyfikowania i selekcji cech (atrybutów) w danych, w celu poprawy wydajności modeli analitycznych. Celem tego procesu jest przygotowanie cech w taki sposób, aby były bardziej reprezentatywne dla analizowanego problemu i mogły lepiej wspierać proces uczenia maszynowego.
Inżynieria cech jest kluczowym krokiem w eksploracji danych, ponieważ nawet zaawansowane algorytmy osiągają lepsze wyniki, gdy dane wejściowe są dobrze przygotowane.
Główne aspekty inżynierii cech
1. Tworzenie nowych cech
Tworzenie cech to proces generowania nowych zmiennych na podstawie istniejących danych. Często obejmuje on:
- Kombinacje cech:
- Dodawanie, mnożenie, dzielenie czy różnicowanie cech, np.: \[ \text{Cechy nowe} = \text{Cechy istniejące}_1 + \text{Cechy istniejące}_2 \]
- Logarytmiczne przekształcenia:
- Stosowane do zmniejszenia wpływu dużych wartości: \[ \text{Nowa cecha} = \log(\text{Cechy istniejące} + 1) \]
- Cecha czasu:
- Ekstrakcja informacji takich jak dzień tygodnia, miesiąc, rok z danych czasowych.
2. Transformacje cech
Transformacje zmieniają rozkład cech lub dostosowują je do wymagań algorytmów.
- Normalizacja:
- Przekształcanie cech do zakresu \([0, 1]\): \[ x' = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} \]
- Standaryzacja:
- Przekształcanie cech tak, aby miały średnią 0 i odchylenie standardowe 1:
\[
x' = \frac{x - \mu}{\sigma}
\]
Gdzie:
- \(\mu\): średnia cechy.
- \(\sigma\): odchylenie standardowe cechy.
- Przekształcanie cech tak, aby miały średnią 0 i odchylenie standardowe 1:
\[
x' = \frac{x - \mu}{\sigma}
\]
Gdzie:
- Transformacje potęgowe i logarytmiczne:
- Redukowanie asymetrii danych, np.: \[ x' = \sqrt{x} \quad \text{lub} \quad x' = \log(x+1) \]
3. Selekcja cech
Selekcja cech to proces wybierania najbardziej istotnych cech w celu poprawy efektywności i jakości modeli.
- Metody statystyczne:
- Test chi-kwadrat:
\[
\chi^2 = \sum \frac{(O - E)^2}{E}
\]
Gdzie:
- \(O\): obserwowana częstość.
- \(E\): oczekiwana częstość.
- Test chi-kwadrat:
\[
\chi^2 = \sum \frac{(O - E)^2}{E}
\]
Gdzie:
- Współczynnik korelacji:
- Analiza korelacji między cechami: \[ r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2 \sum (y_i - \bar{y})^2}} \]
- Algorytm RFE (Recursive Feature Elimination):
- Iteracyjne usuwanie najmniej istotnych cech na podstawie ich wag w modelu.
4. Usuwanie wartości odstających
Wartości odstające (ang. outliers) mogą wpływać negatywnie na modele analityczne. Ich identyfikacja i usunięcie odbywa się za pomocą:
- Reguły IQR (Interquartile Range): \[ IQR = Q3 - Q1 \] Wartości odstające to: \[ x < Q1 - 1.5 \cdot IQR \quad \text{lub} \quad x > Q3 + 1.5 \cdot IQR \]
- Odległość Mahalanobisa:
- Miara odległości uwzględniająca korelacje między zmiennymi: \[ D_M = \sqrt{(x - \mu)^T S^{-1} (x - \mu)} \] Gdzie \(S^{-1}\) to macierz odwrotna kowariancji.
5. Kodowanie danych kategorycznych
Dane kategoryczne muszą zostać przekształcone na wartości liczbowe:
- One-hot encoding:
- Każda kategoria staje się osobną binarną cechą.
- Label encoding:
- Kategorie zamieniane są na liczby całkowite.
Przykłady zastosowań:
-
Medycyna:
- Tworzenie nowych cech z danych pacjentów, np. BMI obliczane z masy ciała i wzrostu: \[ BMI = \frac{\text{Masa (kg)}}{\text{Wzrost (m)}^2} \]
-
Marketing:
- Tworzenie cech na podstawie zachowań użytkowników, takich jak liczba odwiedzin strony, średnia wartość koszyka zakupowego.
-
Analiza czasowa:
- Wyodrębnianie cech, takich jak sezonowość czy trendy z danych sprzedażowych.
-
Finanse:
- Normalizacja danych o transakcjach, aby uniknąć dominacji dużych wartości w modelach predykcyjnych.
Zalety inżynierii cech:
- Poprawa wydajności modeli:
- Dobrze dobrane cechy pozwalają modelom lepiej rozróżniać wzorce w danych.
- Zmniejszenie wymagań obliczeniowych:
- Usunięcie nieistotnych cech redukuje rozmiar danych.
- Łatwiejsza interpretacja:
- Tworzenie cech, które są bardziej intuicyjne i powiązane z analizowanym problemem.
Wady inżynierii cech:
- Złożoność:
- Tworzenie odpowiednich cech wymaga doświadczenia i wiedzy o danych.
- Czasochłonność:
- Proces może być długi, szczególnie w przypadku dużych zbiorów danych.
- Możliwość błędów:
- Niewłaściwie dobrane transformacje lub cechy mogą obniżyć jakość modeli.
Inżynieria cech to sztuka łączenia wiedzy o danych z zaawansowanymi metodami analizy w celu uzyskania lepszych wyników w eksploracji danych i uczeniu maszynowym.