一、交叉验证
交叉验证:就是在训练集中再抽出一部分当作测试,比如总数据本分成10分,训练集7份,测试集3份,在7份训练集中在抽出份当作测试,也就是说拿前6份训练时,把第7份当做测试。训练集有7份就要训练7次,这7份数据轮流当测试集,结果的准确性是这7次训练的平均值。
分类模型的交叉验证
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
cancer = datasets.load_breast_cancer()
cancer_x = cancer.data
cancer_y = cancer.target
set(cancer_y)#y是二分类数据
#返回值
{
0, 1}
#将数据集分为训练集和测试集
x_train1, x_test1, y_train1, y_test1 = train_test_split(cancer_x, cancer_y, test_size = 0.3)
#将模型实例化
rf = RandomForestClassifier(criterion = 'entropy', max_depth = 3, n_estimators = 5, random_state = 300)
#训练模型
rf = rf.fit(x_train1, y_train1)
1、随机子抽样验证(Hold-Out Method)
from sklearn.model_selection import cross_val_score
#cv=3表示交叉验证做3次
#scoring='accuracy'适用于分类模型
cross_val_score(rf,x_train1,y_train1,cv=3