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

内容来自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 ,对应的是狗,所以计算机就会认为这张图片是狗。

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

相关推荐
深图智能6 分钟前
深度学习基础知识
人工智能·深度学习·算法
赔罪12 分钟前
Java 数组排序
java·算法·java-ee·排序算法·数组排序
江木12314 分钟前
CUDA C 编程入门学习记录
c语言·开发语言·学习
结衣结衣.1 小时前
LeetCode热题100(滑动窗口篇)
java·c++·python·算法·leetcode·职场和发展
鹿屿二向箔1 小时前
搭建一个基于Spring Boot的书籍学习平台
spring boot·后端·学习
孑么1 小时前
力扣 完全平方数
java·算法·leetcode·职场和发展·动态规划
Joyner20182 小时前
python-leetcode-存在重复元素 II
算法·leetcode·职场和发展
明朝百晓生2 小时前
【无线感知会议系列-21 】无线感知6G 研究愿景
网络·人工智能·算法·5g
有梦想有行动2 小时前
kafka学习
学习
学测绘的小杨2 小时前
数字艺术类专业人才供需数据获取和分析研究
大数据·人工智能·算法