kaggleのコンペでランキング爆上がりのデータ水増し(data augmentation)方法はPCAだった

概要

kaggleのコンペで正例が極端に少ないデータで戦わないと行けない事が多々あります。

そんなとき、データの水増しが、スコアアップに有効なときがあります。

この記事では、PCAを使った行単位のデータの水増し方法について解説します。

 

PCAを利用した、データの水増しは以下の通り。

  1. 元データをPCAで圧縮する。
  2. 圧縮したものを復元する
  3. その結果、元の値に近い値を取得することによりデータの水増しを実現します。

 

PACで圧縮→復元で水増しする際のポイント

 

PACで圧縮からの復元でデータの水増しする際のポイントは以下の通り。

  1. 圧縮前に標準化する
  2. 圧縮率は、緩めにする(復元したとき、元の数値に近い値を取得できる)
  3. 近い数値を取得できる特性を利用する
  4. ラベルの数が少ないところに適用する。あくまでもデータが少ないところの補填に使う

 

実際のコードは以下の通り

 

以下のコードで仕様したデータセットは、データサイエンスの定番、irisを使った

 

 

主成分分析で水増しする方法で、ランキング外から銀メダルにちかい銅メダルまで一気に上げることができました。

 

 

気をつける点

元々ある全てのデータに対しての単純なデータの水増しだったら、かえって精度が落ちる。

ラベルが少ないところに、水増しを適用するなど、ちょっとした工夫が必要でした。

正例が少ないときに、全体的に、正例と負例の割合が同じになるようにデータを増やせれば理想です。

 

 

水増しの効果がなさそうなところ

・整数で値の範囲が小さい(極端な話、0,1だけのデータ)

・データ間に相関関係がない

・カテゴリ変数(そもそも、連続値でないと近い数値を取れない)

 

 

まとめ

今回、PCAを使った行単位のデータの水増し方法を解説しました。

他にもPCAを使い、特徴量を作成して横(列)に追加する方法もあります。

 

これらの方法がkaggleで100%効果あるかは保証しませんが、スコアを上げる手段の一つとして試してみるのはいかがでしょうか?

 

 

最新情報をチェックしよう!
>プログラミングスクール検索・比較表サイト

プログラミングスクール検索・比較表サイト

ワンクリック、さらに詳細に条件を指定してプログラミングスクールの検索ができます。さらに比較表により特徴を細かく比較できる!

CTR IMG