Feature engineering

Feature engineering (inżynieria cech) to proces projektowania, przekształcania i selekcji zmiennych wejściowych (cech) wykorzystywanych przez modele analityczne i uczenia maszynowego, tak aby lepiej opisywały badane zjawisko i poprawiały jakość predykcji lub wnioskowania. Obejmuje zarówno tworzenie nowych cech z danych surowych, jak i porządkowanie, kodowanie oraz redukcję informacji w sposób użyteczny dla algorytmu.

W praktyce feature engineering jest pomostem między danymi a modelem: dane surowe (np. transakcje, logi, ankiety, szeregi czasowe, tekst) rzadko są wprost „gotowe” do użycia. Często zawierają braki, różne skale, kategorie tekstowe, wartości odstające, sezonowość lub zależności czasowe, które model może źle interpretować bez odpowiedniego przygotowania. Inżynieria cech porządkuje te aspekty, aby model mógł uchwycić istotne relacje. Przykładowo, zamiast używać samej daty zakupu, tworzy się cechy takie jak „dzień tygodnia”, „miesiąc”, „czy okres świąteczny”, a w przypadku danych finansowych: „zmiana procentowa”, „średnia krocząca”, „zmienność w oknie 30 dni”.

Istotą feature engineering jest świadome kodowanie wiedzy o domenie (np. ekonomii, finansach, marketingu, produkcji) w postaci zmiennych, które algorytm potrafi wykorzystać. W ekonomii i finansach typowe są cechy opisujące dynamikę i ryzyko: relacje (np. dług/dochód), wskaźniki płynności, miary trendu i cyklu, opóźnienia (lagi) oraz agregacje w czasie. Dla przedsiębiorcy analizującego churn (odejścia klientów) sensowne mogą być cechy typu „liczba dni od ostatniego zakupu”, „średnia wartość koszyka w ostatnich 90 dniach”, „zmiana częstotliwości zakupów”, zamiast pojedynczych surowych rekordów transakcji. Dla inwestora lub analityka ryzyka kredytowego ważne bywa rozróżnienie między poziomem a zmianą (np. poziom zadłużenia vs. tempo jego wzrostu).

Feature engineering obejmuje też decyzje techniczne i statystyczne, które wpływają na interpretowalność i stabilność modeli. Należą do nich m.in. skalowanie (gdy algorytm jest wrażliwy na skale), kodowanie zmiennych kategorycznych (np. one-hot, target encoding), transformacje rozkładów (np. logarytmowanie silnie skośnych zmiennych, takich jak przychody), obsługa braków danych (imputacja lub osobna kategoria „brak”), a także selekcja cech (usuwanie nadmiarowych, silnie skorelowanych lub wprowadzających szum). W kontekście danych czasowych kluczowe jest zachowanie porządku czasowego i unikanie „wycieku informacji” (data leakage), czyli sytuacji, w której cecha nieświadomie zawiera informację z przyszłości względem momentu predykcji (np. użycie średniej z całego okresu, w tym z przyszłych obserwacji).

  • Kluczowe właściwości
  • Celowość i zgodność z zadaniem: cechy projektuje się pod konkretny problem (klasyfikacja, regresja, prognozowanie) i definicję zmiennej docelowej; ta sama zmienna surowa może wymagać innej obróbki w zależności od celu (np. prognoza popytu vs. wykrywanie nadużyć).
  • Wykorzystanie wiedzy domenowej: dobre cechy często odzwierciedlają mechanizmy ekonomiczne lub biznesowe (np. elastyczność cenowa przybliżana relacją zmian wolumenu do zmian ceny; wskaźniki zadłużenia w ocenie ryzyka).
  • Kontrola jakości danych i stabilności: obejmuje wykrywanie wartości odstających, zmian definicji danych, przesunięć rozkładów (drift) oraz zapewnienie porównywalności w czasie i między segmentami.
  • Równowaga między złożonością a interpretowalnością: bardziej złożone cechy (np. interakcje, nieliniowe transformacje) mogą poprawiać dopasowanie, ale utrudniać wyjaśnianie wyników i zwiększać ryzyko nadmiernego dopasowania.
  • Typowe konteksty zastosowań
  • Finanse i ryzyko: scoring kredytowy (np. relacja rat do dochodu, historia opóźnień, stabilność wpływów), wykrywanie fraudów (np. nietypowe wzorce transakcji w krótkich oknach czasowych), analiza portfelowa (np. zmienność, korelacje, drawdown w określonych horyzontach).
  • Makroekonomia i prognozowanie: cechy z szeregów czasowych (lagi, różnice, sezonowość), agregacje wskaźników (np. indeksy nastrojów, miary inflacji bazowej jako transformacje koszyka), zmienne opóźnione odzwierciedlające transmisję polityki pieniężnej.
  • Biznes i marketing: segmentacja klientów (cechy RFM: recency–frequency–monetary), prognoza popytu (promocje, ceny względne, kalendarz), optymalizacja operacyjna (czas realizacji, obciążenie zasobów, wskaźniki jakości).
  • Tekst i dane nieustrukturyzowane: zamiana tekstu na cechy liczbowe (np. częstości słów, n-gramy, osadzenia), przy czym dobór reprezentacji wpływa na to, czy model „widzi” znaczenie, kontekst i ton wypowiedzi.
  • Częste nieporozumienia
  • „Im więcej cech, tym lepiej”: nadmiar cech może zwiększać szum, koszty obliczeń i ryzyko nadmiernego dopasowania; liczy się informacyjność i stabilność, nie sama liczba zmiennych.
  • „Nowoczesne modele nie potrzebują inżynierii cech”: część modeli (np. głębokie sieci) potrafi uczyć się reprezentacji, ale nadal wymagają sensownego przygotowania danych, właściwych definicji cech czasowych, kontroli wycieku informacji i spójnych transformacji.
  • „Feature engineering to tylko skalowanie i kodowanie”: to również projektowanie cech opartych o mechanizmy (np. tempo zmian, relacje, interakcje), dobór okien czasowych, agregacje oraz walidacja, czy cechy są dostępne w momencie predykcji.
  • „Cechy są obiektywne i neutralne”: wybór cech odzwierciedla założenia i definicje (np. jak mierzyć „dochód”, „aktywny klient”, „opóźnienie”), co może wpływać na wyniki i ich interpretację; ważna jest przejrzystość definicji i konsekwencja w czasie.