请问一下10×10交叉验证是重复分层交叉验证吗,10×10交叉验证的python代码怎么实现啊
2条回答 默认 最新
- CSDN专家-深度学习进阶 2022-03-15 12:34关注
10×10交叉验证是将数据集分成十份,轮流将其中9份做训练1份做验证,10次的结果的均值作为对算法精度的估计,以此进行10次10折交叉验证求均值
这是一个例子# -*- coding: utf-8 -*- import numpy as np from sklearn import cross_validation from sklearn import datasets from sklearn import svm iris = datasets.load_iris() X=iris.data Y=iris.target def tenFolds(X,Y): from sklearn.model_selection import StratifiedKFold skf= StratifiedKFold(n_splits=10) from sklearn.cross_validation import cross_val_score clf = svm.SVC(kernel='linear', C=5) zhou=[] #shoushou=list(skf.split(X,Y)) #发现每一个都是tuple类型的数据 for train_index,test_index in skf.split(X,Y): print('Train: ',train_index,'Test: ',test_index) X_train,X_test=X[train_index],X[test_index] Y_train,Y_test=Y[train_index],Y[test_index] v10=cross_val_score(clf,X_train,Y_train,cv=5).mean() zhou.append(v10) print('均值:',np.mean(zhou)) print('方差:',np.std(zhou)) return zhou,np.mean(zhou)+np.std(zhou) # X:features Y:targets cv:k import pandas as pd all_valid=[] mean_var=[] #做10次10折交叉验证结果分析 for i in range(1,11): df1=pd.DataFrame(X) df2=pd.DataFrame(Y) df3=pd.concat([df1,df2],axis=1) df3.columns=['f1','f2','f3','f4','label'] df3=df3.sample(frac = 1) #随机打乱样本 df3.index=range(150) X1=np.array(df3[['f1','f2','f3','f4']]) Y1=np.array(df3['label']) zhou,vsd= tenFolds(X1,Y1) all_valid.append(zhou) mean_var.append(vsd) np.mean(mean_var)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥15 maple软件,用solve求反函数出现rootof,怎么办?
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题
- ¥20 在虚拟机的pycharm上
- ¥15 jupyterthemes 设置完毕后没有效果