【问题标题】:Too many lines and curves on the polynomial graph多项式图上的直线和曲线过多
【发布时间】:2021-01-03 17:15:48
【问题描述】:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt    
from sklearn.linear_model import LinearRegression
from sklearn import metrics
from sklearn.preprocessing import PolynomialFeatures

df = pd.read_csv("C:\\Users\\MONSTER\\Desktop\\dosyalar\\datasets\\Auto.csv")
x = df["horsepower"].to_numpy()
y = df["mpg"].to_numpy()

x = x.reshape(-1,1)

poly = PolynomialFeatures(degree = 5)
X_poly = poly.fit_transform(x)
poly.fit(X_poly,y)

lr = LinearRegression()
lr.fit(X_poly, y)
y_pred = lr.predict(X_poly)

plt.scatter(x,y,color="blue",marker=".")
plt.plot(x,y_pred,color="red")

我试图绘制多项式回归曲线,但我无法管理它。有人告诉我在通过“numpy.argsort”绘图之前对值进行排序,但没有任何改变。我该如何解决?

【问题讨论】:

  • 预期的minimal, reproducible example。显示中间结果与您的预期不同的地方。我们应该能够复制和粘贴您的代码的连续块,执行该文件,并重现您的问题以及跟踪问题点的输出。我在这段代码中看不到您对回归坐标进行了排序;这些必须按 x 轴顺序排列。

标签: python matplotlib regression polynomials


【解决方案1】:

可能分散对你更好:

plt.scatter(x,y_pred,color="red")

或者如提到的argsort

orders = np.argsort(x.ravel())

plt.plot(x[orders], y[orders], color='red')

【讨论】:

  • 是的,当我输入“argsort”时出现了您所说的错误,但是为什么呢?我该如何解决? Scatter 看起来好多了,但我不想要离散点@BigBen
  • @BigBen 现在怎么样?
猜你喜欢
  • 2018-02-16
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 2019-09-05
  • 2016-06-10
相关资源
最近更新 更多