统计学习算法——逻辑斯谛回归

内容来自B站Up主:动画讲编程https://www.bilibili.com/video/BV1CR4y1L7RC、风中摇曳的小萝卜https://www.bilibili.com/video/BV17r4y137bW,仅为个人学习所用。

极大似然估计

几率、概率与似然

几率是指某个事件发生的可能性与不发生的可能性之比,即事件发生的几率和不发生的几率的比值。

概率是在特定条件下某事件发生的可能性,在结果没有产生前,根据条件去估算某个事件发生的概率,通常用一个0到1之间的数值表示。

似然的概念与概率相反,是根据已知的事件结果来推测该事件可能在什么条件下发生。我们都知道,抛出一枚质地均匀的硬币,人像和数字在上的概率分别为0.5,假设抛出一枚硬币1万次,其中8千次人像在上,2千次数字在上,那么可以判断该硬币的构造可能有问题,进而推测该硬币的一些参数。

设 θ \theta θ为条件对应的参数, x x x表示事件发生的结果,在 θ \theta θ条件下 x x x发生的概率表示为 P ( x ∣ θ ) P(x|\theta) P(x∣θ), P P P是关于 x x x的函数;似然则相反,表示为 L ( θ ∣ x ) L(\theta|x) L(θ∣x),即在已经结果 x x x的条件下, θ \theta θ发生的概率, L L L是关于 θ \theta θ的函数。

极大似然估计

极大似然估计是在已知观测数据的情况下,找到使这些数据出现的可能性最大的模型参数,即根据事件 x x x的观察结果,推断 θ \theta θ是多少的时候,结果 x x x最有可能发生。

继续抛硬币实验,通过具体实验来得出 θ \theta θ。仍然抛硬币10次,其中7次人像在上,3次数字在上

假设结果服从二项分布,那么有 L ( θ ) = θ 7 ( 1 − θ ) 3 (有 7 次人像朝上,为 7 个 θ 相乘,其他的同理) L(\theta)=\theta^7(1-\theta)^3 (有7次人像朝上,为7个\theta相乘,其他的同理) L(θ)=θ7(1−θ)3(有7次人像朝上,为7个θ相乘,其他的同理)

通过该图像发现,当 θ \theta θ取值为0.7时,函数值达到最大值,说明在当前条件下,最可能发生7次人像在上,3次数字在上。

逻辑斯蒂回归

引入

小明的战队与对手比赛,但小明的战队比较慢热,刚开始找不到手感,与对手零十开,到了10分钟时,与对手一九开,到了游戏中期,手感上来了,与对手五五开,游戏后期达到九一开甚至十零开。

因为中期的比赛形势不确定,小明想知道在第26分钟的时候能和对面几几开呢?

计算过程

这里说的几几开是指赢下比赛和输掉比赛可能性的比值 几几开 ( 几率 ) = p 1 − p 几几开(几率)=\frac{p}{1-p} 几几开(几率)=1−pp

列出相关几率如下图

转为小数

当战队十分可能输给对手的时候,赢的几率接近于0,而当战队非常可能赢的时候,该几率更接近于 + ∞ +\infty +∞。

这种对称轴不对称,不好分析问题,使用几率的对数来分析问题,将数据从正半轴映射到整条数据周轴上。

若以对数几率为y轴,时间为x轴,可以得到线性回归直线。

通过计算每个点到直线的距离差,然后做最小二乘的优化,可以得到一条最完美的直线来拟合这些数据。查询x轴上某一点,就可以得到当前时间赢下这场比赛的可能性。

问题是有许多点分布在 + ∞ +\infty +∞与 − ∞ -\infty −∞上,如何计算距离误差?

将该直线重新映射回概率空间,通过一系列计算,可以得到逻辑斯蒂函数。

代入 y = w x + b y=wx+b y=wx+b,得出逻辑斯蒂回归的概率函数

因此,可以理解为:概率空间里的逻辑斯蒂回归就是对数几率空间里的线性回归。

在概率空间中,可以使用极大似然估计来得到最好的逻辑斯蒂曲线。

假设在时间 x x x的条件下,赢下比赛(y=1)的几率为 p p p,输掉比赛(y=0)的几率为 1 − p 1-p 1−p

注意:与前面的函数计算方法类似( L ( θ ) = θ 7 ( 1 − θ ) 3 L(\theta)=\theta^7(1-\theta)^3 L(θ)=θ7(1−θ)3)

由于一系列式子的乘积是不太容易优化的表达,取对数变成其加法形式

展开括号,整理,有

标黄的 l o g log log部分是对数几率,概率空间里的逻辑斯蒂回归就是对数几率空间里的线性回归,将其替换成直线方程, p i p_i pi是逻辑斯蒂函数,代入,得出如下结果

继续优化得到最好的参数值

a r g m a x argmax argmax函数:找出使函数取得最大值的自变量。假设教计算机识别图片是猫、狗还是兔子。计算机对一张图片会输出三个数字[0.2,0.7.0.1],比如说 ,这三个数字分别代表这张图片是猫、狗、兔子的可能性。这里的函数就是计算可能性的那个规则。那 argmax 就是帮你找出哪个可能性最大。在这个例子中,最大的是0.7 ,对应的是狗,所以计算机就会认为这张图片是狗。

将时间代入,就可以得到相关的概率。

相关推荐
小王努力学编程30 分钟前
【Linux网络编程】应用层协议HTTP(实现一个简单的http服务)
linux·服务器·网络·c++·网络协议·学习·http
viperrrrrrrrrr731 分钟前
大数据学习(112)-HIVE中的窗口函数
hive·sql·学习
点云SLAM32 分钟前
点云配准算法之NDT算法原理详解
人工智能·算法·数学建模·点云配准算法·ndt配准算法·概率模型配准算法
*TQK*40 分钟前
CSS学习笔记8——表格
css·笔记·学习·html
AI蜗牛车42 分钟前
【LLM+Code】Cursor Agent 46.11 版本Prompt&Tools最细致解读
人工智能·算法·语言模型
奋进的小暄1 小时前
数据结构(java)二叉树的基本操作
java·数据结构·算法
是店小二呀1 小时前
【优选算法 | 滑动窗口】滑动窗口算法:高效处理子数组和子串问题
c++·算法
robin_suli2 小时前
链表系列一>两两交换链表中的结点
数据结构·算法·链表
KyollBM2 小时前
【CF】Day44——Codeforces Round 908 (Div. 2) C + Codeforces Round 1020 (Div. 3) DE
算法
努力学习的小廉2 小时前
我爱学算法之—— 二分查找(上)
开发语言·c++·算法