Pandas新手疑问:Linear Regression plot绘图不符合预期的原因排查
解决线性回归绘图样式异常的问题
嘿,作为Pandas新手碰到这种可视化问题太正常啦!我来帮你拆解问题所在~
最可能的核心问题:X特征未排序
你当前的代码里,plt.plot(X_train.iloc[:,10], y_train_pred)是直接按照训练集里特征的原始顺序来连接预测点的。如果你的训练集第11列(iloc[:,10]对应索引10的列)的特征值是乱序的,那画出的绿色预测线就会变成来回交叉的折线,而不是我们期望的平滑线性回归线。
举个例子:如果你的X特征值是[5,2,8,3],对应的预测值是[10,4,16,6],直接plot的话会从5→2→8→3连线,看起来就会乱糟糟的。
解决方法:对特征和预测值排序后绘图
你只需要先把特征列和对应的预测值配对排序,再用排序后的数据绘图即可:
# 提取要绘图的特征列 x_feature = X_train.iloc[:,10] # 将特征与预测值配对,按特征值从小到大排序 sorted_pairs = sorted(zip(x_feature, y_train_pred)) sorted_x, sorted_pred = zip(*sorted_pairs) # 重新绘图 plt.scatter(x_feature, y_train, color='red', label='Actual data') plt.plot(sorted_x, sorted_pred, color='green', label='Predicted data') plt.legend() # 添加图例,让图表更清晰 plt.xlabel('Feature (X_train[:,10])') # 可以加上坐标轴标签 plt.ylabel('Target Value') plt.show()
其他需要排查的小问题
- 确认
y_train_pred是线性回归模型拟合后的预测结果:你是不是已经用model.fit(X_train, y_train)拟合模型,再用model.predict(X_train)得到的预测值?如果没拟合就直接预测,结果肯定不对。 - 检查特征列是否正确:你选的
iloc[:,10]是不是你用来做线性回归的目标特征?有时候索引搞错选了无关列,也会导致图表不符合预期。
内容的提问来源于stack exchange,提问作者Unknown
相关产品推荐
相关产品推荐

