机器学习入门KNN近邻算法(一) (6)
# 创建多个算法模型,采用不同的参数,查看回归的结果
knn1 = KNeighborsRegressor(n_neighbors=1)
knn2 = KNeighborsRegressor(n_neighbors=7)
knn3 = KNeighborsRegressor(n_neighbors=21)
knn1.fit(x.reshape(-1,1),y)
knn2.fit(x.reshape(-1,1),y)
knn3.fit(x.reshape(-1,1),y)
y1_ = knn1.predict(X_test)
y2_ = knn2.predict(X_test)
y3_ = knn3.predict(X_test)
# 拟合度过高,称为过拟合,对数据分析的过于在意局部特征
plt.plot(X_test,y1_,color='orange',label='n_neighbors=1')
# 拟合度刚好,称为最佳拟合,这是机器学习的终极目标,调参就是为了达到这个目的
plt.plot(X_test,y2_,color='cyan',label='n_neighbors=7')
# 拟合度太差,称为欠拟合,对数据特征分析不透彻,数据有效特征太少,样本数量太少
plt.plot(X_test,y3_,color='red',label='n_neighbors=21')
plt.scatter(x,y,color='blue',label='true-data')
plt.legend()
内容版权声明:除非注明,否则皆为本站原创文章。