k-折交叉验证(k-fold CrossValidation)
来源:互联网 发布:淘宝店铺名称搜索不到 编辑:程序博客网 时间:2024/04/25 07:29
k-折交叉验证(k-fold crossValidation):
在机器学习中,将数据集A分为训练集(training set)B和测试集(test set)C,在样本量不充足的情况下,为了充分利用数据集对算法效果进行测试,将数据集A随机分为k个包,每次将其中一个包作为测试集,剩下k-1个包作为训练集进行训练。
在matlab中,可以利用:
indices=crossvalind('Kfold',x,k);
来实现随机分包的操作,其中x为一个N维列向量(N为数据集A的元素个数,与x具体内容无关,只需要能够表示数据集的规模),k为要分成的包的总个数,输出的结果indices是一个N维列向量,每个元素对应的值为该单元所属的包的编号(即该列向量中元素是1~k的整随机数),利用这个向量即可通过循环控制来对数据集进行划分。例:
[M,N]=size(data);//数据集为一个M*N的矩阵,其中每一行代表一个样本
indices=crossvalind('Kfold',data(1:M,N),10);//进行随机分包
for k=1:10//交叉验证k=10,10个包轮流作为测试集
test = (indices == k); //获得test集元素在数据集中对应的单元编号
train = ~test;//train集元素的编号为非test元素的编号
train_data=data(train,:);//从数据集中划分出train样本的数据
train_target=target(:,train);//获得样本集的测试目标,在本例中是实际分类情况
test_data=data(test,:);//test样本集
test_target=target(:,test);
[HammingLoss(1,k),RankingLoss(1,k),OneError(1,k),Coverage(1,k),Average_Precision(1,k),Outputs,Pre_Labels.MLKNN]=MLKNN_algorithm(train_data,train_target,test_data,test_target);//要验证的算法
end
//上述结果为输出算法MLKNN的几个验证指标及最后一轮验证的输出和结果矩阵,每个指标都是一个k元素的行向量
在机器学习中,将数据集A分为训练集(training set)B和测试集(test set)C,在样本量不充足的情况下,为了充分利用数据集对算法效果进行测试,将数据集A随机分为k个包,每次将其中一个包作为测试集,剩下k-1个包作为训练集进行训练。
在matlab中,可以利用:
indices=crossvalind('Kfold',x,k);
来实现随机分包的操作,其中x为一个N维列向量(N为数据集A的元素个数,与x具体内容无关,只需要能够表示数据集的规模),k为要分成的包的总个数,输出的结果indices是一个N维列向量,每个元素对应的值为该单元所属的包的编号(即该列向量中元素是1~k的整随机数),利用这个向量即可通过循环控制来对数据集进行划分。例:
[M,N]=size(data);//数据集为一个M*N的矩阵,其中每一行代表一个样本
indices=crossvalind('Kfold',data(1:M,N),10);//进行随机分包
for k=1:10//交叉验证k=10,10个包轮流作为测试集
test = (indices == k); //获得test集元素在数据集中对应的单元编号
train = ~test;//train集元素的编号为非test元素的编号
train_data=data(train,:);//从数据集中划分出train样本的数据
train_target=target(:,train);//获得样本集的测试目标,在本例中是实际分类情况
test_data=data(test,:);//test样本集
test_target=target(:,test);
[HammingLoss(1,k),RankingLoss(1,k),OneError(1,k),Coverage(1,k),Average_Precision(1,k),Outputs,Pre_Labels.MLKNN]=MLKNN_algorithm(train_data,train_target,test_data,test_target);//要验证的算法
end
//上述结果为输出算法MLKNN的几个验证指标及最后一轮验证的输出和结果矩阵,每个指标都是一个k元素的行向量
- k-折交叉验证(k-fold CrossValidation)
- k-折交叉验证(k-fold CrossValidation)
- k-折交叉验证(k-fold crossValidation)
- k-折交叉验证(k-fold crossValidation)
- k-折交叉验证(k-fold crossValidation)
- K-折交叉验证(k-fold crossValidation)
- k-折交叉验证(k-fold CrossValidation) matlab代码
- 机器学习--k-折交叉验证(k-fold crossValidation)
- 模式识别之k-折交叉验证(k-fold crossValidation)
- K-折交叉验证(k-fold crossValidation)以及在matlab中的实现
- K-fold 交叉验证
- k折交叉验证;k-fold交叉验证;k-fold cross-validation
- k-fold交叉验证,神经网络,matlab
- 【机器学习】交叉验证和K-折交叉验证cross-validation and k-fold cross-validation
- 在微博文本分类任务中应用五折交叉验证(5-fold crossValidation)
- K-折交叉验证
- K折交叉验证
- k折交叉验证
- Defning SIZE_MAX
- RFS的web自动化验收测试——Selenium2Library升级指南(补充一个问题)
- JAVA中native方法
- Android--Animation
- Java中TelnetClient使用实例
- k-折交叉验证(k-fold CrossValidation)
- SharedPreferences 的用法
- 关于获取修改windows计算机名
- execl: Permission denied
- boost::asio::deadline_timer
- Windows域帐户的好处
- Compiling Erlang on Ubuntu
- Oracle触发器简单示例
- 再谈 .net dll泛滥问题,项目引用的管理问题 .完美方案