出力をプロットしてみるとわかります。ものをプロットし、各点を直線で結ぶとこのような折れ線が描けます。上図では補っていませんが、折れ線は本当は原点から始まっていると考えてください)。いうのは何なのでしょうか。いうリストに入っている値のそれぞれを閾値としたときのモデルの判定を下のように書き出してみるとみえてきます(下の表では、8つのデータをスコア降順に並べ直しています)。相当していることがわかります。この下の面積にどんな意味があるのでしょうか。上の表の下から2番目の行は「閾値をどんどん下げていくとどれだけスパムメールがカバーされていくか」と解釈できます。他方、一番下の行は「閾値をどんどん下げていくとどれだけ非スパムメールまで巻き込んでカバーされてしまっていくか」と解釈できます。いつもそうではありません)。スパムメール判定モデルに求められることは、「閾値をどんどん下げていくと、先にスパムメールだけがカバーされていく(非スパムメールを巻き込まずに)」、そんなスコアを出力することです。完璧なモデルなら、閾値を下げていったときに先に完全にスパムメールをカバーし切って、その後非スパムメールがカバーされ始めます。(0%、0%)→(0%、100%)→(100%、100%)の形を描きます。逆にスパムメールと非スパムメールを全然識別できないモデルなら、閾値を下げていったときにスパムメールも非スパムメールも同じ割合ずつカバーしていってしまいそうです。(0%、0%)→(100%、100%)を直線に結びます。値は非スパムメールよりスパムメールに大きいスコアが付いている期待値などと解釈もできます。昔自分が書いた非常に読みづらい記事)(※)。力を借りることができないこともあると思います。値が合わないと気持ち悪いと思います。上の流れをみると自分でも適当に実装できそうな気がしますが雰囲気でやるのはよくないと思います。