机器学习中具有 10 倍交叉验证的代码

     2023-03-12     81

关键词:

【中文标题】机器学习中具有 10 倍交叉验证的代码【英文标题】:Code with 10 fold cross validation in machine learning 【发布时间】:2016-06-06 05:27:20 【问题描述】:

我刚刚开始使用机器学习。我尝试使用 C5.0 模型进行 10 折交叉验证。我要求代码返回 kappa 值。

folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)
str(folds)
mdd.cohort1_train = mdd.cohort1[-folds$Fold01,]
mdd.cohort1_test = mdd.cohort1[folds$Fold01,]
library(caret)
library(C5.0)
library(irr)
set.seed(123)
folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)

cv_results = lapply(folds, function(x) 
mdd.cohort1_train = mdd.cohort1[-x, ] 
mdd.cohort1_test = mdd.cohort1[x, ] 
mdd.cohort1_model = C5.0(edmsemmancomprej ~., data = mdd.cohort1_train) 
mdd.cohort1_pred = predict(mdd.cohort1_model, mdd.cohort1_test) 
mdd.cohort1_actual = mdd.cohort1_test$edmsemmancomprej 
kappa = kappa2(data.frame(mdd.cohort1_actual, mdd.cohort1_pred))$value    return(kappa))

给出以下错误信息:

Error: unexpected symbol in:
"mdd.cohort1_actual = mdd.cohort1_test$edmsemmancomprej
kappa = kappa2(data.frame(mdd.cohort1_actual, mdd.cohort1_pred))$value return"

有谁知道发生了什么?提前非常感谢您!

【问题讨论】:

可能return 语句应该换行? 如果您不熟悉机器学习,也可以考虑使用 mlr 库 mlr-org.github.io/mlr-tutorial/release/html。 非常感谢,jMathew。现在代码工作了! 【参考方案1】:

如果没有可重复的示例,这有点困难,但我认为最后一行的回报共享是原因。为了便于阅读,我重新格式化了你的代码

library(caret)
library(C5.0)
library(irr)   

folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)

str(folds)

mdd.cohort1_train = mdd.cohort1[-folds$Fold01,]
mdd.cohort1_test = mdd.cohort1[folds$Fold01,]

set.seed(123)
folds = createFolds(mdd.cohort1$edmsemmancomprej, k=10)

cv_results = lapply(folds, function(x) 
  mdd.cohort1_train = mdd.cohort1[-x, ] 
  mdd.cohort1_test = mdd.cohort1[x, ] 
  mdd.cohort1_model = C5.0(edmsemmancomprej ~., data = mdd.cohort1_train) 
  mdd.cohort1_pred = predict(mdd.cohort1_model, mdd.cohort1_test) 
  mdd.cohort1_actual = mdd.cohort1_test$edmsemmancomprej 
  kappa = kappa2(data.frame(mdd.cohort1_actual, mdd.cohort1_pred))$value    
  return(kappa)
  )

【讨论】:

5倍交叉验证如何理解

15倍交叉验证是一种常用的模型评估方法。2在进行机器学习模型的训练和测试时,我们需要对模型的性能进行评估。其中,交叉验证是一种常用的评估方法。5倍交叉验证是将数据集分成5份,其中4份用于训练模型,1份用于测试... 查看详情

如何使用 python 中的测试集大小进行 10 倍交叉验证

...0-1300:35:47【问题描述】:如何使用LinearRegression()函数构建机器学习模型以预测客户的预期SpendValue还使用20%的测试集大小使用10倍交叉验证来衡量模型的性能。X=sales.drop([\'Sp 查看详情

机器学习100天(二十九):029k折交叉验证

机器学习100天,今天讲的是:K折交叉验证!《机器学习100天》完整目录:目录机器学习中,我们常会遇到一个问题,就是超参数的选择,超参数就是机器学习算法中的调优参数,比如上一节K近邻算法中的K值。K折交叉验证就是... 查看详情

如何在 Scikit-Learn 中绘制超过 10 倍交叉验证的 PR 曲线

】如何在Scikit-Learn中绘制超过10倍交叉验证的PR曲线【英文标题】:HowtoPlotPR-CurveOver10foldsofCrossValidationinScikit-Learn【发布时间】:2015-06-2118:53:33【问题描述】:我正在针对二元预测问题进行一些监督实验。我使用10倍交叉验证来评... 查看详情

绘制一对多 SVM 中 10 倍交叉验证的结果(使用 LibSVM)

】绘制一对多SVM中10倍交叉验证的结果(使用LibSVM)【英文标题】:Plotresultof10foldcross-validationinone-against-allSVM(usingLibSVM)【发布时间】:2012-12-1414:10:31【问题描述】:我想在此链接中绘制libsvmtrain_ova的结果:10foldcross-validationinone-ag... 查看详情

机器学习:交叉验证,网络搜索(代码片段)

学习目标目标知道交叉验证、网格搜索的概念会使用交叉验证、网格搜索优化训练模型1什么是交叉验证(crossvalidation)交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为... 查看详情

机器学习交叉验证和网格搜索(代码片段)

交叉验证和网格搜索交叉验证和网格搜索交叉验证:网格搜索:交叉验证和网格搜索交叉验证:之前学习算法的时候,去验证一个模型泛化能力(好坏),都只验证一次,这肯定是不行的。因此我... 查看详情

机器学习100天(二十九):029k折交叉验证

机器学习100天,今天讲的是:K折交叉验证!《机器学习100天》完整目录:目录机器学习中,我们常会遇到一个问题,就是超参数的选择,超参数就是机器学习算法中的调优参数,比如上一节K近邻算法中的K值。K折交叉验证就是... 查看详情

机器学习100天(二十九):029k折交叉验证

机器学习100天,今天讲的是:K折交叉验证!《机器学习100天》完整目录:目录机器学习中,我们常会遇到一个问题,就是超参数的选择,超参数就是机器学习算法中的调优参数,比如上一节K近邻算法中的K值。K折交叉验证就是... 查看详情

字符识别--模型集成(代码片段)

...讲解如何使用集成学习来提高预测的精度集成学习方法在机器学习中的集成学习可以在一定程度上提高预测精度,常见的集成学习方法有Stacking、Bagging和Boosting,同时这些集成学习方法于具体验证集划分联系密切。由于深度学习... 查看详情

spark2.0机器学习系列之2:基于pipeline交叉验证parammap的模型选择和超参数调优

Spark中的CrossValidationSpark中采用是k折交叉验证(k-foldcrossvalidation)。举个例子,例如10折交叉验证(10-foldcrossvalidation),将数据集分成10份,轮流将其中9份做训练1份做验证,10次的结果的均值作为对算法精度的估计。10折交叉检验最... 查看详情

机器学习中数据的划分,n折交叉验证(代码片段)

1:对于分类数据来说,它们的target可能分配是不均匀的,比如在医疗数据当中得癌症的人比不得癌症的人少很多,这个时候,使用的数据划分方法有 StratifiedKFold ,StratifiedShuffleSplit2:对于分组数据来说,它的划分方法是... 查看详情

机器学习交叉验证和网格搜索案例分析(代码片段)

目录1什么是交叉验证(crossvalidation)1.1分析1.2为什么需要交叉验证2什么是网格搜索(GridSearch)3交叉验证-网格搜索API:4鸢尾花案例增加K值调优5Facebook签到的位置预测5.1数据集介绍5.2步骤分析5.3代码实现6总结1什么是交叉验证(cross... 查看详情

Tidymodels:在 R 中进行 10 倍交叉验证后,从 TIbble 中取消最佳拟合模型的 RMSE 和 RSQ 值

】Tidymodels:在R中进行10倍交叉验证后,从TIbble中取消最佳拟合模型的RMSE和RSQ值【英文标题】:Tidymodels:UnnesttheRMSEandRSQValuesfortheBestFittedModelfromaTIbbleafterconductinga10-foldcrossvalidationinR【发布时间】:2021-03-0922:58:54【问题描述】:概述... 查看详情

如何在执行 10 倍交叉验证时在每次拆分时获得 Lasso Regression 中的系数?

】如何在执行10倍交叉验证时在每次拆分时获得LassoRegression中的系数?【英文标题】:HowtogetthecoefficientsinLassoRegressionateverysplitwhileperforming10foldcrossvalidation?【发布时间】:2021-08-3103:24:08【问题描述】:我正在执行随机搜索cv以在Las... 查看详情

了解机器学习过程和 K 折交叉验证

】了解机器学习过程和K折交叉验证【英文标题】:UnderstandingmachinelearningprocessandKfoldcrossvalidation【发布时间】:2019-12-0218:24:04【问题描述】:我是机器学习的初学者,我一直在尝试更详细地了解这个过程。对于任何机器学习场景... 查看详情

机器学习-sklearn(交叉验证和pipeline)(代码片段)

前面一节咱们已经介绍了决策树的原理已经在sklearn中的应用。那么这里还有两个数据处理和sklearn应用中的小知识点咱们还没有讲,但是在实践中却会经常要用到的,那就是交叉验证cross_validation和Pipeline。cross_validation是保证了咱... 查看详情

机器学习3(代码片段)

任务4  1、KNN的决策边界以及K的影响  决策边界分成两大类,分别是线性决策边界和非线性决策边界。拥有线性决策边界的模型我们称为线性模型,反之非线性模型. 随着K值的增加,决策边界确实会变得更加平... 查看详情