对矩阵进行归一化处理

本文详细介绍了如何通过归一化处理来优化数据集,将特征值的取值范围转化为0到1区间内,从而减少数值过大特征对其他特征的影响。通过实例演示了如何使用numpy库进行特征值的最小值、最大值计算,以及如何应用公式完成归一化处理过程。

1.  对样本特征进行归一化处理,减少某一数值太大的特征对其他较小特征的影响

将特征值的取值范围转化为0到1区间内。

import numpy as np
# 公式:newValue = (oldValue-min)/(max)
group=np.array([ [1, 7,  3],
                 [1, 3,  1],
                 [0, 5,  8],
                 [2, 7,  3]])
minVals = group.min(0)  # 为0时:求每列的最小值[0 3 1]   .shape=(3,)
maxVals = group.max(0)  # 为0时:求每列的最大值[2 7 8]   .shape=(3,)
ranges = maxVals - minVals

m = group.shape[0]
normDataSet = np.zeros(np.shape(group))       #  np.shape(group) 返回一个和group一样大小的数组,但元素都为0
diffnormData =group - np.tile(minVals,(m,1))  #  (oldValue-min)  减去最小值
normDataSet1 =diffnormData / np.tile(ranges,(m,1))

print(minVals)          #  打印最小值 [0 3 1]
print(maxVals)         #   打印最大值 [2 7 8]
print(normDataSet1)    
# 打印归一化后的数值
"""
[[0.5        1.         0.28571429]
 [0.5        0.         0.        ]
 [0.         0.5        1.        ]
 [1.         1.         0.28571429]]
"""


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值