상호작용 및 다항 특성 생성
PolynomialFeatures, 수동 상호작용 항, 비율 특성, 연속 변수 구간화를 학습합니다.
상호작용 및 다항 특성 생성은(는) CoddyKit의 무료 Learn AI with Python 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn AI with Python 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
새 특성을 만드는 이유
선형 모델은 직선형 관계만 포착합니다. 상호작용 특성과 다항 특성을 만들면 간단한 모델도 곡선과 변수 간 결합 효과를 표현할 수 있습니다.
상호작용 특성이란 무엇인가요
상호작용은 두 특성을 곱하는 것입니다. 예를 들어 area = length * width와 같습니다. 두 입력을 함께 고려할 때 나타나는 효과를 포착하며, 어느 하나만으로는 설명할 수 없는 효과를 나타냅니다.
PolynomialFeatures 기초
PolynomialFeatures는 선택한 degree까지 특성의 거듭제곱과 곱을 자동으로 생성합니다. 차수 2에서는 제곱 항과 특성 쌍의 곱이 추가됩니다.
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^2interaction_only 모드
interaction_only=True로 설정하면 교차 곱은 유지하지만 x1^2 같은 순수 거듭제곱은 제거합니다. 곡률이 아니라 결합 효과만 원할 때 유용합니다.
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree=2, interaction_only=True, include_bias=False)
X_int = poly.fit_transform(X)특성 폭증에 주의하기
차수가 높으면 특성이 많이 생성되고 과적합 위험도 커집니다. 입력 특성이 10개이면 차수 3에서 수백 개의 열이 만들어집니다. 차수를 낮게(2 또는 3) 유지하고 특성 선택이나 정규화와 함께 사용하세요.
비율 특성 직접 만들기
도메인 지식이 무작정 모든 조합을 시도하는 것보다 더 효과적인 경우가 많습니다. 제곱미터당 가격이나 노출당 클릭 수처럼 직접 만든 비율은 다항식 확장으로는 찾기 어려운 의미를 담아냅니다.
import pandas as pd
df["price_per_sqm"] = df["price"] / df["area"]
df["ctr"] = df["clicks"] / df["impressions"]pd.cut으로 구간화하기
구간화는 연속형 변수를 범주로 변환합니다. pd.cut은 열을 여러 구간으로 나누므로 비선형 효과를 포착하거나 나이, 소득 등을 그룹화할 때 유용합니다.
import pandas as pd
df["age_group"] = pd.cut(
df["age"],
bins=[0, 18, 35, 60, 120],
labels=["minor", "young", "adult", "senior"],
)동일 빈도 구간화
pd.qcut은 대략적으로 동일한 개수의 항목이 들어 있는 구간(분위수)을 만듭니다. 분포가 치우쳐 있고 균형 잡힌 그룹을 원할 때 유용합니다.
import pandas as pd
df["income_quartile"] = pd.qcut(df["income"], q=4, labels=False)로그 변환으로 왜도 처리하기
오른쪽으로 치우친 특성(소득, 가격, 개수)은 많은 모델의 성능을 저하시킵니다. 로그 변환은 큰 값을 압축하여 분포를 더 대칭적으로 만듭니다.
import numpy as np
# log1p handles zeros safely: log(1 + x)
df["log_income"] = np.log1p(df["income"])제곱근 및 기타 변환
제곱근 변환도 왜도를 줄이지만 로그 변환보다 더 완만하게 줄이므로 개수 데이터에 적합합니다. 히스토그램을 가장 대칭적으로 만드는 변환을 선택하세요.
import numpy as np
df["sqrt_count"] = np.sqrt(df["count"])
# inspect df["sqrt_count"].hist() to confirm reduced skew모두 결합하기
여러 방법을 결합하세요. 치우친 열에는 로그 변환을 적용하고, 임계값이 중요할 때는 구간화하며, 도메인 지식을 반영한 비율을 추가하고, 상호작용에는 PolynomialFeatures를 사용하세요. 새 특성이 실제로 교차 검증 점수를 향상시키는지 항상 검증하세요.
빠른 확인
특성 공학에 대한 지식을 확인해 보세요.
요약
요약: 간단한 모델을 돕도록 특성을 만드세요. PolynomialFeatures에 degree와 interaction_only를 설정하면 곱과 거듭제곱이 추가되므로 특성 폭증에 주의해야 합니다. 도메인 지식으로 직접 비율을 만들고, pd.cut/pd.qcut으로 구간화하며, 로그 또는 sqrt 변환으로 왜도를 줄이세요. 향상이 있었는지 항상 검증하세요.
자주 묻는 질문
“상호작용 및 다항 특성 생성” 강의는 무료인가요?
네 — “상호작용 및 다항 특성 생성” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn AI with Python 강의 전체를 잠금 해제할 수 있습니다. Learn AI with Python 강의에는 총 4개의 강의가 포함되어 있습니다.
“상호작용 및 다항 특성 생성”에서 뭘 배우나요?
PolynomialFeatures, 수동 상호작용 항, 비율 특성, 연속 변수 구간화를 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Learn AI with Python을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Learn AI with Python은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“상호작용 및 다항 특성 생성” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Learn AI with Python 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Learn AI with Python 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 특성 선택 방법
- 상호작용 및 다항 특성 생성
- 목표값 인코딩 및 고급 범주형 데이터 처리
- Featuretools를 활용한 자동 특성 공학