概要
データの特徴量化のコツについて解説したいと覆います。
はじめに
今回は、2次元以上の表データを想定した時系列データなどから特徴量作成についての説明になります。
1次元のデータの場合は、そのまま各カラムの値を特徴量として採用する場合もあります。
設計方針
判定モデルの結果に対して、説明が求められるかどうかの要件の有無で、設計の方針が異なります。
- 説明が不要(画像判定、音声認識など、モデルの出力結果だけあればよいもの)
- データの特徴をとらえやすい特徴量を作成する。
- そのまま生データをモデルに入力する。
- 説明が必要(病気の診断、マーケティングなど、判定の根拠が必要になるもの)
- ビジネス的に意味や説明能力がある特徴量を作成する。
説明が不要であれば、
最大、最小、平均、標準偏差などの基本的な統計量に加えて、特徴がとらえやすい関数の結果を特徴量として作成します。DeepLearnigを使う場合は、そのまま生データを入力することが出来ます。
例)
画像であれば、エッジの処理結果やヒストグラムの値など
時系列であれば、フーリエ変換の結果など
説明が必要であれば、
どの特徴量が判定結果に影響が強いかどうかを示す必要があります。
そのため、判定結果の影響力で納得のできる特徴量を作成し、データの大小で意味が説明できるとよいです。
例)運転診断モデルの場合、運転速度の平均値、急停止、急発進の回数など
集計
モデルにデータを入れる前に説明変数を集計する作業になります。
データを集計することで、
- 特徴量が正しく作成できているか
→ 特徴量生成作成のミス、不要な説明変数のチェック - 説明変数が目的変数との相関があるのか
→ 相関ありであれば、モデルでの予測も可能かどうかが前もって確認
→ 説明変数が直接答えになってしまっていないかの確認 - 説明変数同士での相関があるのかどうか
→ 不要な特徴量があるかどうかの確認。
を確認することができます。
確認方法
方法としては、説明変数を目的変数別、データの種類別にグルーピングして
- 基本統計情報(最大、最小、平均、最頻値、標準偏差、中央値など)
- ヒストグラム(最大値、最小値をレンジとしたスコア別の数)
を集計し、データの異常の有無、目的変数別の傾向を確認します。
【統計情報】
【ヒストグラム】
【相関行列】
また、変数全体で相関行列で、
各説明変数の関連の強さを相関係数で確認することが出来ます。
目的変数との相関係数が低い説明変数を削ることで、
不要な説明変数を絞ることが出来ます。
相関係数が高い説明変数のペアが存在していると、
モデル作成で、ランダムフォレストなどのアンサンブル系は、問題はないですが、
ロジスティック回帰の場合は、変数同士の相関が精度にも影響、モデルの説明でも、説明変数の影響力の高さに反映されます。
なので、前もって相関係数が極端に高い説明変数のペアは、削っておく必要があります。
実装
集計
こちらの過去の記事が参考になるかと思います
[高収入判別/Census Income]データの前処理方法を紹介2
相関分析
こちらの過去の記事が参考になるかと思います。
[中古車査定/CarEvaluationDataset]データの前処理方法を紹介1
さいごに
特徴量の洗い出しは、センスが必要です。