难以绘制 2 度线性回归
Difficulty in plotting 2 degree linear regression
我在用机器学习模型的 2 度曲线绘制二维线性回归时遇到了一些麻烦。
这是我的代码:
m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)
plt.plot(X, y, "b.")
plt.show()
到此为止,这是我的散点图:
现在我正在训练一个 2 度线性模型。
from sklearn.preprocessing import PolynomialFeatures
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
已训练模型。
这是我绘制曲线时的结果:
plt.plot(X, lin_reg.predict(X_poly), "r-")
plt.show()
我正在研究如何打印连续曲线,而不是那些连线的点。
下面是我想要的输出,手动绘制。
- 你可能会踢自己,可能
- 一切都很好,除了
X
需要用 numpy.sort()
排序。
- 线条是按顺序绘制的,从一点到另一点。由于这些点不是按
X
排序的,因此它们被绘制在所有地方。
np.random.seed(365)
已指定每次生成相同的值。
import numpy
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
m = 100
np.random.seed(365)
X = 6 * np.random.rand(m, 1) - 3
X = np.sort(X, axis=0) # sort the values
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)
# regression code
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
# plot
plt.plot(X, y, "b.")
plt.plot(X, lin_reg.predict(X_poly), "r-")
plt.show()
我在用机器学习模型的 2 度曲线绘制二维线性回归时遇到了一些麻烦。
这是我的代码:
m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)
plt.plot(X, y, "b.")
plt.show()
到此为止,这是我的散点图:
现在我正在训练一个 2 度线性模型。
from sklearn.preprocessing import PolynomialFeatures
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
已训练模型。
这是我绘制曲线时的结果:
plt.plot(X, lin_reg.predict(X_poly), "r-")
plt.show()
我正在研究如何打印连续曲线,而不是那些连线的点。
下面是我想要的输出,手动绘制。
- 你可能会踢自己,可能
- 一切都很好,除了
X
需要用numpy.sort()
排序。- 线条是按顺序绘制的,从一点到另一点。由于这些点不是按
X
排序的,因此它们被绘制在所有地方。
- 线条是按顺序绘制的,从一点到另一点。由于这些点不是按
np.random.seed(365)
已指定每次生成相同的值。
import numpy
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
m = 100
np.random.seed(365)
X = 6 * np.random.rand(m, 1) - 3
X = np.sort(X, axis=0) # sort the values
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)
# regression code
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)
lin_reg = LinearRegression()
lin_reg.fit(X_poly, y)
# plot
plt.plot(X, y, "b.")
plt.plot(X, lin_reg.predict(X_poly), "r-")
plt.show()