使用scikit_learn实现线性回归

这里仍然使用波士顿房价数据。

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值可以使预测结果有较高的准确度。

猜你喜欢

转载自blog.csdn.net/ayangann915/article/details/81185106