当前位置: 首页 > 知识库问答 >
问题:

Weka如何使用J48计算精度?

乐城
2023-03-14

我不熟悉数据挖掘和Weka。我使用GUI在Weka中用J48构建了一个分类器。Weka运行完毕后,会显示:

Correctly Classified Instances 1035   -  68.543 %

Incorrectly Classified Instances 475  -  31.457 %

当从我自己的代码运行时(C#使用IKVM.NET),我使用相同的未标记数据集重新评估我的模型,将预测类的结果保存到ARFF文件中,并计算从1500条记录中得到的结果。

大约1300条记录被正确分类,200条记录没有正确分类,这使得(我认为)精度测量达到86%。

这是正确的吗?那么,为什么结果不同呢?

共有2个答案

周和志
2023-03-14

Weka给您的结果只是对正确和错误分类记录数量的测量,即。

  • 正确分类的记录=TP TN
  • 分类错误的记录=FP FN

这与测量精度不同。精度是对相关的正确分类实例数量的度量,即。

  • 精度=TP/(TP FP)

这是一个高度具体的指标,最好与召回率和准确性等其他指标相关联。它可能不是衡量模型总体性能的最佳方式。

有关精度和召回率的更多信息,请参见:http://en.wikipedia.org/wiki/Precision_and_recall

不过,你的数字没有多大意义。然而,如果不了解更多细节,就不能说更多。

祁聪
2023-03-14

我认为你混淆了“精确性”和“精确性”,它们不是一回事。

  • 准确度是所有实例正确分类实例的百分比
  • 精度是那些被归类为正的实例的正确分类实例的百分比

在公式中:

>

  • 精度=(TP TN)/(TP TN FP FN)=#正确/#所有#实例

    精度=TP/(TP FP)=#正确#正/#分类#为#正

    如果您在这两种情况下都是指准确度(1300/1500的准确度约为86%),那么在没有看到您的代码和GUI日志的情况下,无法判断发生了什么,这在这里可能太多了。

    最可能的解释是,您的代码所做的事情与您在GUI中所做的不同。可能是不同的随机化,不同的分割,不同的学习参数,等等。

  •  类似资料:
    • 什么是高精度算法?它是处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数。但近几年的CSPJ/S复赛貌似从未单独考过高精度算法,但有时会和其他算法一起考。所以还是有学习的必要。 一、高精度计算 高精度计算是指参与运算的数的范围大大超出了标准数据类型能表示的范围的运算。如100位数字和100位数字的加减乘除

    • 一位电气工程师最近告诫我不要将GPU用于科学计算(例如,在精度非常重要的情况下),因为它没有像CPU那样的硬件保障。这是真的吗?如果是的话,这个问题在典型的硬件中有多普遍/多严重?

    • 我有一个rdd(String,Int),它是按键排序的 现在,我想用零开始第一个键的值,并将后续键作为前一个键的和。 例如:c1=0,c2=c1的值,c3=(c1值c2值),c4=(c1..c3值)预期输出: 有可能做到这一点吗?我用地图试过了,但总和没有保存在地图里。

    • 我一直在使用Weka的J48和Naive Bayes多项式(NBM)分类器对RSS提要中的关键字频率进行分类,以将提要分类为目标类别。 例如,我的一个。arff文件包含以下数据提取: 以此类推:总共有570行,每行都包含一天的提要中关键字的频率。在这种情况下,10天内有57条feed,总共有570条记录需要分类。每个关键字都以代理项编号作为前缀,并以“频率”作为后缀。 我在“黑盒”的基础上对J48

    • 我在理解浮点型的精度方面有问题。msdn将该精度从6位写入到9位。但我注意到,精度取决于数字的大小: 小数比大数更精确,我理解IEEE754,但我不明白MSDN是如何计算精度的,它有意义吗? 此外,您还可以在这里使用浮点格式的数字表示。请在“您输入的”输入中写入100000000值,然后单击右侧的“1”。然后将输入值更改为1,然后再次单击“1”。你可以看到精度上的差异。

    • 如何分析Weka中的混淆矩阵,以获得准确度?我们知道,由于数据集不平衡,精度不准确。混淆矩阵如何“确认”准确性? 示例:a)准确率96.1728% b) 准确率:96.8% 等...