Weka, 无法使最近邻方法在当前测试和训练集上工作

目前我在使用Weka,并尝试使用最近邻方法对我的测试集进行分类。我的训练集和测试集都有11列数值数据,最后一列是用于分类的列。两者都已通过Weka工具从.csv转换为.arff格式。

预览训练集

预览测试集

首先,我上传了训练集,并在“分类”选项卡下的“测试选项”中选择了“使用训练集”。我选择了“IBk”分类器,并将邻居数量设置为10。得到的(糟糕的)输出如下:

训练集分类

接下来,我选择了“提供的测试集”并上传了我的测试集。除了标题外,只有最后一列是空的。但当我尝试运行时,得到的输出显示没有一个被分类:

测试集分类

此时我完全不知道该怎么办。据我所知,我的测试集和训练集是正确的,因为它们除了列中的数值不同外是相同的,我只是在训练集上训练后尝试使用我的测试集… 显然我做错了什么。


回答:

问题在于测试集上的评估,其类属性被设置为?empty。你会在训练集上得到一些结果,因为对于训练数据,你知道所有数据标签。但对于测试集,你的标签是未知的,你怎么知道分类器预测的y对于给定实例是正确的类,还是仅仅是误分类?这就是为什么:你可以得到测试实例的预测标签,但你无法进行任何评估

以下内容仅为假设,与你的数据无关:

例如,在训练数据上,你可能会得到如下结果:

=== 训练数据上的错误 ===正确分类的实例           4               80      %错误分类的实例         1               20      %Kappa统计量                          0.6154平均绝对误差                      0.2429均方根误差                  0.4016相对绝对误差                 50.0043 %根相对平方误差             81.8358 %总实例数                5     

但对于未知测试数据,输出可能如下所示:

=== 测试数据上的错误 ===总实例数                0     忽略的未知类实例                  5     === 混淆矩阵 === a b   <-- 分类为 0 0 | a = 1 0 0 | b = -1

然而,你可以得到未知数据实例的预测如下:

=== 测试数据上的预测 === 实例#     实际  预测 错误 预测 (特征1,特征2,特征3,特征4)     1        1:?        1:1       1 (1,7,1,0)     2        1:?        1:1       1 (1,5,1,0)     3        1:?       2:-1       0.786 (-1,1,1,0)     4        1:?       2:-1       0.861 (1,1,1,1)     5        1:?       2:-1       0.861 (-1,1,1,1)        === 混淆矩阵 ===         a b   <-- 分类为         2 1 | a = 1     0 2 | b = -1

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注