2019年7月29日月曜日

相関性と分離性

sklearn.preprocessing に LabelEncoder があります。

これ、categorical な変数を数値に変換・分類してくれます。sklearn を使わずとも、その前に既に整理されている場合もあるでしょう。馴染みのある分類方法です。

LabelBinarizer や OneHotEncoder もあります。
当初は馴染みのない上、スパースなのにメモリを多く使うため、その利点がわかりませんでした。が、気づくと便利。データの前処理で target との相関分析を行う際、並びを考えなくて良くなります。e>a>c>bの順で相関性があった場合、これらで機械的に番号を振ると良い相関を得られません。

機械学習にかけるうえでは、相関性だけでなく、分離性についても着目すべきでしょう。random forest は相関性重視ですが、LightGBMは分離性も見ています。扱う手法が何を重視しているかによって、与えるべきデータ、前処理が異なります。難しい。

2値分類の場合、KDE 等でピークの分離性を見てみます。が、数百もあると目検索では辛い。最大ピークだけ抜き出して距離を測る方法をとっていますが、まだ納得できていません。第2、第3ピークも考慮したいのですが、まだ実装できていません。プロはどうなさっているのでしょう。
https://stackoverflow.com/questions/16255622/peak-of-the-kernel-density-estimation
http://ibis.t.u-tokyo.ac.jp/suzuki/lecture/2015/dataanalysis/L9.pdf

データを理解するためには、ツールと表現方法を実装する必要があります。
もっと多くの知見を得たいものです。

0 件のコメント:

コメントを投稿