Pythonのsklearnでデータを正規化する方法を解説する

スポンサーリンク

今回は、Pythonでデータを正規化する方法について説明します。

では、さっそく始めてみましょう。

スポンサーリンク

正規化とは?

正規化に飛び込む前に、まずその必要性を理解しましょう!

特徴量のスケーリングは、データ分析およびモデリングのためのデータの準備に不可欠なステップです。

ここで、我々は簡単に分析するために、データのスケールフリーにします。

正規化は特徴スケーリング技術の一つです。

正規化は、データがガウス分布に従わない場合など、どちらかの軸に偏っている場合に特に適用される。

正規化では、異なる尺度のデータ特徴を共通の尺度に変換し、さらにデータのモデリング処理を容易にします。

これにより、すべてのデータの特徴(変数)は、モデリング部分において同様の影響を持つようになります。

以下の式により、データ変数からデータの最小値を引き、それを変数の範囲で割ることで各特徴を正規化します。

import pandas as pd
import os
from sklearn.preprocessing import MinMaxScaler
#Changing the working directory to the specified path--
os.chdir("D:/Normalize - Loan_Defaulter")
 
data = pd.read_csv("bank-loan.csv") # dataset
scaler = MinMaxScaler()
 
loan=pd.DataFrame(scaler.fit_transform(data),
            columns=data.columns, index=data.index)
print(loan)

このように、値を[0,1]の間の範囲に変換します。

では、この正規化の概念をPythonで実装してみましょう。

Pythonでデータを正規化する手順

Pythonでは、正規化を行うために様々なアプローチがあります。

今日は、最も一般的な方法の一つである MinMaxScaler を使ってみましょう。

まず、これからスケーリングするデータセットを見てみましょう。

データセット:

Normalization
Normalization

さらに、正規化を行うために、sklearnのminとmaxのスケーリングを使用する予定です。

例えば、以下の様になります。

Dataset For Normalization
Dataset For Normalization

ここでは、MinMaxScaler() クラスのオブジェクトを作成した。

さらに、fit_transform() メソッド を使って、データの正規化を行っています。

出力です。

このように、0 から 1 の範囲でデータ値を変換し、正規化しました。

Dataset After Normalization Using MinMaxScaler - How to normalize data in Python
Dataset After Normalization Using MinMaxScaler

概要

以上の説明から、以下のことがわかります。

  • 正規化は、データ値が歪んでいて、ガウス分布に従わない場合に使用される。
  • データ値は 0 と 1 の間で変換される。
  • 正規化によって、データはスケールフリーになります。

まとめ

以上で、本記事を終了します。

もし何か疑問があれば、お気軽にコメントください。

それまでは、Python with AskPythonと学習を続けてください。

タイトルとURLをコピーしました