python如何计算概率事件_怎样用Python实现统计、概率、机器学习基础实验?一文看懂...

本文介绍了概率论与统计学在机器学习中的基础,包括概率的基本概念、正态分布和中心极限定理。通过Python代码模拟了硬币投掷试验,展示了如何使用统计方法验证概率理论。同时,文章还探讨了正态分布的重要性,并介绍了如何利用Z-score分析不同葡萄酒评分的分布差异,揭示了统计在实际问题中的应用。
摘要由CSDN通过智能技术生成

导读:概率论与统计学是机器学习的基础,但很多初学者不太了解它们。本文介绍了概率及统计的基本概念、联系以及用法,并以正态分布为例展示了什么是概率分布、分布函数以及经验法则。同样本文还概念性地解释了中心极限定理,以及为什么正态分布在整个统计学中如此重要。此外,本文很多试验都可以用 Python 实现,不了解 Python 的读者也可以跳过。

作者:Christian Pascual

参与:王淑婷、思源

来源:机器之心(ID:almosthuman2014)编译

要学习统计,就不可避免得先了解概率问题。概率涉及诸多公式和理论,容易让人迷失其中,但它在工作和日常生活中都具有重要作用。先前我们已经讨论过描述性统计中的一些基本概念,现在,我们将探讨统计和概率的关系。

前提条件:

本文不要求读者具备统计知识,但至少要对 Python 有一个基本的了解。考虑到读者可能不太了解 for 循环和列表, 下面将先对它们做个简单的介绍。

01 什么是概率?

从最基本的层面上来说,概率要回答的是一个这样的问题:「一个事件发生的几率是多少?」为了计算某个事件发生的几率,我们还要考虑其它所有可能发生的事件。

概率问题的典型代表是扔硬币。在扔硬币的过程中,只会产生两种结果:

1. 正面朝上

2. 反面朝上

这两种结果构成了一个样本空间,即所有可能结果的集合。为了计算一个事件发生的概率,我们要统计该事件发生(比如将硬币掷为正面朝上)的次数,并用它除以总试验次数。因此,概率会告诉我们,把一枚硬币掷为正面朝上或反面朝上的几率为 1/2。通过观察可能发生的事件,概率可以为我们提供一个预测事件发生频率的框架。

然而,即使结果看起来很明显,但如果我们真的试着去扔一些硬币,我们很可能得到过高或过低的正面朝上概率。假设扔硬币的做法不公平,那我们能做什么?收集数据!我们可以使用统计法来计算基于真实世界观察样本的概率,并将其与理想中的概率做对比。

02 从统计到概率

通过扔 10 次硬币并计算正面朝上的次数,我们可以获得数据。我们把这 10 次扔硬币的过程当做试验,而硬币正面朝上的次数将是数据点。也许正面朝上的次数不是「理想的」5 次,但不必着急,因为一次试验只是一个数据点。

如果进行多次试验,那我们预计所有试验正面朝上的的平均概率将接近 50%。下面的代码分别模拟了 10 次、100 次、1000 次和 1000000 次试验,然后计算了正面朝上的平均频率。下图是对这一过程的总结。

144867808_2_20180921073356988

import randomdef coin_trial():    heads = 0    for i in range(100):        if random.random() <>0.5:            heads +=1    return headsdef simulate(n):   trials = []   for i in range(n):       trials.append(coin_trial())   return(sum(trials)/n)simulate(10)>> 5.4simulate(100)>>> 4.83simulate(1000)>>> 5.055simulate(1000000)>>> 4.999781

coin_trial 函数代表了 10 次硬币投掷的模拟。它使用 random() 函数来生成一个介于 0 和 1 之间的随机浮点数,如果浮点数在 0.5 以下,它会增加 heads(正面朝上)次数。然后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值