为何可视化多特征回归模型预测结果时仅需绘制单个特征?
这问题问得特别接地气,其实背后是特征的依赖关系和可视化的维度局限这两个核心点在起作用,咱们结合你的场景一步步说清楚:
1. 你的两个特征根本不是独立的!
你构造的X_custom_2是X_custom_1的平方,也就是说:只要知道X_custom_1的取值,X_custom_2就被完全确定了——它们是严格的函数依赖关系,没有任何独立的额外信息。你的特征矩阵X_custom看似有两列,但本质上只由一个原始变量(X_custom_1)控制,另一个特征只是它的衍生项。
对应到你的模型预测:y_pred是基于X_custom计算的,但因为X_custom_2 = (X_custom_1)²,所以y_pred本质上就是X_custom_1的函数。比如假设你的回归模型是:
y_pred = w1 * X_custom[:,0] + w2 * X_custom[:,1] + b
代入X_custom[:,1] = (X_custom[:,0])²,就变成了:
y_pred = w1*x + w2*x² + b
这就是一个关于x(也就是X_custom[:,0])的二次函数,所以用x作为横轴、y_pred作为纵轴绘图,刚好就是这个二次函数的曲线,完全能反映模型的所有预测规律。
2. 二维可视化的天然限制
咱们日常用的二维平面(横轴+纵轴)只能展示两个变量的关系。如果硬要把两个特征都纳入可视化,那得画三维图(X_custom_1, X_custom_2, y_pred),但由于X_custom_2是X_custom_1的平方,三维图里的预测结果会是一条紧贴x2 = x1²曲面的曲线,和你现在的二维图本质完全一致,反而会增加理解成本,不如二维图直观。
结合你的代码和图来看
你用ax[0].plot(X_custom[:, 0], y_pred)画出的红色曲线,已经完整展示了模型在x从-5到5整个区间的预测趋势:随着x从-5增加到5,预测值先降后升(典型的二次函数形态),和原始数据的散点也能完美对比,完全达到了“可视化模型预测效果”的目的。
总结一下:因为你的第二个特征没有独立于第一个特征的信息,且二维可视化只能高效展示两个变量的关系,所以用第一个特征(线性项)来绘制预测结果,是最简洁、最直观的选择。
备注:内容来源于stack exchange,提问作者Paradoxac

