数据处理之标准化

本文介绍了在机器学习中,均值移除(标准化)的重要性,通过一个年龄数据的例子展示了如何使样本数据的均值为0,标准差为1。使用scikit-learn库的`preprocessing`模块的`scale`函数可以方便地实现这一过程。案例中展示了如何对多维样本执行均值移除,并验证了处理后数据的均值和标准差。
摘要由CSDN通过智能技术生成
均值移除(标准化)

由于一个样本的不同特征差异较大, 不利于使用现有的机器学习算法进行样本处理.均值移除可以让样本矩阵中的每一列的平均值为0, 标准差为1.

例如有一列数据表示年龄: 17  20  23
mean = (17+20+23)/3 = 20
17 - 20 = -3
20 - 20 = 0
23 - 20 = 3

如何使这组数据的标准差为1呢?

a = -3
b = 0
c = 3
s = std([a, b, c])
[a/s, b/s, c/s]

均值移除相关API:

import sklearn.preprocessing as sp
# array: 一行一样本 一列一特征
# 对array数组执行均值移除, 返回处理后的结果
A = sp.scale(array)

案例:

"""
均值移除
"""
import numpy as np
import sklearn.preprocessing as sp

samples = np.array([
		[17., 100., 4000],
		[20., 80.,  5000],
		[23., 70.,  5500]])

return_samples = sp.scale(samples)
print(return_samples)
print(np.mean(return_samples, axis=0))
print(np.std(return_samples, axis=0))
[[-1.22474487  1.33630621 -1.33630621]
 [ 0.         -0.26726124  0.26726124]
 [ 1.22474487 -1.06904497  1.06904497]]
[0.00000000e+00 2.96059473e-16 5.18104078e-16]
[1. 1. 1.]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值