Java朴素贝叶斯分类器评估
我不熟悉weka数据挖掘和评估。到目前为止,我已经阅读了数据集。我想根据数据集预测我的数据。例如,我使用了weka工具提供的天气数据集。因此,我使用朴素贝叶斯分类器进行分类。现在我得到了属性的概率值。现在我想使用数据集预测数据。例如,当我给出Java朴素贝叶斯分类器评估,java,classification,weka,Java,Classification,Weka,我不熟悉weka数据挖掘和评估。到目前为止,我已经阅读了数据集。我想根据数据集预测我的数据。例如,我使用了weka工具提供的天气数据集。因此,我使用朴素贝叶斯分类器进行分类。现在我得到了属性的概率值。现在我想使用数据集预测数据。例如,当我给出sunny,70,85,TRUE时,我想得到类值的概率。到目前为止,我已经完成了这部分。有人能告诉我如何使用朴素贝叶斯分类器进行数据评估吗 public static void ArfLoader(){ ArffLoader loader
sunny,70,85,TRUE
时,我想得到类值的概率。到目前为止,我已经完成了这部分。有人能告诉我如何使用朴素贝叶斯分类器进行数据评估吗
public static void ArfLoader(){
ArffLoader loader = new ArffLoader();
try {
loader.setFile(new File("sampleData.txt"));
Instances structure = loader.getStructure();
structure.setClassIndex(structure.numAttributes() - 1);
NaiveBayesUpdateable nb = new NaiveBayesUpdateable();
nb.buildClassifier(structure);
Instance current;
while ((current = loader.getNextInstance(structure)) != null){
nb.updateClassifier(current);
}
System.out.print(nb);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是我的数据集
@relation weather
@attribute outlook {sunny, overcast, rainy}
@attribute temperature real
@attribute humidity real
@attribute windy {TRUE, FALSE}
@attribute play {yes, no}
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
对于单独的测试集,您可以尝试下面概述的方法:
ArffLoader testingData = new ArffLoader();
testingData.setFile(new File("sample2.txt"));
Instances testingStructure = testingData.getStructure();
testingStructure.setClassIndex(structure.numAttributes() - 1);
Instance test;
while ((test = testingData.getNextInstance(testingStructure)) != null) {
System.out.println(nb.classifyInstance(test));
}
希望这有帮助
更新强>
听起来你在寻找每个测试用例的概率分布。或许您可以尝试以下方法:
String[] options = new String[7];
options[0] = "-t";
options[1] = "sample.arff";
options[2] = "-T";
options[3] = "sample2.arff";
options[4] = "-p";
options[5] = "2";
options[6] = "-distribution";
System.out.println(Evaluation.evaluateModel(nb, options));
这将包含每种情况下的概率分布列表(训练数据=sample.arff,测试数据=sample2.arff,输出概率分布的测试预测)谢谢你的帮助。这部分我已经完成了。因此我想输入我的值并检查概率。我的意思是我想发送我的值sunny,70,85,为TRUE并获得响应。我已修改我的答案以使用Evaluation.evaluateModel类,该类可以输出概率分布。感谢您的帮助。我正在寻找不同的东西。我有训练数据集。根据这些数据,我需要预测属性集的类值。