데이터 전처리StandardScaler() → 데이터를 분할train_test_split() → 모델을 fit() → 예측 결과를 predict() | predict_proba()
뭔가 여기는 머신러닝 과정에 대한 설명을 하면 좋을듯
Scikit-learn(sklearn)은 머신러닝을 위한 다양한 기능을 제공하는 범용 라이브러리이다.
import sklearn
Model Selection은 훈련 데이터 성능이 아닌 새로운 데이터에서도 잘 작동하도록 주어진 데이터에 대해 가장 일반화 성능이 좋은 모델을 선택하는 과정이다.
Hold-Out Validation은 데이터를 한 번만 분할하여 모델을 평가하는 방법이다.
sklearn.model_selection .train_test_split(*arrays, test_size=None, random_state=None, shuffle=True, stratify=None)
stratify: 지정한 변수의 값의 비율에 맞게 분할하는 옵션from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=54, stratify=y)
K-fold Cross Validation은 데이터를 K개로 분할하여 모델을 평가하고, 평균 성능으로 일반화 성능을 추정하는 방법이다.
sklearn.model_selection.cross_val_score(estimator, X, y=None, scoring=None, cv=None)
# 5-fold Cross Validation
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
model = LogisticRegression() # 로지스틱 회귀모형
scores = cross_val_score(model, X, y, cv=5, scoring="accuracy")
# Fold별 Accuracy
print(scores)
# 평균 Accuracy
print(scores.mean())
Data Preprocessing(데이터 전처리)은 원시 데이터를 분석이나 머신러닝 모델에 사용할 수 있는 형태로 정리하는 과정이다.