加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

数据科学中的常见的6种概率分布(Python实现)

发布时间:2020-03-26 15:13:57 所属栏目:评测 来源:站长网
导读:副标题#e# 介绍 拥有良好的统计背景对于数据科学家的日常工作可能会大有裨益。每次我们开始探索新的数据集时,我们首先需要进行探索性数据分析(EDA),以了解某些特征的概率分布是什么。如果我们能够了解数据分布中是否存在特定模式,则可以量身定制最适合我

我们日常生活中发生的许多常见现象都遵循正态分布,例如:经济中的收入分布,学生的平均报告数量,平均身高等。此外,中心极限定理说明,在适当的条件下,大量相互独立随机变量的均值经适当标准化后依分布收敛于正态分布。

n = np.arange(-50, 50) 

mean = 0 

normal = stats.norm.pdf(n, mean, 10) 

plt.plot(n, normal) 

plt.xlabel('Distribution', fontsize=12) 

plt.ylabel('Probability', fontsize=12) 

plt.title("Normal Distribution") 

数据科学中的常见的6种概率分布(Python实现)

可以看出正态分布的特征:

曲线在中心对称。 因此,均值,众数和中位数都相等,从而使所有值围绕均值对称分布。

分布曲线下的面积等于1(所有概率之和必须等于1)

可以使用以下公式得出正态分布

数据科学中的常见的6种概率分布(Python实现)

使用正态分布时,均值和标准差起着非常重要的作用。如果我们知道它们的值,通过概率分布即可轻松找出预测精确值的概率。根据正态分布的特性,68%的数据位于均值的一个标准差范围内,95%的数据位于均值的两个标准差范围内,99.7%的数据位于均值的三个标准差范围内。

数据科学中的常见的6种概率分布(Python实现)

许多机器学习模型被设计为遵循正态分布有最佳效果。以下是一些示例:

高斯朴素贝叶斯分类器

线性判别分析

二次判别分析

基于最小二乘的回归模型

在某些情况下可以通过对数和平方根等变换将非正态数据转换为正态形式。

泊松分布

泊松分布通常用于查找事件可能发生或不发生的频率,还可用于预测事件在给定时间段内可能发生多少次。

例如,保险公司经常使用泊松分布来进行风险分析(预测在预定时间段内发生的车祸事故数),以决定汽车保险的定价。

当使用泊松分布时,我们可以确信发生不同事件之间的平均时间,但是事件发生的确切时刻在时间上是随机间隔的。

泊松分布可以使用以下公式建模,其中λ表示单位时间(或单位面积)内随机事件的平均发生率。

数据科学中的常见的6种概率分布(Python实现)

泊松分布的主要特征是:

事件彼此独立

一个事件可以发生任何次数(在定义的时间段内)

两个事件不能同时发生

事件发生之间的平均发生率是恒定的。

下图显示了改变λ的值是如何影响泊松分布的:

for lambd in range(2, 8, 2): 

    n = np.arange(0, 10) 

    poisson = stats.poisson.pmf(n, lambd) 

    plt.plot(n, poisson, '-o', label="λ = {:f}".format(lambd)) 

    plt.xlabel('Number of Events', fontsize=12) 

    plt.ylabel('Probability', fontsize=12) 

    plt.title("Poisson Distribution varying λ") 

    plt.legend() 

数据科学中的常见的6种概率分布(Python实现)

指数分布

指数分布用于对不同事件之间的时间进行建模。

举例来说,假设我们在一家餐厅工作,并且希望预测不同顾客来就餐的时间间隔。针对此类问题使用指数分布一个理想的起点。指数分布的另一个常见应用是生存分析(例如设备/机器的预期寿命)。

指数分布由参数λ调节。λ值越大,曲线的斜率变化越快。

for lambd in range(1,10, 3): 

    x = np.arange(0, 15, 0.1) 

    y = 0.1*lambd*np.exp(-0.1*lambd*x) 

    plt.plot(x,y, label="λ = {:f}".format(0.1*lambd)) 

    plt.xlabel('Random Variable', fontsize=12) 

    plt.ylabel('Probability', fontsize=12) 

    plt.title("Exponential Distribution varying λ") 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读