kaggleで磨く機械学習の実践力(メモ)
Kaggleを用いた学習ツールについて
学習目的の設定(どんなスキルを身につけたいのか)
コンペの選択(そのスキルを身につけることができるコンペはどれか
難易度が低いコンペの特徴
・テーブルの個数が少ない
・データ量が少ない
・参加者が多い環境準備
コンペの推進と技術調査(この段階で調査した技術について、レポートにまとめる)
振り返り(資料にコンペのソリューションをまとめてSNSに投稿、試そうと思ったアイデアは全て書いておく)
機械学習の進め方
ベースライン作成
重要ポイント
・目的変数の設定(何を予測するのか)ー2値分類
・バリデーション(モデルをどうやって評価するのか)ー
・評価指標(モデルを何で評価するのか)ーAccuracy特徴量エンジニアリング
モデルチューニング
ベースライン作成
分析設計(目的変数は何か、評価指標は何か)
ファイルの読み込み
データの確認(簡易)
・レコード数とカラム数の確認
・カラムのデータ型の確認
・欠損値確認データセット作成(すぐ使える説明変数のみで簡易に)
バリデーション設計
クロスバリデーションでOKモデル学習(lightGBM)
・モデル学習→精度評価→説明変数の重要度算出
・ベースライン評価
(実務ではベースライン検証用データをつくり評価する。コンペではsubmitスコアがこの役割を果たしている。)
・モデル精度のギャップ
・誤差の分布
・予測値の分布をチェックモデル推論
特徴量エンジニアリング
モデルの良し悪しを図るため、都度モデルの学習・評価を行う
データ前処理
・データの確認(詳細)
・欠損値の確認・補間
・外れ値の検出・補正
・変数変換特徴量生成
特徴量生成には2つのアプローチがある。(仮説ベースの特徴量生成、機械的な特徴量生成)データセット作成
・特徴量の選択(3つの方法)
モデルチューニング
「手動チューニング」と「自動チューニング」がある。自動チューニングのデメリットとして、チューニングのしすぎで過学習が起きる可能性がある。
そのため、「そこそこなチューニング」が大事
パラメータチューニング
・グリットリサーチ、ランダムリサーチ、optunaその他のモデルの利用
モデルの特性や仕組みを理解した上で、それに応じたデータセットを作成したい。時間があるときや、制度が極めて重要な場合には、各モデルで検証したい。
・sklearnの各モデル
・ニューラルネットワーク
モデルによっては①欠損値を埋める②全て数値データにする③正規化、標準化が必要 となるケースがある。アンサンブル
モデルには多様性がある方がよく、予測値同士の相関係数で確認できる→個々が精度を持ちつつ、相関が低いものが良い。
アンサンブルの種類
・単純平均
・重み付き平均(予測精度の高いモデルの重みを増やす)
・スタッキング
この記事が気に入ったらサポートをしてみませんか?