问题描述
在使用 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'
后,就可以正常调用了。需要注意的是,这里只提供了一种取值,实际应用中应根据需要自行选择。
此文章发布者为:Python技术站作者[metahuber],转载请注明出处:https://pythonjishu.com/scikit-learn-error-53/