如何使用 caret 包解释模型输出的准确性

2024-06-28

我正在使用 caret 包来训练模型,并希望获得模型的准确性。我听说的一种常见方法是使用confusionMatrix。然而,当我运行下面的代码时,经过训练的模型给出了一些与confuseMatrix() 报告的精度值略有不同的精度值。所以我的问题是我应该使用什么精度?如何解释模型直接在控制台中给出的准确性?

ModelRF_ALL_b <- train(price~.,method="rf",data=datatraining_b)
ModelRF_ALL_b

控制台报告如下

Random Forest 

8143 samples
   8 predictor
   2 classes: '0', '1' 

No pre-processing
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 8143, 8143, 8143, 8143, 8143, 8143, ... 
Resampling results across tuning parameters:

  mtry  Accuracy   Kappa    
  2     0.9948108  0.9843501
  4     0.9945824  0.9836512
  7     0.9940732  0.9821099

Accuracy was used to select the optimal model using the largest value.
The final value used for the model was mtry = 2.

我还可以运行confusionMatrix()

confusionMatrix(datatraining_b$price,
predict(ModelRF_ALL_b,datatraining_b))

它的准确度为 1。

Confusion Matrix and Statistics

      Reference
Prediction    0    1
     0 6414    0
     1    0 1729

           Accuracy : 1          
             95% CI : (0.9995, 1)
No Information Rate : 0.7877     
P-Value [Acc > NIR] : < 2.2e-16  

              Kappa : 1          
 Mcnemar's Test P-Value : NA         

        Sensitivity : 1.0000     
        Specificity : 1.0000     
     Pos Pred Value : 1.0000     
     Neg Pred Value : 1.0000     
         Prevalence : 0.7877     
     Detection Rate : 0.7877     
   Detection Prevalence : 0.7877     
  Balanced Accuracy : 1.0000     

   'Positive' Class : 0     

您可以将这些值解释为样本内分别是有和没有重采样的精度。

套餐caret当您拟合模型时,会执行 25 次重复的引导重采样,这可以在模型输出中看到。因此,准确度值基于 25 x 8143 个观测值。为了创建混淆矩阵,您使用最终模型(mtry = 2 的模型)来预测训练样本的结果,该样本的长度为 8143。因此,对应的模型存在轻微差异是正常的。准确性。

在评估拟合优度时需要小心,因为您正在使用相同的数据集来训练和评估模型。毫不奇怪,您会获得很高的准确度。使用未见过的数据集评估最终模型总是好的,以确保其性能并检测可能的过度拟合问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 caret 包解释模型输出的准确性 的相关文章

  • 如何在 dbplyr 中使用自定义 SQL 函数?

    我想计算数据库中的 Jaro Winkler 字符串距离 如果我将数据带入 R 使用collect 我可以轻松地使用stringdist函数从stringdist包裹 但我的数据非常大 我想过滤 Jaro Winkler 距离before将
  • R data.table 使用列作为参数将函数应用于行

    我有以下内容data table x structure list f1 1 3 f2 3 5 Names c f1 f2 row names c NA 3L class c data table data frame 我想对每一行应用一个
  • 在 dplyr tbl_df 中获取删除列的最佳实践

    我记得 2001 年 r help 上的一条评论说drop TRUE in data frame是 R 历史上最糟糕的设计决策 dplyr纠正这一点并且不会隐式删除 当尝试将旧代码转换为dplyr风格 这会引入一些讨厌的错误d 1 or d
  • 包“diamonds”不可用(对于 R 版本 3.0.0)[重复]

    这个问题在这里已经有答案了 在我的 R 环境中拥有钻石包 数据集的简单方法是什么 我是使用 RStudio 3 0 的新手 gt install packages diamonds Warning in install packages p
  • 使用 R 并行处理 XML 节点

    我正在尝试与 R 并行处理 XML 文档xml2包装和foreach功能 但我收到 node attrs x node nsMap ns 中的错误 外部指针无效 尝试导出树集群导出 示例代码 library xml2 library for
  • R 数据框中的重复行

    我正在尝试使用下面的代码复制数据框中的行 但是 我发现它很慢 duprow df 1 for i in 1 2000 print i df rbind df duprow 有更快的方法吗 您可以使用rep 例如对于数据框第 1 行的 5 个
  • 我想将两个变量合并为一个具有日期格式的变量

    我有一个包含几个月的字符列的数据集 MONTH 和指示年份的数字列 YEAR 为了将其用作面板数据 我需要将这些结合起来YEAR and MONTH转换为日期格式的变量 我尝试过改变变量MONTH转换为数字格式 然后合并MONTH与柱YEA
  • R 中带有自定义字段类的参考类?

    我想在另一个引用类中使用自定义引用类 但此代码失败 nameClass lt setRefClass nameClass fields list first character last character methods list ini
  • 如何在其他脚本中包含(源)R 脚本

    我创建了一个实用程序 R 脚本 util R 我想从项目中的其他脚本中使用它 确保此脚本定义的函数可在我的其他脚本中运行的正确方法是什么 我正在寻找类似的东西require函数 仅在尚未加载的情况下加载包 我不想打电话source util
  • 如何使用核心 R 操作/访问“dist”类实例的元素?

    R 中的基本 公共类称为 dist 并且是对称距离矩阵的相对有效的表示 不像一个 matrix 对象 但是 似乎不支持操纵 dist 使用索引对实例 操作员 例如 以下代码不返回任何内容 NULL 或出现错误 First create an
  • Shiny:合并 DT::datatable 中的单元格

    我想以闪亮的方式合并 DT datatable 列中的几行 可以这样做吗 目前我能够输出如下所示 但理想情况下 我想合并行并希望输出如下所示的内容 是否可以在 DT datatable 中合并这样的行 在以下人员的帮助下这是可能的数据表行组
  • 照片与 r 中的图形对齐

    首先我想我需要在powerpoint中手动完成它 然后我想如果有解决方案的话可以尝试使用R 这是我的示例数据 set seed 123 myd lt expand grid cat LETTERS 1 5 cond c F T phase
  • 如何从 R 中的列表列表中提取元素?

    我有一堆列表 其中包含列表 广义线性模型输出 我想编写一个函数 该函数将从每个列表中提取多个元素 然后将结果组合到数据框中 我想提取modelset 1 likelihood modelset 1 fixef modelset 2 like
  • 从数据框中提取具有最高值和最低值的行

    我对 R 还很陌生 我主要用它来可视化统计数据ggplot2图书馆 现在我遇到了数据准备的问题 我需要编写一个函数 该函数将从数据框中删除指定列中具有最高和最低值的一些数字 2 5 或 10 行 并将它们放入另一个数据框中 并对两个因素的每
  • Stata的xtnbreg有R函数吗?

    一直在使用 Stata 在复制中运行负二项式回归 不确定 Stata 是如何做到这一点的 但想知道是否有 R 函数 包可以做同样的事情 R 会让我更好地了解它是如何工作的 因为我可以看到代码 看看glm nb函数在MASS包裹 如果您对 幕
  • 绘图中的文本错误 | Jupyter-R

    我正在尝试在通过 Anaconda 安装的 Jupyter 笔记本上使用 R 中的 ggplot2 绘制一个带有一些数据的简单散点图 以下是我使用的代码 ggplot data df1 1 1000 geom point mapping a
  • tmap 仅在 sf 几何列中绘制第一个多边形

    tmap 仅绘制 sf 几何列中的第一个多边形 但是plot 得到他们全部 一些 github 问题tmap https github com mtennekes tmap issues 360 and leaflet https gith
  • 在 R 中创建多维 NetCDF

    我正在尝试使用 R 包创建多维 NetCDF 文件ncdf http cran r project org web packages ncdf index html 我正在对一组 1500 个点进行气候日常观测 每个点的观测数量约为 182
  • update() 具有局部协变量的函数内的模型

    我需要从函数内部更新回归模型 理想情况下 该函数应该适用于任何类型的模型 lm glm multinom clm 更准确地说 我需要添加函数内部定义的一个或多个协变量 这是一个例子 MyUpdate lt function model ra
  • 将多个ggplot2图保存为列表中的R对象并在网格中重新显示

    我想在大型 for 循环期间将多个绘图 使用 ggplot2 保存到列表中 然后随后在网格中显示图像 使用 grid arrange 我已经尝试了两种解决方案 1 将其存储在列表中 如下所示 pltlist qplot lt qplot 然

随机推荐