【问题标题】:How to solve DataConversion Warning with MinMax normalization如何使用 MinMax 归一化解决 DataConversion 警告
【发布时间】:2017-04-21 17:00:14
【问题描述】:

谁能告诉我如何删除以下警告?我想通过 min-max 归一化技术对一组整数值进行归一化,但我收到此警告并且不知道如何解决? (X 是一列从 0 到 127 的整数值)

代码如下:

X = df.iloc[:,0]
mms = MinMaxScaler()
a=X.reshape(-1, 1)
b=mms.fit_transform(a)
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "distributions")))
ax=sns.distplot(b);
ax.set(xlabel='frequency', ylabel='Probability')
plt.show()

这是警告:

DataConversionWarning: Data with input dtype int64 was converted to float64 by MinMaxScaler. warnings.warn(msg, DataConversionWarning)

【问题讨论】:

  • 如果你想缩放整数,你无能为力。要么你接受这个自动转换,要么自己提前做(读入时,或者使用 array.astype())。后者将不会有任何警告,但会导致相同的行为。
  • @sascha 你能用array.astype()澄清你的意思吗?我应该在哪里添加此更改?
  • 您是否考虑过使用 astype() 搜索 numpy 文档?这只是改变类型的一些调用。

标签: python scikit-learn minmax


【解决方案1】:

MinMaxScaler() 使用浮点数工作,因此它会自动将您的 np.array 类型为 np.int 转换为 np.float 并通知您。如果您不想看到此警告,请事先明确进行转换:

b = mms.fit_transform(a.astype(np.float))

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 2016-02-28
    • 1970-01-01
    • 2012-06-14
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    相关资源
    最近更新 更多