|
公開日: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を使わない時と同じ結果になります。

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