コース: AI 入門

ナイーブベイズとは

コース: AI 入門

ナイーブベイズとは

これまで、近いデータと比べて 分類する手法や、 トレンドを基準に分類する手法を 見てきました。 次は、データに含まれる複数の要素を 元に分類する手法で、 ナイーブベイズと呼ばれる アルゴリズムです。 ナイーブベイズも、 非常によく利用される 機械学習アルゴリズムの1つです。 ベイズ学習の手法の中でも、 予測変数相互の影響がないと 仮定していることが特徴で、 単純ベイズとも呼ばれます。 先の動物保護施設の例で、 すべての犬を、犬種ごとに 分類したいとします。 今回は、ナイーブベイズの アルゴリズムを使って考えます。 まず、3つの犬種をクラスとして 設定します。 ここではテリア、ハウンド、 競技犬の3つとします。 次に、これらの犬種を特定するために 使う予測変数を設定します。 ここでは体毛の長さ、体高、体重の 3つを使います。 体高が高い個体は体重も 重いというように、予測変数の間に 強い相関もあることが普通ですが、 ナイーブベイズでは変数間の相関を 考慮しません。 名前のとおり、単純化した手法です。 クラスと予測変数を設定すると、 アルゴリズムはまずクラス予測確率と 呼ばれる値を計算します。 個々の犬について3つの予測変数を見て、 それぞれの犬種に属する確率を推定します。 まだ犬種がわからない 1匹を分類したい場合、 最初は体毛の長さを見て その長さの体毛を持つ犬が、 それぞれのクラスに属する確率が どれだけあるかを調べます。 訓練データを見ると、 この長さならテリアである確率が 40%、 ハウンドである確率が 10%、 競技犬である確率が 50%であるとわかったとします。 次にアルゴリズムは、 同じ犬の体高を見ます。 体高も1つの独立した予測変数として扱い、 その体高で3つのクラスの それぞれに属する確率がどうなるかを 調べます。 訓練データを見ると、 テリアである確率が 20%、 ハウンドである確率が 10%、 競技犬である確率が 70%だとわかります。 そして最後に、同じ犬の体重を調べます。 体高と強い相関がある体重を扱うのは 不合理に思えますが、 そこはナイーブベイズ法なので、 すべてを独立した予測変数として 評価します。 訓練データを見ると、 テリアである確率が 10%、 ハウンドである確率が 5%、 競技犬である確率が 85%でした。 これで、犬種未確定の1匹について、 クラス予測確率の表ができました。 これを見れば、 競技犬という推測がつくでしょう。 ナイーブベイズのアルゴリズムは、 ビジネスにも幅広く活用できます。 例えばカード会社では、 カード利用データの全変数を独立して 評価するために使われています。 クラス予測確率を出して、 不正利用を分類するわけです。 セキュリティ企業では、 脅威の洗い出しに利用しています。 個々の変数を独立して評価し、 人による精査が必要な案件に 印をつけてくれます。 ナイーブベイズの特徴は、 前提をほとんど設けずに、 多くの予測変数を一度に扱えることです。 多くの変数を調べることが、 正確な分類に役立つのです。

目次