如何理解非线性情况下的特征影响?

数据挖掘 回归 特征提取 特征工程 核心
2022-02-16 13:55:21

我举一个简单的例子:我有一组具有不同特征(# 个房间、周长、# 个邻居等)的房子,差不多 15 个,并且每个房子都有一个价格值。这些特征也非常相关(即周长通常与#rooms 相关)。我想确定决定价格的主要特征(或它们的非线性组合)是什么。

例如,在线性情况下,我可以计算 Lasso 回归并通过系数查看每个特征的重要性。就我而言,每个功能(或它们的组合)都有非线性影响。例如,邻居的数量可以产生二次影响(如果 #neighbours < 10 则增加价格,如果 > 10 则降低价格)。

我想确定功能和价格之间的主要重要关系。我不需要预测器。例如,最后我会发现价格主要取决于#rooms/perimeter 和#neighbours^2。

我正在考虑将内核方法与回归或 PCA 结合使用。但我对内核方法知之甚少。

先感谢您。

3个回答

据我所知,内核方法不能处理分类变量(现在不知道是不是这样)。此外,您将不得不使用间接方法来评估变量的重要性。这可以工作,虽然我还没有测试过:

Giam, X., Olden, JD, 2015。一种新的基于 R2 的指标,可以更深入地了解人工神经网络中的变量重要性。生态。模型。313、307–313。http://dx.doi.org/10.1016/j.ecolmodel.2015.06.034

我肯定会采用基于树的方法。由于您已经知道存在相关变量,我会提倡条件随机森林(它解决了标准随机森林实现的许多缺点)。查看:

Strobl, C., Hothorn, Zeileis, A., 2009。开派对!RJ. 1 (2), 14-17。

以及其中的参考资料。至少在 R 中有一些补充包(https://cran.r-project.org/web/packages/pdp/index.html)允许绘制每个预测变量对目标变量(房价)的影响。这很好地补充了可变重要性排名。

祝你好运。

我想确定功能和价格之间的主要重要关系。我不需要预测器。例如,最后我会发现价格主要取决于#rooms/perimeter 和#neighbours^2。

如果它主要取决于#neighbours^2,则它在相同程度上取决于#neighbours。其他组合也一样。

但是,如果您希望清楚地识别对#neighbours^2 而不是#neighbours 或#rooms/perimeter(而不是简单的#rooms)的线性依赖,这与预测变量没有什么不同。

Weka有一个丰富的工具包,用于按重要性对特征进行排名和选择,请参阅这篇博文以获取教程。

我不熟悉许多特征重要性的方法,但你可以尝试随机森林。解释在:

布雷曼 L (2001)。“随机森林”。机器学习。45 (1): 5–32.doi:10.1023/A:1010933404324