ガウシアンナイーブベイズ



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク

公開日:2020/2/6 , 最終更新日:2020/2/14         

前提知識
 ・ナイーブベイズフィルタとは
 ・pythonとは
 ・GaussianNB
 ・ガウス分布


ガウシアンナイーブベイズフィルタの使い方を実例を踏まえて説明します(ナイーブベイズフィルタの考え方はこちらで説明)。 題材は、ある昆虫の身長と体重からその個体がオスかメスかを分類します。



■ガウシアンナイーブベイズの考え方
ガウシアンナイーブベイズとは、ラベルに対する特徴量の尤度ガウス分布であると仮定したベイズフィルタです。 以下の様に同じラベルに属しているデータのガウス分布を求め、新しいデータに対してどちらの分布に近いかを判別します。



■pythonによるシミュレーション
<自作>
特別な関数は使わずガウシアンナイーブベイズを自作します。

 ・pythonバージョン:Ver3.8で確認
 ・必要ライブラリ:numpy,matplotlib (インストール方法はこちら)
 ・必要ファイルbayes.zip(プログラムファイル, 分類対象データ)

実行結果は以下のとおり。いくつかのデータはきちんと分類する事ができていないのが解ります。これがガウシアンナイーブベイズフィルタの実力です。 より高精度な分類方法にはロジスティック回帰などがあります。



<scikit-learnを使う>
scikit-learnには専用の関数GaussianNBがありますので、そちらを使ってみます。

 ・追加必要ライブラリ:scikit-learn
 ・追加必要ファイルbayes2.zip(プログラムファイル) , 分類対象データは上記と同じ

実行結果は以下のとおり、scikit-learnを使わない時と同じ結果になります。











サブチャンネルあります。⇒ 何かのお役に立てればと

関連記事一覧



機械学習

分類(classification)

ニューラルネットワーク(NN)

クラスタリング

強化学習

敵対的生成ネットワーク