机器学习入门————特征预处理
作者:互联网
2.4.1 什么是特征预处理
通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
数值型数据的无量纲化:
- 归一化
- 标准化
特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征,因此通过归一化将数据转化为相同量级
2.4.2 归一化
通过对原始数据进行变换把数据映射到 (默认为[0,1]) 之间
调用API:
sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
MinMaxScalar.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
返回值:转换后的形状相同的array
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
def minmax_demo():
"""
归一化处理
:return:None
"""
#读取数据文件
data=pd.read_csv("data.txt")
data=data.iloc[:10,:3] #只取数据的前10行和前三列
#实例化
transfer=MinMaxScaler(feature_range=(0,1)) #归一化范围为0-1
#输出
data_new=transfer.fit_transform(data)
print("归一化前结果为:\n", data)
print("归一化后结果为:\n",data_new)
总结:最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。
2.4.3 标准化
通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内
调用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 StandardScaler
def stand_demo():
"""
标准化演示
:return: None
"""
data = pd.read_csv("data.txt")
data=data.iloc[:10,:3] #只取数据的前10行和前三列
# 1、实例化一个转换器类
transfer = StandardScaler()
# 2、调用fit_transform
data_new = transfer.fit_transform(data)
print("标准化的结果:\n", data_new)
print("每一列特征的平均值:\n", transfer.mean_)
print("每一列特征的方差:\n", transfer.var_)
总结:在已有样本足够多的情况下比较稳定,适合现代嘈杂大数据场景。
标签:机器,入门,fit,数据,transfer,归一化,print,data,预处理 来源: https://blog.csdn.net/zcolaz/article/details/123590504