機械学習のための特徴量エンジニアリング | ナナとトモのブログ

ナナとトモのブログ

最近は書評メインですがナナ(ダックスフント)のかわいさを世界に広めるブログです。

最近は、データさえあれば機械学習で何でもできるかのように思っている

人も多いようですがもちろん学習させるためのデータを整えてやらないと

まともな学習はできません。学習そのものよりも前処理に時間がかかる

ことはザラです。

 

前処理といっても

・不正データや欠損データを整える

・平均や分散を求めて値を正規化する

などもありますが、この本がフォーカスしているのは学習に用いるための

特徴量としてどういうものを使うべきかという点です。

 

連続値を適当な範囲で離散化するとか、とりうる範囲が広い値は対数化

するとか、テキストデータを Bag-of-words として扱うときには低頻度語を

まとめるとか、カテゴリ変数を one-hot ベクトルで表すとか、よく知られて

いる手法も挙げられていますが

・カテゴリ変数をダミーコーディングや Effect コーディングする

・hash 関数を通して低次元化する

といった、あまり見たことがない手法も挙げられていました。

 

また次元削減のために PCA を行なうのは一般的ですが、各軸の方向で

正規化を行なって白色化するというのはお手軽ながら効果的そうです。

k-means も一般的な手法ですが、属するクラスタ ID で各点を表現すれば

one-hot ベクトルになり特徴量として使えるというのは盲点でした。

 

最後の9章は、学術論文の公開データを使ってレコメンドアルゴリズムを

実際に作ってみるケーススタディになっています。実データを扱いだすと

さまざまな問題にぶち当たることも多いですが、典型的なものはこの章を

丁寧に追っていくとだいぶ解消されそうです。