【问题标题】:Explanation of output for Naive bayes algorithm in RR中朴素贝叶斯算法的输出解释
【发布时间】:2017-07-27 06:31:38
【问题描述】:

我是 R 中统计和数据分析的新手。 今天我在 R 中尝试朴素贝叶斯算法。 我面临的问题是我无法理解预测的输出。 代码如下:

install.packages('ElemStatLearn')
library('ElemStatLearn')

library("klaR") library("caret")

sub = sample(nrow(spam), floor(nrow(spam) * 0.9))

train = spam[sub,]

test = spam[-sub,]

xTrain = train[,-58]

yTrain = train$spam

xTest = test[,-58]

yTest = test$spam

model = train(xTrain,yTrain,'nb',trControl=trainControl(method='cv',number=10)) 
prop.table(table(predict(model$finalModel,xTest)$class,yTest))`

这里显示的结果如下:

   yTest
             email       spam
  email 0.33405640 0.02603037
  spam  0.24945770 0.39045553

可以参考这个链接看http://joshwalters.com/2012/11/27/naive-bayes-classification-in-r.html

【问题讨论】:

    标签: r output prediction naivebayes


    【解决方案1】:

    您显示的结果称为“混淆矩阵”。它用于验证您的分类器的工作情况。

    您需要在这里理解一些术语:- 真阳性 (TP)、假阳性 (FP)、真阴性 (TN) 、假阴性 (FN)

    比较:

    你的情况

    从左上到右下的对角线给出正确预测的百分比,其他两个值表示分类器“混淆”的百分比

    希望这能提供一个初步的想法。 谷歌混淆矩阵,你可以找到更多。 一个很好的链接在这里:https://classeval.wordpress.com/introduction/basic-evaluation-measures/

    【讨论】:

      【解决方案2】:

      这不是朴素贝叶斯模型的输出。

      一旦你使用了预测,你就不会真正“关心”模型,因为你已经获得了预测。

      table.prop 为整个总体创建每个组合的比例。您可能需要考虑查看没有比例部分的表格,以查看实际数字

      例如,33.4% 将被检测为电子邮件,实际上是一封电子邮件,而 2.6% 将被检测为电子邮件,而它们实际上是垃圾邮件。

      【讨论】:

      • 好的,知道了,朴素贝叶斯模型输出存储在模型数据框中。但是那么kappa和accuracy是什么意思。 @Shahar Bental
      • 你能分享 kappa 和准确性的代码和输出吗?准确度定义明确,en.wikipedia.org/wiki/Accuracy_and_precisionCohen 的 Kappa 是“标准化”准确度的一种形式:en.wikipedia.org/wiki/Cohen's_kappa
      • 上面写的是我的代码,Naive Bayes 4140 个样本 57 个预测变量 2 个类:'email'、'spam' 没有预处理 重采样:交叉验证(10 倍) 样本量总结:3726 , 3726, 3727, 3727, 3725, 3725, ... 跨调整参数重采样结果:用户内核精度 Kappa FALSE 0.7126367 0.4581488 TRUE 0.5599037 0.2290060
      猜你喜欢
      • 2019-11-26
      • 2011-04-08
      • 1970-01-01
      • 2016-08-18
      • 2020-05-26
      • 2016-06-23
      • 2018-02-14
      • 2010-10-19
      • 1970-01-01
      相关资源
      最近更新 更多