スケーリングの目的
アンケートデータの場合、5段階の回答を求める場合、質問によっては、1に偏ったりする場合がある。各設問でばらつきがでないように調整するため。
スケーリングには、2種類ある。
- 正規化:「特徴量を0〜1に変換するスケーリング」
- 標準化:「特徴量の平均を0、分散を1に変換するスケーリング」
数式に書くと。。。眠たくなるので、割愛。
アンケートデータのスケーリングでは、分散を等しくするために、標準化を使う。
pythonでの実装
pythonのscikit-learnのsklearnを使えば、2-3行のコードで実現できる。
- MinMaxScaler:正規化
- StandardScaler:標準化
以下が実際のコード
from sklearn import preprocessing
ss = preprocessing.StandardScaler()#別のデータフレーム作成
questionnaire_s = pd.DataFrame(ss.fit_transform(questionnaire))
fit_transformでヘッダーの情報がなくなるので、コピーする。
#ヘッダー情報のコピー
questionnaire_s.columns = questionnaire.columns
一連を実行すると、以下の結果。