决策树回归模型测试与预测y值绘图异常问题咨询
问题拆解与解决思路
绘图异常(x轴范围不一致)的核心问题
这和模型性能完全没关系,就是绘图代码逻辑错了,常见坑点:
- 绘图时x轴用了样本索引而非真实y值:比如你写
plt.plot(y_pred, y_test),默认x轴是数组的索引,不是真实的y_true,自然范围对不上。正确的做法是把x轴设为真实目标值,y轴设为预测值,代码示例:plt.scatter(y_test, y_pred) plt.xlabel("真实y值") plt.ylabel("预测y值") plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], 'r--') # 加一条参考线,方便看拟合程度 - 误把某个特征列当成了x轴:比如不小心用了输入特征代替y_true来画x轴,导致范围和预测值不匹配。
- 绘图前对数据做了排序/过滤:比如只取了部分样本,或者排序后样本索引错位,导致x轴范围偏离真实y值区间。
单维度拟合得分下降的原因
16维特征能提供的信息远多于单维度,决策树回归的拟合能力依赖特征的分裂价值——原数据里目标变量是多个特征共同作用的结果,单维度特征根本没法捕捉这种复杂关系,得分下降是完全正常的,和绘图问题没有关联。
快速排查步骤
- 先查绘图代码:打印
y_test和y_pred的最小值、最大值,r2=0.97的话,两者数值范围应该高度重合,确认后把x轴数据源改成y_test。 - 验证样本对应性:确保绘图用的
y_test和y_pred是同一批测试样本的结果,没有出现训练测试划分时的索引错位问题。
内容的提问来源于stack exchange,提问作者Nazanin
相关产品推荐
相关产品推荐

