Python 機械学習入門

15
テテテテ テテテテテテテテ テテテテ 2016/05/20

Transcript of Python 機械学習入門

Page 1: Python 機械学習入門

テキスト

機械学習について鈴木孝之  2016/05/20

Page 2: Python 機械学習入門

機械学習とはコンピューターでアルゴリズムを構築し、学習データを読み込ませることで、自動的に今あるデータを分類&まだ見ぬデータを予測できるようにするものヒトの情報処理能力を超えて、複雑なデータを分類&予測できるようにするもの

Page 3: Python 機械学習入門

身の回りにある機械学習の事例スパム判定: メールがスパムか否かを判定リコメンド:「この商品を買った人はこんな商品も買っています」画像認識: Picasa の顔認識機能など

Page 4: Python 機械学習入門

機械学習が得意とする問題大量のデータを使って、未知のデータを分類※ 少量データなら人間が頑張った方が早い⚪⚪︎ と︎いう単語があればスパム、というパターンを作成

Page 5: Python 機械学習入門

機械学習の分類教師付き

正解データが与えられている未知のデータに対する予測を行う

教師なし正解データが与えられていない未知のデータから規則性を発見する

Page 6: Python 機械学習入門

教師付きと教師なし学習の違い教師付き 教師なし

画像データがあるだけで、学習アルゴリズムは、このデータだけをみてこのデータの性質を探ります。 すると、大体 0 から 9 までの 10 種類のパターンに大きく分けることができます。 このようにデータだけからその規則性を学び取るのが教師なし学習です。

Page 7: Python 機械学習入門

教師付き学習の学習方法 ( 入力 )

入力された値に対して、正解のペアをたくさん用意するたくさん多ければ多いほうが望ましいが 1000 以上は欲しい

→ データのサンプルあり

Page 8: Python 機械学習入門

教師付き学習の出力の表現期待する結果を洗い出し、数値化する数値は意味がある場合と単なるラベリングの場合がある数値画像の例であれば、 0 ~ 9 の間でラベリングしていく。ラベルの例

みかん → 1, りんご → 2, バナナ → 3, …

Page 9: Python 機械学習入門

今回やること教師付き学習で積雪の有無を予測する。

気象庁の気象データから、積雪の多い富山県の砺波市の気象データ (CSV ファイル ) を学習データとして使用上記の気象庁のサイトでは必要な項目を選べるのですが、気温 、積雪 、風速 、風向 、降水量 を選択しました。2004 年~ 2015 年 3 月のデータ

機械学習には Scikit-learn というライブラリを使用する。

Page 10: Python 機械学習入門

Scikit-learn ってなに?Python で作られた機械学習ライブラリ無料・有料含めて、コレほど充実したライブラリは他にない豊富な分類器と ( ほぼ ) 統一化された API

検証作業を支える機能Numpy, Scipy を使用した高速な演算http://scikit-learn.org/

Page 11: Python 機械学習入門

CSV データサンプル下記のデータが日付の時間ごとで1万行くらいある。

2004/2/1 1:00:00,-0.7,8,1,19,8,1,3.0,8, 南南東 ,8,1,0,8,12004/2/1 2:00:00,-2.1,8,1,19,8,1,1.0,8, 東 ,8,1,0,8,12004/2/1 3:00:00,-2.7,8,1,19,8,1,1.0,8, 南東 ,8,1,0,8,12004/2/1 4:00:00,-0.8,8,1,20,8,1,4.0,8, 南南東 ,8,1,0,8,12004/2/1 5:00:00,-0.2,8,1,20,8,1,5.0,8, 南南東 ,8,1,0,8,12004/2/1 6:00:00,-3.7,8,1,20,8,1,3.0,8, 東 ,8,1,0,8,12004/2/1 7:00:00,-3.3,8,1,19,8,1,2.0,8, 南西 ,8,1,0,8,12004/2/1 8:00:00,0.1,8,1,20,8,1,4.0,8, 南東 ,8,1,0,8,1...

Page 12: Python 機械学習入門

実行の流れ① 気象庁の CSV データを読み込んで、雪が積もるパターンを学習。積雪量 (cm) を受け取り、積雪があれば1、なければ 0 を返す。※ 1レコード単位で積雪フラグが立つイメージ。②各学習モデルのタイプ別にスコアを計算し、もっともスコアの高いタイプのオブジェクトをインスタンス変数として残す。③リクエストから送られてきたパラメータから今までの情報を元に積雪になるか予測する。

python のシェルを実行

Page 13: Python 機械学習入門

勉強してみた感想python は ruby と似た感じで書ける「 ; 」と「 {} 」が無いのに違和感を感じる (笑 )

環境構築に詰まった。 python のライブラリ入れたりとか。

Page 14: Python 機械学習入門

今後やってみたいこと登録ユーザの属性分析記事のレコメンド

→CSV データを読み込んで、ラベル付けの基準を書き換えれば応用ききそうなど