LoginSignup
2
10

More than 5 years have passed since last update.

Python機械学習ことはじめ

Last updated at Posted at 2017-08-19

蒲田でやってるオープンデベロッパーズカンファレンスに来ました。

お話聞きながら、ライブ記事作成してみます。

2017/12/21追記 発表スライドはこちらです → https://speakerdeck.com/terapyon/python-ji-jie-xue-xi-kotohazime-at-odc

 お題「Python機械学習ことはじめ」

千葉市のインフルエンザ報告数と、気温から流行を予測する

手順

  1. データ選び、データ入手 〜〜〜 ネタ探し
  2. データ加工、データ連結 〜〜〜 使いやすく加工する
  3. 可視化 〜〜〜 なんとなく何かが見えてくる。どんなアルゴリズム使おうかなー。
  4. アルゴリズム選定
  5. 機械学習モデル選定
  6. 機械学習モデル評価

データ選び、データ入手

千葉市と気象庁からいただきー。

データ加工

  • 文字コードとか
  • 欠損している部分を補ったり

 可視化

* グラフにしてみたり
* 相関見えてくる?
* 使う特徴量を決める

 アルゴリズム選定

* ディープラーニングで特徴量全部がっつり?
* 場合によってデータ再加工
* 次元数作成???
* 説明変数と目的変数を決める

 機械学習モデル選択

ここまでくれば簡単
すぐすんじゃう

 機械学習モデル評価

* 予測
* 予測結果を評価
* 交差検証とか
* モデルにフィットしすぎて過学習になってないかとか

さあPython

 Jupyter notebook 使う

[Shift]-[Enter]で実行してくれる

便利

githubにもそのまま公開できる

Pandasでデータ眺める

いけてないCSV読み込んで、なんとなく加工できちゃう

データフレーム機能を駆使

日付でインデックスつけとけば、週単位のデータと日単位のデータの連結もコマンド一発

シリアライズ化

ここが一番時間かかってたいへん

 matplotlibで可視化

日本語入っているとうまくいかない

pandasからmatplotlib使ってヒストグラム簡単に出したり

「流行」とは何かを定義したり

pandasで、多変数うんたらを一気に可視化
左下から右上にまっすぐ上がるグラフは相関1

 アルゴリズムの候補を検討

  • ロジスティック回帰

とか

  scilit-learn使って学習データとテストデータを分割

説明変数x

目的変数y 流行っている1 流行ってない0

過学習を避けるため、テストデータを取っておく。80%を学習に、20%をテスト
割合は、モデルやデータ量による

 アルゴリズム初期化

scilit-learnを使う

予測 clf.predict(X_val)

だいたい当たるので、混同行列を使う

真陽性 偽陽性
真陰性 偽陰性

 交差検証

学習とテストの割合はOKだった?
分割をやり直して計算し直すのを繰り返す

 グリッドサーチ(パラメータ調整)

(というところで、時間切れ

2
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
10