一、基本知识
1、标准化含义
Standardization of datasets is a common requirement for many machine learning estimators implemented in scikit-learn; they might behave badly if the individual features do not more or less look like standard normally distributed data: Gaussian with zero mean and unit variance. —来自官网
标准化是常用的机器学习特征处理的方法,它可以将一列数据的平均值变为0,方差变为1 。但是不改变原来的数据结构分布,只是将数值进行了缩放。使得所有特征在同一量纲下进行数据处理,避免有些特征整体偏大对整体处理造成偏差。
2、正则化/归一化(Normalization)含义
Normalization is the process of scaling individual samples to have unit norm. This process can be useful if you plan to use a quadratic form such as the dot-product or any other kernel to quantify the similarity of any pair of samples. ——scikit-learn.org
正则化针对的是每行,或者说每个样本的不同特征。一般计算样本之间距离时使用其做归一化处理,比如聚类,K近邻、文本分类
规则为l2的归一化公式如下:
3、标准化与归一化的区别
简单来说,标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。
4、缩放分类
import numpy as np
X = np.array([[1, 2], [4, 5], [7, 8]])
print(X)
# print (np.mean(X, axis=0, keepdims=True))#按列就平均值
# print (np.mean(X, axis=1, keepdims=True))#按行就平均值
print (np.mean(X