1

私はスパム フィルター マイニング プロジェクトに取り組んでおり、現在 NaiveBayesMultinomial 分類子を使用して、単語の出現頻度を数えることでスパムを非スパムから分類しています。

問題は、WEKA がデフォルトで分類のしきい値を 0.5 に設定していることです。ただし、非スパムをスパムとして誤分類することは、その逆よりも有害です。

混同行列がどのように変化するかを確認するために、WEKA の NaiveBayesMultinomial アルゴリズムのしきい値を調整したいと考えています。それが直接不可能な場合、WEKA からの出力を利用して、別のしきい値の混同行列を計算するにはどうすればよいですか?


テスト分割で評価したときのプロジェクトの現在の結果の概要は次のとおりです。

概要:

Correctly Classified Instances        2715               98.4766 %
Incorrectly Classified Instances        42                1.5234 %
Kappa statistic                          0.9679
Mean absolute error                      0.0184
Root mean squared error                  0.1136
Relative absolute error                  3.8317 %
Root relative squared error             23.2509 %
Total Number of Instances             2757     `

クラス別の詳細な精度:

               TP Rate   FP Rate   Precision   Recall  F-Measure   ROC Area  Class
                 0.998     0.035      0.978     0.998     0.988      0.998    ham
                 0.965     0.002      0.996     0.965     0.98       0.999    spam
Weighted Avg.    0.985     0.022      0.985     0.985     0.985      0.998

混同マトリックス:

   a    b   <-- classified as
1669    4 |   a = ham
  38 1046 |   b = spam
4

3 に答える 3

2

費用対効果分析画面で変更できます。結果リストで結果を右クリックし、しきい値曲線の視覚化を選択します。

内部にはしきい値を移動するためのスライダーがあり、新しい混同マトリックスは左下隅にあります。

ここに画像の説明を入力

于 2014-10-08T16:04:37.007 に答える
1

確率のしきい値は、コストに敏感な分類を使用して調整できます。

目的のしきい値がkの場合、偽陽性のコストμと偽陰性のコストλを次のように設定します。

k = μ / (μ + λ)

たとえば、0.4 のしきい値が必要な場合は、μを 2 に、λを 3 に設定します。つまり、次のコスト マトリックスを使用します。

0 3
2 0

参照: Weka を使用したその他のデータ マイニング —レッスン 4.6 コストに敏感な分類とコストに敏感な学習(スライド)。


式の説明:

2 つのクラスを持つ Naive Bayes では、クラス A の確率が p の場合、クラス B の確率は (1 - p) になります。

しきい値が 0.5 の場合、p > 0.5、つまり p > (1 - p) の場合、クラス A として分類します。

A を B として誤分類する (偽陰性) コストは C aであり、B を A として誤分類する (偽陽性) コストは C bであるとします。次に、A を B として誤分類する確率加重コストが、B を A として誤分類する確率加重コストよりも大きい場合にのみ、クラス A として分類します。つまり、これが真の場合、A として分類します。

C a * p > C b * (1 - p)

不等式を整理すると、次のようになります。

p > C b / (C a + C b )

于 2021-09-07T14:09:42.187 に答える