pandasを活用した正規化・標準化の手順と実践
この記事では、pandasを使ってデータの正規化と標準化を行う方法を詳しく解説します。データ分析や機械学習において、前処理が重要な役割を果たすことは広く認識されています。特に、正規化と標準化は、データの前処理の中で欠かせない手法です。本記事では、それらをpandasを使って簡単に実行する方法を解説していきます。
はじめに
データの正規化と標準化は、データ分析や機械学習の前処理で非常に重要です。正規化と標準化は、データのスケールや分布を揃えることで、モデルの学習がスムーズになる効果があります。今回は、Pythonのライブラリであるpandasを使って、データの正規化と標準化を行う方法を解説します。
こんな人におすすめ
- pandasのDataFrameを正規化、もしくは標準化したい人
- pandasを使ったデータ前処理を学びたい人
- 正規化や標準化の方法を理解して実践したい人
使用する主なライブラリ
この記事で使用する主なライブラリは以下の通りです。
- pandas
- scikit-learn
pandasでの正規化・標準化の基本手順
正規化と標準化の概要
正規化とは、データの値を0から1の範囲に収まるように変換することです。一方、標準化は、データの平均が0、標準偏差が1になるようるように変換することです。これらの手法は、データのスケールや分布を揃えることで、分析や機械学習アルゴリズムの性能を向上させる効果があります。
pandasを使ったデータ前処理の流れ
pandasを使ってデータの正規化や標準化を行う前に、まずはデータを読み込み、必要な前処理を行います。具体的には、以下の手順があります。
- データの読み込み
- 欠損値の処理
- カテゴリ変数の処理
- 正規化・標準化
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を使えば、簡単にデータの正規化・標準化を行うことができます。ぜひ、自分のデータに適用してみてください。