0Pricing
Learn AI with Python · Lekcja

Metody wyboru cech

Metody filtrujące (wariancja, korelacja), wrapper (RFE) i osadzone (regularyzacja L1).

Metody wyboru cech to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Dlaczego wybierać cechy

Wybór cech zachowuje tylko najbardziej użyteczne kolumny. Mniejsza liczba cech oznacza szybsze trenowanie, mniejsze ryzyko przeuczenia i łatwiejszą interpretację. Usunięcie szumu często poprawia również dokładność.

Trzy grupy metod

Metody wyboru cech dzielą się na trzy grupy:

  • Filtrujące szeregują cechy według statystyki (są szybkie i niezależne od modelu)
  • Wykorzystujące opakowanie wyszukują podzbiory, trenując modele (są wolne, ale dokładne)
  • Wbudowane przeprowadzają wybór podczas dopasowywania modelu

VarianceThreshold

Najprostsza metoda filtrująca: VarianceThreshold usuwa cechy, których wariancja jest niższa od ustalonego progu. Prawie stałe kolumny nie zawierają informacji.

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])

SelectKBest z f_classif

SelectKBest zachowuje K cech o najwyższych wynikach. W połączeniu z f_classif wykorzystuje test F ANOVA, mierzący siłę związku każdej cechy z etykietą klasy.

from sklearn.feature_selection import SelectKBest, f_classif

sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))

Informacja wzajemna

mutual_info_classif mierzy dowolną zależność, w tym nieliniową, między cechą a zmienną docelową. W przeciwieństwie do testu F wykrywa zależności nieliniowe, których ANOVA nie rejestruje.

from sklearn.feature_selection import SelectKBest, mutual_info_classif

sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)

Porównanie f_classif i mutual_info

f_classif działa szybko i wykrywa zależności liniowe, natomiast mutual_info_classif działa wolniej, ale wykrywa także zależności nieliniowe. Jeśli podejrzewa się złożone zależności, należy wybrać informację wzajemną.

import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif

f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])

Rekurencyjne eliminowanie cech

RFE to metoda wykorzystująca opakowanie: trenuje model, usuwa najsłabszą cechę i powtarza ten proces. Do szeregowania cech wykorzystuje własny wskaźnik ważności modelu.

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)

RFECV: automatyczny wybór liczby cech

RFECV dodaje do RFE walidację krzyżową, dzięki czemu znajduje optymalną liczbę cech na podstawie wyniku walidacji, zamiast korzystać z ustalonego przypuszczenia.

from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier

rfecv = RFECV(
    estimator=RandomForestClassifier(),
    cv=5,
    scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)

SelectFromModel z Lasso

Wybór wbudowany: Lasso (L1) zmniejsza nieistotne współczynniki dokładnie do zera. Następnie SelectFromModel zachowuje tylko współczynniki różne od zera.

from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso

sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])

SelectFromModel z ważnościami drzew

SelectFromModel działa również z dowolnym estymatorem udostępniającym feature_importances_, na przykład z lasami losowymi. Należy ustawić threshold, na przykład na "mean" lub "median".

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

sel = SelectFromModel(
    RandomForestClassifier(n_estimators=200),
    threshold="median",
)
sel.fit(X, y)

Wybór metody

Należy zacząć od tanich metod filtrujących (VarianceThreshold, SelectKBest), aby usunąć oczywiście zbędne cechy. W celu uzyskania dobrego kompromisu warto użyć wbudowanego SelectFromModel. RFECV należy zarezerwować dla sytuacji, gdy dokładność ma największe znaczenie, a zasoby obliczeniowe na to pozwalają.

Szybki sprawdzian

Proszę sprawdzić swoją wiedzę na temat wyboru cech.

Podsumowanie

Podsumowanie: Wybór cech obejmuje metody filtrujące (VarianceThreshold, SelectKBest z f_classif lub mutual_info_classif), metody wykorzystujące opakowanie (RFECV) oraz metody wbudowane (SelectFromModel z Lasso lub ważnościami cech z modeli drzewiastych). Metody filtrujące są najszybsze, a RFECV zapewnia największą dokładność. Informacji wzajemnej należy używać w przypadku zależności nieliniowych.

Często zadawane pytania

Czy lekcja „Metody wyboru cech” jest bezpłatna?

Tak — pełny tekst „Metody wyboru cech” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Metody wyboru cech”?

Metody filtrujące (wariancja, korelacja), wrapper (RFE) i osadzone (regularyzacja L1). Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Metody wyboru cech”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Metody wyboru cech
  2. Tworzenie cech interakcyjnych i wielomianowych
  3. Kodowanie docelowe i zaawansowana obsługa danych kategorialnych
  4. Automatyczne tworzenie cech za pomocą Featuretools
← Powrót do Learn AI with Python