0Pricing
Learn AI with Python · Lekcja

Tworzenie cech interakcyjnych i wielomianowych

PolynomialFeatures, ręczne składniki interakcji, cechy ilorazowe i przedziałowanie zmiennych ciągłych.

Tworzenie cech interakcyjnych i wielomianowych to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 2 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 tworzyć nowe cechy

Modele liniowe wychwytują tylko zależności w postaci linii prostej. Tworząc cechy interakcji i wielomianowe, pozwala się prostym modelom wyrażać krzywe oraz łączne oddziaływania między zmiennymi.

Czym są cechy interakcji

Interakcja polega na pomnożeniu dwóch cech, na przykład area = length * width. Pozwala uchwycić oddziaływania zależne jednocześnie od obu danych wejściowych, których żadna z tych cech osobno nie wyjaśnia.

Podstawy PolynomialFeatures

PolynomialFeatures automatycznie generuje potęgi i iloczyny cech do wybranego poziomu degree. Stopień 2 dodaje kwadraty i iloczyny parami.

from sklearn.preprocessing import PolynomialFeatures
import numpy as np

X = np.array([[2, 3]])
poly = PolynomialFeatures(degree=2)
print(poly.fit_transform(X))
# 1, x1, x2, x1^2, x1*x2, x2^2

Tryb interaction_only

Ustawienie interaction_only=True zachowuje iloczyny krzyżowe, ale usuwa czyste potęgi, takie jak x1^2. Jest to przydatne, gdy potrzebne są tylko łączne oddziaływania, a nie krzywizna.

from sklearn.preprocessing import PolynomialFeatures

poly = PolynomialFeatures(degree=2, interaction_only=True, include_bias=False)
X_int = poly.fit_transform(X)

Uwaga na eksplozję liczby cech

Wysokie stopnie tworzą wiele cech i zwiększają ryzyko przeuczenia. Przy 10 zmiennych wejściowych stopień 3 generuje setki kolumn. Należy utrzymywać niski stopień (2 lub 3) i łączyć tę metodę z wyborem cech albo regularyzacją.

Ręczne cechy będące ilorazami

Wiedza dziedzinowa często przewyższa metody siłowe. Ręcznie tworzone ilorazy, takie jak cena za metr kwadratowy lub liczba kliknięć na wyświetlenie, kodują znaczenie, którego rozszerzanie wielomianowe nie byłoby w stanie znaleźć.

import pandas as pd

df["price_per_sqm"] = df["price"] / df["area"]
df["ctr"] = df["clicks"] / df["impressions"]

Dyskretyzacja za pomocą pd.cut

Dyskretyzacja przekształca zmienną ciągłą w kategorie. pd.cut dzieli kolumnę na przedziały, co jest przydatne do wychwytywania efektów nieliniowych lub grupowania wieku, dochodów itp.

import pandas as pd

df["age_group"] = pd.cut(
    df["age"],
    bins=[0, 18, 35, 60, 120],
    labels=["minor", "young", "adult", "senior"],
)

Dyskretyzacja o równych częstościach

pd.qcut tworzy przedziały o zbliżonej liczbie elementów (kwantyle), co jest przydatne, gdy rozkład jest skośny i potrzebne są zrównoważone grupy.

import pandas as pd

df["income_quartile"] = pd.qcut(df["income"], q=4, labels=False)

Radzenie sobie ze skośnością za pomocą transformacji logarytmicznej

Cechy o prawostronnej skośności (dochody, ceny, liczności) pogarszają działanie wielu modeli. Transformacja logarytmiczna zmniejsza duże wartości i sprawia, że rozkład staje się bardziej symetryczny.

import numpy as np

# log1p handles zeros safely: log(1 + x)
df["log_income"] = np.log1p(df["income"])

Pierwiastek kwadratowy i inne transformacje

Transformacja za pomocą pierwiastka kwadratowego również zmniejsza skośność, ale łagodniej niż logarytm, dlatego dobrze nadaje się do danych zliczeniowych. Należy wybrać transformację, która najlepiej symetryzuje histogram.

import numpy as np

df["sqrt_count"] = np.sqrt(df["count"])
# inspect df["sqrt_count"].hist() to confirm reduced skew

Łączenie metod

Należy łączyć różne podejścia: wykonywać transformację logarytmiczną skośnych kolumn, stosować dyskretyzację tam, gdzie znaczenie mają progi, dodawać ilorazy wynikające z wiedzy dziedzinowej oraz używać PolynomialFeatures do tworzenia interakcji. Zawsze należy sprawdzać, czy nowe cechy rzeczywiście poprawiają wyniki walidacji krzyżowej.

Szybki sprawdzian

Proszę sprawdzić swoją wiedzę na temat inżynierii cech.

Podsumowanie

Podsumowanie: Cechy tworzy się po to, aby pomóc prostym modelom. PolynomialFeatures wraz z parametrami degree i interaction_only dodaje iloczyny i potęgi, dlatego należy uważać na eksplozję liczby cech. Ilorazy należy budować na podstawie wiedzy dziedzinowej, dyskretyzację wykonywać za pomocą pd.cut/pd.qcut, a skośność korygować za pomocą transformacji logarytmicznej lub pierwiastkowej. Zawsze należy weryfikować uzyskane korzyści.

Często zadawane pytania

Czy lekcja „Tworzenie cech interakcyjnych i wielomianowych” jest bezpłatna?

Tak — pełny tekst „Tworzenie cech interakcyjnych i wielomianowych” 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 „Tworzenie cech interakcyjnych i wielomianowych”?

PolynomialFeatures, ręczne składniki interakcji, cechy ilorazowe i przedziałowanie zmiennych ciągłych. Ć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 2 z 4.

Ile czasu zajmuje lekcja „Tworzenie cech interakcyjnych i wielomianowych”?

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