Как я понимаю, multioutput=[0.3, 0.7]
- это weights
для выходного массива.
Сначала поговорим о raw_values
>>> mean_absolute_error(y_true, y_pred, multioutput='raw_values')
array([0.5, 1. ])
array([0.5, 1. ])
- это исходное значениеmean_absolute_error()
. Поэтому, если вы введете еще один weight
, он будет вычислять среднее значение на основе того, что вы ввели multioutput
.
Если вы не дадите никакого значения, по умолчанию будет [1,1]
.
>>> mean_absolute_error(y_true, y_pred) # (0.5*1 + 1*1)/(1+1) = 0.75
0.75
ОК, теперь, если вы дадите ему другие значения, например [0.3, 0.7]
.
>>> # (0.5*0.3+1*0.7)/(0.3+0.7) = 0.85
>>>mean_absolute_error(y_true, y_pred, multioutput=[0.3, 0.7])
0.85
Примечание: В зависимости от количества измеренийy_true
, y_pred
, вы должны ввести длину совпадения с multioutput
. Пример y_pred = [[0, 2], [-1, 2], [8, -5]]
- это матрица 2-D
, она выдаст вам 2 значения, например [0.5, 1.]
. Таким образом, вы должны указать 2 значения в качестве весов для этого вывода, например [0.3, 0.7]