특성 공학과 규제
특성 공학과 규제
혼자 공부하는 머신러닝 3-3
다중회귀
여러 개의 특성을 사용한 선형 회귀
\(타깃 = a*특성1 + b*특성2+절편\)
Fish Market의 농어 데이터를 이용한 다중 회귀
Fish Market Data에서 농어 데이터만 추출하여 농어의 무게를 나머지 특성으로 다중 회귀를 시도
df.Perch = df[(df['Species']=='Perch')]
y=df['Weight']
X=df.drop(['Species','Weight'] ,axis=1)
기존의 데이터에서 농어만 추출하고 y에는 타깃 데이터 x에는 나머지 특성을 배치
from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target = train_test_split(X, y, test_size=0.3, random_state=42)
그 다음 테스트 세트를 30퍼센트로 데이터를 나누어 주었다.
PolynomialFeatures 를 사용하여 다항식 features로 변환
from sklearn.preprocessing import PolynomialFeatures
poly_features = PolynomialFeatures(degree=5, include_bias=False)
poly_features.fit(train_input)
train_poly = poly_features.transform(train_input)
test_poly = poly_features.transform(test_input)
degree를 통해 n차 다항식의 특성을 추가할 수 있었는데 이후 LinearRegression에서의 score가 degree가 높아질수록 현저히 작아지는 것을 보인다.
위에서부터 degree가 각 1, 2, 3, 4, 5의 경우
아마 이미 5개의 특성을 사용하기 때문에 다항식을 높일 경우 overfit되는 것이 아닐까라고 추측했다.
가장 높은 점수를 달성한 2차 다항식에서 특성의 개수를 살펴 보면 20개임을 알 수 있다.