最大值最小值歸一化

最大值歸一化(Maximum Normalization)和最小值歸一化(Minimum Normalization)都是在進行特徵縮放時常用的方法,它們的目標是使得特徵值落在一個較小的範圍內。

最大值歸一化:

這種方法是通過將特徵值(通常是連續變數)縮放到 [0, 1] 區間的方法。這是通過找到數據的最大值和最小值,然後將每個特徵值都縮放到 0 和 1 之間。這可以理解為標準化處理的一部分。最大值歸一化的好處是可以幫助數據在歸一化過程中更加平穩。

以下是一段使用 Python 和 Pandas 進行最大值歸一化的示例代碼:

import pandas as pd
import numpy as np

# 假設 df 是你的數據框,feature 是你想要歸一化的特徵列
df = pd.DataFrame({'feature': [5, 3, 7, 2, 9, 8]})

# 找到最大值和最小值
min_val = df['feature'].min()
max_val = df['feature'].max()

# 進行歸一化
normalized_df = df.copy()
normalized_df['feature'] = (df['feature'] - min_val) / (max_val - min_val)

最小值歸一化:

最小值歸一化與最大值歸一化相反,它將特徵值縮放到 [-1, 1] 區間。這是通過找到數據的最大值和最小值,然後將每個特徵值都縮放到這個區間。這種方法的好處是它可以幫助數據在歸一化過程中更加平穩,並且可以更好地處理缺失值。

以下是一段使用 Python 和 Pandas 進行最小值歸一化的示例代碼:

import pandas as pd
import numpy as np

# 假設 df 是你的數據框,feature 是你想要歸一化的特徵列
df = pd.DataFrame({'feature': [5, None, 7, None, 9, 8]})

# 找到最大值和最小值(包括缺失值)
min_val = df['feature'].dropna().min()
max_val = df['feature'].dropna().max()
missing_val = np.nan * (max_val - min_val)  # 假設缺失值為 NaN,需要根據實際情況調整
max_val = max(max_val, missing_val)  # 不應大於最小值的缺失值(實際情況下應該是該特徵有實際數據的情況下的最大值)
min_val = min(min_val, missing_val)  # 不應小於最小值的缺失值(實際情況下應該是該特徵有實際數據的情況下的最小值)

# 進行歸一化
normalized_df = df.copy()
normalized_df['feature'] = (df['feature'].fillna(min_val).clip(lower=min_val) - min_val) / (max_val - min_val)

請注意,這些示例代碼可能需要根據你的具體數據和需求進行調整。在進行歸一化之前,最好先對數據進行清洗和預處理,以確保數據的準確性和一致性。