【入門】Kaggle本でデータ分析の技術を勉強する【第3章】Part1

書籍

今回は『Kaggleで勝つデータ分析の技術』の第3章、特徴量の作成についてです。

第3章は中身が濃く、分量が多いので2回に分けて投稿します。

Kaggleなどのデータ分析コンペでは、実際のデータを扱うため、機械学習の解説書にはあまり載っていないような手法やテクニックが数多く活用されています。これらを理解し自身で使えるようにしておくことはコンペだけでなく、実務でのモデル構築において非常に役に立ちます。特徴量の作り方,バリデーション,パラメータチューニングなどについて,一般的な書籍ではあまり言及されない暗黙知やポイントについて記述しています。

以下、第3章途中までの備忘録(メモ、引用)になります。

備忘録

  • あるタスクで有効だった特徴量作成の手法が、他のタスクでは効かないことはよくある
    →タスクとモデルを意識して、さまざまな特徴量作りを試すことが重要

 

  • GBDTは以下のような特徴がある

・数値の大きさ自体には意味がなく、大小関係のみが影響する
・欠損値があっても、そのまま扱うことができる
・決定木の分岐の繰り返しによって変数間の相互作用を反映する

→GBDTは数値変数のスケールや分布の変換、変数間の相互作用の明示的付与、欠損値補完をしなくてもそれなりに性能が出る
(ただし、欠損値を埋めることで精度が向上することもあるし、相互作用情報を明示的に付与した方が、そういう情報をより反映させられる。)

 

  • ニューラルネットは数値のスケーリングが影響するし、欠損値も埋める必要がある
    →変数の標準化は大事

 

  • 特徴量は直接モデルの入力とするだけでなく、平均などの統計量をとって特徴量にすることもある(GBDTを使う場合でも有効)

 

  • 特徴量作りのイメージは、モデルに現在与えられている入力から読み取れない・読み取りづらい情報を追加で与える

 

  • 学習データとテストデータで、それぞれ別の変換を行うことは避けるべき
    →標準化で学習データのみを使うか、テストデータまで含めるかは思想の違いらしい。それぞれの特性がよほど違わない限り、どちらでも大きな差異は生じない。(私自身は学習データのみ使う派)

 

  • clipping: 数値変数について上限や下限を設定し、それを外れた値は上限や下限の値で置き換えて外れ値を排除すること

 

  • binning: 数値変数を区間ごとにグループ分けして、あえてカテゴリ変数として扱う方法

 

  • RankGauss: 数値変数を順位に変換したあと、順序を保ったまま正規分布になるような変換をする手法(ニューラルネットでモデルを作成する際の変換として、通常の標準化よりも良い性能を示すらしい)

 

  • GBDTにおいては label encodingはカテゴリ変数を変換する基本的な方法
    (筆者の方の経験上はtarget encodingの方がより有効であることが多いらしい。ただし目的変数がリークしてしまう危険有り。)

 

  • 時系列データについては、学習データとテストデータの分割に起因する問題に注意が必要

過去10年間の学習データが使用可能だとしても、全期間の学習データを使うのは必ずしも最良の選択ではありません。10年前のデータは最新の傾向をモデル化するにあたり、役に立たないどころかノイズとなって悪影響を及ぼす場合もあります。

 

  • 時系列データの特徴量として、予測したいデータと、ある時点での時間差を特徴量にできる(例えば、住宅の価格の予測なら、築年数すなわち建築から何年経っているかなど)

 

今まで標準化や欠損値補完なんかはやってましたが、こんなにちゃんと考えて特徴量を作ってなかったです。これからはちゃんとモデルの気持ちになって考えないといけませんね。

あとは時系列データ。深く考えずに全期間のデータを使うことが多かったので反省です・・・。

実装

本文中で紹介されている変数変換について、特に直近で使いたいものを手元でも実行し、描画してみて理解を深めました。

mimosom/study
Contribute to mimosom/study development by creating an account on GitHub.

外れ値は除去して対処してしまうことが多かったので、clippingは積極的に試していきたいです。

 


Kaggleなどのデータ分析コンペでは、実際のデータを扱うため、機械学習の解説書にはあまり載っていないような手法やテクニックが数多く活用されています。これらを理解し自身で使えるようにしておくことはコンペだけでなく、実務でのモデル構築において非常に役に立ちます。特徴量の作り方,バリデーション,パラメータチューニングなどについて,一般的な書籍ではあまり言及されない暗黙知やポイントについて記述しています。

コメント