2013-07-11 165 views
0

我工作在Java中writen使用了Weka algorith J48一些atributes分類的Web服務。首先構建分類器,然後使用分類器樹對實例進行分類。Weka - 獲得「準確度百分比」?

這是代碼我對classifydata方法

fc.buildClassifier(train); 
for (int i = 0; i < test.numInstances(); i++) 
{ 
double pred = fc.classifyInstance(test.instance(i)); 
predicated = (test.classAttribute().value((int) pred)); 
} 

是FC先前設置的FilteredClassifier,作爲列車用於構建分類器並測試實例中的數據進行分類 I」的一部分M還不能確定是否與此代碼我做了良好的分類,如果你能確認這將是很好。

我真正想要的是獲得「準確率」。我真的不知道,如果它被稱爲是這樣,但我不知道該怎麼reffer它。基本上,我想要的東西,將返回分類結果的準確性的百分比。想象一下,我有一個簡單的樹,只有2個分類,「1」或「2」。想象一下,我分類一個實例,結果是「2」。現在我想要的東西會返回實例爲「2」的準確度,並且誰說準確率表示實際上是「2」的概率

我希望我明確自己,因爲這是新鮮事我藏漢

回答

1

對於這一點,你必須使用distributionForInstance()方法:如果你有兩個類值「1」和「2」

double[] probabilityDistribution = fc.distributionForInstance(test.instance[i]) 

然後(和你添加的屬性/類值是爲了你的類屬性),就可以得到與給定的測試實例由是兩個階級的價值觀之一的概率:

// Probability of the test instance beeing a "1" 
double classAtt1Prob = probabilityDistribution[0]; 
// Probability of the test instance beeing a "2" 
double classAtt2Prob = probabilityDistribution[1];