2.线性回归

线性回归

比KNN算法,线性回归的求解过程可解释性更好
我们这里是使用方程来求解,并没有使用梯度下降法

1. 简单线性回归

我们先研究的最小二乘法,然后在一次类推到多元线性回归

对于简单线性回归(y=ax+b)求导可以得出:
在这里插入图片描述

多元线性回归的正归化方程:
记住里面的x有一组1的列
在这里插入图片描述

下面介绍一些基本概念:

  1. mse
  2. rmse
  3. mae
    这些都是线性回归的衡量产生,sklearn里面mse,rmse现在集成在一个方法里面

最好的衡量线性回归的性能:R^2

在这里插入图片描述

R方越大越好,因为可以把方差看成baseline model(即没有模型的预测值)我们训练过的model得到的值应该远远低于他才好

ps:在numpy里面求逆矩阵的方法:numpy.linalg.inv(),numpy.var

我们使用sklearn里面的linearRegressoion的fit是使用多元线性回归的正归化方程:

下面扩展一些KNNRegressor:
如我上篇文章所说:这里需要归一化数据

from sklearn.neighbors import KNeighborsRegressor
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import StandardScaler

standard_scaler=StandardScaler()
standard_scaler.fit(X_train)
X_train=standard_scaler.transform(X_train)
X_test=standard_scaler.transform(X_test)
param_id=[
    {
        "weights":["uniform"],
        "n_neighbors":[i for i in range(1,11)]
    },
    {
        "weights":["distance"],
        "n_neighbors":[i for i in range(1,11)],
        "p":[i for i in range(1,11)]
    }
]
knnRes=KNeighborsRegressor()
grid_cv=GridSearchCV(param_grid=param_id,estimator=knnRes,n_jobs=-1,verbose=1)
grid_cv.fit(X_train,y_train)
print(grid_cv.best_params_)
print(grid_cv.best_estimator_.score(X_test,y_test))

我们看到KNN算法在回归中的利用,而且score的值还很好

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值