
119
5.1 分割表
5.1
分割表
とは言うものの、まずは簡単なところから始めて、徐々にセグメンテーションに向かって積み上
げていきましょう。
仮に、あなたがデータサイエンティストとしてメールのベンチャー企業である
Spam-o-matic
社
に就職したとしましょう。あなたの仕事は、スパムメールの自動検出器を構築することです。検出
器の出力は、スパムでない場合は
0
、スパムの場合は
1
となるように符号化します。
今分類すべきメールが
10
通ある場合、予測値のベクトルが得られます。
import numpy as np
pred = np.array([0, 1, 0, 0, 1, 1, 1, 0, 1, 1])
検出器がうまくできたかどうかは、正解データ、つまり手作業でメールを
1
つ
1
つ検査して得
た分類と比較すれば確かめられます。
gt = np.array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
しかし、コンピュータにとって分類することはとても難しい作業なので、
pred
と
gt
の値は完全
には一致しないものです。
pred
が
0
で
gt
も
0
の位置では、予測はメールがスパムでないことを正
しく検出できました。このことを真陰性と言います。逆に、どちらも
1
の値を取る位置では、予
測は正しくスパムを検出して真陽性を見つけました。
次に、ミスには
2
種類あります。スパム(
gt
が
1
)をユーザのインボックス(
pred
が
0
)に入
れてしまったら、偽陰性のミスです。正当なメール(
gt
が
0
)をスパム(
pred
が
1
)と予測した ...