Kaggle's 30 Days of ML - Day12
Kaggleの初心者向けプログラム「30 Days of ML」に挑戦中。
Day12の課題
- the Intermediate ML CourseのLesson 1のチュートリアルを読む
- the Intermediate ML CourseのLesson 1のexerciseを実施する
- the Intermediate ML CourseのLesson 2のチュートリアルを読む
- the Intermediate ML CourseのLesson 2のexerciseを実施する
- the Intermediate ML CourseのLesson 3のチュートリアルを読む
- 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%以内の場合は削除しない方が良いことが多い
Imputer
のfit_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の手順
OneHotEncoder
を生成し、カテゴリデータの各列に適用する- 1.でindexが削除されてしまうので、それを元に戻す
- カテゴリデータの入った列を削除する
- One-hot encodingされた列を加える