ロード・オブ・ザ・ホワイトハッカー

ホワイトハッカーはじめました

アンケート分析(3):データの水増し

データの水増し

データの水増しをアンケートでやったら偽造ですが、上手に機械学習させるために、少ないサンプルデータに対してよく行われている、とのこと。

 

特に画像認識系で、画像データが少ない場合など、ノイズを与えてデータを複製する。

後学のため、アンケートデータに対して実施。

 

data augmentationというらしく、こちらを参考にさせて頂きました。

propen.dream-target.jp

 データ水増しのステップ

1.データを標準化する

2.標準化したデータに対して主成分分析(PCA)を実施

3.PCAを復元する

 

これにより、単なる元データのコピーではなく、少し揺らぎのあるデータが取得できる。

 

実際のコード

以下の手順で、データが標準化されている前提です。

chikuwamarux.hatenablog.com

 

chikuwamarux.hatenablog.com

 

PCAのおまじない。あまり圧縮しすぎると復元できないので、1次元削減。

from sklearn.decomposition import PCA

#(元のカラム数=5 - 1)
n_comp = 4
pca = PCA(n_components=n_comp, random_state=42)

 

圧縮・復元・変換

#PCAによる圧縮
pca_res = pca.fit_transform(questionnaire_s)
#PCAの復元化
restore_list = pca.inverse_transform(pca_res)
#データフレームに変換
aug_data_df = pd.DataFrame(restore_list)

 

データフレーム変換前に標準化を戻すことも可。

#標準化を元に戻す
restore_list = restore_list*ss.scale_ + ss.mean_

 

f:id:chikuwamaruX:20210821124028p:plain

 

次元削減の主成分分析と因子分析は、どの説明を聞いても、未だ納得できないですが、データの水増しに使えることで、少し理解が進みました。