分類アルゴリズム3つ、SVM・k-NN・ナイーブベイズの直感と用途。
他にも分類アルゴリズムってたくさんあるよね?
代表的なのはSVM・k近傍法・ナイーブベイズの3つ。 直感を押さえましょう。
SVM(Support Vector Machine)は『2クラスを分ける境界』を最大マージンで引く手法。 境界に近いサンプル(サポートベクター)だけが境界を決める、という巧妙な方法。
境界が一直線じゃないときは?
カーネル法を使うと、データを高次元に写像することで非線形な境界を引ける。 RBFカーネルが最も汎用的。
k近傍法(k-NN)は?
『新しいサンプルから最も近い k 個の既存サンプルを見て、多数決で分類する』というシンプルな手法。 学習なしで予測時に距離計算するだけ。
学習なしって、すごいシンプルですねぇ。
シンプルだけど距離計算が高コストで、大規模データには向かない。 また{kw('特徴量のスケーリング')}が結果に大きく影響するので前処理必須。
ナイーブベイズは?
ベイズの定理を使う分類器で、『各特徴量が独立』というナイーブな仮定を置く。 仮定は厳しいけれど、テキスト分類(スパム判定等)で実用的に強い。
学習・予測ともに高速で、メモリも少なく済むのがメリット。 特徴量が独立に近い問題で力を発揮するの。
覚えるのが大変ですぅ…
DS検定★では『SVMはマージン最大化』『k-NNは距離ベースの多数決』『ナイーブベイズはベイズ+独立仮定』を押さえれば十分よ。
確認クイズ
ナイーブベイズ分類器の『ナイーブ』とは何が単純だと仮定しているのか。
- 全特徴量が同じ値をとる
- 全特徴量が互いに独立
- 全クラスの事前確率が等しい
- 全データが正規分布に従う
こたえを見る
正解: 2. 全特徴量が互いに独立
全特徴量が互いに独立と仮定するのがナイーブベイズの『ナイーブ』な部分です。 現実にはこの仮定はあまり成り立たないものの、テキスト分類等では実用的に強い結果を出します。