无问题代码:
%matplotlib widget
将matplotlib.pyplot导入为plt
将numpy导入为np
将熊猫作为PD导入
来自sklearn.model_selection import train_test_split
来自sklearn.linear_model import ridge
从sklearn.preprocessing导入多项式特征
从sklearn.pipeline导入make_pipeline
np.随机种子(0)
n=100
x=np.linspace(0,10,n)+np.random.randn(n)/5
y=np.sin(x)+x/6+np.random.randn(n)/10
x_-train,x_-test,y_-train,y_-test=train_-test_-split(x,y,random_-state=0)
图()
颜色=['teal'、'yellowgreen'、'gold'、'red']
LW=2
plt.scatter(训练数据[0].值,训练数据[1].值,color='navy',s=30,marker='o',label='training points')
#排序值
train_data=pd.dataframe(data=[x_train,y_train]).t.sort_值(0)
test_data=pd.dataframe(data=[x_test,y_test]).t.sort_values(0)
对于count,degree in enumerate([1,3,6,9]):
model=make_pipeline(多项式特征(degree),ridge())
model.fit(训练数据[0].值[:,np.newaxis],训练数据[1].值)
y_plot=model.predict(测试_data[0].值[:,np.newaxis])
plt.plot(test_data[0].values[:,np.newaxis],y_plot,color=colors[count],linewidth=lw,np.sort(x_test)[:,np.newaxis]
label=“学位%d%”%degree)
Plt.Legend(loc='右下')
显示()
< /代码>
结果:
结果: