特征预处理–归一化
因为在进行特征之间的处理时,某些特征之间转化成机器学习所需要的数据后它的值差别很大,而它对特征的影响缺比较小,这个时候就需要对此类数据进行预处理。这里介绍第一种方法—归一化。
公式:
x’=(x-min)/(max-min)
x’‘=x’×(mx-mi)+mi
一般默认mx为1,mi为0 [mi,mx]为放缩区间
例如有特征[90,75,60]
则90对应的归一化数据为:(90-60)÷(90-60)=1 x‘’=1
60对应的归一化数据:(60-60)÷(90-60)=0 x’'=0
API:sklearn.preprocessing.MinMaxScaler(feature_rang(0,1))
MinMaxScaler.fit_transform(x)
:x为numpy_array格式数据,即二维矩阵,返回相同形状的数组
下面给出一个具体的实例。
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
# 1.读取文本文件,使用pandas内置的read_csv(路径)的方法即可
data = pd.read_csv("dating.txt")
data = data.iloc[:, :3]
# 2.实例化一个转换器对象
transfer = MinMaxScaler()
# 3.执行fit_transform
data_new = transfer.fit_transform(data)
print(data_new)
这里的dating里面存放的数据字段如下:milage,Liters,Consumtime,target
milage:表示每年飞行的里程数
Liters:表示每周消费的冰淇淋公升数
Consumtime:玩游戏消耗时间占的百分比
traget表示女性是否喜欢这个人。
运行结果如下:
对应的数据分享在网盘内:
链接:https://pan.baidu.com/s/1qVANgEXqHgZXrpx8s6YV2A?pwd=0000
提取码:0000