机器学习之特征归一化(normalization)详解大数据

参考自斯坦福机器学习课程


一 引子

对房屋售价进行预测时,我们的特征仅有房屋面积一项,但是,在实际生活中,卧室数目也一定程度上影响了房屋售价。下面,我们有这样一组训练样本:

房屋面积(英尺) 卧室数量(间) 售价(美元)
2104 3 399900
1600 3 329900
2400 3 369000
1416 2 232000
3000 4 539900
1985 4 299900
…. ….

注意到,房屋面积及卧室数量两个特征在数值上差异巨大,如果直接将该样本送入训练,则代价函数的轮廓会是“扁长的”,在找到最优解前,梯度下降的过程不仅是曲折的,也是非常耗时的:

机器学习之特征归一化(normalization)详解大数据

二 归一化

     该问题的出现是因为我们没有同等程度的看待各个特征,即我们没有将各个特征量化到统一的区间。

     数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:

Standardization

          Standardization又称为Z-score normalization,量化后的特征将服从标准正态分布:

                             机器学习之特征归一化(normalization)详解大数据  

          其中,
u和delta
分别为对应特征

xixi
的均值和标准差。量化后的特征将分布在
[-1, 1]
区间。

Min-Max Scaling

     Min-Max Scaling又称为Min-Max normalization, 特征量化的公式为:

         机器学习之特征归一化(normalization)详解大数据

     量化后的特征将分布在[0,1][0,1]区间。

     大多数机器学习算法中,会选择Standardization来进行特征缩放,但是,Min-Max Scaling也并非会被弃置一地。在数字图像处理中,像素强度通常就会被量化到[0,1]区间,在一般的神经网络算法中,也会要求特征被量化[0,1]区间。

     进行了特征缩放以后,代价函数的轮廓会是“偏圆”的,梯度下降过程更加笔直,收敛更快性能因此也得到提升:

机器学习之特征归一化(normalization)详解大数据


三 实现

# ... 
def standardize(X): 
    """特征标准化处理 
 
    Args: 
        X: 样本集 
    Returns: 
        标准后的样本集 
    """ 
    m, n = X.shape 
    # 归一化每一个特征 
    for j in range(n): 
        features = X[:,j] 
        meanVal = features.mean(axis=0) 
        std = features.std(axis=0) 
        if std != 0: 
            X[:, j] = (features-meanVal)/std 
        else 
            X[:, j] = 0 
    return X 
 
def normalize(X): 
    """Min-Max normalization     sklearn.preprocess 的MaxMinScalar 
 
    Args: 
        X: 样本集 
    Returns: 
        归一化后的样本集 
    """ 
    m, n = X.shape 
    # 归一化每一个特征 
    for j in range(n): 
        features = X[:,j] 
        minVal = features.min(axis=0) 
        maxVal = features.max(axis=0) 
        diff = maxVal - minVal 
        if diff != 0: 
           X[:,j] = (features-minVal)/diff 
        else: 
           X[:,j] = 0 
    return X

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/9349.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论