繁体   English   中英

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

[英]How to provide custom cost function for robustfit or fitlm in MATLAB

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

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

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

我知道, robustfit()可以采用其他/ 自定义权重函数 但是我再次感到困惑,是否会将其视为成本函数? 还是我需要使用其他类型的参数来提供自定义成本函数?

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

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

重量

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

函数估计误差的方式并不开放,只有权重函数可以定制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM