机器学习:Python概率入门

了解概率密度

为了理解基于勒贝格积分理论的现代概率的核心,我们需要从基本演算中扩展积分的概念。 首先,让我们考虑以下分段函数

在微积分中,您学习了黎曼积分,可以在此处应用

通常将其解释为组成f(x)的两个矩形的面积。

通过勒贝格集成,除了我们专注于y轴而不是沿x轴移动之外,这个想法非常相似。 给定问题f(x)= 1,这是真的x个值的集合是什么? 对于我们的示例,每当x∈(0,1]时,这都是正确的。因此,现在我们在函数的值(即1和2)与x值的集合之间具有对应关系,即{ (0,1]}和{(1,2]}。要计算积分,我们只需简单地取函数值(即1,2)和某种方法来测量相应区间的大小(即,μ ),如下所示:

简单的分段常数函数

为了强调通用性,我们取消了上述某些表示法。 请注意,当μ((0,1])=μ((1,2])= 1时,我们获得的积分值与黎曼情况相同。通过引入μ函数作为测量上述区间的一种方式, 我们在集成中引入了另一个自由度,它容纳了许多使用通常的黎曼理论无法处理的怪异功能,但我们为您提供了对勒贝格集成的适当介绍,以供进一步研究。 上面的讨论是引入μ函数,我们将再次遇到它作为所谓的概率密度函数。

随机变量

大多数关于概率的介绍都直接跳入随机变量,然后解释了如何计算复杂的积分。 这种方法的问题在于它跳过了我们现在要考虑的一些重要的细微之处。 不幸的是,术语“随机变量”不是很具描述性。 更好的术语是可测量的功能。 为了理解为什么这是一个更好的术语,我们必须通过一个简单的例子深入探讨概率的形式构造。

考虑扔一个公平的六面骰子。 可能只有六种结果,

Ω = {1, 2, 3, 4, 5, 6}

众所周知,如果骰子是公平的,那么每个结果的概率是1/6。 正式地说,每个集合(即{1},{2},…,{6})的度量为μ({1})=μ({2})… =μ({ 6})= 1/6。 在这种情况下,我们前面讨论的μ函数是通常的概率质量函数,用P表示。可测量函数将集合映射为实线上的数字。 例如,{1}→1是一种这样的函数。

现在,这里变得有趣起来。 假设要求您从公平骰子中构造公平硬币。 换句话说,我们要掷骰子,然后将结果记录下来,就好像我们刚刚扔了一个公平的硬币一样。 我们该怎么做? 一种方法是定义一个可测量的函数,该函数说如果骰子出现3个或更少,则我们声明头,否则声明尾。 它背后有很强的直觉,但让我们从形式理论的角度进行阐述。 此策略创建两个不同的非重叠集{1、2、3}和{4、5、6}。 每个集合具有相同的概率测度

P({1, 2, 3}) = 1/2

P({4, 5, 6}) = 1/2

问题就解决了。 每当骰子出现{1、2、3}时,我们记录头,否则记录尾。

这是从公平的骰子中构建公平的硬币实验的唯一方法吗? 或者,我们可以将集合定义为{1},{2},{3、4、5、6}。 如果我们为每个集合定义相应的度量如下

P({1}) = 1/2

P({2}) = 1/2

P({3, 4, 5, 6}) = 0

然后,我们有另一个解决公平硬币问题的方法。 为了实现这一点,我们每次骰子显示3、4、5、6并再次抛出时都忽略不计。 虽然这很浪费时间,但是可以解决问题。我们希望您能看到该理论的相互联系的部分如何为将不确定性的概念从一个问题转移到下一个问题提供框架。

让我们考虑一个更有趣的问题,我们掷两个骰子。 我们假设每个掷都是独立的,这意味着一个掷骰不会影响另一个掷骰。 在这种情况下有哪些集? 它们都是两次抛出的可能结果对,如下所示,

Ω = {(1, 1), (1, 2), . . . , (5, 6), (6, 6)}

这些集合各有什么量度? 根据独立要求,每个量度是每个元素的相应量度的乘积。 例如,

P((1, 2)) = P({1})P({2}) =

建立了所有这些条件之后,我们可以提出以下问题:骰子的总和等于7的概率是多少? 像以前一样,要做的第一件事就是将可测量的函数表征为X:(a,b)→(a + b)。 接下来,我们将所有(a,b)对与其和相联系。 我们可以为此创建一个Python字典,如下所示:

</>

下一步是收集所有(a,b)对,它们的总和为两个到十二个可能的值。

</>

例如,dinv [7]包含以下总和为7的对列表

dinv[7]
[(1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1)]

下一步是计算针对这些项目中的每一项测得的概率。 使用独立性假设,这意味着我们必须计算dinv中各个项目概率的乘积之和。 因为我们知道每个结果的可能性均等,所以每个项在总和中的概率等于1/36。 因此,我们要做的就是为dinv中的每个键计算相应列表中的项数,然后除以36。例如,dinv [11]包含[(5,6),(6,5)]。 5 + 6 = 6 + 5 = 11的概率是该集合的概率,它由各个元素(5,6),(6,5)的概率之和组成。 在这种情况下,我们有P(11)= P({(5,6)})+ P({{6,5)})= 1/36 + 1/36 = 2/36。 对所有元素重复此过程,我们得出概率质量函数,如下所示

</>

上面的示例展示了概率论的要素,它在解决这个简单问题的同时有意隐瞒了一些麻烦的技术细节。 有了这个框架,我们可以问其他问题,例如三个骰子的乘积一半超过其总和的概率是多少? 我们可以使用以下相同的方法解决此问题。 首先,让我们创建第一个映射,

</>

该字典的键是三元组,值是三个骰子乘积的一半是否超过其总和的逻辑值。 现在,我们进行逆映射以收集相应的列表,

</>

请注意,dinv仅包含两个键,即True和False。 同样,由于骰子是独立的,所以任何三元组的概率为1/63。 最后,我们为每个结果收集此数据,如下所示

</>

因此,三个骰子乘积超过其总和的一半的概率为136 / 6.0 ** 3)= 0.63。 由随机变量引起的集合中只有两个元素,即True和False,其中P(True)= 136/216和P(False)= 1-136/216。

最后一个示例,让我们考虑两个骰子的第一个问题,我们希望获得7的概率,但是这次骰子中的一个不再公平。 不公平骰子的分配如下:

P({1}) = P({2}) = P({3}) =

P({4}) = P({5}) = P({6}) =

从我们的之前的工作中,我们知道对应于七个总数的元素如下:

{(1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1)}

因为我们仍然具有独立性假设,所以我们需要更改的只是每个元素的概率计算。 例如,假设第一个骰子是不公平的,我们有

P((1, 6)) = P(1)P(6) =

对于(2,5)同样,我们具有以下内容:

P((2, 5)) = P(2)P(5) =

等等。 将所有这些内容相加得出以下结果:

让我们尝试使用Pandas而不是Python字典来计算。 首先,我们构造一个具有由所有可能的骰子结果对组成的元组索引的DataFrame对象。

</>

现在,我们可以填充上面设置的列,第一个骰子的结果为d1列,第二个骰子的结果为d2,

</>

接下来,我们计算sm列中的骰子总和

</>

建立了该名称后,DataFrame现在如下所示:

</>

接下来,我们为不公平骰子(d1)和不公平骰子(d2)的每个面填充概率

</>

最后,我们可以计算出所显示面的总和的联合概率,如下所示:

</>

建立了所有这些之后,我们可以使用groupby来计算所有骰子结果的密度,如下所示

</>

这些示例说明了概率理论如何分解集合和这些集合的度量,以及如何将它们组合以开发新的随机变量的概率质量函数。

连续随机变量

相同的想法适用于连续变量,但是管理集合变得更加棘手,因为与离散集合不同,实际生产线具有许多内置的限制属性,必须谨慎处理。 尽管如此,让我们从一个示例开始,该示例应说明类似的想法。 假设随机变量X均匀分布在单位间隔上。 变量的值小于1/2的概率是多少?

为了在离散情况下建立直觉,让我们回到使用公平骰子的掷骰子实验。 骰子的值之和是可测量的函数

也就是说,Y是集合的笛卡尔积到离散结果集的映射。 为了计算结果集的概率,我们需要从每个骰子的对应概率度量中得出Y,

的概率度量。 我们之前的讨论是通过这种机制进行的。 这意味着

详情参阅 - 亚图跨际

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值