Kaggleの初心者向けプログラム「30 Days of ML」に挑戦中。

Day12の課題

  1. the Intermediate ML CourseのLesson 1のチュートリアルを読む
  2. the Intermediate ML CourseのLesson 1のexerciseを実施する
  3. the Intermediate ML CourseのLesson 2のチュートリアルを読む
  4. the Intermediate ML CourseのLesson 2のexerciseを実施する
  5. the Intermediate ML CourseのLesson 3のチュートリアルを読む
  6. the Intermediate ML CourseのLesson 3のexerciseを実施する

the Intermediate ML CourseのLesson 1の内容

  • Introduction
    • RandomForestRegressorを使って、家の価格の予測をしてみる(Intro to ML Courseのおさらい的な感じ)

the Intermediate ML CourseのLesson 2の内容

  • 欠損値

覚えておきたいと思った点

  • 欠損値の扱い方
    • 欠損値を含む列を削除する
    • 適当な値で置換する
    • 置換する + 「値が欠損していたかどうか」の列を追加する
      • 非常に有効な場合もあれば、全く意味がない場合もある
    • 列を削除すると情報が失われるので、精度が落ちがち
      • 欠損値の数が20%以内の場合は削除しない方が良いことが多い
    • Imputerfit_transform()transform()の違いについてはこちらを参照

the Intermediate ML CourseのLesson 3の内容

  • カテゴリ変数

覚えておきたいと思った点

  • カテゴリ変数の扱い方
    • カテゴリ変数を除去する
      • カテゴリ変数が有益な情報でない場合に有効
    • 整数に変換する(Ordinal Encoding)
      • OrdinalEncoderを使う
    • One Hot Encodingを行う
      • OneHotEncoderを使う
        • 今回はhandle_unknown='ignore', sparse=Falseにする
      • カテゴリに順番がない場合に向いている
      • カテゴリ数が多くない場合(だいたい15以下)に向いている
      • cardinality: あるカテゴリにおける値の数
  • One-hot encodingの手順
    1. OneHotEncoderを生成し、カテゴリデータの各列に適用する
    2. 1.でindexが削除されてしまうので、それを元に戻す
    3. カテゴリデータの入った列を削除する
    4. One-hot encodingされた列を加える