根据单个特征分解预测

2024-05-16 17:37:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我们应用了多种机器学习模型,如lightGBM、random forest、elastic net、XGBoost等进行预测。要求根据输入特征对预测值(每个预测)进行分解聚合。Sample data

有连续输入变量和分类输入变量。分类变量在数据中的数量更多

例如对于需求:假设我有一个预测y = 1000$,并且有三个输入特性x1x2x3。是否有一种方法可以将预测值(1000美元)表示为x1贡献的400美元、x2贡献的300美元和x3贡献的300美元

尝试的方法:从随机林到每个输入变量的属性贡献百分比的特征重要性。这并没有产生有意义的结果

LIME和Shapley:LIME提供的本地截距值在所考虑的场景中没有意义。Shapley提供了单个特征偏离预期值的量化,这也没有帮助


Tags: 方法模型机器分类random特征贡献意义
1条回答
网友
1楼 · 发布于 2024-05-16 17:37:04

您正在寻找功能和目标之间的线性关系。最好的解决方案当然是拟合线性模型

你说你试过弹性网,它实际上是一个正则化的线性回归。如果模型性能令人满意,则可以使用线性回归的系数来计算贡献。事实上,模式将是:

eq0

所以x1eq1(或者仅仅是b1,取决于您所说的“贡献”)贡献给y。注意,在“贡献”的概念中,您应该尝试理解截取值b0

如果“基本”线性模型的性能不够好,您可以进行一些特征工程(以变量平方或其他变换为例),看看the generalized linear model or the generalized additive model,但这确实是针对您的问题

现在,如果拟合线性模型不起作用,则意味着您无法在目标和从属特征之间找到全局线性关系。您需要近似局部线性关系,但它可能并不总是有效或给出预期结果。使用线性解释模型的石灰似乎是一个不错的选择,也许你可以调查一下为什么它不适合你

相关问题 更多 >