一、sklearn標準化概述
sklearn的標準化是指將數據轉化為0均值、單位方差的過程,使數據滿足正態分布,有利於訓練模型。該過程可以使用sklearn.preprocessing庫中的StandardScaler類實現。下面我們對這個類進行詳細解析。
二、StandardScaler的主要參數
StandardScaler類中的主要參數有兩個,分別是with_mean和with_std。其中with_mean用來控制是否將數據集中到0均值,with_std則是控制是否將數據按照標準差單位化。
from sklearn.preprocessing import StandardScaler
# 僅將數據集中到0均值
scaler1 = StandardScaler(with_mean=True, with_std=False)
# 將數據標準化,即將數據集中到0均值,然後按照標準差單位化
scaler2 = StandardScaler(with_mean=True, with_std=True)
三、數據處理流程
在使用StandardScaler對數據進行標準化時,應該了解到其標準化的處理流程。一般情況下,標準化的數據處理流程包括三個步驟:
1、準備原始數據
在使用StandardScaler對數據進行標準化時,首先需要準備原始數據。如下代碼所示,構造一個包含6條樣本和3個特徵的數據集:
import numpy as np
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
2、對原始數據進行標準化處理
使用StandardScaler對數據進行標準化處理,轉化成符合正態分布的數據,下面代碼實現對數據的標準化:
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
3、獲取標準差和均值
最後,可以通過StandardScaler獲取處理後的均值和標準差:
mean = scaler.mean_
std = scaler.scale_
四、使用StandardScaler標準化實例
下面是StandardScaler標準化實例,首先進行導包操作,使用make_blobs函數生成隨機數據集:
import numpy as np
from sklearn.datasets import make_blobs
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
X, y = make_blobs(n_samples=1000, centers=2, random_state=42)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.title("Original Data")
plt.show()
plt.scatter(X_scaled[:, 0], X_scaled[:, 1], c=y)
plt.title("Scaled Data")
plt.show()
五、試驗結果分析
從實驗結果來看,數據標準化後,數據集中在(0, 0)周圍,呈現出正態分布的形態,相比於原始數據更利於模型的訓練和提高模型的精度。
總結
本篇文章主要對sklearn標準化的原理、StandardScaler類的主要參數、數據處理流程以及使用StandardScaler標準化實例進行了詳細闡述,並且給出了實驗結果分析。通過對本文的闡述,相信讀者對sklearn標準化有了更加深入的理解,能夠在實際應用中更好地運用其功能。
原創文章,作者:UNLR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145455.html