Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

機械学習によるデータ分析まわりのお話

496.018 visualizaciones

Publicado el

某所で機械学習の講習会(?)のようなものをしたときの資料です.
機械学習によるデータ分析について,アルゴリズムやツールの使い方*以外*の部分で
重要だと思うことを重点的にまとめたつもりです.

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

機械学習によるデータ分析まわりのお話

  1. 1. による データ分析まわりのお話 @canard0328 機 械 学 習
  2. 2. データサイエンティスト 2 今世紀でもっともセクシーな職業 ハーバード・ビジネス・レビュー 2013年年2⽉月号 2018年年までに⽶米国で14〜~19万⼈人不不⾜足 マッキンゼー 2011年年5⽉月 求められるスキル ビジネススキル,機械学習/ビッグデータ, 数学/OR,プログラミング,統計 Analyzing the Analyzers, O’reilly 2013
  3. 3. 機械学習ツール・書籍の充実 3 ツール 書籍 書籍やWebの隙間を埋めるようなお話ができれば
  4. 4. 本⽇日お話すること 4 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス 教師あり学習(後述)寄りの内容が多いです
  5. 5. ターゲットにしている⽅方 5 1. 分析を始めようとしている⼈人 基本的な分析⼿手順を知ることができます 2. 分析結果を受け取る⼈人 分析の妥当性を判断することができます 3. 分析を依頼する⼈人 基礎検討を⾃自前で⾏行行うことができます
  6. 6. 本⽇日お話しないこと 6 1. 統計のこと 検定とか,有意差がどうとか 2. アルゴリズムの詳細 数式とか 3. ツールの使い⽅方 Webや書籍が充実しています 4. ビッグデータ関連 データベースとか分散処理理とか
  7. 7. 本⽇日お話すること 7 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス
  8. 8. ⼀一般的なデータ形式 8 年年齢 性別 加⼊入⽇日 加⼊入プラン 地区 解約 23 男 2012/03/03スタンダード 東京 0 34 ⼥女女 2014/11/23スタンダード 埼⽟玉 1 49 男 2000/05/11プレミアム 千葉葉 0 19 男 2013/12/05ライト ⼤大阪 0 60 ⼥女女 2011/03/28シニア 東京 0 ・ ・ ・ 説明変数,特徴量量 ⽬目的変数
  9. 9. 特徴量量の分類 9 名義尺度度 名前,電話番号など 順序尺度度 レースの着順など 間隔尺度度 摂⽒氏,華⽒氏など(乗除不不可) ⽐比例例尺度度 質量量,⻑⾧長さなど
  10. 10. 特徴量量の分類 10 数値データ(量量的変数) ⽐比例例尺度度,(間隔尺度度) カテゴリデータ(質的変数) 名義尺度度,順序尺度度,(間隔尺度度) 機械学習アルゴリズムは数値データを 前提としているものが多い. カテゴリデータを数値データへ変換
  11. 11. ダミー変数(1-of-K表現) 11 カテゴリデータを数値データへ変換 加⼊入プラン スタンダード スタンダード プレミアム ライト シニア ・ ・ ・ ライト スタンダード シニア 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 ・ ・ ・
  12. 12. Feature hashing / Hashing trick 12 ダミー変数はカテゴリの種類が多いと 特徴量量の次元数が⼤大きくなりすぎる Feature hashingにより任意の次元に削減 Nの値がある程度度⼤大きければ精度度への影響⼩小 x := new vector[N] for f in features: h := hash(f) x[h mod N] += 1 http://en.wikipedia.org/wiki/Feature_hashing
  13. 13. ⽋欠損値の扱い 13 捨てる ⽋欠損値が少数,データが⼤大量量 置換する 最頻値,中央値,平均値 補間する 時系列列データ ⽋欠損値の⽣生じ⽅方が完全にランダムでない限り 分析に影響を与える 完全情報最尤推定法,多重代⼊入法
  14. 14. 正規化 14 xの値を10倍しただけでK-meansの 結果が変わってしまう
  15. 15. 正規化 15 必要であれば特徴量量ごとに正規化 (Normalization)を⾏行行う σ µ− = x z σ µ :xの平均 :xの標準偏差 平均0,標準偏差1にする変換が⼀一般的
  16. 16. 次元の呪い 16 次元の呪い(Curse of dimensionality) 特徴量量(説明変数)の数が増えると汎化性能※を 向上させることが難しくなる 使えそうなデータはなんでも特徴量量に加えて しまえ,は危険 特徴選択や次元削減により特徴量量の数を減らす データを⽤用意する段階で特徴量量を吟味することが⾮非常に重要 次元の呪いについて,詳しくは「球⾯面集中現象」を検索索 ※未知のデータを予測する性能
  17. 17. 特徴選択 17 特徴選択(Feature selection) 特徴量量の中から有⽤用なものを選び出す 全ての特徴量量の組み合わせを試すのは困難 前向き法(Forward stepwise selection) 有⽤用な特徴量量を1つずつ選択していく 後ろ向き法(Backward stepwise selection) 不不要な特徴量量を1つずつ削除していく 特徴選択機能を含む機械学習アルゴリズム 決定⽊木,ランダムフォレスト,Lasso
  18. 18. 次元削減 18 次元削減(dimension(ality) reduction) できるだけ元の情報量量を損なわないように 低次元(少特徴量量)のデータに変換する 主成分分析(Principal component analysis (PCA)) データ全体の分布を近似する部分空間を求める (線形)判別分析(Linear discriminant analysis (LDA)) ラベルごとの分布の分離離度度が最⼤大になる部分空間を求める
  19. 19. 次元削減 19 x1 x2 主成分分析による次元削減のイメージ
  20. 20. 次元削減 20 x1 x2 判別分析による次元削減のイメージ
  21. 21. 醜いアヒルの⼦子定理理 21 醜いアヒルの⼦子定理理(Ugly duckling theorem) 醜いアヒルの⼦子と普通のアヒルの⼦子の類似性は 2⽻羽の普通のアヒルの⼦子の類似性と等しい 問題から独⽴立立した万能な特徴量量は存在しない 特徴量量の設計が重要
  22. 22. 1章のまとめ 22 データの前処理理 ダミー変数,⽋欠損値処理理,正規化 次元の呪い 特徴量量が多いと分析が困難に 特徴選択や次元削減 醜いアヒルの⼦子定理理 万能な特徴量量は無い 特徴量量の決定が重要
  23. 23. 本⽇日お話すること 23 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス
  24. 24. 機械学習とは 24 “Machine learning is the science of getting computers to act without being explicitly programmed.” Andrew Ng ⼀一般的にはコンピュータの振る舞い⽅方(モデル)を (⼤大量量の)データから学習することにより獲得する.
  25. 25. 機械学習の分類 25 教師あり学習(supervised learning) データが⼊入⼒力力と出⼒力力のペアから成る • 分類(識識別)(classification):出⼒力力がラベル • 回帰(regression):出⼒力力が数値 教師なし学習(unsupervised learning) データは⼊入⼒力力のみ • クラスタリング • 頻出パタンマイニング • 外れ値検出(outlier detection)
  26. 26. 機械学習の分類 26 その他の分類 • 半教師あり学習(semi-supervised learning) • 強化学習(reinforcement learning) • 能動学習(active learning) • 逐次学習(online learning) • 転移学習(transfer learning) ・・・
  27. 27. 機械学習のアルゴリズム 27 教師あり学習 • 線形モデル(単/重回帰) • ロジスティック回帰 • 判別分析 • k近傍法 • 決定⽊木 • サポートベクターマシン • ニューラルネットワーク • ナイーブベイズ • ランダムフォレスト
  28. 28. 機械学習のアルゴリズム 28 教師なし学習 • K-means クラスタリング • 階層的クラスタリング • Apriori • One-class SVM
  29. 29. アルゴリズム利利⽤用時の注意点 29 アルゴリズムによっては データの分布などに仮定を おいているものがある. 仮定に合わないデータを分析した場合 適切切な結果が得られないことも
  30. 30. アルゴリズム利利⽤用時の注意点 30 線形モデル(単/重回帰分析) x y εββββ +++++= ii xxxy L22110 線形モデルは誤差が等分散 正規分布であることを仮定 ⼀一般化線形モデル (generalized linear model) ※ロジスティック回帰はこの⼀一種 ⼀一般化 (ポアソン分布,⼆二項分布, ガンマ分布,・・・)
  31. 31. アルゴリズム利利⽤用時の注意点 31 K-meansクラスタリング K-meansクラスタリングは 各クラスタが同じ⼤大きさの 超球であることを仮定して いる 混合正規分布 (Gaussian mixture model) クラスタの⼤大きさに 差がある場合
  32. 32. アルゴリズム利利⽤用時の注意点 32 ノーフリーランチ定理理 あらゆる問題で性能の良良い 万能な学習アルゴリズムは存在しない ⽬目的に適したアルゴリズムを選択しましょう とは⾔言っても,実⽤用上,上⼿手くいくことの多いアルゴリズムがあるのも事実
  33. 33. 2章のまとめ 33 教師あり学習 データが⼊入⼒力力と出⼒力力のペア 分類(識識別),回帰 教師なし学習 データが⼊入⼒力力のみ クラスタリング,頻出パタンマイニング,外れ値検出 注意点 データの分布などに仮定をおいているアルゴリズムもある ノーフリーランチ定理理:万能なアルゴリズムは無い
  34. 34. 本⽇日お話すること 34 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス
  35. 35. 回帰モデルの評価基準 35 平均絶対誤差(Mean absolute error) ⼩小さいほど良良い 平均⼆二乗誤差(Mean square(d) error) ⼩小さいほど良良い Root Mean Square(d) Errorもよく使われる 決定係数R2(Coefficient of determination) 説明変数が⽬目的変数をどれくらい説明するか 0(悪い)〜~1(良良い) 特徴量量が多いほど⼤大きな値に ⾃自由度度調整済み決定係数 ( ) Nyy N i ii∑= −= 1 ˆMAE ( )( ) Nyy N i ii∑= −= 1 2 ˆMSE
  36. 36. 分類(識識別)モデルの評価基準 36 精度度(Accuracy) 正解数÷データ数 誤差率率率(Error rate) 1-精度度 1万⼈人のデータの内100⼈人が陽性の場合, 常に陰性と判定するモデルの精度度は99% これはよいモデルといえるだろうか?
  37. 37. 分類(識識別)モデルの評価基準 37 混同⾏行行列列(Confusion matrix) 予測値 陽性 (Positive) 陰性 (Negative) 正 解 陽性 真陽性 (True positive : TP) 偽陰性 (False negative : FN) 陰性 偽陽性 (False positive : FP) 真陰性 (True  negative  :  TN) ※予測したい事象が⽣生じている状態が「陽性」 病気を判別したければ,病気の状態が「陽性」で健康な状態が「陰性」
  38. 38. 分類(識識別)モデルの評価基準 38 適合率率率(Precision) TP/(TP + FP) 陽性と予測したものの正解率率率 再現率率率(Recall) TP/(TP + FN) 陽性のうち正しく予測できた率率率 F値(F1 score, F-measure) 2・(適合率率率・再現率率率) / (適合率率率+再現率率率)
  39. 39. 分類(識識別)モデルの評価基準 39 真陽性率率率(True Positive Rate) TP/(TP + FN) 陽性のうち正しく予測できた率率率(ヒット率率率) 偽陽性率率率(False Positive Rate) FP/(FP + TN) 陰性のうち誤って陽性と予測した率率率(誤報率率率)
  40. 40. 分類(識識別)モデルの評価基準 40 1万⼈人のデータの内100⼈人が陽性のとき 常に陰性と判定するモデル 予測値 陽性(Positive) 陰性(Negative) 正 解 陽性 0 100 陰性 0 9900 精度度:0.99 適合率率率:0 再現率率率:0 F値:0
  41. 41. 脱線:不不均衡データの分析 41 ラベルに偏りのあるデータは予測が困難 重みづけ ライブラリを利利⽤用する場合,簡単に重みづけ可能な 場合が多い サンプル数の調整 少ない⽅方を増やす,多い⽅方を減らす,両⽅方 SMOTEアルゴリズム 実際にはどちらも決め⼿手とならないことも多い...
  42. 42. 分類(識識別)モデルの評価基準 42 真陽性率率率と偽陽性率率率はトレードオフ 陽性の取りこぼしが無いよう閾値を設定すると, 真陽性率率率は⾼高くなるが,偽陽性率率率も⾼高くなる. ROC曲線 モデルのパラメータを変化させながら,偽陽性率率率と 真陽性率率率をプロットしたもの AUC ROC曲線の下側の⾯面積.1.0が最良良
  43. 43. 分類(識識別)モデルの評価基準 43 ROC曲線とAUC
  44. 44. 3章のまとめ 44 精度度 精度度が⾼高ければよいのか? 適合率率率,再現率率率,F値 精度度以外にも様々な評価基準 ROC曲線,AUC 真陽性率率率と偽陽性率率率のトレードオフを可視化
  45. 45. 本⽇日お話すること 45 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス
  46. 46. 分析時の注意点 46 適切切にデータを前処理理して, 適切切なアルゴリズムを選んで分析した. 誤差が⼤大きい,このアルゴリズムは 使えない! 本当ですか? > clf = SVC().fit(X, y)
  47. 47. ハイパーパラメータ 47 アルゴリズムはハイパーパラメータを 調整することで性能が⼤大きく変化 ハイパーパラメータの調整法は? > clf = SVC(kernel=‘rbf’, C=1.0 gamma=0.1).fit(X, y)
  48. 48. グリッドサーチ 48 各パラメータを適当な範囲で変化させ,最も性能の よいパラメータの組み合わせを選択する 良良 ← 性 能 → 悪
  49. 49. グリッドサーチ 49 パラメータの変化幅,刻み幅 経験に依るところ⼤大 物理理量量的なもの(例例:決定⽊木の深さ)は常識識的な範囲で そうでないものは桁を変えて(10-2,10-1,100,101,102) 2段(多段)グリッドサーチ 初めは広く,荒く 範囲を絞って狭く,細かく
  50. 50. 分析時の注意点 50 適切切にデータを前処理理して, 適切切なアルゴリズムを選んで分析した. 誤差0.0(回帰)/F値1.0(分類)だ! 完璧なモデルができた! 本当ですか?
  51. 51. 分析時の注意点 51 このモデル(誤差0.0)は未知のデータを 正しく予測できるでしょうか?
  52. 52. 過学習 52 過学習(Over fitting) 与えられたデータに(ノイズも含めて)過度度に適合 してしまい,訓練誤差は⼩小さいが,未知データに対 する性能が低下してしまう状態. 汎化性能 未知のデータに対する性能(汎化性能)を定量量化し た汎化誤差を⼩小さくすることが重要 表現⼒力力の⾼高いアルゴリズム使⽤用時,特徴量量が多いとき,与えられたデータが少な いときに過学習しやすい.
  53. 53. 過学習対策 53 正則化(Regularization) モデルを学習する際に,複雑さが増すことに対する ペナルティを設け,過学習を防ぐ 複雑さの指標:L2ノルム,L1ノルム,etc. 正則化を考慮した線形モデル ・リッジ回帰(Ridge regression):L2ノルム ・Lasso:L1ノルム 正則化しすぎても性能がでない(Under fitting)
  54. 54. 過学習対策 54 交差検証(Cross validation) データを学習⽤用と評価⽤用に分割する 1. B〜~Eで学習,Aで評価 2. A,C〜~Eで学習,Bで評価 3. A,B,D,Eで学習,Cで評価 4. A〜~C,Eで学習,Dで評価 5. A〜~Dで学習,Eで評価 6. 1〜~5の平均を算出 5分割交差検証(5-fold cross validation)
  55. 55. 過学習対策 55 データの分割の仕⽅方 ランダムにK分割 1サンプルとそれ以外に分割 Leave-one-out cross validation(LOOCV) ラベルの⽐比率率率を保ったまま分割 Stratified cross validation ラベルの⽐比率率率に偏りのある場合に有効
  56. 56. 過学習対策 56 先頭から順にK分割 時刻 温度度 湿度度 天気 8:00 23.2 63.0 曇 8:05 23.5 65.1 曇 8:10 24.0 68.0 曇 8:15 24.1 69.3 ⾬雨 8:20 24.2 70.1 ⾬雨 8:25 24.2 70.2 ⾬雨 8:30 23.9 69.6 曇 … 時系列列データでは,前後の データの関連が強いことが ある. これをランダムに学習⽤用と 評価⽤用に分けてしまうと, 汎化誤差が不不当に⼩小さくな る.
  57. 57. 過学習対策 57 何らかの属性に応じて分割 新たな被験者に対するモデ ルの性能を評価する場合, データを被験者ごとに分割 すると良良い. 学習データと評価データの両⽅方に同じ被験 者のデータが含まれると,汎化誤差が不不当 に⼩小さくなる. 名前 x y 姿勢 A 23.2 63.0 ⽴立立 A 23.5 65.1 ⽴立立 A 24.0 68.0 座 B 24.1 69.3 座 B 24.2 70.1 座 B 24.2 70.2 ⽴立立 C 23.9 69.6 寝 …
  58. 58. 誤差について 58 真のモデル 得られたサンプル 推定したモデル 誤差 ε=N(0, σ2) 差=σ2+Bias2+Variance Bias(バイアス) モデルの能⼒力力に起因する差 Variance(バリアンス) サンプルに起因する差
  59. 59. バイアスとバリアンス 59 真のモデル 誤差 ε 得られたサンプルたち 推定したモデルたち 真の モデル バイアス バリアンス
  60. 60. バイアスとバリアンス 60 誤差 ε 得られた サンプルたち 推定した モデルたち 真のモデル 差は⼤大きいが,差のばらつきは⼩小さい → ハイバイアス/ローバリアンス 1次式でモデリング
  61. 61. バイアスとバリアンス 61 誤差 ε 得られた サンプルたち 推定した モデルたち 真のモデル サンプルによる差が⼤大きい → ローバイアス/ハイバリアンス 多項式でモデリング
  62. 62. バイアスとバリアンス 62 バイアスとバリアンスはトレードオフの関係 柔軟性の⾼高いモデル(アルゴリズム) バイアス⼩小,バリアンス⼤大 ハイバリアンス 過学習(Over fitting) 柔軟性の低いモデル(アルゴリズム) バイアス⼤大,バリアンス⼩小 ハイバイアス Under fitting 現在のモデルの状態を確認するには?
  63. 63. 学習曲線 63 データサイズを変えながら訓練スコア(誤差) 汎化スコア(誤差)をプロット
  64. 64. 学習曲線 64 ハイバイアスの⽬目安 訓練スコア(誤差)が低い(⼤大きい) 訓練スコアと汎化スコアの差が⼩小さい ハイバリアンスの⽬目安 訓練スコアと汎化スコアの差が⼤大きい 汎化スコアの改善がサチっていない
  65. 65. 学習曲線 65 ハイバイアス ハイバリアンス スコアが低い スコアの差が⼩小さい スコアの差が⼤大きい
  66. 66. 学習曲線 66 ハイバイアスの場合 (有効な)特徴量量を増やす アルゴリズムを(柔軟性の⾼高いものに)変更更する ハイバリアンスの場合 データを増やす (不不要な)特徴量量を削除する
  67. 67. 4章のまとめ 67 過学習 汎化性能を評価する必要有 交差検証 データ,⽬目的に応じて⼿手法を選択 バイアス,バリアンス モデルがどういう状態なのか,学習曲線で確認
  68. 68. 本⽇日お話したこと 68 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス
  69. 69. 宣伝 69 機械学習⽀支援システム MALSS (Machine Learning Support System) 機械学習によるデータ分析の⼀一部を⾃自動化する Pythonライブラリ 機能 • ダミー変数⽣生成,⽋欠損値補間,正規化 • アルゴリズム⾃自動選択 • 交差検証,グリッドサーチ • 分析結果レポート • サンプルコード⽣生成
  70. 70. 宣伝 70 機械学習⽀支援システム MALSS インストール 利利⽤用⽅方法 > pip install –U malss > from malss import MALSS > clf = MALSS('classification‘, lang=‘jp’) > clf.fit(X, y, ‘report_output_dir') > clf.make_sample_code('sample_code.py')
  71. 71. 宣伝 71 機械学習⽀支援システム MALSS レポート
  72. 72. 宣伝 72 機械学習⽀支援システム MALSS レポート
  73. 73. 参考⽂文献 73 戦略略的データサイエンス⼊入⾨門 F. Provost他/オライリー・ジャパン Coursera: Machine Learning Andrew Ng/https://www.coursera.org/course/ml scikit-learn Tutorials http://scikit-learn.org/stable/tutorial/ Tutorial: Machine Learning for Astronomy with Scikit-learn http://www.astroml.org/sklearn_tutorial/ データ解析のための統計モデリング⼊入⾨門 久保 拓拓弥/岩波書店 朱鷺鷺の杜Wiki http://ibisforest.org/
  74. 74. 参考⽂文献 74 MALSS (Machine Learning Support System) https://pypi.python.org/pypi/malss/ https://github.com/canard0328/malss Pythonでの機械学習を⽀支援するツール MALSS(導⼊入) Qiita/http://qiita.com/canard0328/items/fe1ccd5721d59d76cc77 Pythonでの機械学習を⽀支援するツール MALSS(基本) Qiita/http://qiita.com/canard0328/items/5da95ff4f2e1611f87e1 Pythonでの機械学習を⽀支援するツール MALSS(応⽤用) Qiita/ http://qiita.com/canard0328/items/3713d6758fe9c045a19d
  75. 75. 本⽇日お話したこと 75 1. データのこと Keywords: ダミー変数,⽋欠損値,正規化,次元の呪い 2. 機械学習のこと Keywords: 機械学習の分類,アルゴリズム,注意点 3. 評価のこと Keywords: 混同⾏行行列列,適合率率率,再現率率率,F値,ROC曲線 4. 分析のこと Keywords: 過学習,交差検証,学習曲線,バイアス・バリアンス

×