python交叉验证train_test_split(old:cross validation)实现

1、理论

交叉验证分为三种,holdout验证(二折验证)、K折交叉验证、留一验证。

2、实现

##test cross validation

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn import svm

iris = datasets.load_iris()
# iris.data.shape, iris.target.shape
# ((150, 4), (150,))

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.4, random_state=0)

print(X_train.shape)

clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
print(clf.score(X_test, y_test))

K-fold交叉验证

from sklearn.model_selection import cross_val_score
clf = svm.SVC(kernel='linear', C=1)##模型
scores = cross_val_score(clf, iris.data, iris.target, cv=10)#10折验证

print('linear',scores.mean())    

参考:
1、ML crossvalidation 文章的代码是旧版sklearn的实现;
2、官方版v0.20cross validation实现改成train_test_split;
3、v0.20版交叉验证CSDN

你可能感兴趣的:(python,python包,python3.5学习,算法)