Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PyData Tokyo Tutorial & Hackathon #1

12,462 views

Published on

2015年3月に行われたPyData.Tokyoでのチュートリアル&ハッカソンの説明スライドです。

A deck used in the introductory session of PyData.Tokyo tutorial and hackathon

Published in: Engineering
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1url.pw/Cgr93 ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1url.pw/Cgr93 ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

PyData Tokyo Tutorial & Hackathon #1

  1. 1. . 白ヤギコーポレーション シバタアキラ, Ph.D. ashibata.com Tutorial & Hackathon #1
  2. 2. シバタアキラ, PhD. @punkphysicist いま:CEO @白ヤギコーポレーション カメリオ: あなたに必要な情報しか来ないアプリ カメクト: コンテンツレコメンドエンジン 2010 - 2013: 経営コンサルティング @BCG 2004 - 2010: データサイエンティスト @NYU 統計的データ分析でヒッグス狩り @LHC, CERN Pythonとは10年間の付き合い
  3. 3. オーガナイザー @atelierhide @iktakahiro @punkphysicist 池内考啓 Takahiro Ikeuchi 柴田暁 Akira Shibata 田中秀樹
 Hideki Tanaka 山本光穂 Mitsuo Yamamoto 下村勇介 Yusuke Shimomura サポート @kaita
  4. 4. じんるいの えいちの けっしょう すごいぱわーの ろけっと
  5. 5. すごいっアルゴリズム すごいっサービス すごいっ分析
  6. 6. 開発でも研究でも幅広く使われているPythonは
 データ解析では一人勝ち状態
  7. 7. Python+Dataを通じて
 世界のPyDataエクスパートと繋がれる
 コミュニティーを作る
  8. 8. • 当面は「顔が見える」サイズを超えない:
 参加人数は 30人くらいを目安に • 質問とディスカッションを重視:
 わからなけれ即質問、発表後も気が済むまでディスカッションを • 参加者同士のつながりを大切に:
 懇親会は毎回行います! • 今後初級者が「手を動かして」学べる開発イベントも検討 PyData.Tokyo運営方針
  9. 9. このチュートリアルで達成したいこと 実データを使ったコーディングを通じて実践力のあるデー タサイエンティストを養成する データ解析の基本を修得する データ解析において今使われている最新ツールの習得 更にワンランク上のデータサイエンティストへの道
  10. 10. 【第一部】データハンドリング 1 データのインポート 2 データの前処理・整形 3 集計・統計解析 4 データの可視化 【第二部】機械学習による予測 1 機械学習を分類モデルの生成 2 分類結果の検証 【第三部】ディスカッション
  11. 11. もっとよく知りたい人は 基本的なところからカバー
 Pandasの作者 機械学習に特に詳しい
  12. 12. さらに・・・ Pythonを仕事で使う上で欠かせない一冊
 Connpass作ってる会社 月末に出る予定
  13. 13. ハッカソンの人にお願い • Kaggleにサブミットして高得点を目指してください • コーヒセッションで初心者との疑問やディスカッショ ンへの参加 • 最後のディスカッションセッションでの発表で、
 成果発表をしてください
  14. 14. 乗客の年齢、性別その他の情報を機械学習アルゴリズムに学習さ せることで、初心者でも80%に近い精度で生存者を当てることが できるようになります。 中上級者は90%を目指してください(激ムズ)! 注意:Kaggleの提出は10回なので要注意!! 本日使う例題 タイタニックの乗客データを使った生存者推定モデルの生成
  15. 15. まずは自己紹介から30秒くらい お名前 プロフィール:いまのお仕事、肩書、など 現在のPython及びDataとの関わり方 今日のチュートリアルに期待すること
  16. 16. 【第一部】
  17. 17. 乗客の年齢、性別その他の情報を機械学習アルゴリズムに学習さ せることで、初心者でも80%に近い精度で生存者を当てることが できるようになります。 中上級者は90%を目指してください(激ムズ)! 注意:Kaggleの提出は10回なので要注意!! 本日使う例題 タイタニックの乗客データを使った生存者推定モデルの生成
  18. 18. 1. データハンドリング(I/O, 前処理・整形, 正規化) 2. 初期分析と仮説構築(集計, 可視化, 仮説構築) 3. 機械学習(多変量解析, 教師あり学習, 教師なし学習) 4. 結果の評価(Precision/Recall, 交差検証) データサイエンティストのいろは 【第一部】 【第二部】
  19. 19. • 大量のデータを解析するための並列処理 • アルゴリズムを更に良くする実装方法 • 得られた結果の統計的信頼性の評価 • 結果のチューニングのためのパラメーター調整 • シミュレーションによるデータ生成 重要だけど今回は対象外なトピックス
  20. 20. 1. データハンドリング(I/O, 前処理・整形, 正規化) 2. 初期分析と仮説構築(集計, 可視化, 仮説構築) 3. 機械学習(多変量解析, 教師あり学習, 教師なし学習) 4. 結果の評価(Precision/Recall, 交差検証) データサイエンティストのいろは 【第一部】 【第二部】
  21. 21. 1. データハンドリング データの種類 テーブル型 テキスト型 バイナリ型 構造がしっかりしていて分 析しやすいが、シンプルな 構造に限られる より複雑な構造をサポート
 テキストなので汎用性高い
 が読み込みが少し煩雑 いかなる構造もサポートす るが、汎用性が低い。
 囲い込みビジネスができる 今回は最も一般的なテーブル型データを扱う
  22. 22. 1. データハンドリング データの読み込み方法 インメモリ ストリーム 分散処理 高速な処理ができるが、
 メモリのサイズによって
 データ量が制限される 継続的人流れてくる
 データをリアルタイムに
 集計していく 超大量のデータを分散し、
 データのあるところで
 処理を行う Pythonを使った分析は基本的にインメモリ
  23. 23. CSV、SQL等様々なフォーマットをメモリに読み込む
  24. 24. 1. メタデータの確認:データタイプや定義 2. 正規化:データの値はコントロールされてるか 3. ダミー変数:データの値を扱いやすくする 4. 欠損値への対処:データに歯抜けがあった時 5. 外れ値・不正値処理:計測に問題があったかもしれない 6. 特徴量抽出:より効果的な特徴量を作り出す 7. 不均衡データへの対応:正例が極端(10%以下)に少ない 無意味にデータを増やしても精度は上がらない 1. データハンドリング データの前処理
  25. 25. 1. データハンドリング データの前処理:メタデータの確認 目的変数
 「当てたい」結果 特徴量(説明変数) 名義尺度 数値データ カテゴリデータ
  26. 26. 1. データハンドリング データの前処理:ダミー変数 出典:http://www.slideshare.net/canard0328/ss-44288984 ダミー変数を使うことで、アルゴリズムが扱える様になる
  27. 27. バイアスが生じるが、削除や代入はよく使われる 1. データハンドリング データの前処理:欠損値への対処 出典:http://www.slideshare.net/dichika/maeshori-missing
  28. 28. 1. データハンドリング データの前処理:外れ値 測定時のエラーもしくは個別事由による外れ値は
 除いてモデル化したほうが良いことも
  29. 29. 1. データハンドリング データの前処理:特徴量抽出 出典:http://www.slideshare.net/canard0328/ss-44288984 既存の特徴量から新たに特徴量を作る + =
  30. 30. 1. データハンドリング(I/O, 前処理・整形, 正規化) 2. 初期分析と仮説構築(集計, 可視化, 仮説構築) 3. 機械学習(多変量解析, 教師あり学習, 教師なし学習) 4. 結果の評価(Precision/Recall, 交差検証) データサイエンティストのいろは 【第一部】 【第二部】
  31. 31. 2. 初期分析と仮説構築 集計 38%の人が生存 平均年齢30歳 最高年齢80歳 運賃は人によって
 大きく違う
  32. 32. 覚えておいてほしいこと 「データを見る」ことなく結果はでない:
 「もっといっぱいのデータ」があっても
 「もっといいアルゴリズム」があっても解決できない アルゴリズムは魔法ではない:
 アルゴリズムはいわれたことをやるだけ、
 正しい問題設定なしには役に立たない
  33. 33. 2. 初期分析と仮説構築 可視化 簡単な可視化を行うだけでも多くの仮設を立てられる
  34. 34. 2. 初期分析と仮説構築 可視化 Pythonでもいろいろなツールがある
  35. 35. 2. 初期分析と仮説構築 可視化 Python頑張らなくてもいい
  36. 36. 2. 初期分析と仮説構築 仮説の構築 女の生存率が高い、若いほど生存率が高い
  37. 37. 2. 初期分析と仮説構築 仮説の構築 上級のクラスのほうが生存率が高い
  38. 38. 2. 初期分析と仮説構築 仮説の構築 傾向としては、なんか分けられるような気もする
  39. 39. 【第二部】
  40. 40. 1. データハンドリング(I/O, 前処理・整形, 正規化) 2. 初期分析と仮説構築(集計, 可視化, 仮説構築) 3. 機械学習(多変量解析, 教師あり学習) 4. 結果の評価(Precision/Recall, 交差検証) データサイエンティストのいろは 【第一部】 【第二部】
  41. 41. 3. 機械学習 多変量解析 出典: 三次元以上になると人力では仮説が立てにくくなる
  42. 42. 3. 機械学習 多変量解析 • 人力:判別力のそうな特徴量だけを少数選ぶ • 多変量解析:複数の特徴量を組み合わせる • 機械学習:複数特徴量から最適パターンを見つける どんどん複雑になっていく
  43. 43. 既存の特徴量から新たに特徴量を作る + = 3. 機械学習 多変量解析
  44. 44. 3. 機械学習 多変量解析 出典:http://www.nlpca.org/pca_principal_component_analysis.html クラス間の分散を最大化する特徴量を探す
 他にもk-meansなどのクラスタリング法も
  45. 45. 3. 機械学習 教師あり学習 特徴量(説明変数) 目的変数
 「当てたい」結果
  46. 46. 3. 機械学習 教師あり学習 回帰型 木型 ニューラルネット型 線形回帰
 Support Vector Machine
 等 Decision Tree
 Random Forest
 等 Neural Network
 深層学習
 等 他にも遺伝的アルゴリズムなどの手法も
  47. 47. 3. 機械学習 教師あり学習 Support Vector Machine: Linear Regression: シンプルで、早い分類手法
 結果が確率値として解釈できる
 割といい結果が出るが、ベストではない 最も分割距離が大きくなる
 平面を定義できる様、空間を
 重み付けする
  48. 48. 3. 機械学習 教師あり学習 Random Forest: Decision Tree: 特徴量に対する条件の組み合わせ
 で、正答率を最高にする
 単純で理解しやすい ランダムに特徴量とデータをサンプリング
 し、生まれた決定木を組み合わせ、最も
 正答率の高い組み合わせを見つける
 (多数の特徴量に対応し、欠損値の取り扱いも柔軟)
  49. 49. http://peekaboo-vision.blogspot.jp/2013/01/machine-learning-cheat-sheet-for-scikit.html
  50. 50. 機械学習の応用 1. 分類:センチメント分析、判別 2. 推測:レコメンデーション、ランキング 3. 最適化:価格決定、損失削減 4. 未来予測:シミュレーション、事前予防 5. 生成:対話、画像生成
  51. 51. 1. データハンドリング(I/O, 前処理・整形, 正規化) 2. 初期分析と仮説構築(集計, 可視化, 仮説構築) 3. 機械学習(多変量解析, 教師あり学習, 教師なし学習) 4. 結果の評価(モデル評価, 交差検証) データサイエンティストのいろは 【第一部】 【第二部】
  52. 52. • Type I error: 
 無罪の人を死刑に • Type II error: 
 本当は病気なのに誤診断 4. 結果の評価 モデル評価 モデルの正確さを理解する必要がある
  53. 53. 4. 結果の評価 モデル評価 Accuracy =
  54. 54. 4. 結果の評価 モデル評価 出典:http://www.slideshare.net/canard0328/ss-44288984
  55. 55. 陽性と判定したものがどれだけ真なのか(適合率): 真のうちどれだけを陽性と判定したのか(再現率): 4. 結果の評価 モデル評価 両方を合わせた結果指標(F値):
  56. 56. 1万人のデータのうち100人が陽性の時、常に 陰性と判定するモデルがあったとして… 適合率: 再現率: F値: 0/100=0 0/100=0 0
  57. 57. 4. 結果の評価 仮説検定 性能がいいモデル
  58. 58. 4. 結果の評価 交差検証 K-分割交差検証 K-分割交差検証では、標本群を K個に分割する。そして、その うちの1つをテスト事例とし、 残る K − 1 個を訓練事例とす るのが一般的である。交差検証 は、K 個に分割された標本群そ れぞれをテスト事例として k 回検証を行う。そうやって得ら れた k 回の結果を平均して1つ の推定を得る。 学習モデルのもつ判別力がまぐれではないと確認できる

×