Cecha

Mierzalna właściwość obserwacji wykorzystywana jako wejście modelu, np. rozmiar czy kolor. W tabeli odpowiada wartości w kolumnie.

Cecha (ang. feature) to pojedyncza, mierzalna właściwość obserwacji, którą podajesz modelowi uczenia maszynowego na wejście. Jeśli wyobrazisz sobie dane jako tabelę, gdzie każdy wiersz to jedna obserwacja (np. jeden klient, jedno zdjęcie, jedna transakcja), to cecha jest dokładnie kolumną — a konkretna wartość w komórce to wartość tej cechy dla danego przykładu. Wzrost, kolor, cena, liczba kliknięć, dzień tygodnia — to wszystko bywa cechą, o ile da się to zapisać liczbą lub kategorią.

Model nie rozumie świata — rozumie tylko liczby, które mu dostarczysz. Cechy to właśnie ten interfejs: tłumaczysz surową rzeczywistość na zestaw wartości, z których algorytm uczy się przewidywać wynik (target). Dobór i przygotowanie cech, czyli feature engineering, ma zwykle większy wpływ na jakość modelu niż wybór samego algorytmu. Cechy dzielimy m.in. na numeryczne (wiek, kwota) i kategoryczne (kolor, miasto) — te drugie trzeba zwykle zakodować, np. przez one-hot encoding, bo model nie przyjmie napisu "czerwony".

Przykład z praktyki

Załóżmy, że w Pythonie ze scikit-learn przewidujesz cenę mieszkania. W pandas trzymasz ramkę danych df, gdzie kolumny metraz, liczba_pokoi, pietro i dzielnica to Twoje cechy, a cena to target. Rozbijasz to tak:

  • X = df[["metraz", "liczba_pokoi", "pietro", "dzielnica"]] — macierz cech,
  • y = df["cena"] — to, co chcesz przewidzieć.

Konwencja jest taka, że X (wielka litera, bo to macierz) zawiera cechy, a y — etykiety. Z dzielnica jako tekstu nie skorzystasz wprost — przepuszczasz ją przez OneHotEncoder, żeby zamienić kategorie na kolumny zero-jedynkowe.

Częste błędy

  • Data leakage — wrzucasz jako cechę coś, co w praktyce poznasz dopiero po fakcie (np. informację silnie skorelowaną z targetem z przyszłości). Model będzie zachwycający na testach i bezużyteczny w produkcji.
  • Mylenie cechy z targetem — target nigdy nie jest cechą. Jak go zostawisz w X, dostaniesz 100% accuracy i fałszywą radość.
  • Więcej cech = lepiej to mit. Nadmiar nieistotnych cech to szum, ryzyko overfittingu i wolniejszy trening. Czasem warto je przyciąć (feature selection).

Pojęcia powiązane: feature engineering, feature selection, target (etykieta), one-hot encoding, normalizacja i standaryzacja, wektor cech, overfitting, zbiór treningowy.