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

10倍CSV输出中预测的WEKA输入

赫连靖琪
2023-03-14

我正在使用WEKA Explorer运行10倍交叉验证。我将预测输出到CSV文件。由于10倍的方法混合了数据的顺序,我不知道哪些特定数据分类正确或错误。我的意思是,通过查看CSV,我不知道哪个特定的1或0被分类为1或0。是否有任何方法可以查看测试集中每个折叠的每个特定实例的分类结果?例如,如果CSV能够记录被分类实例的ID,那就太好了。

另一种选择是,我可以手动实现10倍的方法;i、 例如,我可以创建10个ARFF文件,然后以90/10的比例在每个文件上运行(并保留顺序)。这个解决方案看起来非常复杂,工作量大,而且容易出错。

谢谢你的帮助!

共有1个答案

谷森
2023-03-14

要做到这一点,您需要在每次折叠时执行以下操作:

int result = new int[testSet.numInstances()];
for (int j = 0; j < testSet.numInstances(); j++) {

    double res[j] = classifier.classifyInstance(testSet.get(j));

}   

现在,数组已经为测试集中的每个实例提供了分类结果。您可以根据需要使用此信息。例如,您可以打印每个实例的属性(例如,如果属性是字符串,则可以使用(添加过滤器之前)<代码>测试集打印它们)。获取(j)。stringValue(PositionOfAttributeYouWantToPrint))后跟分类结果。

请注意,如果分类结果为标称值,则可以使用以下方法打印:

testSet.classAttribute().value((int)res[j]))    
 类似资料:
  • 我使用高斯朴素贝叶斯(Gaussian Naive Bayes)从熊猫(Pandas)数据帧中训练模型,但使用precision\u recall\u曲线时出现错误。文档中说precision\u recall\u曲线将预测的概率作为输入(至少在我读到的时候),因此我希望下面的方法能够起作用(xtrain和xtest分别是736行和184行的熊猫数据帧;ytrain/ytest分别是736行和18

  • 我为WEKA编写了一个自定义分类器,它需要提供除实例的预测类之外的信息。具体来说,它是一个列表,描述了每个训练实例子集对预测类的影响有多大。 additionalMeasureProducer界面将无法工作,因为我需要将字符串打印到GUI。我希望用户能够选择输出此信息。我原本希望“分类器评估选项”对话框中的选项“输出模型”可以起到作用,但WEKA最终在分类之前调用了我的分类器的方法。我认为这是一个

  • 在weka中。分类器。Evaluation有一个方法,它输出如下所示的混淆矩阵。 我注意到,这个输出中的类是从作为

  • 问题内容: 我想知道如何将新数据添加到现有csv文件的末尾?在没有提到这样的功能。 问题答案: 您可以通过传递以附加模式打开的文件来附加使用: 使用,以免附加列名。 实际上,pandas有一个包装器可以通过使用参数来做到这一点:

  • 当我导出CSV时,数据与我使用EXCEL打开时预期的不同 CSV数据示例{“标题”:“树莓皮3型号B和树莓皮2 E-524988的ABS塑料外壳”,“URL”:“https://www.tinydeal.com/abs-plastic-case-for-raspberry-pi-3-model-b-raspberry-pi-2-p163950.html”,“discounted_price”:“R

  • 任务是“编写一个程序,为用户输入的整数显示用户指示的倍数。” 我想我不需要一个完全直接的答案(尽管我确实想知道要使用的方法/公式),因为我想把这个作为一个学习经验,以便自己完成任务并从中学习。我真的想知道的过程和使用的方法,以及找到一个公式。: 我真的不确定如何编写一个代码,显示一个用户输入的整数的用户输入的数字。最难的部分似乎是编写循环公式。不知道从哪里开始。 到目前为止,我已经: 我真的不确定