1

インスタンスを 0 または 1 として分類した分類子の結果を変換して、代わりにスコア (信頼度?) を与えようとしています。たとえば、0 から 10 の間です。RIDOR 分類子を使用していますが、ClassificationViaRegression、RandomForest、または AttributeSelectedClassifier を使用することもできます。簡単に分類できますが、分類はそれほどよくありません。

可能な限りすべてを端末に出力しました (すべてのオプションがチェックされています) が、予測のどこにも信頼度が見つかりません。さらに、これらのどれにもソースコードを出力するオプションがないことを理解していますか? その場合、分類子を手動でコーディングする必要があります。

生成されたルールの例を次に示します。

    class = 2  (40536.0/20268.0)
       Except (fog <= 14.115114) and (polySyllabicWords/Sentence <= 1.973684) and (polySyllabicWords/Sentence <= 1.245) and (Characters/Word > 4.331715) => class = 1  (2309.0/5.0) [1137.0/4.0]
       Except (fog <= 14.115598) and (polySyllabicWords/Sentence <= 1.973684) and (polySyllabicWords/Sentence > 1.514706) => class = 1  (2281.0/0.0) [1112.0/0.0]
       Except (fog <= 14.136126) and (Words/Sentence > 19.651515) and (polySyllableCount <= 10.5) and (polySyllabicWords/Sentence > 2.416667) and (Syllables/Sentence <= 34.875) => class = 1  (601.0/0.0) [303.0/6.0]
       Except (fog <= 14.140863) and (polySyllabicWords/Sentence <= 1.944444) and (polySyllableCount <= 4.5) and (polySyllabicWords/Sentence <= 1.416667) and (wordCount > 29.5) and (Characters/Word <= 4.83156) => class = 1  (333.0/0.0) [152.0/0.0]
       Except (fog <= 14.142217) and (polySyllabicWords/Sentence <= 1.944444) and (polySyllableCount <= 4.5) and (polySyllabicWords/Sentence <= 1.416667) and (numOfChars > 30.5) and (Syllables/Word <= 1.474937) => class = 1  (322.0/0.0) [174.0/4.0]
       Except (fog <= 14.140863) and (polySyllabicWords/Sentence <= 1.75) and (polySyllableCount <= 4.5) => class = 1  (580.0/28.0) [298.0/21.0]
       Except (fog <= 14.141508) and (Syllables/Sentence > 25.585714) and (Words/Sentence > 19.683333) and (sentenceCount <= 4.5) and (polySyllabicWords/Sentence <= 2.291667) and (fog > 12.269468) => class = 1  (434.0/0.0) [202.0/0.0]
       Except (fog <= 14.140863) and (Syllables/Sentence > 25.866071) and (polySyllableCount <= 16.5) and (fog > 12.793102) and (polySyllabicWords/Sentence <= 2.9) and (wordCount <= 59.5) and (Words/Sentence > 16.166667) and (Words/Sentence <= 24.75) => class = 1  (291.0/0.0) [166.0/0.0]
       Except (fog <= 14.140863) and (Syllables/Sentence > 25.585714) and (Words/Sentence > 19.630682) and (polySyllabicWords/Sentence > 2.656863) and (polySyllableCount <= 16.5) and (fog > 13.560337) and (Words/Sentence <= 21.55) and (numOfChars <= 523) => class = 1  (209.0/0.0) [93.0/2.0]
       Except (fog <= 14.147578) and (Syllables/Word <= 1.649029) and (polySyllabicWords/Sentence <= 1.75) and (polySyllabicWords/Sentence > 1.303846) and (polySyllabicWords/Sentence <= 1.422619) and (fog > 9.327132) => class = 1  (183.0/0.0) [64.0/0.0]......

また、最初の行が何を意味するのか (40536/20368) もわかりません。次のルールのいずれかが適用されない限り、それは単に 2 として分類することを意味しますか?

どんな助けでも大歓迎です!

4

1 に答える 1

1

一般に、分類器から信頼性を導き出すことは、特に調整が必要な場合 (たとえば、分類が正しい可能性として示される場合) は簡単な作業とは見なされません。ただし、大まかな見積もりを取得する比較的簡単な方法がいくつかあります。

ツリーおよびルール ベースの分類子では、括弧内の数字は、バケットに含まれる正しい/正しくないサンプルの数を表します。したがって、たとえば、(20,2) のバケットは、トレーニング データに基づいて、このルールが正しいケースが 20 個あり、正しくないケースが 2 個あることを意味します。この比率は、信頼度の大まかな尺度として使用できます。

回帰を使用する場合、WEKA に (クラスだけでなく) 分類器の実際の数値結果を出力させ、それに基づいて信頼度を測ることができます。

より一般的には、ドキュメントに従って、コマンド ラインの -p オプションを使用できます (こちらを参照)。ただし、これらの数値がどのように計算されているかはわかりません。

于 2013-03-21T14:24:01.763 に答える