Nlp Weka忽略未标记的数据

Nlp Weka忽略未标记的数据,nlp,classification,weka,arff,Nlp,Classification,Weka,Arff,我正在Weka中使用朴素贝叶斯分类器进行NLP分类项目。我打算使用半监督机器学习,因此处理未标记的数据。当我在一组独立的未标记测试数据上测试从标记的训练数据获得的模型时,Weka会忽略所有未标记的实例。有人能告诉我怎么解决这个问题吗?以前有人在这里问过这个问题,但没有提供任何合适的解决方案。以下是一个示例测试文件: @relation referents @attribute feature1 NUMERIC @attribute feature2 NUMERIC @attr

我正在Weka中使用朴素贝叶斯分类器进行NLP分类项目。我打算使用半监督机器学习,因此处理未标记的数据。当我在一组独立的未标记测试数据上测试从标记的训练数据获得的模型时,Weka会忽略所有未标记的实例。有人能告诉我怎么解决这个问题吗?以前有人在这里问过这个问题,但没有提供任何合适的解决方案。以下是一个示例测试文件:

@relation referents
@attribute feature1      NUMERIC
@attribute feature2      NUMERIC
@attribute feature3      NUMERIC
@attribute feature4      NUMERIC
@attribute class{1 -1}
@data
1, 7, 1, 0, ?
1, 5, 1, 0, ?
-1, 1, 1, 0, ?
1, 1, 1, 1, ?
-1, 1, 1, 1, ?

问题在于,当指定训练集
-t train.arff
和测试集
test.arff
时,操作模式是基于测试集计算模型的性能。但是,如果不知道实际的类别,就无法计算任何类型的性能。如果没有实际的课程,你怎么知道你的预测是对还是错

我将您提供的数据用作
train.arff
test.arff
以及我指定的任意类标签。相关输出线为:

=== Error on training data ===

Correctly Classified Instances           4               80      %
Incorrectly Classified Instances         1               20      %
Kappa statistic                          0.6154
Mean absolute error                      0.2429
Root mean squared error                  0.4016
Relative absolute error                 50.0043 %
Root relative squared error             81.8358 %
Total Number of Instances                5     


=== Confusion Matrix ===

 a b   <-- classified as
 2 1 | a = 1
 0 2 | b = -1
在我的情况下,这会给你:

=== Predictions on test data ===

 inst#     actual  predicted error prediction (feature1,feature2,feature3,feature4)
     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) “测试模型”是什么意思?输出是什么?你期望得到什么样的输出?a)这里是链接:b)“模型”指的是从训练数据中获得的模型。输出显示:分类实例=0忽略实例=5我希望分类实例=5,并且分类准确度可以,谢谢链接。我现在正在查看源代码,但看不到任何可能导致您描述的行为的东西。另外,我问你“测试模型”是什么意思,比如“你如何测试你的模型?”你能给我们源代码吗?此外,如果缺少类标签,则无法计算准确度,因为您没有可比较的基本事实。我的意思是,我现在正在查看WEKA源代码,我仍然需要您的源代码,抱歉造成混淆。我使用一个简单的perl脚本使用以下命令调用WEKA:system(java-cp-weka.jar-weka.classifiers.bayes.NaiveBayes-t train.arff-t test.arff>result.txt)Weka应该在没有标签的情况下工作,因为我的朋友们在java中使用了相同的格式,而且它也适用于他们好吧,现在它有意义了。非常感谢。一个简单的问题:第3列中的1和-1是测试数据的预测标签吗?是的,因为class属性是标称的,每个值都由其索引(1和2)标识,但实际值(1和-1)也会打印出来。(请参阅weka.classifiers.Evaluation#predictionText)。请不要忘记向上投票,我喜欢我的观点;)
java -cp weka.jar weka.classifiers.bayes.NaiveBayes -t train.arff -T test.arff -p 1-4
=== Predictions on test data ===

 inst#     actual  predicted error prediction (feature1,feature2,feature3,feature4)
     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)