数据预处理
通过一些转换函数将特征工程数据转换成更加适合算法模型的特征数据过程。
包含内容
数值型数据的无量纲化:
- 归一化
- 标准化
注:
- 量纲和单位的区别,长度,时间,质量等都叫做量纲,而米,千米,秒,分钟,等都是单位,国际单位制规定了七个基本量纲单位。
- 无量纲化,也称为数据的规范化,是指不同指标之间由于存在量纲不同致其不具可比性,故首先需将指标进行无量纲化,消除量纲影响后再进行接下来的分析。
特征预处理API
sklearn.preprocessing
归一化
定义
通过对原始数据进行变换吧数据映射到(默认为[0,1])之间
公式
API
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
#1、获取数据
data = pd. read_csv("dating. txt")
data = data. iloc[:, :3]
print("data:\n", data)
# 2、实例化一个转换器类
transfer = MinMaxScaler(feature_range=[2,3])
# 3.调用fit_ _transform
data_new = transfer. fit_transform( data)
print ("data_ new:\n", data_new)
总结
- 最大值和最小值是变化的。
- 最大纸盒最小值容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确数据场景。
【鲁棒性详情点链接】
标准化
定义
通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内
公式
![](https://i-blog.csdnimg.cn/blog_migrate/518add1cfb95458bbcea29f66198f6b0.png)
标准差:集中程度。
- 对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变。
- 对于标准化来说:如果出现异常点,由于具有一-定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小。
API
sklearn.preprocessing.StandardScaler()
- 处理之后,对每列来说,所有数据都聚集在均值为0附近,标准差为1
- StandardScaler.fit transform(X)
- X:numpy array格式的数据[n_ samples,n_ features]
- 返回值:转换后的形状相同的array
import pandas as pd
from sklearn.preprocessing import MinMaxScaler,StandardScaler
#1、获取数据
data = pd. read_csv("dating. txt")
data = data. iloc[:, :3]
print("data:\n", data)
# 2、实例化一个转换器类
transfer = StandardScaler()
# 3.调用fit_ _transform
data_new = transfer. fit_transform( data)
print ("data_ new:\n", data_new)
- 导入StandardScaler。
- 使用StandardScaler转化器,不需要feature_range标签。
总结
在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。