python sklearn 中数据处理 归一化函数 — MinMaxScaler()

MinMaxScaler()函数在sklearn包中

MinMaxScaler()函数原型为:

sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)
其中:

feature_range:为元组类型,范围某认为:[0,1],也可以取其他范围值。

copy:为拷贝属性,默认为True,表示对原数据组拷贝操作,这样变换后元数组不变,False表 示变换操作后,原数组也跟随变化,相当于c++中的引用或指针。copy = 1 的效果 同 copy = True,copy = 0 的效果同 copy =False

函数表示的数学原型为:
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min

#注意:上面的函数时对数组的每一列进行处理的,处理之前的数据类型为
numpy.array 或者 list(列表类型)。注意!:如果是numpy 类型,数据类型要设置成np.float64 或者 np.float32 的形式,如果是np.int 的形式会出现warning 的提醒。
如果是np.float64 ,MinMaxScaler() 函数处理之后是 数据类型是 np.float64;
如果是np.float32 ,MinMaxScaler() 函数处理之后是 数据类型是 np.float32;
如果是list ,MinMaxScaler() 函数处理之后是 数据类型是 np.float64;

处理之后是在设置范围feautre_range = (min, max) 中 min - max 这个范围内的数,并且数据的形状和原数据保持一致,处理之后的数据类型为np.float64。其中 min , max分别 默认为 0 , 1
下面是举例:

from sklearn import preprocessing
import numpy as np
x = np.array(
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据归一化是将原始数据按照一定的比例缩放到某个特定的区间内的过程。在Python,有多种方法可以进行数据归一化处理。 一种常见的方法是使用sklearn的preprocessing模块,其包含了各种常用的数据预处理方法,包括标准化处理(StandardScaler)和小数标准化(MinMaxScaler)等。标准化处理是通过对原始数据进行线性变换,使其均值为0,方差为1,从而将数据映射到标准正态分布上。而小数标准化是通过对原始数据进行线性变换,将其映射到[0,1]区间上。以下是使用这两种方法进行数据归一化的示例代码: 标准化处理: ``` from sklearn import preprocessing scaler = preprocessing.StandardScaler() data['Fare'] = scaler.fit_transform(data['Fare'].values.reshape(-1,1)) ``` 小数标准化: ``` from sklearn import preprocessing scaler = preprocessing.MinMaxScaler() data['Fare'] = scaler.fit_transform(data['Fare'].values.reshape(-1,1)) ``` 除了sklearn库,还可以使用其他方法进行数据归一化处理,比如使用自定义函数。下面是一个将数据进行小数标准化的自定义函数的示例代码: ``` def MinMaxScale(data): return (data - data.min()) / (data.max() - data.min()) data['Fare'] = MinMaxScale(data['Fare']) ``` 另外还有一种常见的数据归一化方法是小数定标标准化,该方法通过移动数据的小数点位置来缩放特征值,使其落在一个较小的范围内。以下是使用小数定标标准化对数据进行归一化处理的示例代码: ``` def Decimal_Scale(data): return data / 10**(np.log10(data.abs().max())) data['Fare'] = Decimal_Scale(data['Fare']) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值