머신러닝 모델을 구축할때 사용할 label 데이터가 있고 이 데이터를 test와 train data로 나누어서 사용한다면 고정된 test set을 가지고 모델의 성능을 확인하고 파라미터를 수정하는 과정을 반복하면 결국 고정된 test data에 overfitting이 이루어지는 현상이 나타난다. 이러한 문제를 해결하기 위해 cross_validation을 이용한다.
모든데이터가 쓰이기 때문에 데이터의 수가 적을때도 사용한다.
k-fold cross validation을 진행할 경우, 전체 데이터를 k개의 fold로 나누어서 진행하는 경우도 있고, 전체 데이터를 train 과 test로 나눈 후 train을 k개의 fold로 나누어 진행하는 경우가 있다.
corss_val_score
) & k-fold cross validationfrom sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
iris = load_iris()
model = LogisticRegression()
scores = cross_val_score(model, iris.data, iris.target)
for i in range(5):
print(f"{i+1}번째 정확도: {scores[i]}")
1번째 정확도: 0.9666666666666667
2번째 정확도: 1.0
3번째 정확도: 0.9333333333333333
4번째 정확도: 0.9666666666666667
5번째 정확도: 1.0