python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

机器学习就是,交给机器一大堆数据,然后告诉他怎样的学习策略是对的,即目标函数是什么。求解方式需要一步步优化迭代。使用python工具调库是比较简单的,但算法原理不明白的话,使用会受限,因此理论还是大于实际应用的。以下结合案例重点讲解明白算法原理,需要一定的数学基础。

李宏毅老师对回归的定义:

回归Regression 就是找到一个函数 functionfunction ,通过输入特征 xx,输出一个数值 ScalarScalar

例如:

  • 股市预测(Stock market forecast)
    • 输入:过去10年股票的变动、新闻咨询、公司并购咨询等
    • 输出:预测股市明天的平均值
  • 自动驾驶(Self-driving Car)
    • 输入:无人车上的各个sensor的数据,例如路况、测出的车距等
    • 输出:方向盘的角度
  • 商品推荐(Recommendation)
    • 输入:商品A的特性,商品B的特性
    • 输出:购买商品B的可能性

1.线性回归:最基本的算法,但是同样重要,以下为——案例:银行贷款额度预测

1.1数据

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

1.2分析

分类:同意贷款或不同意贷款就是分类问题(逻辑回归实际是一个分类)

回归:贷款的额度就是回归问题

本题目为回归为题。该样本集共有5行即5个样本,输入工资、年龄称为特征,标注为x1,x2,输出额度称为标签y,输入与输出之间的关系就是机器学习的核心。找到最好的一个面来拟合数据,

第一步:假设,建立模型(即线性模型)

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

(其中x0为1,所以在数据预处理的时候,经常添加一个都是1的列,就是为了方便的矩阵计算)

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)1与python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)2与变量相关,对结果影响较大,称为权重参数,python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)0称为偏置参数。

预测值与真实值之间肯定是存在差异的,称为误差

第二步:模型评估,怎么判断模型的好坏

从数学的角度讲我们使用距离来判断模型的好坏,即模型预测值与真实值的差平方以下目标函数越小越好

误差:python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

目标函数值最小的时候,即使误差最小的时候。为了求目标函数的最小值,对其求偏导,偏导等于0时候的点为最值点。ao

(1)为什么都是极小值点呢?可参考凸优化相关理论

(2)注意这里要最终得到的结果是参数矩阵,因此是对python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)求偏导

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

注意:就是这么巧合,线性回归的时候,参数矩阵是可以求出来的。不过,很多时候我们还是只能找到最优项,不能直接求解。

怎么判断求到的是否是最优解的,python中有一个很牛的sklearn库,其中最常用的就是

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

残差平方和:预测值和真实值之间的差异

类似方差项:?

因此评估项越接近1,我们认为结果越好

第三步 模型优化:梯度下降

目标函数的求解,并不总像线性回归这样,可以直接计算出来,大部分时候不能直接求解。通过梯度下降gradient descent不断更新损失函数的结果,损失函数结果会越来越小,这样可以得出最优的参数值。

举例:现在我们在下山,要找到曲线的最低点。当然就是要找到坡度下降最快的位置。每走一步判断是否到达最低点。通常可能需要不下于10-100万次迭代,才能得到最优解。

对于多参数python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)1、python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)2、python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)3需要分别求偏导,分别优化。

案例:

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)0、python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)1开始是一个随机值,找到合适的方向走一小步,并按照方向(偏导)和步伐去更新参数值

2.1批量梯度下降

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

特点:容易得到最优解,但由于考虑所有参数,速度很慢

2.2随机梯度下降

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

特点:每次使用一个样本,迭代速度快,但每次收敛的方向不一定相同

2.3小批量梯度下降

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

特点:每次选择小部分数据,比较实用,16,32,64,128等。

三种都有,小梯度下降用的较多

2.4学习率(步长)对结果的影响

步长对结果有比较大的影响,一般应尽可能选择小步长,批处理数据则根据内存和效率,一般选择2的倍数32、64、128都可以,一般能多大就尽量多大。一般batch越大,结果越稳定。

常用的套路:如果模型不收敛,可能就是迭代率太高,可以调小。比如刚开始的迭代率稍微大一些比如0-1万次迭代的时候,迭代率0.1,1万到2万次迭代时,跌倒率降为0.005,2万到10万次迭代的时候,迭代率降为0.001.

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

下面理论重点来了:

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

这个知识点对理解后续机器学习算法非常重要,必须重点学习

首先,什么叫独立

测量误差的产生是独立。每一条数据都是独立的,算法会平等的对待每条数据。

其次什么叫相同的分布

预测的是同一家银行。构造的算法数据,来源相同。

机器学习算法建立在独立,同分布基础上的。

最后,高斯分布

均值为0,标准差为σ。

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),最早由A.棣莫弗在求二项分布的渐近公式中得到。

随机变量X服从一个数学期望为μ、方差为σ^2的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

似然函数:什么样的参数与我们的数据组合后恰好是真实值?由数据去推参数是什么

统计学中,似然函数是一种关于统计模型参数的函数。给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:L(θ|x)=P(X=x|θ)。

似然函数在推断统计学(Statistical inference)中扮演重要角色,尤其是在参数估计方法中。在教科书中,似然常常被用作“概率”的同义词。但是在统计学中,二者有截然不同的用法。概率描述了已知参数时的随机变量的输出结果;似然则用来描述已知随机变量输出结果时,未知参数的可能取值。

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)

接近真实值的概率越大越好,即最大似然估计。

python数据分析与机器学习笔记(五)——线性回归算法(云课堂学习笔记)