特征预处理(归一化+标准化)API
sklearn库下的preprocessing
sklearn.preprocessing
一、归一化
- 归一化的原因:使得各特征单位不再收到单位或本身差异大小的影响,使得各单位具有相等的地位
- 归一化的定义:通过对原始数据进行变化把数据映射到指定的区间中
- 归一化的公式:百度百科
- 归一化API
sklearn.preprocessing.MinMaxScaler(feature_range=(0,1),.....)
– MinMaxScaler.fit_transform(X) X:numpy array格式的数据[n_samples,n_features] 返回值:转换后形状相同的array
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
def minmax_demo():
"""
归一化
:return:
"""
data = pd.read_csv("data.txt")
print("data:\n",data)
"在pandas中取出非目标的列,一定要注意这里的操作"
data = data.iloc[:,:3]
"可以指定到具体区间范围内如本演示就是将范围固定在了2到3"
transfer = MinMaxScaler(feature_range=[2,3])
data_new = transfer.fit_transform(data)
print("data_new:\n",data_new)
return
if __name__ == '__main__':
minmax_demo()
二、标准化(推荐)
- 标准化的原因:将原始数据变换到均值为0,方差为1的范围内
- 标准化的公式:X’ = (x-mean) / DX
- 标准化API
sklearn.preprocessing.StandarScaler()
– StandarScaler.fit_transform(X) X:numpy array格式的数据[n_samples,n_features] 返回值:转换后形状相同的array
def stand_demo():
"""
标准化
:return:
"""
data = pd.read_csv("data.txt")
print("data:\n", data)
"在pandas中取出非目标的列,一定要注意这里的操作"
data = data.iloc[:, :3]
"可以指定到具体区间范围内如本演示就是将范围固定在了2到3"
transfer = MinMaxScaler(feature_range=[2, 3])
data_new = transfer.fit_transform(data)
print("data_new:\n", data_new)
return
if __name__ == '__main__':
stand_demo()
|