멋쟁이 사자처럼 AI스쿨 7기 오늘코드 박조은 강사님의 수업자료를 바탕으로 포스팅하였습니다.
파생변수
이미 존재하는 변수를 활용하여 새로운 변수를 생성하는 것
파생변수는 왜 만들까?
1️⃣ 적절히 생성된 파생변수는 데이터의 특성을 더 잘 설명하기에 데이터 해석이 편리해지고 머신러닝 성능이 개선된다.
2️⃣ 데이터 분석의 목적은 feature들의 숨겨진 관계는 feature들의 연관관계를 통해 파악할 수 있다.
이때, 연관관계를 잘 설명해주는 적절한 feature가 없다면 직접 만들어서 사용할 수 있다.
파생변수 만드는 방법
1️⃣ 사칙연산, 최대, 최소, 산술평균 등 다양한 산술적인 방법으로 만들기
2️⃣ 시간, 지역별로 구분하거나 비율을 구하여 만들기
그 외에도 다양한 방법을 사용하여 파생변수를 생성할 수 있고
필요에 따라 자유롭게 생성하면 된다.
그러나, 파생변수 생성으로 인해 역효과가 생길 수도 있다.
1️⃣ 오히려 성능이 떨어질 수 있다.
2️⃣ feature가 늘어날 수록 학습시간이 늘어난다.
3️⃣ 파생변수 생성자는 해당 변수에 대해 잘 알지만, 다른 사람들은 잘 모를 수 있다.
=> feature명을 직관적으로 사용하고 파생변수에 타당성이 있어야 한다.
다항식 전개에 기반한 파생변수 생성
주어진 다항식의 차수 값에 기반하여 파생변수를 생성할 수 있다.
예를 들어 [a, b]가 Feature로 주어질 때 다항식의 최대 차수를 2로 지정했다고 하면
새로 생성될 수 있는 Polynomial Feature는 [1, a, b, a^2, ab, b^2]이다.
왜 사용할까?
더 다양한 피처를 생성하고 성능을 올리기 위해서 다항식 전개 기법을 사용하여 파생 변수를 생성한 것
MSSubclass, LotArea변수만 보는 것이 아니라 MSSubclass^2, LotArea^2, MSSubclass * LotArea 컬럼들도 생성하여서 다양한 상황을 보기 위함입니다.
get_dummies: 범주형 -> 수치형
polynomial: 수치형
💡사이킷런에서 사용하기
from sklearn.preprocessing import PolynomialFeatures
PolynomialFeatures(
degree=2,
*,
interaction_only=False,
include_bias=True,
order='C',
)
degree: 차수
'머신러닝과 딥러닝 > ML 개념정리' 카테고리의 다른 글
[ML] 25. AutoML 개요 (0) | 2022.11.14 |
---|---|
[ML] 22. 머신러닝 분류모델과 분류모델의 알고리즘 개요 (1) | 2022.11.14 |
[ML] 20. 데이터 전처리 (9) - 인코딩(Ordinary-Encoding, label-Encoding, One-hot-Encoding) (0) | 2022.11.14 |
[ML] 19. 데이터 전처리(8) - 이산화(Discretisation / Equal with binining, Equal frequency bining) (0) | 2022.11.14 |
[ML] 18. 데이터 전처리(7) - 정규분포와 트랜스포메이션(log transformation) (0) | 2022.11.14 |
댓글