cross-validation
交叉验证法是一种非常常用的对于模型泛化性能进行评估的方法。在sklearn中默认的使用的是K折交叉验证法,即是将数据集拆分为k个部分,然后1个作为testing set,剩下的k-1个作为training set。然后进行k次的模型训练,最后得到k个模型的评分。
下面介绍一下这个函数的一些常用的参数:
cross_val_score(estimator, X, y=None, groups=None, scoring=None, cv=‘warn’, n_jobs=None, verbose=0, fit_params=None, pre_dispatch=‘2*n_jobs’, error_score=‘raise-deprecating’)
estimator:这个参数主要是用来确定使用哪一个模型进行训练。
X,y:这两个参数就不用说了,就相当于输入和输出。
cv:它可以是一个整数,来指定k值,也可以是一个分割了训练集、数据集的迭代生成器。
n_jobs:使用的cpu核数,建议和自己机器的一致。
下面就介绍一下cv另一种赋值方法:
from sklearn.model_selection import ShuffleSplit
shuffle_split = ShuffleSplit(test_size=.2,train_size=.7,n_splits=10)
scores = cross_val_score(svc,X,y,cv=shuffle_split)
# for i,j in shuffle_sp