@@ -169,6 +169,8 @@ def mean_absolute_error(y_true, y_pred,
169
169
elif multioutput == 'uniform_average' :
170
170
# pass None as weights to np.average: uniform mean
171
171
multioutput = None
172
+ else :
173
+ raise ValueError ("Unknown multioutput type: %s" % multioutput )
172
174
173
175
return np .average (output_errors , weights = multioutput )
174
176
@@ -237,6 +239,8 @@ def mean_squared_error(y_true, y_pred,
237
239
elif multioutput == 'uniform_average' :
238
240
# pass None as weights to np.average: uniform mean
239
241
multioutput = None
242
+ else :
243
+ raise ValueError ("Unknown multioutput type: %s" % multioutput )
240
244
241
245
return np .average (output_errors , weights = multioutput )
242
246
@@ -352,14 +356,17 @@ def explained_variance_score(y_true, y_pred,
352
356
output_scores [valid_score ] = 1 - (numerator [valid_score ] /
353
357
denominator [valid_score ])
354
358
output_scores [nonzero_numerator & ~ nonzero_denominator ] = 0.
355
- if multioutput == 'raw_values' :
356
- # return scores individually
357
- return output_scores
358
- elif multioutput == 'uniform_average' :
359
- # passing to np.average() None as weights results is uniform mean
360
- avg_weights = None
361
- elif multioutput == 'variance_weighted' :
362
- avg_weights = denominator
359
+ if isinstance (multioutput , string_types ):
360
+ if multioutput == 'raw_values' :
361
+ # return scores individually
362
+ return output_scores
363
+ elif multioutput == 'uniform_average' :
364
+ # passing to np.average() None as weights results is uniform mean
365
+ avg_weights = None
366
+ elif multioutput == 'variance_weighted' :
367
+ avg_weights = denominator
368
+ else :
369
+ raise ValueError ("Unknown multioutput type: %s" % multioutput )
363
370
else :
364
371
avg_weights = multioutput
365
372
@@ -394,7 +401,7 @@ def r2_score(y_true, y_pred,
394
401
Defines aggregating of multiple output scores.
395
402
Array-like value defines weights used to average scores.
396
403
Default value correponds to 'variance_weighted', this behaviour is
397
- deprecated since version 0.17 and will be changed to 'uniform_average'
404
+ deprecated since version 0.17 and will be changed to 'uniform_average'
398
405
starting from 0.19.
399
406
400
407
'raw_values' :
@@ -483,6 +490,8 @@ def r2_score(y_true, y_pred,
483
490
return 1.0
484
491
else :
485
492
return 0.0
493
+ else :
494
+ raise ValueError ("Unknown multioutput type: %s" % multioutput )
486
495
else :
487
496
avg_weights = multioutput
488
497
0 commit comments