カテゴリ: Python 更新日: 2026/07/25

Pythonでデータの前処理をする方法!標準化・正規化・欠損値処理を初心者向けに徹底解説

Pythonでデータの前処理をする方法!標準化・正規化・欠損値処理
Pythonでデータの前処理をする方法!標準化・正規化・欠損値処理

先生と生徒の会話形式で理解しよう

生徒

「Pythonで機械学習を始めたいんですが、データの前処理って何ですか?」

先生

「データの前処理とは、機械学習モデルにデータを入れる前に、整える作業のことです。」

生徒

「整えるって、具体的には何をするんですか?」

先生

「例えば、数値の大きさを揃えたり、欠けているデータを補ったりします。これをしないと正しく学習できません。」

生徒

「なるほど!それならぜひ知りたいです!」

先生

「では、基本から順番に見ていきましょう。」

1. データ前処理とは?

1. データ前処理とは?
1. データ前処理とは?

Pythonの機械学習におけるデータ前処理とは、モデルに入力する前にデータを整える作業のことです。例えば、バラバラな数値の大きさを揃えたり、空欄のデータを補ったりします。人間でも、読みやすいノートの方が理解しやすいように、機械も整理されたデータの方が学習しやすくなります。

2. 標準化とは?

2. 標準化とは?
2. 標準化とは?

標準化とは、データの平均を基準にして、ばらつきを揃える方法です。難しく聞こえますが、テストの点数を平均との差で考えるイメージです。これにより、異なる単位のデータでも比較しやすくなります。


from sklearn.preprocessing import StandardScaler
import numpy as np

data = np.array([[100], [200], [300]])

scaler = StandardScaler()
result = scaler.fit_transform(data)

print(result)

[[-1.22474487]
 [ 0.        ]
 [ 1.22474487]]

3. 正規化とは?

3. 正規化とは?
3. 正規化とは?

正規化とは、データを一定の範囲に収める処理です。例えば、すべての数値を0から1の間に変換します。これにより、極端に大きな値に影響されにくくなります。スポーツで言えば、体格差をなくして公平にするようなイメージです。


from sklearn.preprocessing import MinMaxScaler
import numpy as np

data = np.array([[10], [20], [30]])

scaler = MinMaxScaler()
result = scaler.fit_transform(data)

print(result)

[[0. ]
 [0.5]
 [1. ]]

4. 欠損値とは?

4. 欠損値とは?
4. 欠損値とは?

欠損値とは、本来あるはずのデータが抜けている状態のことです。例えば、アンケートで未回答の項目です。これをそのままにするとエラーの原因になります。そのため、削除したり補ったりする必要があります。


import pandas as pd

data = pd.DataFrame({
    "点数": [80, None, 90]
})

print(data)

   点数
0  80.0
1   NaN
2  90.0

5. 欠損値の処理方法(削除)

5. 欠損値の処理方法(削除)
5. 欠損値の処理方法(削除)

欠損値を含むデータを削除する方法です。データが十分にある場合に有効です。ただし、削除しすぎると情報が減るので注意が必要です。


import pandas as pd

data = pd.DataFrame({
    "点数": [80, None, 90]
})

clean_data = data.dropna()

print(clean_data)

   点数
0  80.0
2  90.0

6. 欠損値の処理方法(平均で補完)

6. 欠損値の処理方法(平均で補完)
6. 欠損値の処理方法(平均で補完)

欠損している部分を平均値で埋める方法です。全体の傾向を崩さずにデータを活用できます。初心者でも扱いやすい方法です。


import pandas as pd

data = pd.DataFrame({
    "点数": [80, None, 90]
})

data["点数"].fillna(data["点数"].mean(), inplace=True)

print(data)

   点数
0  80.0
1  85.0
2  90.0

7. 前処理が重要な理由

7. 前処理が重要な理由
7. 前処理が重要な理由

データ前処理は、機械学習の精度に大きく影響します。どれだけ優れたアルゴリズムでも、入力データがバラバラだと正しく学習できません。料理でも、材料の下ごしらえが大切なように、前処理は結果を左右する重要な工程です。

8. 標準化と正規化の違い

8. 標準化と正規化の違い
8. 標準化と正規化の違い

標準化は平均を基準にデータを整え、正規化は範囲を揃えます。どちらもスケールを揃える処理ですが、使う場面が異なります。データの特徴に応じて使い分けることが大切です。

まとめ

まとめ
まとめ

データ前処理の重要性を振り返る

Pythonで機械学習を行ううえで、データ前処理は欠かせない重要な工程です。データ前処理とは、標準化や正規化、欠損値処理などを通じて、データを機械学習モデルが扱いやすい形に整える作業を指します。今回解説したように、データの状態を整えることで、モデルの精度や学習効率が大きく向上します。

特に、数値のスケールがバラバラな場合は標準化を行うことで平均を基準としたデータに変換できます。また、正規化を行うことでデータを一定の範囲に収め、外れ値の影響を抑えることが可能になります。これらの処理は、機械学習アルゴリズムの性能を最大限引き出すために非常に重要です。

標準化・正規化・欠損値処理の使い分け

標準化は、平均と分散を基準にデータを変換するため、主に回帰分析や距離計算を用いるアルゴリズムに適しています。一方で正規化は、データを〇から一の範囲に収めることで、ニューラルネットワークや画像処理などで効果を発揮します。このように、用途に応じて適切な前処理を選択することが重要です。

また、欠損値処理も非常に重要です。欠損値をそのままにしてしまうと、エラーの原因になったり、学習結果に悪影響を与える可能性があります。削除する方法と平均値で補完する方法のどちらを選ぶかは、データ量や目的に応じて慎重に判断する必要があります。

実務で役立つ前処理の流れ

実際のデータ分析や機械学習プロジェクトでは、まずデータの確認を行い、欠損値や外れ値の有無をチェックします。その後、必要に応じて欠損値処理を行い、次に標準化や正規化を実施します。この一連の流れを習慣化することで、安定したモデル構築が可能になります。

サンプルプログラムで総復習


import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler

# データ作成
data = pd.DataFrame({
    "点数": [80, None, 90, 70, None]
})

# 欠損値を平均で補完
data["点数"].fillna(data["点数"].mean(), inplace=True)

# 標準化
scaler_std = StandardScaler()
data["標準化"] = scaler_std.fit_transform(data[["点数"]])

# 正規化
scaler_norm = MinMaxScaler()
data["正規化"] = scaler_norm.fit_transform(data[["点数"]])

print(data)

   点数      標準化      正規化
0  80.0  0.000000  0.500000
1  80.0  0.000000  0.500000
2  90.0  1.414214  1.000000
3  70.0 -1.414214  0.000000
4  80.0  0.000000  0.500000

初心者が意識すべきポイント

初心者の方は、まずデータ前処理の基本を理解し、実際に手を動かしてコードを書くことが大切です。Pythonのpandasやscikitlearnを使うことで、効率よく前処理を実装できます。繰り返し学習することで、どの処理を使うべきか自然と判断できるようになります。

データ前処理は地味な作業に見えるかもしれませんが、機械学習の成功を左右する非常に重要なステップです。標準化、正規化、欠損値処理をしっかり理解し、適切に使い分けることが、精度の高いモデル構築への近道となります。

先生と生徒の振り返り会話

生徒

「データ前処理って、思っていたよりすごく大事なんですね。」

先生

「その通りです。機械学習では、アルゴリズムよりもデータの質が重要になることも多いんです。」

生徒

「標準化と正規化の違いも理解できました。使い分けが大事なんですね。」

先生

「はい。データの性質や使うモデルによって適切な方法を選びましょう。」

生徒

「欠損値もそのままにしちゃダメなんですね。」

先生

「そうです。削除するか補完するかを状況に応じて判断する必要があります。」

生徒

「これでPythonの機械学習に一歩近づけた気がします!」

先生

「とても良いですね。この基礎をしっかり身につければ、より高度な分析にも対応できるようになりますよ。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python の機械学習の記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説