【Python初心者】正規化・標準化する方法|機械学習に必要な前処理

スポンサーリンク
Python
ゼロ知識の初心者がデータサイエンスを完全無料で学習する方法5選
データサイエンスの知識や技術、またはPythonについて学びたい。でも「大学に行くほど本気度がない」、「スクールに行くほどお金がない」、なんせ「時間がない」という方も多いはずです。というよりほとんどの方がそうだと思います(当然わたし...
初心者に人気のプログラミング言語Pythonは独学可能か?
Pythonは非常に人気のあるプログラミング言語で、まったくの初心者でも独学が可能と言われています。 Pythonはさまざまな目的に使える、汎用性のあるプログラミング言語です。 プログラミングは「独学が難しい」と言われていま...

機械学習を行う前にする処置を前処理といいます。前処理は機械学習を正確にするための大切な処理です。詳細は省きますが、数値データは対処した方が正確な予測モデルができることが多いのも事実です。今回は、数値データの舞処理として、正規化と標準化の方法をコードをもとに解説していきます。理屈は後回しにして、コードのコピペできるように解説していきます。

Pythonの環境設定はAnacondaをインストールし、Jupyter Labを使っています。以下の過去記事を参照して下さい。

【2021年最新】M1 mac でanacondaをインストールする方法

【2021年最新】WindowsでAnacondaをインストールする方法

必要なライブラリをインポート

import seaborn as sns
import warnings
warnings.filterwarnings('ignore')

今回はseabornのタイタニックのデータセットを使います。

データセットを読み込む

df = sns.load_dataset("titanic")
df

出力:

今回は、変数「fare」を使って正規化、標準化するコードをみてみましょう。

df_fare = df[["fare"]]

print(df_fare.describe())
df_fare.head(10)

出力:

平均値は32.2、最大値は512.3、最小値は0.00であることが確認できます。では、これを最大値1、最小値0に正規化してみましょう。

正規化

from sklearn.preprocessing import MinMaxScaler
minimax = MinMaxScaler()
df_fare["fare_minimax"] = minimax.fit_transform(df_fare)

正規化を「minimax」とし、それを、「fit_transform」で、正規化を「df_fare」に適応させました。
もとの「fare」と一緒に、その結果をみてみましょう。

print(df_fare.describe())
df_fare.head(10)

出力:

正規化された「fare_minimax」の最小値(min)が0.00、最大値(max)が1.00となりました。うまく正規化できましたね。

では次に標準化をしてみましょう。

標準化

from sklearn.preprocessing import StandardScaler
std = StandardScaler()
df_fare["std"] = pd.DataFrame(std.fit_transform(df_fare[["fare"]]))

今回は、正規化されたデータがあるため、データフレームで標準化しました。なので、dp.DataFrame() を追加しています。

では、標準化の結果を確認してみましょう。

print(df_fare.describe())
df_fare.head(10)

出力:

標準化した変数である「std」の平均値(mean)が-4.37e-17であり、限りなく0に近くなっています。標準偏差(std)が1.00+00と限りなく1に近くなっています。うまく標準化できました。

この前処理は機械学習の精度向上に必要なので、ぜひともコードをコピーして自身でも試してみて下さい。

【Python初心者】カテゴリ変数をダミー変数に置き変える方法|機械学習に必要な前処理

【Python初心者】特徴量エンジニアリング|連続変数を分割、カテゴリ変数に変更する

【超基礎編】データをpythonのpanndasで分析する(データの前処理)

コメント

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