[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.42,0:00:03.97,Default,,0000,0000,0000,,それではGaussian Naive Bayesの Dialogue: 0,0:00:03.97,0:00:05.58,Default,,0000,0000,0000,,ドキュメントを読んでみましょう。 Dialogue: 0,0:00:05.58,0:00:08.10,Default,,0000,0000,0000,,"sklearn.naive_bayes.GaussianNB"です。 Dialogue: 0,0:00:08.10,0:00:11.45,Default,,0000,0000,0000,,これは探していたアルゴリズムの名前で、 Dialogue: 0,0:00:11.45,0:00:15.65,Default,,0000,0000,0000,,検索した結果sklearnのドキュメントを見つけました。 Dialogue: 0,0:00:15.65,0:00:18.41,Default,,0000,0000,0000,,最初に見るのは、そしてsklearnのドキュメントの素晴らしいところですが Dialogue: 0,0:00:18.41,0:00:22.96,Default,,0000,0000,0000,,たくさんの使用例が記載されています。 Dialogue: 0,0:00:22.96,0:00:25.64,Default,,0000,0000,0000,,私は実際にコードを書くときは Dialogue: 0,0:00:25.64,0:00:28.55,Default,,0000,0000,0000,,いつでもまず最初にサンプルコードを探し出して Dialogue: 0,0:00:28.55,0:00:31.03,Default,,0000,0000,0000,,それから自分のpythonインタプリタで実行し Dialogue: 0,0:00:31.03,0:00:32.55,Default,,0000,0000,0000,,それらがちゃんと動作するか確認するようにしています。 Dialogue: 0,0:00:32.55,0:00:36.11,Default,,0000,0000,0000,,そしてたいていの場合それはうまく動きます。 Dialogue: 0,0:00:36.11,0:00:37.57,Default,,0000,0000,0000,,さて、ここにとてもシンプルなサンプルがありますね。 Dialogue: 0,0:00:37.57,0:00:39.62,Default,,0000,0000,0000,,ここに何行かありますが、これはとても重要です。 Dialogue: 0,0:00:39.62,0:00:41.11,Default,,0000,0000,0000,,ですから少し着目して Dialogue: 0,0:00:41.11,0:00:45.64,Default,,0000,0000,0000,,実際にサンプルコードを書いて動くところをお見せしましょう。 Dialogue: 0,0:00:45.64,0:00:48.25,Default,,0000,0000,0000,,コードの意味が理解できると思います。 Dialogue: 0,0:00:48.25,0:00:49.18,Default,,0000,0000,0000,,最初にライブラリをimportします。 Dialogue: 0,0:00:49.18,0:00:52.96,Default,,0000,0000,0000,,ですからここ、この1行はとても重要です。 Dialogue: 0,0:00:53.01,0:00:56.65,Default,,0000,0000,0000,,この上のコードは、学習用のデータを生成しているだけです。 Dialogue: 0,0:00:56.65,0:00:58.47,Default,,0000,0000,0000,,なのでそれほど重要ではありません。 Dialogue: 0,0:00:58.47,0:01:01.79,Default,,0000,0000,0000,,本題はこのimport文から始まります。 Dialogue: 0,0:01:01.79,0:01:04.54,Default,,0000,0000,0000,,pythonプログラミングの経験があれば、import文は知っていますね。 Dialogue: 0,0:01:04.54,0:01:08.48,Default,,0000,0000,0000,,importは外部のライブラリを使うための構文です。 Dialogue: 0,0:01:08.48,0:01:12.36,Default,,0000,0000,0000,,既に存在するプログラムを再作成する無駄を省き、 Dialogue: 0,0:01:12.36,0:01:15.47,Default,,0000,0000,0000,,誰かが作ってくれたコードを使い回すことができます。 Dialogue: 0,0:01:15.47,0:01:19.38,Default,,0000,0000,0000,,ここではsklearn.naive_bayesからGaussianNBライブラリを使います、と宣言しています。 Dialogue: 0,0:01:19.38,0:01:20.35,Default,,0000,0000,0000,,いいですね。 Dialogue: 0,0:01:20.35,0:01:22.71,Default,,0000,0000,0000,,次に私たちがやろうとしていることは Dialogue: 0,0:01:22.71,0:01:24.41,Default,,0000,0000,0000,,分類器の作成です。 Dialogue: 0,0:01:24.41,0:01:27.04,Default,,0000,0000,0000,,分類器はGaussianNBです。 Dialogue: 0,0:01:27.04,0:01:28.79,Default,,0000,0000,0000,,import文が失敗していると Dialogue: 0,0:01:28.79,0:01:29.84,Default,,0000,0000,0000,,この行を何かの拍子に書き忘れたりすると Dialogue: 0,0:01:29.84,0:01:32.48,Default,,0000,0000,0000,,この行でエラーが出ます。 Dialogue: 0,0:01:32.48,0:01:35.62,Default,,0000,0000,0000,,もし実行時にエラーが出て、このファンクションを Dialogue: 0,0:01:35.62,0:01:37.83,Default,,0000,0000,0000,,認識できませんと言ったメッセージなら Dialogue: 0,0:01:37.83,0:01:40.35,Default,,0000,0000,0000,,import文にミスがあります。 Dialogue: 0,0:01:40.35,0:01:42.51,Default,,0000,0000,0000,,OK、分類器を作成しました。 Dialogue: 0,0:01:42.51,0:01:45.29,Default,,0000,0000,0000,,これで準備は万端です。 Dialogue: 0,0:01:45.29,0:01:48.18,Default,,0000,0000,0000,,次に私たちがしなくてはいけないのは分類器の"fit"です。 Dialogue: 0,0:01:48.18,0:01:51.71,Default,,0000,0000,0000,,私たちは訓練するという言葉の代わりに"fit"を使います。 Dialogue: 0,0:01:51.71,0:01:54.79,Default,,0000,0000,0000,,つまりここで実際に学習用データを与え Dialogue: 0,0:01:54.79,0:01:57.07,Default,,0000,0000,0000,,パターンを学習させているのです。 Dialogue: 0,0:01:57.07,0:02:00.03,Default,,0000,0000,0000,,さっき作成した分類器の Dialogue: 0,0:02:00.03,0:02:03.87,Default,,0000,0000,0000,,fit() ファンクションを実行します。渡す引数は二つです。 Dialogue: 0,0:02:03.87,0:02:10.00,Default,,0000,0000,0000,,引数の X は feature 、そして Y は label です。 Dialogue: 0,0:02:10.00,0:02:13.10,Default,,0000,0000,0000,,"supervised classification"においては共通なのですが Dialogue: 0,0:02:13.10,0:02:15.24,Default,,0000,0000,0000,,fit() ファンクションを実行し Dialogue: 0,0:02:15.24,0:02:16.76,Default,,0000,0000,0000,,引数にfeatureと Dialogue: 0,0:02:16.76,0:02:18.48,Default,,0000,0000,0000,,labelを渡します。 Dialogue: 0,0:02:18.49,0:02:22.06,Default,,0000,0000,0000,,そして最後に、学習させたばかりの分類器に Dialogue: 0,0:02:22.06,0:02:24.30,Default,,0000,0000,0000,,推定をさせています。 Dialogue: 0,0:02:24.30,0:02:26.05,Default,,0000,0000,0000,,新しいデータを与えてみます。 Dialogue: 0,0:02:26.05,0:02:29.32,Default,,0000,0000,0000,,与えるデータは [-0.8, -1] です。 Dialogue: 0,0:02:29.32,0:02:32.88,Default,,0000,0000,0000,,皆さんはこのデータの label はなんだと思いますか。 Dialogue: 0,0:02:32.88,0:02:35.37,Default,,0000,0000,0000,,つまりどの分類に所属すると思いますか。 Dialogue: 0,0:02:35.37,0:02:38.39,Default,,0000,0000,0000,,分類器は「1」の分類だと推定しました。 Dialogue: 0,0:02:38.39,0:02:42.48,Default,,0000,0000,0000,,では「2」の分類だと推定されるデータを思いつきますか。 Dialogue: 0,0:02:42.48,0:02:47.22,Default,,0000,0000,0000,,もちろん分類器に推定をさせる前には Dialogue: 0,0:02:47.22,0:02:49.06,Default,,0000,0000,0000,,分類器を fit させておく必要があります。 Dialogue: 0,0:02:49.06,0:02:50.70,Default,,0000,0000,0000,,データに対してfitを行なっている時が、 Dialogue: 0,0:02:50.70,0:02:52.13,Default,,0000,0000,0000,,実際にパターンを学習している部分だからです。 Dialogue: 0,0:02:52.13,0:02:55.14,Default,,0000,0000,0000,,そしてここは学習したパターンを使って推定を行なっている部分です。 Dialogue: 0,0:02:55.14,0:02:56.53,Default,,0000,0000,0000,,というわけで、 Dialogue: 0,0:02:56.53,0:02:59.38,Default,,0000,0000,0000,,このコードの動作について知っておくべきことを説明しました。 Dialogue: 0,0:02:59.38,0:03:02.20,Default,,0000,0000,0000,,これが機械学習の最初のサンプルコードです。