生成數據集
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt# 生成特征數量為1, 噪音為50的數據集
X, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)# 散點圖
plt.scatter(X, y, c="orange", edgecolor="k")
plt.show()
回歸分析
from sklearn.datasets import make_regression
from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt# 生成特征數量為1, 噪音為50的數據集
X, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)# knn 回歸分析
reg = KNeighborsRegressor()
reg.fit(X, y)# 預測結果可視化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(X, y, c="orange", edgecolor="k")
plt.plot(z, reg.predict(z), c="k", linewidth=3)
plt.title("KNN Regressor")
plt.show()
模型評分
調低鄰居數量
KNN近鄰數量默認是5,我們調低為2試試。
from sklearn.datasets import make_regression
from sklearn.neighbors import KNeighborsRegressor
import matplotlib.pyplot as plt# 生成特征數量為1, 噪音為50的數據集
X, y = make_regression(n_features=1, n_informative=1, noise=50, random_state=8)# knn 回歸分析
reg = KNeighborsRegressor(n_neighbors=2)
reg.fit(X, y)# 預測結果可視化
z = np.linspace(-3, 3, 200).reshape(-1, 1)
plt.scatter(X, y, c="orange", edgecolor="k")
plt.plot(z, reg.predict(z), c="k", linewidth=3)
plt.title("KNN Regressor")
plt.show()
分數從0.77提升到了0.86。