LoginSignup
362

More than 3 years have passed since last update.

posted at

KAGGLEでどこから手を付けていいか分からず学ぶことが多すぎてまとめてみた

Googleで「KAGGLE」で検索し1ページ目(公式、Wikipedia除く)

タイトル 著者 記事日時 特徴 初心者のToDo
Kaggleとは?機械学習初心者が知っておくべき3つの使い方 Codexaチーム 2017-11-22 初心者向け カーネルをやれ
Kaggleを始める人に役に立つ記事 @jeayoon 2019-05-16 初心者向け -
Kaggle参戦記 〜入門からExpert獲得までの半年間の記録 & お役立ち資料まとめ〜 naotaka1128 Expert 2019-01-15 詳細 *1)にまとめ
KaggleでSilver取るためにどういう段階を踏んでいけばよいですか? カレーちゃん🍛専業kaggler(たまにSilver) 2019-01-15 初心者向け カーネルの理解、改良
Kaggle Titanic やってみた感想 mizchi 2019-02-08 Titanicの紹介 -
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング mlm_kansai 2019-03-27 特徴量エンジニアリングについて詳細 *2)にまとめ -
機械学習の勉強歴が半年の初心者が、 Kaggle で銅メダルを取得した話 株式会社トップゲートのエンジニア(Brond) 2019-02-27 詳しめ *3)にまとめ 性能の良い分類器、出力のアンサンブル

上記の方々の推奨本

記事の概要

Kaggle参戦記 〜入門からExpert獲得までの半年間の記録 & お役立ち資料まとめ〜 *1)

  • 特徴量エンジニアリング
    • 次元削減系 LDA、PCA、tSNE
    • Kaggle TalkingData Fraud Detection コンペの解法まとめ(基本編)
      • 「カテゴリー変数を組み合わせて特徴量を量産してLightGBMにぶち込む」
    • Kaggle TalkingData Fraud Detection コンペの解法まとめ(応用編)
      • もはや常識 random seed average
        • 予測モデルを複数作ってそれらの平均を最終的な予測とするensembleという手法がkaggleでは常識となっています。
        • お手軽な手法としてrandom seed averageといういうのがあります。それは、モデルを訓練する際にランダム性がある場合にランダムシード値を変えて複数モデルを作りそれの単純平均をとる
      • Negative Down Sampling
        • 判別で目的変数が不均衡な場合、多い方のデータを捨てる
  • 特徴量選択
    • ランダムフォレストと検定を用いた特徴量選択手法Boruta
      • 特徴量選択とは
        • コンペでは精度のみが重視されるがビジネス上は説明変数の特定が重要視される
        • ただ、モデルの学習や推論が高速化されたり、過学習しづらくなったり、結果判別の精度が良くなったりもする
      • 既存の手法の特徴
        • ランダムフォレスト
          • どれぐらいの特徴量重要度があったら重要だと言えるのかがイマイチ
          • ランダム性から訓練するたびに特徴量重要度が変動する
        • Forward selectionやBackward eliminationと言ったステップワイズな方法
          • 計算量が多い
          • 選んだ特徴量が過学習する
        • lasso
          • 選んだ特徴量が過学習する
      • Boruta
        • ニセの特徴量を作って重要度を比較する
  • アンサンブル
  • ブレンド

最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング *2)

trainデータ、testデータ、Private testデータ間での乖離が大きいコンペが増えている → 単純にtrain, testで学習検証しただけではだめ → 特徴量エンジニアリング

  • 特徴量エンジニアリング
    • Target Encoding
      • カテゴリ変数をそのカテゴリにおけるTargetの平均値で置き換える
      • カテゴリ変数のレベルが多い場合に使う
    • テーブル間の集約
      • 集約し、sumやaverage
      • トランザクション側のデータが多い場合
    • 四則演算
      • GBDTは差や比率を直接表現できない
      • 意味が明確な連続値がある場合
    • サブモデルによる特徴量
      • 重要な特徴量の予測
      • トランザクションレベルの予測

機械学習の勉強歴が半年の初心者が、 Kaggle で銅メダルを取得した話 *3)

  • 性能の良い分類器を使う
    • アンサンブル学習系
    • 深層学習系
  • 複数の予測値のブレンド
    • 多数決、平均
  • 感度解析
    • 複数の予測値のブレンドだが重み付け

まとめ、気付き(つか無知の反省)

  • 特徴量エンジニアリング
    • 思いつく限りたくさん作ってlightGBM(が軽いので)放り込んじまえ!?
    • 不均衡データ
      • Negative Down Sampling
        • その発想はなかった!って感じ
  • 特徴量選択
    • Boruta知らなんだ
  • アンサンブル
  • ブレンド
    • 複数のアルゴリズムの結果で多数決、平均するのってそれも「アンサンブル」と思っていたが「ブレンド」と言うらしい

上記記事にはないが(わたしの見落としかも)関連する手法

  • 不均衡データのときに目的変数の少ない側のデータを増やすもの
  • データ生成
    • 判別データにて、均衡したデータでもデータ生成で精度が良くなるという事例もある
    • 連続値の場合もデータ生成手法がある
  • 共変量シフト
    • trainとtestで説明変数に偏りがある場合の対応

補足的な資料

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
What you can do with signing up
362