[笔记]机器学习之线性回归、L1回归、L2回归

  线性回归是机器学习领域里研究最多的算法,至今已有200年研究历史了。

线性回归

  线性回归可用一条线表示输入值X和输出值Y之间的关系,这条线的斜率的值,也叫系数。最简单的线性回归可表示为y=ax+b。机器学习的目的就是给定数据样本(x,y),利用学习得到a,b。得到a和b后,就可以给定已知的x求出未知的y,这就是机器学习的目的和意思。
  进而我们可以推广到多个变量的情况,求得对于每一个特征就有一个相对的系数。
  这里写图片描述
  通过一系列的数学推导可以得到这里写图片描述
  线性回归的目标函数为
  这里写图片描述

L1回归

  L1回归是在线性回归的基础之上,对线性回归的目标函数增加一个绝对和的惩罚因子而得到的新的回归模型。之所以推导出L1回归,是为了解决模型学习过程中发生的过拟合现象。
  这里写图片描述

L2回归

  L2回归是在线性回归的基础之上,对线性回归的目标函数增加一个平方和的惩罚因子而得到的新的回归模型。L2回归也可以有效的防止过拟合现象,并且在大多数情况下L2回归的效果可能比L1回归要好。
  这里写图片描述

求系数的方案

  线性回归的系统求解方案我们可以依从目标函数的推导过程中求出的theta值的方案,即给定X的矩阵,求解X的转置矩阵,然后求X的转置和X的积的逆,从而求得系统theta。当然,我们会发现,当数据量很大的时候,即X很大,求解其逆矩阵的很麻烦的一件事,因此我们需要使用其他的方案来求解。
  目前,机器学习常用的方案是梯度下降算法。梯度下降算法是方案是:
- 给定theta的初始值(随机初始化的值,甚至可以给0)
- 给定学习率值,即梯度下降的步长
- 沿着负梯度方向进行迭代,得到新的theta值,更新后的theta使得目标函数更小
如此反复,最后总能求得最小值。这里写图片描述根据迭代的频率来说,求完所有的值才进行迭代更新的叫做批量梯度下降算法;每次求出一个theta值就进行一次迭代的叫做随机梯度下降算法。

使用sklearn进行线性回归

  以下为使用sklearn进行线性回归的代码,使用的数据是网上down的Advertising.csv,是一个关于广告投入和销售预测的数据。

使用matplotlib打印出数据看下具体分布情况

1.数据绘制在一张图中
# -*- coding: utf-8 -*-
# @File : intro.py
__author__ = 'kestiny'

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection <
  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值