我们应用了多种机器学习模型,如lightGBM、random forest、elastic net、XGBoost等进行预测。要求根据输入特征对预测值(每个预测)进行分解聚合。Sample data
有连续输入变量和分类输入变量。分类变量在数据中的数量更多
例如对于需求:假设我有一个预测y = 1000$
,并且有三个输入特性x1
、x2
和x3
。是否有一种方法可以将预测值(1000美元)表示为x1
贡献的400美元、x2
贡献的300美元和x3
贡献的300美元
尝试的方法:从随机林到每个输入变量的属性贡献百分比的特征重要性。这并没有产生有意义的结果
LIME和Shapley:LIME提供的本地截距值在所考虑的场景中没有意义。Shapley提供了单个特征偏离预期值的量化,这也没有帮助
您正在寻找功能和目标之间的线性关系。最好的解决方案当然是拟合线性模型
你说你试过弹性网,它实际上是一个正则化的线性回归。如果模型性能令人满意,则可以使用线性回归的系数来计算贡献。事实上,模式将是:
所以由(或者仅仅是,取决于您所说的“贡献”)贡献给。注意,在“贡献”的概念中,您应该尝试理解截取值
如果“基本”线性模型的性能不够好,您可以进行一些特征工程(以变量平方或其他变换为例),看看the generalized linear model or the generalized additive model,但这确实是针对您的问题
现在,如果拟合线性模型不起作用,则意味着您无法在目标和从属特征之间找到全局线性关系。您需要近似局部线性关系,但它可能并不总是有效或给出预期结果。使用线性解释模型的石灰似乎是一个不错的选择,也许你可以调查一下为什么它不适合你
相关问题 更多 >
编程相关推荐