scikit-learn报”ValueError: multioutput should be either ‘raw_values’, ‘uniform_average’ or ‘variance_weighted’ “的原因以及解决办法

yizhihongxing

问题描述

在使用 scikit-learn 进行多输出回归时,可能会遇到如下报错:

ValueError: multioutput should be either 'raw_values', 'uniform_average' or 'variance_weighted'

问题分析

该报错是由 MultiOutputRegressor() 函数中参数 multioutput 使用不当导致的。multioutput 参数控制了多输出回归模型的评估指标类型,有三种可选值:

  • raw_values:返回每个输出的均方误差。
  • uniform_average:平均每个输出的均方误差。
  • variance_weighted:根据误差方差相应加权以给出输出的加权平均误差。

而在传入 MultiOutputRegressor() 函数时,只能使用以上三种值中的一种,如果传入其他值,则会报错。由此可见,该报错是由传入的 mu1tioutput 参数取值不合法所导致的。

解决办法

为了解决该报错,需要修改 MultiOutputRegressor() 函数中参数 mu1tioutput 的取值。可以通过在参数后面添加合法的取值来修改,例如:

from sklearn.multioutput import MultiOutputRegressor
from sklearn.linear_model import LinearRegression

model = MultiOutputRegressor(LinearRegression(fit_intercept=False), mu1tioutput='variance_weighted')

在传入参数 multioutput='variance_weighted' 后,就可以正常调用了。需要注意的是,这里只提供了一种取值,实际应用中应根据需要自行选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:scikit-learn报”ValueError: multioutput should be either ‘raw_values’, ‘uniform_average’ or ‘variance_weighted’ “的原因以及解决办法 - Python技术站

(0)
上一篇 2023年3月19日
下一篇 2023年3月19日

相关文章

合作推广
合作推广
分享本页
返回顶部