python线性回归基本使用

本文介绍了Python中的线性回归,包括sklearn库的LinearRegression API,重点讨论了损失函数、优化方法如正规方程和梯度下降。解释了学习率α的重要性以及为何在梯度下降中要乘以负号。最后提到了SGDRegressor类及其参数,如loss、fit_intercept和learning_rate。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 线性回归API
    sklearn.linear_model.LinearRegression()
    LinearRegression.coef_:回归系数
    事例代码:
    #导入模块
    from sklearn.linear_model import LinearRegression
    #构造数据集
    x = [[80, 86],
    [82, 80],
    [85, 78],
    [90, 90],
    [86, 82],
    [82, 90],
    [78, 80],
    [92, 94]]
    y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]
    #机器学习-- 模型训练
    # 实例化API
    estimator = LinearRegression()
    # 使用fit方法进行训练
    estimator.fit(x,y)
    estimator.coef_
    estimator.predict([[100, 80]])
    

2.线性回归的损失和优化

  • 损失函数
    总损失定义为:
    在这里插入图片描述
    yi为第i个训练样本的真实值
    h(xi)为第i个训练样本特征值组合预测函数
    又称最小二乘法
    如何去减少这个损失,使我们预测的更加准确些?既然存在了这个损失,我们一直说机器学习有自动学习的功能,在线性回归这里更是能够体现。这里可以通过一些优化方法去优化(其实是数学当中的求导功能)回归的总损失!!!

  • 优化算法
    正规方程:
    在这里插入图片描述

    理解:X为特征值矩阵,y为目标值矩阵。直接求到最好的结果
    缺点:当特征过多过复杂时,求解速度太慢并且得不到结果
    梯度下降:
    在这里插入图片描述

  1. α是什么含义?

    α在梯度下降算法中被称作为学习率或者步长,意味着我们可以通过α来控制每一步走的距离,以保证不要步子跨的太大扯着蛋,哈哈,其实就是不要走太快,错过了最低点。同时也要保证不要走的太慢,导致太阳下山了,还没有走到山下。所以α的选择在梯度下降法中往往是很重要的!α不能太大也不能太小,太小的话,可能导致迟迟走不到最低点,太大的话,会导致错过最低点!

  2. 为什么梯度要乘以一个负号?
    梯度前加一个负号,就意味着朝着梯度相反的方向前进!我们在前文提到,梯度的方向实际就是函数在此点上升最快的方向!而我们需要朝着下降最快的方向走,自然就是负的梯度的方向,所以此处需要加上负号

  1. 线性回归api详细使用
    sklearn.linear_model.LinearRegression(fit_intercept=True)
    fit_intercept:是否计算偏置
    LinearRegression.coef_:回归系数
    LinearRegression.intercept_:偏置
    sklearn.linear_model.SGDRegressor(loss=“squared_loss”, fit_intercept=True, learning_rate =‘invscaling’, eta0=0.01)
    SGDRegressor类实现了随机梯度下降学习,它支持不同的loss函数和正则化惩罚项来拟合线性回归模型。
    loss:损失类型
    loss=”squared_loss”: 普通最小二乘法
    fit_intercept:是否计算偏置
    learning_rate : string, optional
    学习率填充
    ‘constant’: eta = eta0
    ‘optimal’: eta = 1.0 / (alpha * (t + t0)) [default]
    ‘invscaling’: eta = eta0 / pow(t, power_t)
    power_t=0.25:存在父类当中
    对于一个常数值的学习率来说,可以使用learning_rate=’constant’ ,并使用eta0来指定学习率。
    SGDRegressor.coef_:回归系数
    SGDRegressor.intercept_:偏置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值