범주형 자료
- 문자열 데이터
명목형(nominal)
순서형(ordinal)
Encoding
- 범주형(문자형) 변수를 숫자로 변환
One Hot Encoding
- 각 unique한 값을 하나의 차원으로 변환
- 순서가 중요하지 않으므로 명목형 변수에 적합
- high cardinality한 경우 부적절
#use_cat_names=True : 변수를 특성이름에 사용
encoder = OneHotEncoder(use_cat_names=True)
#train : fit_transform
X_train = encoder.fit_transform(X_train)
#test : transform
X_test = encoder.transform(X_test)
X_train.head()
Select KBest
- 중요한 특성을 선택하는 방법
#k : 선택할 특성 개수
selector = SelectKBest(score_func=f_regression, k=10)
X_train_selected = selector.fit_transform(X_train, y_train)
X_test_selected = selector.transform(X_test)
#get_support : 각 특성 선택 여부 boolean
selected_mask = selector.get_support()
#선택된 특성
selected_names = X_train.columns[selected_mask]
Ridge Regression
- 규제항을 두어(복잡도를 줄여) 과적합을 줄이는 회귀 모델
규제항
튜닝 파라미터(alpha, lambda)
0 ← → ∞
← → 0
Ridge CV
- 최적의 값을 찾기위한 교차 검증
alphas = [0.01, 0.05, 0.1, 0.2, 1.0, 10.0, 100.0]
ridge = RidgeCV(alphas=alphas, normalize=True, cv=3)
ridge.fit(ans[['x']], ans['y'])
print('alpha :', ridge.alpha_)
print('best score :', ridge.best_score_)
alpha: 0.2
best score: 0.4389766255562206