Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何绘制多项式回归的递增学习曲线_Python 3.x_Matplotlib_Scikit Learn_Linear Regression_Non Linear Regression - Fatal编程技术网

Python 3.x 如何绘制多项式回归的递增学习曲线

Python 3.x 如何绘制多项式回归的递增学习曲线,python-3.x,matplotlib,scikit-learn,linear-regression,non-linear-regression,Python 3.x,Matplotlib,Scikit Learn,Linear Regression,Non Linear Regression,我试图在使用多项式特性和以下代码后绘制拟合曲线,但结果不正确。如何仅绘制单个拟合曲线 import matplotlib.pyplot as plt import numpy as np m = 100 X = 6 * np.random.rand(m,1) - 3 Y = 0.5 * X**2 + X + 2 + np.random.randn(m,1) from sklearn.preprocessing import PolynomialFeatures from sklearn.li

我试图在使用多项式特性和以下代码后绘制拟合曲线,但结果不正确。如何仅绘制单个拟合曲线

import matplotlib.pyplot as plt
import numpy as np

m = 100
X = 6 * np.random.rand(m,1) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m,1)

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

poly_features = PolynomialFeatures(degree=2,include_bias=False)
X_poly = poly_features.fit_transform(X)

lin = LinearRegression()

lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)

plt.scatter(X, Y)
plt.plot(X_poly,Y_pred,color='red')
plt.show()
试试:

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
m = 100
X = 6 * np.random.rand(m) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m)

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

poly_features = PolynomialFeatures(degree=2,include_bias=False)
X_poly = poly_features.fit_transform(X.reshape(-1,1))

lin = LinearRegression()

lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)

idx = X.argsort()

plt.scatter(X, Y)
plt.plot(X[idx],Y_pred[idx],color='red')
plt.show()

这就像一个魔术,但你能告诉我我做错了什么,它是如何解决的吗?你应该注意你提供给
plt.plot
的参数顺序。我命令它,增加,因此线从左到右平滑地移动。你没有。因此,在你的间歇时间里,你的线从一点到另一点是随机的。另外,我稍微改变了输入数组的维数,从(m,1)到(m,)。这并不重要,但代码更简洁。如果您愿意,我可以重新编辑您的尺寸。