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

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 01:33   11   0

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP