データのスケーリング
距離に基づく指標を使う ML アルゴリズムでは、特徴量のスケールが異なると結果が歪むため、データをスケーリングすることが重要です。K-means はクラスタ重心までの距離を評価するのにユークリッド距離を使用するため、アルゴリズムを実装する前にデータをスケーリングする必要があります。まずはそこから進めましょう。
前の演習で作成したデータフレーム df が用意されています。sklearn で使えるように、いくつかの前処理は済んでいます。不正ラベルは labels に別で保存されているので、後で結果の確認に使えます。numpy は np としてインポート済みです。
この演習はコースの一部です
Pythonで学ぶ不正検知
演習の手順
MinMaxScalerをインポートしてください。- データフレーム
dfの値のみを取り出して numpy 配列Xに変換し、すべての値がfloatになるようにしてください。 - 定義したスケーラーを
Xに適用して、すべての特徴量が 0〜1 のスケールになるようにスケーリングされたX_scaledを得てください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the scaler
from sklearn.preprocessing import ____
# Take the float values of df for X
X = df.values.astype(np.____)
# Define the scaler and apply to the data
scaler = ____()
X_scaled = scaler.____(X)