Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kaggleで勝つ データ分析の技術 輪読&勉強会 #3 〜第4章 モデル作成〜

Kaggleで勝つ データ分析の技術 輪読&勉強会 #3 〜第4章 モデル作成〜

Avatar for Kazuki  Yokoi

Kazuki Yokoi

April 01, 2020
Tweet

More Decks by Kazuki Yokoi

Other Decks in Programming

Transcript

  1. テストデータ予測方法 の特徴 各FOLDで学習したモデルの予測値の 平均をとる方法 学習データ全体に対して再学習させて 予測する方法 追加の学習が不要 学習データ全体の再学習が必要 各foldで学習したデータを合わせると学習データ全体 となり、後者と同じ精度が出ると言われている

    前者よりわずかに精度が良いという意見がある アンサンブルの効果が効く 学習データ数が異なるにもかかわらず、 同じハイパーパラメータのままで良いのか懸念がある テストデータが大きい場合は予測に時間がかかる 学習データ全体を再度学習する時間がかかる 筆者結論:どちらを選んでも良い
  2. GBDT(勾配ブースティング木) 特徴 • 特徴量は数値 • 欠損値を扱うことができる • 特徴量間の相互作用が反映される 経験則での特徴 •

    精度が高い • ハイパーパラメータチューニングをしなくても精度が出やすい • 不要な特徴量を追加しても精度が落ちにくい
  3. ニューラルネットの主なライブラリ Keras Google社員が作成 TensorflowなどのAPI をラップして、簡単に 使えることが特徴 Tensorflow Google製 最も知名度が高い 産業界でも人気

    Pytorch Facebook製 新興のライブラリ 研究分野を中心に 近年人気上昇中 Chainer Preferred Networks 製 今後はPytorchに移 行することを発表 「Define-by-Run」とい うデファクトスタン ダードを生み出した
  4. 線形モデル 特徴 • 特徴量は数値 • 欠損値を扱うことはできない • GBDTやニューラルネットと比較して精度はよくない • 非線形性を表現するためには、明示的に特徴量を作成する必要がある

    • 相互作用を表現するためには、明示的に特徴量を作成する必要がある • 基本的に標準化が必要 • 特徴量を作るときに丁寧な処理が必要 主なライブラリ • Scikit-learnのlinear_modelモジュール • Vowpal wabbit
  5. バリデーションとテストのスコアが違う場合 過学習(オーバーフィッティング)を疑う • 過学習とは、学習データの性質やノイズに過剰に適合してしまっている状態 過学習の対策 • バリデーション方法を再検討する(5章参照) • アーリーストッピング機能を使用する •

    一定の間バリデーションスコアが上がらない場合、途中で学習を打ち切る機能 • ハイパーパラメータを調整する 以下の可能性も検討する • 学習データとテストデータの分布が異なっている • テストデータのレコード数が少なすぎる
  6. まとめ モデルとは • 特徴量を入力データとし、予測値を出力する変換器のこと • モデルは学習・評価・予測の流れで作成する 分析コンペで使われるモデル • 初手はGBDT、特にlightgbmを使う場合が多い •

    目的に応じて、ニューラルネットや線形モデルも使用する モデルのその他のポイントとテクニック • GBDTの使用。欠損値補間 • 特徴量選択 • Psudo labeling