我是weka的新手。我有一个csv数据集,有5000个样本。这里有20个样本;当我将这个数据集上传到weka时,它看起来还可以,但是当我运行knn算法时,它会给出一个不应该给出的结果。这是样本数据。
a, b, c, d
74,85,123,1
73,84,122,1
72,83,121,1
70,81,119,1
70,81,119,1
69,80,118,1
70,81,119,1
70,81,119,1
76,87,125,1
76,87,125,1
82,92,146,2
74,86,140,2
68,80,134,2
64,76,130,2
64,75,132,2
83,96,152,2
72,85,141,2
71,83,141,2
69,81,139,2
65,79,137,2
以下是结果:
===交叉验证 === === 摘要===
相关系数0.6148平均绝对误差0.2442均方根误差0.4004相对绝对误差50.2313%均方根相对误差81.2078%实例总数5000
它应该给出这样的结果:正确分类的实例:69 92%错误分类的实例:6 8%
问题应该是什么?我错过了什么?我在所有其他算法中都这样做了,但它们都给出相同的输出。我使用了示例weka数据集,它们都按预期工作。
IBk算法可用于回归(预测每个实例的数值响应值)以及分类(预测每个实例属于哪个类)。
看起来您的数据集中的class属性的所有值(CSV中的列d
)都是数字。因此,当您将此数据加载到Weka中时,Weka猜测该属性应被视为数字属性,而不是名义属性。您可以看出这已经发生,因为预处理选项卡中的直方图如下所示:
而不是像这样(按类着色):
运行IBk时看到的结果是回归拟合的结果(预测每个实例的d列数值),而不是分类(为每个实例选择d列最可能的名义值)。
要获得想要的结果,需要告诉Weka将此属性视为标称属性。在“预处理”选项卡中加载csv文件时,请选中“文件”对话框窗口中的“调用选项”对话框。然后单击“打开”时,您将看到以下窗口:
字段naminalAttie tes
是您可以为Weka提供哪些属性是名义属性的列表,即使它们看起来是数字的。在这里输入4
将指定输入中的第四个属性(列)是名义属性。现在IBk应该按照您的预期运行。
您还可以通过将NumericToNomial无监督属性过滤器应用于已加载的数据来做到这一点,再次指定属性4,否则过滤器将应用于所有属性。
Weka样本数据集使用的ARFF格式包括一个规范,说明哪些属性是哪种类型的。如上所述导入(或过滤)数据集后,可以将其另存为ARFF,然后可以重新加载它,而无需执行相同的过程。
我最近开始使用weka,我正试图使用朴素贝叶斯将推特分类为正面或负面。所以我有一个训练集,上面有我给的标签,还有一个测试集,上面有所有标签都是“肯定的”。当我运行Naive Bayes时,我得到以下结果: 正确分类实例:69 92%错误分类实例:6 8% 然后,如果我将测试集中推文的标签更改为“否定”并再次运行朴素贝叶斯,结果会颠倒: 分类正确的实例:6.8%分类错误的实例:69.92% 我认为正
我今天开始使用Weka。我使用一个包含虚拟信息的. arff文件。然后,我使用weka来获取结果。但是,问题是我不确定weka正在做什么来获取结果。例如,使用Heoffding Tree,我在错误分类的结果上得到了75%和25%的正确分类实例结果;75%到底是什么?weka做了什么来获得75%的正确分类结果?谢谢!
在weka中。分类器。Evaluation有一个方法,它输出如下所示的混淆矩阵。 我注意到,这个输出中的类是从作为
知道如何解决吗?
通过单击Experiment Parameters选项卡中的一个按钮(参见下面的屏幕截图),我创建并运行一个“PreviewAction”,它创建了一个新的选项卡,并用必要的组件填充它。下面是的代码。编辑:我还发布了一个自包含的最小版本,它模拟了真实项目中的条件,并展示了相同的行为。 这里至少存在两个问题: (或)根本不呈现 没有框架本身那么宽,我不知道为什么 我在挥杆方面不是很好,所以我可能错过
我试图在一个有32个属性的数据集上对分类机器学习算法进行数据建模,最后一列是目标类。我将属性数从32改进为6,我觉得这对我的分类模型更有用。 我尝试执行J48和一些增量分类算法。我期望输出结构包括混淆矩阵、更正和分类错误的实例、kappa值。 但是我的结果没有给出任何关于正确和错误分类实例的信息。此外,它也没有预测混淆矩阵和Kappa值。我收到的只是这样: ===总结=== 相关系数0.9482