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

はじめに

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

Feature preprocessing and generation with respect to models

メイントピック

  • 特徴の前処理
  • 特徴の生成
  • モデルの種類によって、どのように影響するか

特徴のデータ形式について

  • numeric (数値)
  • categorical (カテゴリー)
  • ordinal (序数)
  • datetime (日付)
  • coordinate (座標)

特徴のデータ形式の違いは下記と関連がある

  • モデルの前処理
  • それぞれの特徴の種類による特徴を生成する方法

Kaggle のタイタニックのデータについて

Titanic: Machine Learning from Disaster | Kaggle

  • Survived を予測する

前処理について

  • モデルの品質を改善するために、特徴の種類ごとに方法がある
    • 使用するモデルごとに前処理が変わる

例えばタイタニックのデータを例に説明する 線形モデルを使うとき、特徴が pclass が非線形であったとする 下記のように、カテゴリデータを数値で扱うようにする

pclass pclass == 1 pclass == 2 pclass == 3
1 1 0 0
2 0 1 0
3 0 0 1

データ前処理② データを Categorical から Numerical に。 - Qiita

※ ランダムフォレストの場合は、この前処理は特に必要なし

特徴の生成について

例えば、週ごとの販売数を予測したい時、 線形モデルを使うとき、過去の週数を示す特徴を作る

勾配ブースティング (GBDT: Gradient Boosted Decision Trees) の場合は、各週の平均目標値などを特徴として作る

Numeric features

前処理

スケーリングに依存しない

  • 決定木分類器

スケーリングに依存する

  • k近傍
  • 線形モデル
  • ニューラルネットワーク
正規化
  • 特徴の最小値を0、最大値を1にする
    • sklearn では、MinMaxScaler を使う
  • 平均を0、標準偏差を1にする
    • sklearn では、StandardScaler を使う
外れ値
  • 線形モデルを扱う時、結果に影響を与える

Winsorizing について

外れ値を外れ値以外の最大値・最小値で置き換えるというものである。

ランク変換
  • 外れ値がある場合、MinMaxScaler より良い選択肢
  • 外れ値を手動で処理する時間がない時などに利用
  • scipy ライブラリにある
  • 注意点、テストデータにも適用すること
non-tree-based のモデルに役立つ前処理

大きすぎる値を、特徴の値の平均値に近づける ニューラルネットワークに役立つことが多い

  • log 変換
  • 平方根を利用

特徴の生成

  • 特徴の値通しで、加算、乗算、除算は役立つことがある

まとめ

  • tree-based model は特徴のスケーリングに依存しない
  • non-tree-based は特徴のスケーリングに依存する
  • データの理解によって良い特徴が生成できる

参考