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

如何在MATLAB中为robustfit或fitlm提供自定义代价函数,matlab,linear-regression,Matlab,Linear Regression,如果我知道正确的话——为了尝试适合一个模型;当目标是最小化成本函数(例如OLS、MSE、RMSE、MMSE)时,使用某种迭代算法 我知道robustfit()方法使用OLS(普通最小二乘)成本函数对回归模型进行拟合,然后执行额外的加权回归以提供最终模型。另外,我认为fitlm()使用RMSE作为成本函数 我的第一个问题是:在Matlab中,代价函数和权重函数是否相同。 另外,如何在让MATLAB进行拟合的同时提供自定义成本函数(例如MSE) 我知道,robustfit()可能需要额外的/。但我再

如果我知道正确的话——为了尝试适合一个模型;当目标是最小化成本函数(例如OLS、MSE、RMSE、MMSE)时,使用某种迭代算法

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

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


我知道,
robustfit()
可能需要额外的/。但我再次感到困惑的是,这会被视为成本函数吗?或者我需要使用其他类型的参数来提供我的自定义成本函数?

正如您所说,成本函数是您要最小化的函数,以找到预测值的正确系数。例如,成本函数可以是
cost(a)=sqrt(mean((a)。^2))
a
通常是
y-y\est

另一方面,关于稳健回归,权重函数是一种减少影响或消除算法意外测量的方法。如果查看权重函数的形状:

您将看到,更多的残差是从零开始的,它们被考虑的越少(有时甚至被完全删除)。这是一种避免由于异常值而导致错误的方法

函数估计误差的方法不是定制的,只有权重函数是定制的