线性回归和梯度下降 带代码

线性回归和梯度下降

  • 定义

    • 利用回归方程对一个或者多个自变量(特征值)和因变量(目标)之间关系进行建模的一种分析方式
    • 表示方法 h(w) = w1x1 + w2x2 + w3x3 + … b = W转置x+b
    • 分类:线性关系、非线性关系
  • 线性回归的损失和优化

    • 最小二乘法 (y - XW)^2
    • 预测值-真实值的平方
  • 优化1:正规方程

    • 利用矩阵的逆,转置进行一步求解
    • 只适合样本和特征比较少的情况
    • W = (X.T * X)^-1 * X.T * y
    • 时间复杂度高 小规模数据用
    • 优化算法 : 岭回归
  • API

    • from sklearn.linear_model import LinearRegression
    • LinearRegression() 不能解决拟合问题
    • 参数 fit_intercept 偏差
    • LinearRegression.coef_ 回归系数
    • LinearRegression.intercept_ 偏置
      在这里插入图片描述
  • 优化2:梯度下降

    • 梯度的方向实际是函数在此上升最快的方向,而我们需要沿着下降最快的放心走
    • 山 可微分的函数
    • 山底 函数的最小值
    • 可能会走到鞍点,没有到达最小值
    • alpha:学习率 步长
    • 梯度加负号
    • w = w - alpha * df(w)/dw
    • 大规模数据 SGDRegressor
  • API

    • from sklearn.linear_model import SGDRegressor
    • SGDRegressoe(loss=‘square_loss’;,fit_intercept=True,learning_rate=‘invscaling’,eta0=0.1)
    • loss 损失 square_loss 普通最小二乘法
    • learnin_rate : 一般是动态更新 invscaling eta=eta0/pow(t,power_t=0.25)
    • eta0学习率
    • 在这里插入图片描述
  • 梯度下降

    • 正规方程和梯度下降对比
      • 梯度下降 需要学习率 正规方程不需要
      • 梯度下降 需要迭代求解 正规方程不需要
    • 全梯度下降算法FG
      • 计算所有样本误差,对其求和再取平均值作为目标值
      • 花费时间成本高,内存存储最大
    • 随机梯度下降算法SG
      • 每轮计算的目标函数 是单个样本误差 每轮梯度更新都与上一轮数据和梯度无关
      • 容易错过最优解 收敛效果不稳定
    • 随机平均梯度下降SAG
      • 每个样本都维护旧梯度,每一轮仅更新一个样本梯度
    • 小批量梯度下降算法Mini-batch
      • 从训练样本集中随机抽取一个小样本 使用最多
  • MSE 均方误差 MSE=1/m * (求和i=1-m) (y_i - y_均值)^2

    • sklearn.metrics.mean_squared_error(y_true,y_pred)
  • 欠拟合和过拟合

    • 欠拟合 训练集、测试集表现不好
    • 解决方法:选择一个新网络架构 花费更多时间 优化算法
    • 过拟合 训练集好 测试集不好
    • 解决方法:重新清洗数据、采用更多数据,采用正则化、减少特征维度
  • 正则化

    • 通过限制高次项的系数 防止过拟合
    • L2范式 把高阶值降低为特别小的值 岭回归Ridge
    • J(w,b) = 1/m(求和)(Loss(y_pre,y_true)) +(λ/2m)* ||w||_2^2
    • L1范式 高次项前面的系数变为0 Lass回归
    • L1范式 J(w,b) = 1/m(求和)(Loss(y_pre,y_true)) +(λ/2m)* |w|
    • 由于绝对值在顶点处不可导,所以会产生很多0,得到稀疏矩阵
    • 弹性网络 通过混和比控制 融合L1范式和L2范式 r=0岭回归 r=1Lass
    • from sklearn.linear_model import Ridge,ElasticNet,Lasso
      • Ridge(alpha=学习率,fit_intercept=True,solve=‘auto’,normalize=False)
      • alpha 正则化 力度越大权重系数越小 力度越小权重系数越大
      • normaliza 默认封装 标准化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值