機械学習で一番大変なのはデータの前処理です。提供されるデータはそのまんまモデルに使えるなんてことはまずありません。文字と数字が混在しているとか、入力ミスとか...こんなのをちゃんと処理してやらないといけない。膨大な量のデータなら、変な値を含むものは捨ててしまえばいいのですが。
例えば土地の価格の場合、道路の幅員が欠損(空欄です)している場合があります。これは入力を忘れたわけではなくて、道路の面していない土地、いわゆる無道路地です。これは空欄であることが意味を持っている。だから何らかの意味のある数字(普通はゼロ)に置き換える必要があります。
データの量が少ない場合、欠損値があるデータも何とか活用したい場合があります。このような場合、一般的には平均値、中央値、最頻値、ゼロなどで欠損を埋めます。
こんなとき行や列を補完してくれるfancyimputeというアルゴリズムを使うことがあります。どこがファンシーなんだろうか?
これを使うとKNN(KNearestNeighbors:K再近傍法)の予測値で欠損を埋めてくれるので、ちょっぴり結果が良くなることが多いです。便利なヤツです。
ところがこのfancyimputeのインストールで躓きやすい。
私の場合、いきなり
pip install fancyimpute
とやっても全然ダメ。
検索するとよく出てくる
conda install ecos
conda install CVXcanon
pip install fancyimpute
とやるのですが、ecosとCVXcanonまでは順調なのに、3番目のfancyimputeでインストールの途中で画面が真っ赤になってエラーになる。ホラーな画面でビックリしました。
結局
pip install fancyimputeを
easy install fancyimpute
とすることで解決。とりあえずKNNは使えるようになりました。
Comments