pandasを活用した正規化・標準化の手順と実践

pandasを活用した正規化・標準化の手順と実践

この記事では、pandasを使ってデータの正規化と標準化を行う方法を詳しく解説します。データ分析や機械学習において、前処理が重要な役割を果たすことは広く認識されています。特に、正規化と標準化は、データの前処理の中で欠かせない手法です。本記事では、それらをpandasを使って簡単に実行する方法を解説していきます。

はじめに

データの正規化と標準化は、データ分析や機械学習の前処理で非常に重要です。正規化と標準化は、データのスケールや分布を揃えることで、モデルの学習がスムーズになる効果があります。今回は、Pythonのライブラリであるpandasを使って、データの正規化と標準化を行う方法を解説します。

こんな人におすすめ

  • pandasのDataFrameを正規化、もしくは標準化したい人
  • pandasを使ったデータ前処理を学びたい人
  • 正規化や標準化の方法を理解して実践したい人

使用する主なライブラリ

この記事で使用する主なライブラリは以下の通りです。

  • pandas
  • scikit-learn

pandasでの正規化・標準化の基本手順

正規化と標準化の概要

正規化とは、データの値を0から1の範囲に収まるように変換することです。一方、標準化は、データの平均が0、標準偏差が1になるようるように変換することです。これらの手法は、データのスケールや分布を揃えることで、分析や機械学習アルゴリズムの性能を向上させる効果があります。

pandasを使ったデータ前処理の流れ

pandasを使ってデータの正規化や標準化を行う前に、まずはデータを読み込み、必要な前処理を行います。具体的には、以下の手順があります。

  1. データの読み込み
  2. 欠損値の処理
  3. カテゴリ変数の処理
  4. 正規化・標準化

pandasを使った正規化の手順

Min-Maxスケーリングによる正規化

Min-Maxスケーリングは、データを0から1の範囲に収めることで正規化を行う方法です。以下の式で計算されます。

正規化された値 = (元の値 – 最小値) / (最大値 – 最小値)

コード例と解説

以下のコードは、pandasを使ってMin-Maxスケーリングによる正規化を行う例です。

import pandas as pd

# データの読み込み
data = pd.read_csv("data.csv")

# Min-Maxスケーリングによる正規化
normalized_data = (data - data.min()) / (data.max() - data.min())

print(normalized_data)

このコードでは、まずデータを読み込み、次に最小値と最大値を用いて正規化を行っています。

応用例

特定の列だけを正規化する場合は、以下のように指定します。

import pandas as pd

# データの読み込み
data = pd.read_csv("data.csv")

# 特定の列を正規化
normalized_data = data.copy()

normalized_data["column_name"] = (data["column_name"] - data["column_name"].min()) / (data["column_name"].max() - data["column_name"].min())

print(normalized_data)

pandasを使った標準化の手順

Zスコアによる標準化

Zスコアによる標準化は、データの平均が0、標準偏差が1になるように変換する方法です。以下の式で計算されます。

標準化された値 = (元の値 – 平均) / 標準偏差

コード例と解説

以下のコードは、pandasを使ってZスコアによる標準化を行う例です。

import pandas as pd

データの読み込み

data = pd.read_csv("data.csv")

# Zスコアによる標準化

standardized_data = (data - data.mean()) / data.std()

print(standardized_data)

このコードでは、まずデータを読み込み、次に平均と標準偏差を用いて標準化を行っています。

応用例

特定の列だけを標準化する場合は、以下のように指定します。

import pandas as pd

# データの読み込み
data = pd.read_csv("data.csv")

# 特定の列を標準化
standardized_data = data.copy()

standardized_data["column_name"] = (data["column_name"] - data["column_name"].mean()) / data["column_name"].std()

print(standardized_data)

pandasを活用した正規化・標準化の実践

実データを用いた前処理

ここでは、実際のデータセットを用いて、前処理を行ってみましょう。今回は、Irisデータセットを使用します。このデータセットは、アヤメの花の4つの特徴量(がく片の長さ・幅、花びらの長さ・幅)と品種情報が含まれています。

ケーススタディと解説

まず、Irisデータセットを読み込み、データの概要を確認します。

import pandas as pd
from sklearn.datasets import load_iris

iris = load_iris()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)

print(iris_df.head())

次に、データを正規化・標準化します。

# 正規化
normalized_iris_df = (iris_df - iris_df.min()) / (iris_df.max() - iris_df.min())

print("Normalized Data:")
print(normalized_iris_df.head())

# 標準化
standardized_iris_df = (iris_df - iris_df.mean()) / iris_df.std()

print("Standardized Data:")
print(standardized_iris_df.head())

これで、Irisデータセットの各特徴量が正規化・標準化されました。正規化されたデータは0から1の範囲に収まり、標準化されたデータは平均が0で標準偏差が1になっています。

まとめ

本記事では、pandasを活用した正規化・標準化の手順と実践について解説しました。データの正規化・標準化は、データ分析や機械学習の前処理において重要な役割を果たします。pandasを使えば、簡単にデータの正規化・標準化を行うことができます。ぜひ、自分のデータに適用してみてください。