一.特征标准化
1.1特征标准化:
标准化是指把数据缩放到拥有零均值(均值为0)和单位方差(方差为1)的过程。可以手动标准化我们的数据:每个数据点减去所有数据的平均值 (μ) , 然后除以数据的方差(σ) 。即对于每个特征值,计算(x - μ) / σ 。
1.2scikit-learn代码实现
使用preprocessing模块的scale()函数实现。
1.3验证
一个实现了标准化后的特征矩阵应该每行的均值等于(或接近于),每一行的方差都为1。可以查看矩阵的mean属性和std属性进行验证。
# -*- coding:utf-8 -*-
from sklearn import preprocessing
import numpy as np
X = np.array(
[[1., -2., 2.], [3., 0., 0.], [0., 1., -1]]
) # 创建一个三行三列的二维数组
x_scaled = preprocessing.scale(X)
print(x_scaled)
"""
输出结果:
[[-0.26726124 -1.33630621 1.33630621]
[ 1.33630621 0.26726124 -0.26726124]
[-1.06904497 1.06904497 -1.06904497]]
"""
# 方差验证
print(x_scaled.mean(axis=0)) # [7.40148683e-17 0.00000000e+00 0.00000000e+00]
print(x_scaled.std()) # 1.0
二.特征归一化
归一化是缩放单个样本以使它们拥有单位范数的过程。在scikit-learn中,数据可以使用norma