python minmaxscaler_python – scikit-learn MinMaxScaler产生的结果与NumPy实现略有不同

我将其预处理模块中的scikit-learn Min-Max缩放器与使用NumPy的“手动”方法进行了比较.但是,我注意到结果略有不同.有没有人对此有解释?

使用以下等式进行最小 – 最大缩放:

它应与scikit-learn one相同:(X – X.min(axis = 0))/(X.max(axis = 0) – X.min(axis = 0))

我使用两种方法如下:

def numpy_minmax(X):

xmin = X.min()

return (X - xmin) / (X.max() - xmin)

def sci_minmax(X):

minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)

return minmax_scale.fit_transform(X)

在随机样本上:

import numpy as np

np.random.seed(123)

# A random 2D-array ranging from 0-100

X = np.random.rand(100,2)

X.dtype = np.float64

X *= 100

结果略有不同:

from matplotlib import pyplot as plt

sci_mm = sci_minmax(X)

numpy_mm = numpy_minmax(X)

plt.scatter(numpy_mm[:,0], numpy_mm[:,1],

color='g',

label='NumPy bottom-up',

alpha=0.5,

marker='o'

)

plt.scatter(sci_mm[:,0], sci_mm[:,1],

color='b',

label='scikit-learn',

alpha=0.5,

marker='x'

)

plt.legend()

plt.grid()

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值