机器学习中数据的划分,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)
 

参考:https://www.cnblogs.com/jiaxin359/p/8552800.html

猜你喜欢

转载自www.cnblogs.com/xhslovecx/p/10233643.html