Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中随机子空间分类器Weka API的输出_Java_Machine Learning_Weka - Fatal编程技术网

Java中随机子空间分类器Weka API的输出

Java中随机子空间分类器Weka API的输出,java,machine-learning,weka,Java,Machine Learning,Weka,我在weka exploer中构建了一个随机子空间分类器,现在正试图将其与weka Java API一起使用,但是,当我运行distibutionForInstance()时,我得到了一个数组,第一个值为1.0,其余值为0.0。我想得到的是数值预测,而不是课堂上的预测。例如,我应该使用不同的函数,或者在Distribution上使用不同的选项吗?下面的代码片段: 分类器cls=(分类器)weka.core.SerializationHelper.read(“2015-09-6随机子空间模型.Mo

我在weka exploer中构建了一个随机子空间分类器,现在正试图将其与weka Java API一起使用,但是,当我运行distibutionForInstance()时,我得到了一个数组,第一个值为1.0,其余值为0.0。我想得到的是数值预测,而不是课堂上的预测。例如,我应该使用不同的函数,或者在Distribution上使用不同的选项吗?下面的代码片段:

分类器cls=(分类器)weka.core.SerializationHelper.read(“2015-09-6随机子空间模型.Model”)

Instances originalTrain=新数据源(“Instances.arff”).getDataSet()

这给我的输出如下所示: 实例1Value的预测值:0.0 0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0、0.0 0、0.0 0、0.0 0、0.0 0 0、0 0 0 0 0 0 0 0 0 0、0 0.0 0 0 0、0 0 0 0 0 0 0、0 0 0 0 0 0.0 0 0 0、0 0 0 0 0、0 0 0 0 0 0 0 0 0、0 0 0 0 0 0、0 0 0 0 0 0 0 0 0 0 0、0 0 0 0.0 0 0、0 0 0 0 0 0、0 0 0 0 0 0 0 0 0、0 0 0 0 0 0、0 0 0 0 0 0 0 0 0 0 0、0 0 0 0 0 0 0 0 0 0 0、0 0 0 0 0 0 0 0 0 0 0 0 0[附件1.0]

有人知道如何像我在weka explorer中那样获得数字输出吗


提前感谢。

当您对实例进行分类时,我们会为您提供class属性的索引。您必须映射此值:

originalTrain.classAttribute().value((int)cls.classifyInstance(originalTrain.instance(s1))
方法:

classif.distributionForInstance(instance);

返回每个不同类的实例成员资格概率的双数组。如果第一个元素的值为1.0,其余元素的值为0.0,这意味着该算法对预测该特定实例的第一个类非常有信心。其他时候,当成员身份不太清楚时,概率分布会更均匀。

谢谢您的回答。我仍然得到类似的输出。对于我指定的任何实例,我一直将“TX”作为这个函数的输出。我不知道这是从哪里来的。状态是数据集的一部分,所以我想知道它是否从那里获取TX?字符串值=originalTrain.classAttribute().value((int)cls.classifyInstance(originalTrain.instance(s1)))是否尝试打印此值?是的。我认为问题在于,这个模型预测的是一个数值,而不是一个名义值,因此没有阶级成员。应该有一个类似于线性回归模型输出的数值预测。也许这些是错误的功能?它们似乎都与类成员身份有关。是的,该模型预测了一个双值,它表示类属性值的索引。当您得到这个值时,您将得到断言的标称类。谢谢您的帮助。然而,我仍然有点困惑,据我所知,如果一个分类器是为了预测一个数字无关的值而构建的,那么就没有可以作为其成员的标称类。每次运行字符串percentage=originalTrain.classAttribute().value((int)cls.classifyInstance(originalTrain.instance(s1));我得到相同的输出,即字符串“TX”
classif.distributionForInstance(instance);