参数估计-3| 学习笔记

简介: 快速学习参数估计-3。

开发者学堂课程【机器学习算法 :参数估计-3】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7223


参数估计-3

 

内容介绍

一、梯度算法流程

二、牛顿迭代法

三、逻辑回归的基本假设

四、逻辑回归案例:鸢尾花数据集

五、逻辑回归案例:BGA

六、多分类逻辑回归

 

一、梯度算法流程

1.批量梯度上升(下降)法的算法流程:

首先要设定一个学习率,给回归参数指定一个初始化的值,有了初始化的值才能根据更新公式去更新。

初始化值:回归参数、学习率等重复执行,直到满足循环次数:

计算当前参数下样本的估计值,计算估计值和真实值的差,判断是否可以退出。如果这个差可以小于设定的阈值就退出,否则的话就要计算梯度。

计算梯度

按照梯度和学习率更新回归参数返回回归系数值

2.随机梯度上升(下降)法的算法流程:

初始化值:回归参数、学习率等重复执行,直到满足循环次数:

对一个(小批次)样本

计算当前参数下样本的估计值,计算估计值和真实值的差,判断是否可以退出。

计算梯度

按照梯度和学习率更新回归参数

返回回归系数值

 

二、牛顿迭代法

牛顿迭代法(Newton's Method)通过不断求切线迭代求解函数方程根的办法。

已知待解方程 f(x)=0,求解其方程根。

随机找到定义域中的值image.png计算其对应的值f(image.png),如果If(image.png)-f(x)I<ε,得到解image.png

否则:计算过点(image.png,f(image.png))的f(x)切线斜率f´(image.png)

写出该切线的点斜式:f(x)-f(image.png)=f´(image.png)*(x-image.png)

求切线和 x 轴的交点,即解方程:-f(image.png)=f´(image.png)*(x-image.png)

记得到的解为image.png,其迭代公式为:image.png

通常image.pngimage.png更接近方程f(x)=0的解,使用迭代方式继续迭代。

image.png

首先找到image.png并求值,然后找到它的切线,和 x 轴的交点就是下一个值,就这样迭代下去一直到满足循环次数或者是算出来的函数值和原函数值的差小于预先设定的阈值。

 

三、逻辑回归的基本假设

因变量为二分类的分类变量或某事件的发生率,并且是数值型变量。

残差和因变量都要服从二项分布,二项分布对应的是分类变量,所以不是正态分布,进而不是用最小二乘法,而是最大似然法来解决方程估计和检验问题。

自变量和 Logistic 概率是线性关系。当把这个因变量的分类变量转化成 Logistic 函数,它和自变量就是线性关系了。

各观测对象间相互独立,共线性问题会影响逻辑回归的参数估计和预测。如果不相互独立,那前面的最大似然函数就不能用了。

 

四、逻辑回归案例:鸢尾花数据集

image.png

鸢尾花有三种,有山鸢尾、杂色鸢尾和维吉尼亚鸢尾。因为做的是二分类,所以只取其中的两类数据。其中把山鸢尾记作是0,杂色鸢尾记作是1。

只使用两个类的数据,其中每类40条用于训练,10条用于测试。整个训练数据集共有80条数据,测试数据集有20条数据。

 

五、逻辑回归案例:BGA

根据数据和任务说明:image.png,其中image.png

这里的 y 就是0和1,或者是0发生的概率和1发生的概率的比值。假设当前参数的初始值为1,学习率就是步长为0.01,最大循环次数为10000次,当前循环次数是1,要对它进行初始化。所有的 β 参数设成是1,一旦满足了最大循环次数就退出。

计算当前参数下的估计值(以4条数据为例):因为数据量比较大,不太容易展示。

image.png

image.png

image.png

image.png

计算梯度:image.png

=image.png+image.png+image.png

按梯度更新回归参数:image.png

image.png

当前参数取值:β=image.png

计算梯度:image.png

=image.png*image.png=image.png

按梯度更新回归参数:image.png

=image.png=image.png

image.png

image.png

这个时候的值已经接近实际结果了。

通过误差大小控制,退出循环,例如要求误差 ε≤0.05,currLoop=426

使用测试数据预测:image.png

image.png

image.png

image.png

小于0.5就认为是0,大于0.5就认为是1,实际上这个预测的结果和数据的结果是一样的。这就是手工使用逻辑回归小数据集来更新参数去算模型以及使用这个模型做预测的整个过程。

 

六、多分类逻辑回归

如果处理合适的话,这个逻辑回归也可以处理多分类的情形。比如取值为a,b,c,d,e。要对 a 来讲的话,如果记录取 a 就认为它等于1,取其它的值就认为它等于0。

当因变量的取值数超过2个时,即转化为多分类回归问题。两种常见解决办法:

构建多个二分类逻辑回归模型,即对每一个取值,都构建一个(1,0)的二分类逻辑回归模型。指定一个取值为参照类,其余类型和参照类逐个进行回归。假设有k个取值,设第k个为参照类,则需要建立以下k-1个逻辑回归模型:

image.png

整理得到:image.png

概率和归一:image.png

image.png

使用 softmax 作为损失函数。Softmax 适用于多分类,将输出映射到(0,1)区间内,含义为属于当前分类的概率。

其公式为:image.png

image.png

比如多分类,每个分类的取值概率,如果直接取 max 值的话,每次只有最大的有机会出现。Softmax 就是按照每一个分类对应的值的大小让每一个分类都有机会输出。Softmax 的应用是非常广的,特别是适用于多分类。如果想弄清楚多分类的逻辑回归的话,还可以使用数据集。

相关文章
|
Kubernetes 安全 Linux
使用kubeadm快速部署一个k8s集群
使用kubeadm快速部署一个k8s集群
|
7月前
|
Ubuntu Linux Windows
IP地址查看方法
本指南介绍了在不同操作系统中查看设备IP地址的方法。在Windows系统中,可通过命令提示符(输入`ipconfig`)或设置界面查找IPv4地址;Linux系统中,使用终端命令`ifconfig`或`ip addr show`获取网络接口的IP;Mac系统则可在“系统偏好设置”中的“网络”查看,或通过终端执行相同命令获取。这些方法简单易行,适用于各种常见场景。
3539 11
|
8月前
|
人工智能 缓存 NoSQL
高并发秒杀系统设计:关键技术解析与典型陷阱规避
在电商、在线票务等场景中,高并发秒杀活动对系统性能和稳定性提出极大挑战。海量请求可能导致服务器资源耗尽、数据库锁争用及库存超卖等问题。通过飞算JavaAI生成的Redis + Lua分布式锁代码,可有效解决高并发下的锁问题,提升系统QPS达70%,同时避免缓存击穿与库存超卖。相较传统写法,AI优化代码显著提高性能与响应速度,为高并发系统开发提供高效解决方案。
Julia 交互式命令窗口
启动 Julia 交互式环境,输入 `julia`,显示版本信息后进入 `julia&gt;` 提示符。使用 `exit()` 或者按 CTRL-D 退出。要运行 `.jl` 文件,如 `baidu_test.jl`(包含打印 &quot;Hello World!&quot;、&quot;baidu&quot; 和 2 的语句),执行 `julia baidu_test.jl`。
|
编译器 C++
offsetof宏的使用、模拟实现及 (size_t)&(((struct_type*)0)->mem_name)的解释
offsetof宏的使用、模拟实现及 (size_t)&(((struct_type*)0)->mem_name)的解释
|
网络虚拟化 Shell 数据安全/隐私保护
|
4天前
|
数据采集 人工智能 安全