私は機械学習アプリケーションに取り組んでおり、テストや比較分類アルゴリズムなどに Weka を使用しています。Weka でのテスト操作の後、J48 決定木を使用することにしました。Weka が生成した枝刈りされた木を解析し、C の if-then 形式として実装しました。ただし、プログラムで Weka の入力として使用されたデータをテストすると、結果は Weka の混同行列と同じではありません。Weka のテスト オプションで、「トレーニング セットを使用する」を選択し、その決定木を使用しました。混同行列と私の結果は次のとおりです。
=== 混同行列 ===
a b c d e f g <-- classified as
178 1 0 1 13 2 7 | a = InstantMessaging
4 29 11 1 14 46 25 | b = Mail
1 3 1051 4 32 921 54 | c = Music
4 0 14 9596 10 4 10 | d = P2P
10 1 46 6 607 263 59 | e = SocialMedia
4 1 230 2 44 7619 63 | f = VideoStream
5 0 57 1 57 167 1016 | g = WebBrowsing
プログラムからの私の結果:
"instantMessaging" => 210,
"mail" => 33,
"music" => 4933,
"p2p" => 9886,
"socialMedia" => 1220,
"videoStream" => 4958,
"webBrowsing" => 1054,
"total" => 22294,
すべてが同じ (デシジョン ツリー、データ、特徴量、関数など) なのに、なぜこれらの異なる結果が得られるのでしょうか? Weka が間違った決定木を生成/表示する可能性はありますか?