线性回归

2.1线性回归简介

1.定义:

线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量

(目标值)之间关系进行建模的一种分析方式。

2.表达方式

h(w) = w1 x1 +w2x2+w3x3 + … +b

3.分类

	线性关系

	非线性关系·

2.2线性回归api

1.api

sklearn.linear_model.LinearRegression()

属性:

	LinearRegression.coef_:回归系数

2.4 线性回归的损失和优化

1.损失

最小二乘法

2.优化

正规方程

梯度下降

3.正规方程

利用矩阵的逆,转置进行求解

只适合样本和特征比较少的情况

4.梯度下降

举例:

	山 -- 可微分函数

	山底--函数的最小值

剃度概念:

	单变量 -- 切线

	多变量 --向量

梯度下降法中关注的两个参数

	α -- 就是步长

		步长太小 --- 下山太慢

		补偿太大

		容易跳过极小值点

	为什么梯度要加负号

		梯度方向是上升最快的方向,负号就是下降最快方向

1. 梯度下降法和正规方程对比:

  梯度下降      	正规方程              
  需要选择学习率   	不需要               
  需要迭代求解    	一次运算得出            
  特征数量较大可以使用	需要计算方程,时间复杂度高O(n3)

6.选择:

小规模数据:
  LinearRegression(不能解决拟合问题)
               岭回归

2.5梯度下降法

    1.全梯度下降法(FG)

        在进行计算时,计算所有的样本的误差平均值,作为目标函数

    2.随机梯度下降法(SG)

        每次只是只选择一个样本考核

    3.小批量梯度下降法(mini-bantch)

        选择一部分样本进行考核

    4.随机平均梯度下降法(SAG)

        会给每一个样本都维持一个平均值,后期计算的时候都参照这个平均值

2.6api

    正规方程

    sklearn.linear_model.LinearRegression(fit_intercept=True)

    梯度下降法

2.7案例

    # 1.获取数据
    # 2.数据基本处理
    # 2.1数据集划分
    # 3.特征工程 --标准化
    # 4.机器学习(线性回归)
    # 5.模型评估

2.8 api介绍

 1.梯度下降法

    sklearn.linear_model.SGDRegressor(loss="squared_loss", fit_intercept=True, learning_rate ='invscaling', eta0=0.01)

    参数:

    1.loss --损失 (最小二乘法)

    2.learning__rate(学习率)

一般时都是进行动态更新,也可以是一个常数,但不推荐

2.9欠拟合和过拟合

    欠拟合

        在训练集上表现不好,在测试集表现不好

        解决方法:

            继续学习

            1.添加其他特征

            2.添加多想式特征

    过拟合

        在训练集上表现好,在测试集表现不好

        解决方法:

            1.重新清洗数据

            2.赠大数据的训练量

            3.正则化

            4.减少特征维度

    正则化:

        通过限制高次项的系数进行防止过拟合

        1.1正则化

            理解:直接把高此项前面的系数变为0

            Lasso回归

        1.2正则化

            理解:把高此项前面的系数变为特别小得值

            岭回归

2.10正则化线模型

Ridge Regression 岭回归
  就是把系数前面添加平方项,然后限制系数值大小,α越小,系数值越大,α大,系数值越小
- Lasso 回归
  对系数值进行绝对值处理
  由于绝对值在顶点处不可导,所以进行计算的过程产生很多0,最后结果为稀疏矩阵

- Elastic Net 弹性网络
  是前两个综合
  设置一个r,如果r=0---岭回归,r=1 ---Lasso回归
- Early stopping

2.11线兴回归的改进–岭回归

    1.api

        sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)

        具有12正则化的线性回归

        alpha ---正则化

    - 正则化力度越大,权重系数会越小
    - 正则化力度越小,权重系数会越大

    normalize

        默认封装了,对数据的标准化处理

2.12模型保存加载

    1.from sklearn.externals import joblib

        保存:joblib.dump(estimator, 'test.pkl')

        加载:estimator = joblib.load('test.pkl')

    注意:

        保存文件是*.pkl

    2.加载模型需要变量承接

3.逻辑回归

    1.逻辑回归概念

        解决的是二分类问题

        逻辑回归的输入时线性回归的输出

    2.原理

        1.输入:

            线性回归的输出

        2.激活函数

            sigmoid函数

                把整体值映射到(0,1)

                再设置一个阔值,进行分类判断

        3.损失

            对数似然损失

            借助log思想进行完成真实值等于0,等于1两种进行划分

        4.优化

            提升原本属于1类的概率,降低原本是0类别的概率
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值