我正在尝试使用随机森林回归器来解决机器学习问题(空间点的价格估算)。我有一个城市的空间点样本。样本不是随机抽取的,因为市中心的观察数量非常少。我想估算一下这个城市所有地址的价格。
我有一个很好的交叉验证分数(绝对均方误差),在分割训练集后也是一个很好的测试分数。但预测非常糟糕。
有什么可以解释这个结果?
我绘制了学习曲线(上面的链接):交叉验证分数随实例数增加(听起来合乎逻辑),培训分数仍然很高(应该减少吗?)...... 这些学习是什么曲线显示?一般来说,我们如何“阅读”学习曲线?
此外,我认为样本不具代表性。我试图根据训练集的每个区域中观察的比例,通过绘制whitout替换来使我想要预测的数据集在空间上类似于训练集。但这并没有改变结果。 我如何处理这种非代表性?
提前感谢您提供任何帮助
答案 0 :(得分:2)
在查看培训和交叉验证分数时会出现一些常见情况:
这里有一个来自this Quora post的精美图片,展示了模型复杂性和错误与模型展示的拟合类型的关系。
在上图中,给定复杂度的误差是在均衡时发现的误差。相比之下,学习曲线显示了整个训练过程中得分的进展情况。一般来说,您永远不希望在训练期间看到分数下降,因为这通常意味着您的模型正在发散。但是,随着时间的推移(达到平衡),训练和验证分数之间的差异表明你的模型的拟合程度。
请注意,即使您有一个理想的拟合(复杂度轴的中间),通常会看到一个高于交叉验证分数的训练分数,因为模型的参数是使用更新的训练数据。但是,由于您的预测结果不佳,并且由于验证得分比训练得分低约10%(假设得分超过1),我猜您的模型过度拟合并且可以从较低的复杂性中受益。
要回答您的第二点,如果训练数据更好地表示验证数据,模型将更好地概括。因此,在将数据拆分为训练集和验证集时,我建议找到一种随机分离数据的方法。例如,您可以生成城市中所有点的列表,列表的迭代,以及来自统一分布的每个点绘制,以确定该点所属的数据集。