それではGaussian Naive Bayesの
ドキュメントを読んでみましょう。
"sklearn.naive_bayes.GaussianNB"です。
これは探していたアルゴリズムの名前で、
検索した結果sklearnのドキュメントを見つけました。
最初に見るのは、そしてsklearnのドキュメントの素晴らしいところですが
たくさんの使用例が記載されています。
私は実際にコードを書くときは
いつでもまず最初にサンプルコードを探し出して
それから自分のpythonインタプリタで実行し
それらがちゃんと動作するか確認するようにしています。
そしてたいていの場合それはうまく動きます。
さて、ここにとてもシンプルなサンプルがありますね。
ここに何行かありますが、これはとても重要です。
ですから少し着目して
実際にサンプルコードを書いて動くところをお見せしましょう。
コードの意味が理解できると思います。
最初にライブラリをimportします。
ですからここ、この1行はとても重要です。
この上のコードは、学習用のデータを生成しているだけです。
なのでそれほど重要ではありません。
本題はこのimport文から始まります。
pythonプログラミングの経験があれば、import文は知っていますね。
importは外部のライブラリを使うための構文です。
既に存在するプログラムを再作成する無駄を省き、
誰かが作ってくれたコードを使い回すことができます。
ここではsklearn.naive_bayesからGaussianNBライブラリを使います、と宣言しています。
いいですね。
次に私たちがやろうとしていることは
分類器の作成です。
分類器はGaussianNBです。
import文が失敗していると
この行を何かの拍子に書き忘れたりすると
この行でエラーが出ます。
もし実行時にエラーが出て、このファンクションを
認識できませんと言ったメッセージなら
import文にミスがあります。
OK、分類器を作成しました。
これで準備は万端です。
次に私たちがしなくてはいけないのは分類器の"fit"です。
私たちは訓練するという言葉の代わりに"fit"を使います。
つまりここで実際に学習用データを与え
パターンを学習させているのです。
さっき作成した分類器の
fit() ファンクションを実行します。渡す引数は二つです。
引数の X は feature 、そして Y は label です。
"supervised classification"においては共通なのですが
fit() ファンクションを実行し
引数にfeatureと
labelを渡します。
そして最後に、学習させたばかりの分類器に
推定をさせています。
新しいデータを与えてみます。
与えるデータは [-0.8, -1] です。
皆さんはこのデータの label はなんだと思いますか。
つまりどの分類に所属すると思いますか。
分類器は「1」の分類だと推定しました。
では「2」の分類だと推定されるデータを思いつきますか。
もちろん分類器に推定をさせる前には
分類器を fit させておく必要があります。
データに対してfitを行なっている時が、
実際にパターンを学習している部分だからです。
そしてここは学習したパターンを使って推定を行なっている部分です。
というわけで、
このコードの動作について知っておくべきことを説明しました。
これが機械学習の最初のサンプルコードです。