【问题标题】:Handle unseen values when Encoding / Transforming with sklearn使用 sklearn 进行编码/转换时处理看不见的值
【发布时间】:2020-09-06 18:18:47
【问题描述】:

如果有一个超出标准归一化范围的新值,编码器/转换器会做什么?

因为生产数据中可能会出现新值。

例如min-max-scaler

【问题讨论】:

  • 为什么要以口头和理论的方式提出这样的问题,而不是拼凑一个简单的minimal reproducible example 自己看看,然后在此处发布您可能提出的任何具体问题有结果吗?

标签: machine-learning scikit-learn


【解决方案1】:

每个编码器/转换器以不同的方式处理看不见的值/超出训练数据范围的值。

特别是对于MinMaxScaler,它将给出 (0, 1) 范围之外的值。

文档示例:

>>> from sklearn.preprocessing import MinMaxScaler
>>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
>>> scaler = MinMaxScaler()
>>> print(scaler.fit(data))
MinMaxScaler()
>>> print(scaler.data_max_)
[ 1. 18.]
>>> print(scaler.transform(data))
[[0.   0.  ]
 [0.25 0.25]
 [0.5  0.5 ]
 [1.   1.  ]]
>>> print(scaler.transform([[2, 2]]))
[[1.5 0. ]]

您可以看到2 超出了第一个特征的范围,因此它会缩放超出范围的多少(从训练数据中学习)并为您提供适当的值。

请参阅here 以了解有关不同预处理技术的更多信息。

【讨论】:

    猜你喜欢
    • 2023-01-03
    • 2017-10-26
    • 2021-07-03
    • 1970-01-01
    • 2015-03-26
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    相关资源
    最近更新 更多