Snoopy [ML] 21. 데이터 전처리 (10) - 파생변수 만들기
머신러닝과 딥러닝/ML 개념정리

[ML] 21. 데이터 전처리 (10) - 파생변수 만들기

Sooyoon Jeong 2022. 11. 14.

멋쟁이 사자처럼 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: 차수

 

댓글