如何在MATLAB中为robustfit或fitlm提供自定义成本函数

时间:2018-05-13 22:17:35

标签: matlab linear-regression

如果我知道 - 试图适合模型;使用某种迭代算法,其目标是最小化成本函数(例如OLS,MSE,RMSE,MMSE)。

我知道robustfit()方法使用OLS(普通最小二乘)成本函数拟合回归模型,然后执行额外的加权回归以提供最终模型。另外,我认为fitlm()使用RMSE作为成本函数。

我的第一个问题是:在Matlab中,成本函数和权重函数是否相同。 另外,如何在让MATLAB进行拟合的同时提供我的自定义成本函数(例如MSE)?

我开始知道,robustfit()可以采取额外的/ custom weight function。但是,我很困惑,将被视为成本函数?或者我需要使用其他一些参数来提供我的自定义成本函数?

1 个答案:

答案 0 :(得分:1)

就像您说的那样,成本函数是您要最小化以找到正确的预测变量系数的函数。例如,成本函数可以是cost(a) = sqrt(mean((a).^2));a通常是y - y_est

另一方面,关于鲁棒回归的权重函数是一种对算法产生较小影响或消除意外测量的方法。如果您看一下权重函数的形状:

weight

您将看到,从零开始的残差越多,考虑的残差就越少(有时甚至被完全去除)。这是避免因异常值导致错误的方法。

该函数估计误差的方式无法自定义,只有权重函数开放。