机器学习-数据预处理
归一化
StandardScaler
如果非标准正态分布X~N(μ,σ^2),那么关于X的一个一次函数 (X-μ)/σ ,就一定是服从标准正态分布N(0,1)。
举个具体的例子,一个量X,是非标准正态分布,期望是10,方差是5^2(即X~N(10,5^2));
那么对于X的线性函数Y=(X-10)/5,Y就是服从标准正态分布的Y~N(0,1)。
from sklearn.preprocessing import StandardScaler import numpy as np import matplotlib.pyplot as plt def test_algorithm(): np.random.seed(0) data = np.random.normal(5,5,size=(1000,1)) scaler = StandardScaler() scaler.fit(data) trans_data = scaler.transform(data) trans_data1 = data - np.mean(data, axis=0) trans_data1 = trans_data1 / np.std(data, axis=0) fig, ax = plt.subplots(1, 3, figsize=(18, 5), sharey=False) ax[0].set_title('origin data'),ax[0].hist(data) ax[1].set_title('use sklearn'),ax[1].hist(trans_data) ax[2].set_title('by self'),ax[2].hist(trans_data1) plt.show() if __name__ == '__main__': test_algorithm()


浙公网安备 33010602011771号