这里仍然使用波士顿房价数据。
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
boston=datasets.load_boston()
X=boston.data
y=boston.target
X=X[y<50]
y=y[y<50]
X_train,X_test,y_train,y_test=train_test_split(X,y)
使用LinearRegression实现线性回归
reg=LinearRegression()
reg.fit(X_train,y_train)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
reg.score(X_test,y_test)
精确度:
0.7186399661738103
reg.coef_
系数:
array([-1.07697949e-01, 3.74741701e-02, -4.90985676e-02, 4.32394985e-02,
-1.08766867e+01, 3.75657466e+00, -2.49827635e-02, -1.24054810e+00,
2.73036761e-01, -1.48647835e-02, -8.72880655e-01, 1.01060308e-02,
-3.55395457e-01])
reg.intercept_
截距:
31.7262203293836
使用knn实现线性回归
knn中KNeighborsClassifier解决分类问题, KNeighborsRegressor解决回归问题
from sklearn.neighbors import KNeighborsRegressor
reg2=KNeighborsRegressor()
reg2.fit(X_train,y_train)
reg2.score(X_train,y_train)
精确度为:
0.7005544649219793
使用knn预测,knn存在超参数,所以要对超参数进行处理,选出最合适的k值和p值,上述使用的是默认的k值,所以准确率可能较低,处理后的k值可以使预测结果有较高的准确度。