0

13 個の属性とバイナリ クラス変数を含むデータ ファイルがあります。Orange Canvas で「Naive Bayes classifier」を適用してから「Test Learner」でパフォーマンスをチェックすると、「Select Attributes」ウィジェットで属性が選択された順序に結果が依存することがわかりました。違いは大きくありません。たとえば、精度は 0.78 から 0.76 になります。

Naive Bayes アルゴリズムは推定確率の乗算で構成されているため、項の順序は重要ではありません。詳細な調査により、次のことが明らかになりました。

  • これは、相対周波数推定でのみ発生します (ラプラスでは発生しません)。
  • すべてのデータファイルまたはすべての再配置で発生するわけではありません。最初の 3 つの変数が最後の 3 つの場所に移動されたときに発生します。
  • 私たちのデータファイルにはゼロ周波数が含まれています
  • この違いは、確率推定の違いによるものではないようです。コマンド ラインからエスティメータを呼び出す場合、属性がデータ ファイルに表示される順序は重要ではありません。

呼び出しは次のようになります。

bayes_rl = Orange.classification.bayes.NaiveLearner(estimator_constructor=Orange.statistics.estimate.RelativeFrequency())
bayes_relative = bayes_rl(data)
print bayes_relative.conditional_distributions

もちろん、ここでは、コマンド ラインから分類子を呼び出すことは、ファイルに表示される順序と同じ順序で属性を視覚的に選択することと同等であると想定しています。

これは、何が起こっているのかについて少し不安になります。これはある種の丸めエラーですか?

4

1 に答える 1