特征预处理 - 归一化 & 标准化
特征处理是什么
通过特定的统计方法(数学方法)将数据转换成算法要求的数据.
sklearn.preprosessing
- 数值型数据: 标准缩放:
- 归一化
- 标准化
- 缺失值
- 类别型数据:one-hot 编码
- 时间类型: 时间的切分
归一化
使得某一个特征不会对最终的结果造成更大的影响
sklearn.preprosessing.MinMaxScaler
归一化总结
注意在特定场景下最大值最小值是变化的,另外最大值与最小值非常容易受异常点的影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景.
归一化代码
# 归一化
from sklearn.preprocessing import MinMaxScaler
def mm():
"""
归一化处理 :return:None
"""
mm = MinMaxScaler(feature_range=(0,1))
data = mm.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,16,460]])
print(data)
return None
if __name__ == "__main__":
mm()
运行结果
[[1. 0. 0. 0. ]
[0. 1. 0.83333333 0.01190476]
[0.5 0.5 1. 1. ]]
归一化视频
<video style="width:100%;height:100%;" src="http://pg7op1zfx.bkt.clouddn.com/01_%E7%89%B9%E5%BE%81%E5%B7%A5%E7%A8%8B%E4%B9%8B%E7%89%B9%E5%BE%81%E9%A2%84%E5%A4%84%E7%90%86-%E5%BD%92%E4%B8%80%E5%8C%96.mp4" controls="controls">
标准化
1.特点:通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内(也就是说结果的均值为0,标准差为1的范围内!!)
代码
# 标准化
from sklearn.preprocessing import StandardScaler
def stand():
"""
标准化缩放 :return:None
"""
std = StandardScaler()
data = std.fit_transform([[90,2,10,40],[60,4,15,45],[75,3,16,460]])
print(data)
return None
if __name__ == "__main__":
stand()
运行结果
[[ 1.22474487 -1.22474487 -1.3970014 -0.71977059]
[-1.22474487 1.22474487 0.50800051 -0.69436692]
[ 0. 0. 0.88900089 1.41413751]]
运行结果对比
[[1. 0. 0. 0. ]
[0. 1. 0.83333333 0.01190476]
[0.5 0.5 1. 1. ]]
[[ 1.22474487 -1.22474487 -1.3970014 -0.71977059]
[-1.22474487 1.22474487 0.50800051 -0.69436692]
[ 0. 0. 0.88900089 1.41413751]]
本章总结
知识点: 方差, 标准差
拿小本本记下来了.
渐渐熟悉了 python 的语法呢 :sunglasses:
标准化视频
<video style="width:100%;height:100%;" src="http://pg7op1zfx.bkt.clouddn.com/02_%E7%89%B9%E5%BE%81%E5%B7%A5%E7%A8%8B%E4%B9%8B%E5%BD%92%E4%B8%80%E5%8C%96%E4%BB%A5%E5%8F%8A%E6%A0%87%E5%87%86%E5%8C%96%E5%AF%B9%E6%AF%94.mp4" controls="controls">
评论已关闭