【机器学习】归一化特征值的处理
更新:HHH   时间:2023-1-7


# -*- coding:utf-8 -*-
__author__ = 'Ghostviper'
"""
归一化特征值
"""
from numpy import *
def autoNorm(dataSet):
    minVals = dataSet.min(0)
    maxVals = dataSet.max(0)
    ranges = maxVals - minVals
    normDataSet = zeros(shape(dataSet))
    m = dataSet.shape[0]
    normDataSet = dataSet - tile(minVals, (m, 1))
    normDataSet = normDataSet / tile(ranges, (m, 1))
    return normDataSet, ranges, minVals
if __name__ == "__main__":
    dataSet = array([
        [0.1, 12345, 23],
        [-1.2, 456431, 46],
        [0.99, 23332, 89],
        [1.3, 97653, 123],
        [2, 10900, 23],
        [1, 54612, 9],
    ])
    normDataSet, ranges, minVals = autoNorm(dataSet)

输出结果:

array([[ 0.40625   ,  0.00324332,  0.12280702],
       [ 0.        ,  1.        ,  0.3245614 ],
       [ 0.684375  ,  0.02790378,  0.70175439],
       [ 0.78125   ,  0.19471821,  1.        ],
       [ 1.        ,  0.        ,  0.12280702],
       [ 0.6875    ,  0.09811214,  0.        ]])
array([  3.20000000e+00,   4.45531000e+05,   1.14000000e+02])
array([ -1.20000000e+00,   1.09000000e+04,   9.00000000e+00])

算法核心:(数据集 - 最小特征数据集)/ (最大特征-最小特征)数据集

用途:用于处理不同组特征数据差异较大的情况

返回开发技术教程...