見出し画像

kaggleで磨く機械学習の実践力(メモ)

Kaggleを用いた学習ツールについて

  1. 学習目的の設定(どんなスキルを身につけたいのか)

  2. コンペの選択(そのスキルを身につけることができるコンペはどれか
    難易度が低いコンペの特徴
    ・テーブルの個数が少ない
    ・データ量が少ない
    ・参加者が多い

  3. 環境準備

  4. コンペの推進と技術調査(この段階で調査した技術について、レポートにまとめる)

  5. 振り返り(資料にコンペのソリューションをまとめてSNSに投稿、試そうと思ったアイデアは全て書いておく)

機械学習の進め方

  1. ベースライン作成
    重要ポイント
    ・目的変数の設定(何を予測するのか)ー2値分類
    ・バリデーション(モデルをどうやって評価するのか)ー
    ・評価指標(モデルを何で評価するのか)ーAccuracy

  2. 特徴量エンジニアリング

  3. モデルチューニング

ベースライン作成

  1. 分析設計(目的変数は何か、評価指標は何か)

  2. ファイルの読み込み

  3. データの確認(簡易)
    ・レコード数とカラム数の確認
    ・カラムのデータ型の確認
    ・欠損値確認

  4. データセット作成(すぐ使える説明変数のみで簡易に)

  5. バリデーション設計
    クロスバリデーションでOK

  6. モデル学習(lightGBM)
    ・モデル学習→精度評価→説明変数の重要度算出
    ・ベースライン評価
     (実務ではベースライン検証用データをつくり評価する。コンペではsubmitスコアがこの役割を果たしている。)
       ・モデル精度のギャップ
       ・誤差の分布
       ・予測値の分布をチェック

  7. モデル推論

特徴量エンジニアリング


モデルの良し悪しを図るため、都度モデルの学習・評価を行う

  1. データ前処理
    ・データの確認(詳細)
    ・欠損値の確認・補間
    ・外れ値の検出・補正
    ・変数変換

  2. 特徴量生成
    特徴量生成には2つのアプローチがある。(仮説ベースの特徴量生成、機械的な特徴量生成)

  3. データセット作成
    ・特徴量の選択(3つの方法)

モデルチューニング

「手動チューニング」と「自動チューニング」がある。自動チューニングのデメリットとして、チューニングのしすぎで過学習が起きる可能性がある。
そのため、「そこそこなチューニング」が大事

  1. パラメータチューニング
    ・グリットリサーチ、ランダムリサーチ、optuna

  2. その他のモデルの利用
    モデルの特性や仕組みを理解した上で、それに応じたデータセットを作成したい。時間があるときや、制度が極めて重要な場合には、各モデルで検証したい。
    ・sklearnの各モデル
    ・ニューラルネットワーク
    モデルによっては①欠損値を埋める②全て数値データにする③正規化、標準化が必要 となるケースがある。

  3. アンサンブル
    モデルには多様性がある方がよく、予測値同士の相関係数で確認できる→個々が精度を持ちつつ、相関が低いものが良い。
    アンサンブルの種類
    ・単純平均
    ・重み付き平均(予測精度の高いモデルの重みを増やす)
    ・スタッキング


この記事が気に入ったらサポートをしてみませんか?