Automatyczne tworzenie cech za pomocą Featuretools
EntitySet, DFS (Deep Feature Synthesis), prymitywy cech, agregacje kaskadowe.
Automatyczne tworzenie cech za pomocą Featuretools to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 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.
Automatyzacja tworzenia cech
Ręczna inżynieria cech jest czasochłonna i łatwo przeoczyć niektóre kombinacje. Featuretools automatycznie tworzy wiele kandydujących cech z danych relacyjnych za pomocą metody nazywanej Deep Feature Synthesis.
Dane relacyjne i encje
Rzeczywiste dane często obejmują wiele powiązanych tabel: klientów, zamówienia i produkty. Featuretools modeluje te zależności i automatycznie generuje cechy agregujące dane wzdłuż tych relacji.
Tworzenie EntitySet
EntitySet to kontener przechowujący ramki danych oraz informacje o relacjach między nimi. Najpierw należy utworzyć pusty obiekt.
import featuretools as ft
es = ft.EntitySet(id="customers_data")Dodawanie ramek danych
es.add_dataframe rejestruje tabelę. Należy określić jej index (unikatowy klucz) oraz opcjonalnie time_index w przypadku danych czasowych.
import featuretools as ft
es = es.add_dataframe(
dataframe_name="customers",
dataframe=customers_df,
index="customer_id",
)
es = es.add_dataframe(
dataframe_name="orders",
dataframe=orders_df,
index="order_id",
time_index="order_date",
)Definiowanie relacji
Za pomocą add_relationship należy wskazać Featuretools, jak łączą się tabele: klucz nadrzędny łączy się z kluczem obcym tabeli podrzędnej (jeden klient ma wiele zamówień).
es = es.add_relationship(
"customers", "customer_id",
"orders", "customer_id",
)Deep Feature Synthesis
DFS (ft.dfs) to główny mechanizm. Łączy operacje wzdłuż relacji, aby tworzyć takie cechy jak „średnia wartość zamówień na klienta”, bez konieczności kodowania każdej z nich osobno.
import featuretools as ft
feature_matrix, feature_defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
)Prymitywy agregacji
Prymitywy agregacji podsumowują wiersze podrzędne na poziomie elementu nadrzędnego: SUM, MEAN, COUNT, MAX, STD. Zamieniają wiele zamówień w statystyki poszczególnych klientów.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
agg_primitives=["mean", "sum", "count", "max"],
)Prymitywy transformacji
Prymitywy transformacji działają w obrębie pojedynczego wiersza lub tabeli: wyodrębniają miesiąc z daty, obliczają czas, który upłynął, lub wyznaczają wartości bezwzględne.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
trans_primitives=["month", "weekday", "time_since_previous"],
)Kontrolowanie głębokości za pomocą max_depth
max_depth ogranicza liczbę łączonych prymitywów. Głębokość 1 oznacza bezpośrednie agregacje, a głębokość 2 stosuje transformację, a następnie agregację (np. średnią dnia tygodnia, w którym złożono zamówienia). Większa głębokość oznacza więcej cech, ale także większe ryzyko.
feature_matrix, defs = ft.dfs(
entityset=es,
target_dataframe_name="customers",
max_depth=2,
)Korzystanie z macierzy cech
Wynikowa macierz feature_matrix to uporządkowana ramka danych z indeksem wskazującym encję docelową, gotowa do przekazania do modelu. feature_defs opisuje każdą wygenerowaną cechę.
print(feature_matrix.shape)
print(feature_matrix.head())
X = feature_matrix.fillna(0)
# now train any sklearn model on XZalety i środki ostrożności
Featuretools szybko tworzy wiele cech i pomaga odkrywać zależności relacyjne. Może jednak wygenerować setki kolumn, dlatego należy połączyć je z selekcją cech. W przypadku danych czasowych trzeba też uważać na wyciek, ustawiając odpowiedni cutoff_time.
Szybki test
Proszę sprawdzić swoją wiedzę na temat Featuretools.
Podsumowanie
Podsumowanie: Featuretools automatyzuje inżynierię cech. Należy zbudować EntitySet, zarejestrować tabele za pomocą es.add_dataframe, zdefiniować relacje, a następnie uruchomić ft.dfs z parametrem max_depth. Prymitywy agregacji przenoszą dane z wierszy podrzędnych na poziom elementów nadrzędnych, a prymitywy transformacji działają w obrębie wiersza. Macierz feature_matrix jest gotowa do użycia w modelu, ale warto połączyć ją z selekcją cech.
Często zadawane pytania
Czy lekcja „Automatyczne tworzenie cech za pomocą Featuretools” jest bezpłatna?
Tak — pełny tekst „Automatyczne tworzenie cech za pomocą Featuretools” 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 „Automatyczne tworzenie cech za pomocą Featuretools”?
EntitySet, DFS (Deep Feature Synthesis), prymitywy cech, agregacje kaskadowe. Ć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 4 z 4.
Ile czasu zajmuje lekcja „Automatyczne tworzenie cech za pomocą Featuretools”?
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
- Metody wyboru cech
- Tworzenie cech interakcyjnych i wielomianowych
- Kodowanie docelowe i zaawansowana obsługa danych kategorialnych
- Automatyczne tworzenie cech za pomocą Featuretools