比较不同回归模型的系数

数据挖掘 Python scikit-学习 回归 线性回归 权重初始化
2021-10-07 10:43:08

在我的项目中,我使用了一套浅层和深度学习模型,以查看哪个对我的数据具有最佳性能。但是,在浅层机器学习模型池中,我希望能够相互比较每个回归模型的系数。例子:我有

  • 套索
  • 弹性网
  • AdaBoost 回归器
  • GradientBoostRegressor

我知道我可以得到LassoRidgeElasticNet的系数model.coef_model.intercept_sklearn但是,AdaBoostRegressor它没有这个,而是为每个估计器分配了权重。同样,GradientBoostingRegressorsklearn 甚至根本没有权重。我如何比较我正在使用的每个回归模型之间的系数?

2个回答

不同类型模型的权重并不总是具有可比性,因此我认为不跨不同类型的模型而是在单一类型的模型中进行这种比较会更有意义:

  • 超参数(如果有的话),
  • 实例集(例如随机选择不同的子集),
  • 特征集。

我特别建议改变实例:如果一个特征的权重往往会根据训练集发生很大变化,那么这就是过度拟合的迹象。

如果目标是比较不同模型的某些特定特征的重要性,那么直接评估模型在有/没有这些特征的情况下的表现可能更可靠。

实际上不可能直接比较模型系数。您可能会做的更有意义的是比较相似的指标。

一个好的开始是了解模型之间可比较的可解释性指标:LIME、SHAP 等(参见此处:https ://christophm.github.io/interpretable-ml-book/ )以了解模型的反应关于不同的功能。