2016-09-06 20 views
0

WEKA Explorerを使用して10倍のクロス検証を実行しています。予測をCSVファイルに出力します。 10倍のアプローチではデータの順序が混ざり合っているため、どのデータが正しく分類されているのか誤って分類されているのか分かりません。 私は、CSVを見ることによって、わかりません具体的な 1または0は1または0に分類されます。各折りたたみのテストセットの特定のインスタンスごとに分類結果がどのようになっているか確認する方法はありますか?たとえば、分類されているインスタンスのIDをCSVが記録するのは素晴らしいことです。WEKAによる10倍のCSV出力の予測入力

10代のアプローチを手動で実装する方法もあります。つまり、10個のARFFファイルを作成し、それぞれに90/10のパーセンテージ分割(および順序を保持)を実行できます。このソリューションはかなり精巧で、手間がかかり、エラーが発生するようです。

ありがとうございました!あなたはすべての倍のために次のことを行う必要があることを行うには

+0

モデルがあり、インスタンスを分類する必要がある場合は、なぜ10倍CVを使用するのか、またはモデルの精度、リコールなどを確認する必要があります。 ? – xro7

+0

または、折り目ごとにテストセット内のすべてのインスタンスの分類結果を確認する必要がありますか? – xro7

+0

ありがとう、私はクエストを編集しましたイオン。 –

答えて

0

int result = new int[testSet.numInstances()]; 
for (int j = 0; j < testSet.numInstances(); j++) { 

    double res[j] = classifier.classifyInstance(testSet.get(j)); 

} 

res配列は、テスト・セット内のすべてのインスタンスの分類結果を持っています。この情報は、必要に応じて使用できます。 あなたは、たとえば、各インスタンスの属性を印刷することができます(たとえば、属性が文字列である場合は、addingFilter前に(使用してそれらを印刷することができます)testSet.get(j).stringValue(PositionOfAttributeYouWantToPrint))分類結果が続く。分類結果が公称値である場合は、それを印刷できることを

注意

testSet.classAttribute().value((int)res[j]))  
+0

HI xro7、ご協力いただきありがとうございます。私はJAVAでWEKAを使用したことは一度もありませんでしたが、私はGUIを介してのみWEKAを使用しました。私は入力としてX.arffとRandomForestという名前のファイルを分類方法として使用すると仮定して、より完全なJAVAコードを投稿できますか?ところで、私はインスタンスの元のID(別名注文)を印刷したい。 –

+0

私はあなたがGUIを介して仕事をしているとは言いませんでした。これは音のように簡単ではありません。あなたのarffファイルには何が含まれているのかわからないからです。ここからの手順を実行して自分でやるのはかなり簡単です。http://weka.wikispaces.com/Use+WEKA+in+your+Java+code – xro7

関連する問題