回归:预测的测试数据需要class值?在维卡
Regression: Test data for prediction requires class value? in Weka
来自 weka.classifiers 的 M5P 树模型:python-weka-wrapper
我的 arff 文件中的每一行都包含 6 个属性,第 6 个属性是训练模型的目标变量。
我正在使用 weka.core.converters.ArffLoader 对 arff 文件进行训练。
训练结束后,如果我想用一些测试数据进行预测,我正在创建实例并将其传递给构建的模型进行预测。在这些实例中,我只传递了 5 个属性的值,而不是目标变量的值。我收到 java 异常:
Traceback (most recent call last):
File "C:/Users/Sethuraman/PycharmProjects/Test_printer/m_M5P.py", line 85, in
pred_dict1[index + 1] = cls.classify_instance(instance)
File "C:\Users\Sethuraman\Anaconda2\lib\site-packages\python_weka_wrapper-0.3.8-py2.7.egg\weka\classifiers.py", line 105, in classify_instance
return self.__classify(inst.jobject)
File "C:\Users\Sethuraman\Anaconda2\lib\site-packages\javabridge-1.0.14-py2.7-win-amd64.egg\javabridge\jutil.py", line 852, in fn
raise JavaException(x)
javabridge.jutil.JavaException: Src and Dest differ in # of attributes: 5 != 6
为什么要提供目标变量值?是否也需要通过目标值?基本上在训练之后模型应该预测目标值。如果是,为什么?如果没有,如何处理?
请帮忙!
如果你想要验证,你一定要提供目标值;算法如何知道它在其他情况下的表现如何?但是如果你只是想让它在那个集合上预测,似乎最好的方法是用'?'填充目标点,这样数据仍然具有6个属性,目标简单地标记为未知。有关更多信息,请参阅 http://weka.wikispaces.com/Making+predictions。
您可以使用 Add 过滤器来引入新属性。默认情况下,此过滤器会将新属性的所有值标记为缺失(“?”)。只需确保这个新属性的名称以及在标称 class 的情况下 class 标签的顺序与训练数据中的顺序完全相同。
来自 weka.classifiers 的 M5P 树模型:python-weka-wrapper 我的 arff 文件中的每一行都包含 6 个属性,第 6 个属性是训练模型的目标变量。 我正在使用 weka.core.converters.ArffLoader 对 arff 文件进行训练。 训练结束后,如果我想用一些测试数据进行预测,我正在创建实例并将其传递给构建的模型进行预测。在这些实例中,我只传递了 5 个属性的值,而不是目标变量的值。我收到 java 异常:
Traceback (most recent call last): File "C:/Users/Sethuraman/PycharmProjects/Test_printer/m_M5P.py", line 85, in pred_dict1[index + 1] = cls.classify_instance(instance) File "C:\Users\Sethuraman\Anaconda2\lib\site-packages\python_weka_wrapper-0.3.8-py2.7.egg\weka\classifiers.py", line 105, in classify_instance return self.__classify(inst.jobject) File "C:\Users\Sethuraman\Anaconda2\lib\site-packages\javabridge-1.0.14-py2.7-win-amd64.egg\javabridge\jutil.py", line 852, in fn raise JavaException(x) javabridge.jutil.JavaException: Src and Dest differ in # of attributes: 5 != 6
为什么要提供目标变量值?是否也需要通过目标值?基本上在训练之后模型应该预测目标值。如果是,为什么?如果没有,如何处理? 请帮忙!
如果你想要验证,你一定要提供目标值;算法如何知道它在其他情况下的表现如何?但是如果你只是想让它在那个集合上预测,似乎最好的方法是用'?'填充目标点,这样数据仍然具有6个属性,目标简单地标记为未知。有关更多信息,请参阅 http://weka.wikispaces.com/Making+predictions。
您可以使用 Add 过滤器来引入新属性。默认情况下,此过滤器会将新属性的所有值标记为缺失(“?”)。只需确保这个新属性的名称以及在标称 class 的情况下 class 标签的顺序与训练数据中的顺序完全相同。