机器学习中数据的划分,N折交叉验证
1:对于分类数据来说,它们的target可能分配是不均匀的,比如在医疗数据当中得癌症的人比不得癌症的人少很多,这个时候,使用的数据划分方法有 StratifiedKFold ,StratifiedShuffleSplit
2:对于分组数据来说,它的划分方法是不一样的,主要的方法有 GroupKFold,LeaveOneGroupOut,LeavePGroupOut,GroupShuffleSplit
3:对于时间关联的数据,方法有TimeSeriesSplit
eg:
采用StratifiedKFold做划分:
clf = XGBClassifier()
scores = cross_val_score(clf, iris.data, iris.target, cv=10)
采用StratifiedShuffleSplit做自定义划分:
from sklearn.model_selection import ShuffleSplit my_cv = ShuffleSplit(n_splits=3, test_size=0.3, random_state=0) scores = cross_val_score(clf, iris.data, iris.target, cv=my_cv)
原创博客,转载请注明出处!