0Pricing
Learn AI with Python · 강의

Featuretools를 활용한 자동 특성 공학

EntitySet, DFS(Deep Feature Synthesis), 특성 프리미티브, 집계 결과의 스태킹을 다룹니다.

Featuretools를 활용한 자동 특성 공학은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

특성 생성 자동화

수동 특성 공학은 느리고 조합을 빠뜨리기 쉽습니다. 피처툴스는 심층 피처 합성이라는 방법을 사용하여 관계형 데이터에서 많은 후보 특성을 자동으로 생성합니다.

관계형 데이터와 엔터티

실제 데이터는 고객, 주문, 상품처럼 서로 관련된 여러 테이블에 걸쳐 있는 경우가 많습니다. 피처툴스는 이러한 관계를 모델링하고 연결 관계를 가로질러 자동으로 집계하는 특성을 생성합니다.

EntitySet 만들기

EntitySet은 데이터프레임과 데이터프레임 간의 관계를 담는 컨테이너입니다. 먼저 비어 있는 EntitySet을 만드십시오.

import featuretools as ft

es = ft.EntitySet(id="customers_data")

DataFrames 추가하기

es.add_dataframe은 테이블을 등록합니다. 테이블의 index(고유 키)를 지정하고, 시간 데이터라면 선택적으로 time_index를 지정합니다.

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",
)

관계 정의하기

add_relationship을 사용하여 테이블이 어떻게 연결되는지 피처툴스에 알려 주십시오. 부모 키가 자식 외래 키에 연결됩니다(고객 한 명이 여러 주문을 가질 수 있음).

es = es.add_relationship(
    "customers", "customer_id",
    "orders", "customer_id",
)

심층 피처 합성

DFS(ft.dfs)가 핵심 엔진입니다. 관계를 따라 연산을 연속으로 적용하여 각 특성을 직접 작성하지 않고도 "고객별 평균 주문 금액"과 같은 특성을 생성합니다.

import featuretools as ft

feature_matrix, feature_defs = ft.dfs(
    entityset=es,
    target_dataframe_name="customers",
)

집계 기본 연산

집계 기본 연산은 자식 행을 부모 수준으로 요약합니다: SUM, MEAN, COUNT, MAX, STD. 여러 주문을 고객별 통계량으로 변환합니다.

feature_matrix, defs = ft.dfs(
    entityset=es,
    target_dataframe_name="customers",
    agg_primitives=["mean", "sum", "count", "max"],
)

변환 기본 연산

변환 기본 연산은 하나의 행이나 테이블 내부에서 작동합니다. 예를 들어 날짜에서 월을 추출하거나, 경과 시간을 계산하거나, 절댓값을 구합니다.

feature_matrix, defs = ft.dfs(
    entityset=es,
    target_dataframe_name="customers",
    trans_primitives=["month", "weekday", "time_since_previous"],
)

max_depth로 깊이 제어하기

max_depth는 기본 연산을 몇 단계까지 쌓을지 제한합니다. 깊이 1은 직접 집계이고, 깊이 2는 변환을 적용한 뒤 집계합니다(예: 주문 요일의 평균). 깊이가 높을수록 특성이 많아지지만 위험도 커집니다.

feature_matrix, defs = ft.dfs(
    entityset=es,
    target_dataframe_name="customers",
    max_depth=2,
)

특성 행렬 사용하기

결과로 생성된 feature_matrix는 대상 엔터티를 인덱스로 하는 정리된 데이터프레임이며, 모델에 바로 입력할 수 있습니다. feature_defs에는 생성된 각 특성이 기록됩니다.

print(feature_matrix.shape)
print(feature_matrix.head())

X = feature_matrix.fillna(0)
# now train any sklearn model on X

장점과 주의사항

피처툴스는 많은 특성을 빠르게 생성하고 관계형 데이터의 신호를 찾아냅니다. 하지만 수백 개의 열을 생성할 수 있으므로 특성 선택과 함께 사용하십시오. 시간 데이터에서는 적절한 cutoff_time을 설정하여 정보 누수를 주의해야 합니다.

확인 문제

피처툴스에 대한 지식을 확인해 보십시오.

복습

복습: 피처툴스는 특성 공학을 자동화합니다. EntitySet을 만들고, es.add_dataframe으로 테이블을 등록하고, 관계를 정의한 다음, max_depth와 함께 ft.dfs를 실행하십시오. 집계 기본 연산은 자식 행을 부모 수준으로 집계하고, 변환 기본 연산은 행 내부에서 작동합니다. feature_matrix는 모델에 바로 사용할 수 있으므로 특성 선택과 함께 사용하십시오.

자주 묻는 질문

“Featuretools를 활용한 자동 특성 공학” 강의는 무료인가요?

네 — “Featuretools를 활용한 자동 특성 공학” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.

“Featuretools를 활용한 자동 특성 공학”에서 뭘 배우나요?

EntitySet, DFS(Deep Feature Synthesis), 특성 프리미티브, 집계 결과의 스태킹을 다룹니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“Featuretools를 활용한 자동 특성 공학” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 특성 선택 방법
  2. 상호작용 및 다항 특성 생성
  3. 목표값 인코딩 및 고급 범주형 데이터 처리
  4. Featuretools를 활용한 자동 특성 공학
← Learn AI with Python(으)로 돌아가기