线性回归及梯度下降

  1. 线性回归
    2.1 线性回归简介
    1.定义
    利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
    2.表示方式:
    h(w) = w1x1 + w2x2 + w3x3 + … + b
    = W转置x + b
    3.分类
    线性关系
    非线性关系
    2.2 线性回归api初步使用
    1.api
    sklearn.linear_model.LinearRegression()
    属性:
    LinearRegression.coef_:回归系数

2.4 线性回归的损失和优化[****]
1.损失
最小二乘法
2.优化
正规方程
梯度下降法
3.正规方程 – 一蹴而就
利用矩阵的逆,转置进行一步求解
只是适合样本和特征比较少的情况
4.梯度下降法 – 循序渐进
举例:
山 – 可微分的函数
山底 – 函数的最小值
梯度的概念
单变量 – 切线
多变量 – 向量
梯度下降法中关注的两个参数
α – 就是步长
步长太小 – 下山太慢
步长太大 – 容易跳过极小值点(*****)
为什么梯度要加一个负号
梯度方向是上升最快方向,负号就是下降最快方向
5.梯度下降法和正规方程对比:
梯度下降 正规方程
需要选择学习率 不需要
需要迭代求解 一次运算得出
特征数量较大可以使用 需要计算方程,时间复杂度高O(n3)
6.选择:
小规模数据:
LinearRegression(不能解决拟合问题)
岭回归
大规模数据:
SGDRegressor
2.5 梯度下降法介绍[###]
1 全梯度下降算法(FG)
在进行计算的时候,计算所有样本的误差平均值,作为我的目标函数
2 随机梯度下降算法(SG)
每次只选择一个样本进行考核
3 小批量梯度下降算法(mini-bantch)
选择一部分样本进行考核
4 随机平均梯度下降算法(SAG)
会给每个样本都维持一个平均值,后期计算的时候,参考这个平均值
2.6 api
正规方程
sklearn.linear_model.LinearRegression(fit_intercept=True)
梯度下降法

  • 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_:偏置

sklearn提供给我们两种实现的API, 可以根据选择使用

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

你可能感兴趣的:(机器学习)