【问题标题】:Get integer prediction for regressor models with sklearn使用 sklearn 获取回归模型的整数预测
【发布时间】:2021-12-29 09:09:41
【问题描述】:

我正在使用 sklearn 回归模型来预测每天的销售额。但是,我希望输出是一个整数(因为我不能卖一半的产品)所以我试图将预测输出作为一个整数,但我找不到方法。

我知道我可以将浮点数转换为整数,但我的问题是关于调整模型以生成整数预测的可能性(因为输入也是整数)。

from sklearn.neighbors import KNeighborsRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import BayesianRidge

model_trained = model.fit(x_train, y_train)
y_est = model_trained.predict(x_test)

print(x_test) --> [645 198 546 619 748]

print(y_est) --> [486.84247399 352.79511474 545.31309247 499.17395514 723.32887889]

【问题讨论】:

  • 除了黑客之外(就像下面的答案中描述的那样),没有这种可能性;回归的数学和统计仅适用于实数(浮点数)。您应该在最后进行四舍五入作为后处理阶段。

标签: python machine-learning scikit-learn regression forecasting


【解决方案1】:

预测方法的返回值是float 类型。您必须重写回归模型才能更改 predict 方法的实现。

第215行有KNeighborsRegressor的方法的实现:

sklearn KNeighborsRegressor implementation

您可以尝试将第 240 行的 dtype 参数更改为 np.intc,而不是 np.float64。以下是可接受的数据类型列表:

numpy data types

我个人认为将floats的列表转换为ints的列表会更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-07
    • 2019-01-10
    • 2018-11-23
    • 2018-08-18
    • 2015-06-19
    • 1970-01-01
    • 2020-04-28
    • 2018-04-05
    相关资源
    最近更新 更多