How to Win a Data Science Competition (Week1-5 part4)
Kaggle 機械学習
Published: 2019-05-21

はじめに

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 は欠損値を扱うことができる

参考