回归树表现不佳
Posted
技术标签:
【中文标题】回归树表现不佳【英文标题】:Regression tree does not perform well 【发布时间】:2020-09-07 09:11:07 【问题描述】:我的目标是像房价一样的持续价值。我正在训练一个回归树。我在 Python 的 scklearn 中使用 Gradientboostregressor。
我的目标值(房价)呈 L 形分布:高端的房价比低端的价格高 10 倍。我的回归树模型低估了高值,高估了低值。
我可以做些什么来改进模型预测?我尝试建模日志(价格),然后建模 exp(预测),但效果不佳。
非常感谢。
【问题讨论】:
我不认为房价是一个连续值。您是否对数据进行了规范化? 您的训练和测试数据是如何分离的?您的训练数据是否包含价格在整个房价范围内分布良好的房屋?如果没有关于特定任务的更多信息,很难准确地说出什么失败了。很可能,您还可以使用一些预处理技巧来获得更好的结果。一个例子是您可以尝试首先使用决策(分类)树来分割低价房屋和高价房屋,然后为每个人训练回归树。同样,需要更多信息来提供有意义的反馈。 房价是连续的,因为它们来自所有实数的集合(在一些合理的范围内)。 @DerekG,谢谢,将尝试细分低/高收入。我认为它应该有帮助 【参考方案1】:你可以尝试几件事:
1) 是否有可以捕获高价的功能?诸如纬度/经度、平方英尺等。
2) 你的测试集有多大?是否代表验证集?
此外,还有许多帖子分析了美国数据上的这个确切问题。例如,来自 kaggle 的这篇文章介绍了一些可以使用的有用功能: https://www.kaggle.com/erick5/predicting-house-prices-with-machine-learning
【讨论】:
谢谢,我正在研究 Kaggle 示例,他们使用偏斜的数据(不像我的偏斜),但是为什么——我们将所有偏斜的数据修复为更正常,以便我们的模型预测时会更准确。传统的stat模型需要让target正常,为什么ML也需要修复呢? 你是对的。这取决于您训练的模型类型。这对于逻辑回归很重要,但对于您在此处使用的树来说,它并不那么重要 - 只要轴上的点顺序相同,树就会在没有归一化的情况下找到相似的分割。【参考方案2】:单个决策树通常不能很好地工作。当然,您可以尝试优化树。但我认为如果你想使用树木,最好改为随机森林或梯度提升。
【讨论】:
以上是关于回归树表现不佳的主要内容,如果未能解决你的问题,请参考以下文章
机器学习算法决策树-5 CART回归树法,M5回归树算法对CART算法改进了什么
sklearn库学习------决策树(回归树DecisionTreeRegressor)