K-Fold Cross Validation(K倍交叉检验)
来源:互联网 发布:淘宝商标申请入口 编辑:程序博客网 时间:2024/04/30 05:38
今天用matlab实现决策树,发现用到交叉检验的问题,好吧网上找的总结一下,以备不时之需!!!
下面是一个求6倍交叉检验的决策树的错误率代码。
function errorrate()
[S1,S2,S3,S4,S5,S6,S7,S8,classity]=textread('Pima-training-set.txt','%f %f %f %f %f %f %f %f %s');
D=[S1 S2 S3 S4 S5 S6 S7 S8];
AttributName={ 'preg','plas','pres','skin','insu','mass','pedi','age'};
t=classregtree(D,classity,'names',AttributName);
t=prune(t,'level',5);
costsum=zeros(6,1);
for k=1:6
cost=test(t,'cross',D,classity);
costsum=costsum+cost;
end
costsum=costsum/6;
i=1:6;
plot(i,costsum,'-o');xlabel('交叉次数');ylabel('错误率');
title('决策树k 倍交叉错误率曲线');
end
1)从k个数据中抛出一个数据
用剩下的k-1个数据训练模型,用得到的模型拟合扔出去的那一个数据,得到其预测误差
重复k次,直到所有的k个数据都这样被扔出去一次,将每次所得的预测误差加总即为CV值
交叉检验(Cross Validation)
在数据分析中,有些算法需要利用现有的数据构建模型,比如贝叶斯分类器,决策树,线性回归等,这类算法统称为监督学习(Supervisied Learning)算法。构建模型需要的数据称之为训练数据(Train Da
模型构建完后,需要利用数据验证模型的正确性,这部分数据被称为测试数据(Test Da
训练数据,验证数据和测试数据
一般做预测分析时,会将数据分为两大部分。一部分是训练数据,用于构建模型,一部分是测试数据,用于检验模型。但是,有时候模型的构建过程中也需要检验模型,辅助模型构建,所以会将训练数据在分为两个部分:1)训练数据;2)验证数据(Validation Da
- 训练数据(Test Da
ta):用于模型构建 - 验证数据(Validation Da
ta):可选,用于辅助模型构建,可以重复使用。 - 测试数据(Test Da
ta):用于检测模型构建,此数据只在模型检验时使用,用于评估模型的准确率。绝对不允许用于模型构建过程,否则会导致过渡拟合。
K次交叉检验(K-Fold Cross Validation)
K次交叉检验的大致思想是将数据大致分为K个子样本,每次取一个样本作为验证数据,取余下的K-1个样本作为训练数据。模型构建后作用于验证数据上,计算出当前错误率。重复K次,将K次错误率平均,得到一个总体的错误率。可以通过整体错误率,估计当前整体数据用于建模的错误率。
举个例子,K = 10(常见情况),求出总体错误率为8.7%。那么将当前的所有数据全部作为训练数据,得到的模型的错误率90%的可能在9.7%左右。
- K-Fold Cross Validation(K倍交叉检验)
- 什么是交叉检验(K-fold cross-validation)
- k fold cross validation
- K-Fold Cross Validation
- k层交叉检验(k-flod cross-validation)
- k折交叉验证;k-fold交叉验证;k-fold cross-validation
- 【机器学习】交叉验证和K-折交叉验证cross-validation and k-fold cross-validation
- 【机器学习】k-fold cross validation(k-折叠交叉验证)
- k-fold cross validation中的小问题
- cross-validation:从 holdout validation 到 k-fold validation
- cross-validation:从 holdout validation 到 k-fold validation
- k-fold cross validation with modelr and broom
- cross-validation 交叉检验(二)
- cross-validation 交叉检验(三)
- K-fold 交叉验证
- 关于K-fold cross validation 下不同的K的选择的疑惑?
- Bias(偏差),Error(误差),Variance(方差),和K-fold Cross Validation的关系(机器学习核心)
- k-折交叉验证(k-fold CrossValidation)
- java中java.lang.ArrayIndexOutOfBoundsException异常
- JavaScript基础知识(一)
- 信号处理中用DCT进行图像处理
- HDU2874-LCA-离线targan
- 前端知识总结
- K-Fold Cross Validation(K倍交叉检验)
- Decision Tree的matlab实现及原理
- matlab中怎么把矩阵数据转换为txt文件
- MATLAB中的length() size()区别
- Kmeans的matlab的实现
- Kmeans函数理解
- 单利模式
- BP神经网络
- MFCC特征提取的MatLab的代码实现