特征预处理(归一化+标准化)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:
    """
    # 1、获取数据
    data = pd.read_csv("data.txt")
    print("data:\n",data)
    "在pandas中取出非目标的列,一定要注意这里的操作"
    data = data.iloc[:,:3]
    # 2、实例化一个转换器
    "可以指定到具体区间范围内如本演示就是将范围固定在了2到3"
    transfer = MinMaxScaler(feature_range=[2,3])
    # 3、调用fit_transform
    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()
#处理之后,对每列来说,所有数据都聚集在均值0附近,标准差为1

– StandarScaler.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
返回值:转换后形状相同的array

  • 实例如下
# 标准化
def stand_demo():
    """
        标准化
        :return:
        """
    # 1、获取数据
    data = pd.read_csv("data.txt")
    print("data:\n", data)
    "在pandas中取出非目标的列,一定要注意这里的操作"
    data = data.iloc[:, :3]
    # 2、实例化一个转换器
    "可以指定到具体区间范围内如本演示就是将范围固定在了2到3"
    transfer = MinMaxScaler(feature_range=[2, 3])
    # 3、调用fit_transform
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new)
    return
    
if __name__ == '__main__':
    stand_demo()
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐