文章目录
1,数据
依旧波士顿
import numpy as np
from sklearn import datasets
boston = datasets.load_boston()
x = boston.data
y = boston.target
x = x[y<50]
y = y[y<50]
2,线性回归算法
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(x_train,y_train)
>>>LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)
信息
对应每个属性的回归系数
lin_reg.coef_
>>>array([-1.05508553e-01, 3.21306705e-02, -2.22057622e-02, 6.65447557e-01,
-1.38799680e+01, 3.33985605e+00, -2.31747290e-02, -1.26679208e+00,
2.31563372e-01, -1.30477958e-02, -8.50823070e-01, 6.00080341e-03,
-3.89336930e-01])
截距(“1”那列对的回归系数)
lin_reg.intercept_
>>>36.92386748074081
跑分
lin_reg.score(x_test,y_test)
>>>0.8156582602978415
3,kNNRegressor中的线性回归算法
导入算法
from sklearn.neighbors import KNeighborsRegressor
knn_reg = KNeighborsRegressor()
knn_reg.fit(x_train,y_train)
跑分
这里会发现,分数很低是因为kNN算法有很多超参数,我们需要挑选出最佳的那组
knn_reg.score(x_test,y_test)
>>>0.6497688813332332
找出更优的参数
给出参数范围
from sklearn.model_selection import GridSearchCV
param_grid = [
{
"weights":["uniform"],
"n_neighbors":[i for i in range(1,11)]
},
{