機器學習 - 資料縮放



資料縮放是機器學習中使用的一種預處理技術,用於規範化或標準化資料中特徵的範圍或分佈。資料縮放至關重要,因為資料中的不同特徵可能具有不同的尺度,而某些演算法可能無法很好地處理此類資料。透過縮放資料,我們可以確保每個特徵具有相似的尺度和範圍,這可以提高機器學習模型的效能。

資料縮放常用的兩種技術:

  • 規範化 - 規範化將特徵的值縮放到 0 到 1 之間。這是透過從每個值中減去特徵的最小值,然後將其除以特徵的範圍(最大值和最小值之間的差)來實現的。

  • 標準化 - 標準化將特徵的值縮放到均值為 0,標準差為 1。這是透過從每個值中減去特徵的均值,然後將其除以標準差來實現的。

示例

在 Python 中,可以使用 sklearn 模組實現資料縮放。sklearn.preprocessing 子模組提供了用於縮放資料的類。以下是在 Python 中使用 StandardScaler 類進行標準化的示例實現:

from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
import pandas as pd

# Load the iris dataset
data = load_iris()
X = data.data
y = data.target

# Create a DataFrame from the dataset
df = pd.DataFrame(X, columns=data.feature_names)
print("Before scaling:")
print(df.head())

# Scale the data using StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Create a new DataFrame from the scaled data
df_scaled = pd.DataFrame(X_scaled, columns=data.feature_names)
print("After scaling:")
print(df_scaled.head())

在這個例子中,我們載入 iris 資料集並從中建立一個 DataFrame。然後,我們使用 StandardScaler 類來縮放資料,並從縮放後的資料中建立一個新的 DataFrame。最後,我們列印 DataFrame 來檢視縮放前後資料的差異。請注意,我們使用 scaler 物件的 fit_transform() 方法來擬合和轉換資料。

輸出

執行此程式碼後,將產生以下輸出:

Before scaling:
   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0    5.1                3.5                1.4               0.2
1    4.9                3.0                1.4               0.2
2    4.7                3.2                1.3               0.2
3    4.6                3.1                1.5               0.2
4    5.0                3.6                1.4               0.2
After scaling:
   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0   -0.900681            1.019004        -1.340227           -1.315444
1   -1.143017            -0.131979       -1.340227           -1.315444
2   -1.385353            0.328414        -1.397064           -1.315444
3   -1.506521            0.098217        -1.283389           -1.315444
4   -1.021849            1.249201        -1.340227           -1.315444
廣告