SpamAssassinのスコア調整
required_scoreの設定値の推奨値
required_scoreを設定する上で重要なことはFalse Negativeを許容した上で、可能な限りFalse Positiveを減らすことです。必要なメールが届かないケースが発生するとスパムメール対策そのものの信頼性が失われます。そのため、スパムメールが少しすり抜けて届くことを許容し、必要なメールが確実に届くことを目指してrequired_scoreを設定しましょう。
required_scoreの設定値の推奨値は結論から言うと6.0~8.0です。 required_scoreのデフォルトの設定値は5.0になっていますが、運用当初の推奨値としては大きめに8.0〜10.0に設定します。ベイズフィルタの効果が出始めたら、徐々にスコアを下げて6.0〜8.0に設定するのがよいでしょう。
なお、スコア5.0はFalse Positiveが0.05%程度(2000通に1通)発生するように調整されたものです。5未満にスコアを設定するとFalse Positiveが増えますので、5未満に設定してはいけません。
マスチェック
SpamAssassinは、メジャーバージョンのリリース時に各ルールのスコアの調整を行うためにマスチェックを実施しています。
SpamAssassin 3.3.0のリリース時には次のマスチェックが実施されています。
- 65320通のメール(ハム: 21186、スパム: 44134)
- required_scoreの設定値毎に判定させる。
- required_scoreが5.0のときに、False Positive 0.05%程度になるように調整
この統計結果がSpamAssassinの配布物に同梱されていますので、このマスチェックの結果をグラフにすると次のようになりました。
False Positive
まず、スコアセットについて見てみましょう。 このグラフから読み取れることは「スコアセット0」は他のスコアセットに比べてFalse Positiveが著しく大きくなることです。そのため、ベイズテストとネットワークテストのどちらかは必ず有効にしてください。ただし、ベイズテストは効果が出るまで時間がかかるため、実質的にはネットワークテストを有効にする必要があります。
次にrequired_scoreをいくつに設定するのがよいのか見てみましょう。 required_scoreは5未満になるとFalse Positiveが急に増加します。そのため、required_score5未満にしてはいけません。 False Positiveは0.00%になる点は次のようになります。
スコアセット | required_score |
---|---|
スコアセット0(ベイズ:無効、ネットワーク:無効) | 10 |
スコアセット1(ベイズ:無効、ネットワーク:有効) | 8 |
スコアセット2(ベイズ:有効、ネットワーク:無効) | 6.5 |
スコアセット3(ベイズ:有効、ネットワーク:有効) | 6.5 |
ここから読み取れることは、False Positiveを可能な限り減らすためにはベイズテストが有効な場合はrequired_scoreを6.5以上にする必要があります。また、ベイズテストが無効な場合あるいはまだベイズの学習が十分でない場合はrequired_scoreは8以上にする必要があります。
参考までに、ベイズ自動学習により、デフォルトではスコア12より大きいときにspamとして学習します。
False Negative
まず、スコアセットについて見てみましょう。 このグラフから読み取れることは「スコアセット0」「スコアセット2」は他のスコアセットに比べてFalse Positiveが著しく大きくなることです。そのため、ネットワークテストを必ず有効にしてください。
False Negativeは0.00%になる点は次のようになります。
スコアセット | required_score |
---|---|
スコアセット0(ベイズ:無効、ネットワーク:無効) | 0 |
スコアセット1(ベイズ:無効、ネットワーク:有効) | -3 |
スコアセット2(ベイズ:有効、ネットワーク:無効) | -2 |
スコアセット3(ベイズ:有効、ネットワーク:有効) | -2 |
参考までに、ベイズ自動学習により、デフォルトではスコア0.1未満のときにhamとして学習します。