Q . 검증세트가 필요한 이유는?
A . 훈련세트로 모델을 한 번에 완전하게 학습시키기가 어렵다. 훈련세트로 다르게 튜닝된 여러 모델들을 학습한 후 어떤 모델이 학습이 잘 되었는지 검증하고 선택하는 과정이 필요하다.
- 모델선택(Model selection)을 할때, train데이터로 fit 하고 val데이터로 검증하고 하이퍼파라미터를 수정한다.
- Test 데이터는 최종적으로 1번만 검증한다.
- 데이터 수↑ : 전체 데이터를 훈련 / 검증 / 테스트 분리
- 데이터 수↓ : K-fold 교차검증( k-fold cross-validation )을 진행
train_test_split
from sklearn.model_selection import train_test_split
train, val = train_test_split(train, random_state=2)
print("train shape: ", train.shape)
print("val shape: ", val.shape)
분류문제와 회귀문제는 다른 기준으로 기준모델을 설정한다.
Majority class baseline : 다수 클래스를 기준모델로 정하는 방법
❗ 분류문제를 풀기전에 항상 먼저 타겟 범주가 어떤 비율을 가지고 있는지 확인해 보아야 한다.
ex. 1과 0의 비율이 9:1인 학습 데이터를 가지고 모델을 만들었을 때, 정확도가 90%가 나온다고 좋아하면 안된다. 모델이 무조건 1만 찍게 되면 정확도가 90%가 되므로 정확하게 예측한 경우라고 할 수 없다.
Q . 분류문제에서 사용하는 평가지표는?
A . 정확도(Accuracy)는 분류문제에서 사용하는 평가지표이다.
- 회귀 평가지표를 분류에 사용하면 안된다. ( 그 반대도 동일 )
from sklearn.linear_model import LinearRegression
linear_model = LinearRegression()
# 숫자형 특성 만 사용
features = ['Pclass', 'Age', 'Fare']
X_train = train[features]
X_val = val[features]
# Age, Cabin의 결측치를 평균 값으로 채웁니다.
from sklearn.impute import SimpleImputer
# default, imputing 'mean' value
imputer = SimpleImputer()
X_train_imputed = imputer.fit_transform(X_train)
X_val_imputed = imputer.transform(X_val)
# 학습
linear_model.fit(X_train_imputed, y_train)
# 예측
pred = linear_model.predict(X_val_imputed)
Q . Odds란?
A . 오즈는 실패확률에 대한 성공확률의 비이다.
- 로지스틱회귀의 계수는 비선형 함수 내에 있어서 직관적으로 해석하기가 어려워 오즈(Odds)를 사용해 해석한다.
- 오즈(Odds)는 선형결합 형태로 변환 가능해 보다 쉽게 해석이 가능하다.
- 예를들어, odds = 4이면 성공확률이 실패확률의 4배라는 뜻이다.
( : 성공확률, : 실패확률 )
데이터 변환