はじめに
Coursera の 「How to Win a Data Science Competition」 のメモです。
英語字幕しかなかったので、翻訳の意味が分からないところがあるかもしれません。
Feature Preprocessing and Generation with Respect to Models
学習目標
- Explain how employed model impacts choice of preprocessing
- Summarize feature preprocessings for numeric and categorical features
- Summarize feature generation approaches for datetime and coordinates
- Summarize approaches to deal with missing values
- Outline the pipeline of applying Bag of Words
- Compare Bag of Words and Word2vec
- Explain how to extract CNN descriptors from images
Handling missing values
欠損値
欠損値を他の値に置き換える
- -999, -1 など
- 長所: 木モデルにカテゴリに分類する可能性を与える点
- 短所: 線形モデル、ニューラルネットワークのパフォーマンスが低下する可能性
- 平均、中央値
- 長所: 線形モデル、ニューラルネットワークに有効
- 短所: 木モデルは、オブジェクトを選択するのが難しい
- 値の再構築
- isnull という欠損値かどうかの特徴を作る
- 平均、中央値を使いつつ、木モデルやニューラルネットワークに関わる問題を解決できる
- データセットの列が2倍になるのが欠点
- 時系列データは構築できる可能性がある
欠損値の近くでは、欠損値を置き換えた値との差分が大きくなることがある
外れ値を欠損値として扱うこともある
カテゴリ特徴で、テストデータには存在し、訓練データにはない場合、欠損値、カテゴリを変更すると有効なことがある
- 訓練データに含まれていないカテゴリは、最終的にランダムに扱われる
まとめ
- データが存在しない NaN を選択するかどうかは、状況による
- 欠損値を再構築できることもあるが、通常は、欠損値を -999、平均値、中央値に置き換える方が簡単
- 欠損値はコンペの主催者によって、置き換えられていることがある
- 欠損値を表す isnull は役に立つことがある
- 一般的に、特徴の生成前には欠損値を埋めることは避ける
- Xgboost は欠損値を扱うことができる