开发者学堂课程【机器学习算法 :参数估计-3】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7223
参数估计-3
内容介绍
一、梯度算法流程
二、牛顿迭代法
三、逻辑回归的基本假设
四、逻辑回归案例:鸢尾花数据集
五、逻辑回归案例:BGA
六、多分类逻辑回归
一、梯度算法流程
1.批量梯度上升(下降)法的算法流程:
首先要设定一个学习率,给回归参数指定一个初始化的值,有了初始化的值才能根据更新公式去更新。
初始化值:回归参数、学习率等重复执行,直到满足循环次数:
计算当前参数下样本的估计值,计算估计值和真实值的差,判断是否可以退出。如果这个差可以小于设定的阈值就退出,否则的话就要计算梯度。
计算梯度
按照梯度和学习率更新回归参数返回回归系数值
2.随机梯度上升(下降)法的算法流程:
初始化值:回归参数、学习率等重复执行,直到满足循环次数:
对一个(小批次)样本
计算当前参数下样本的估计值,计算估计值和真实值的差,判断是否可以退出。
计算梯度
按照梯度和学习率更新回归参数
返回回归系数值
二、牛顿迭代法
牛顿迭代法(Newton's Method)通过不断求切线迭代求解函数方程根的办法。
已知待解方程 f(x)=0,求解其方程根。
随机找到定义域中的值计算其对应的值f(),如果If()-f(x)I<ε,得到解
否则:计算过点(,f())的f(x)切线斜率f´()
写出该切线的点斜式:f(x)-f()=f´()*(x-)
求切线和 x 轴的交点,即解方程:-f()=f´()*(x-)
记得到的解为,其迭代公式为:
通常比更接近方程f(x)=0的解,使用迭代方式继续迭代。
首先找到并求值,然后找到它的切线,和 x 轴的交点就是下一个值,就这样迭代下去一直到满足循环次数或者是算出来的函数值和原函数值的差小于预先设定的阈值。
三、逻辑回归的基本假设
因变量为二分类的分类变量或某事件的发生率,并且是数值型变量。
残差和因变量都要服从二项分布,二项分布对应的是分类变量,所以不是正态分布,进而不是用最小二乘法,而是最大似然法来解决方程估计和检验问题。
自变量和 Logistic 概率是线性关系。当把这个因变量的分类变量转化成 Logistic 函数,它和自变量就是线性关系了。
各观测对象间相互独立,共线性问题会影响逻辑回归的参数估计和预测。如果不相互独立,那前面的最大似然函数就不能用了。
四、逻辑回归案例:鸢尾花数据集
鸢尾花有三种,有山鸢尾、杂色鸢尾和维吉尼亚鸢尾。因为做的是二分类,所以只取其中的两类数据。其中把山鸢尾记作是0,杂色鸢尾记作是1。
只使用两个类的数据,其中每类40条用于训练,10条用于测试。整个训练数据集共有80条数据,测试数据集有20条数据。
五、逻辑回归案例:BGA
根据数据和任务说明:,其中
这里的 y 就是0和1,或者是0发生的概率和1发生的概率的比值。假设当前参数的初始值为1,学习率就是步长为0.01,最大循环次数为10000次,当前循环次数是1,要对它进行初始化。所有的 β 参数设成是1,一旦满足了最大循环次数就退出。
计算当前参数下的估计值(以4条数据为例):因为数据量比较大,不太容易展示。
计算梯度:
=++
按梯度更新回归参数:
当前参数取值:β=
计算梯度:
=*=
按梯度更新回归参数:
==
这个时候的值已经接近实际结果了。
通过误差大小控制,退出循环,例如要求误差 ε≤0.05,currLoop=426
使用测试数据预测:
小于0.5就认为是0,大于0.5就认为是1,实际上这个预测的结果和数据的结果是一样的。这就是手工使用逻辑回归小数据集来更新参数去算模型以及使用这个模型做预测的整个过程。
六、多分类逻辑回归
如果处理合适的话,这个逻辑回归也可以处理多分类的情形。比如取值为a,b,c,d,e。要对 a 来讲的话,如果记录取 a 就认为它等于1,取其它的值就认为它等于0。
当因变量的取值数超过2个时,即转化为多分类回归问题。两种常见解决办法:
构建多个二分类逻辑回归模型,即对每一个取值,都构建一个(1,0)的二分类逻辑回归模型。指定一个取值为参照类,其余类型和参照类逐个进行回归。假设有k个取值,设第k个为参照类,则需要建立以下k-1个逻辑回归模型:
整理得到:
概率和归一:
使用 softmax 作为损失函数。Softmax 适用于多分类,将输出映射到(0,1)区间内,含义为属于当前分类的概率。
其公式为:
比如多分类,每个分类的取值概率,如果直接取 max 值的话,每次只有最大的有机会出现。Softmax 就是按照每一个分类对应的值的大小让每一个分类都有机会输出。Softmax 的应用是非常广的,特别是适用于多分类。如果想弄清楚多分类的逻辑回归的话,还可以使用数据集。