百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

机器学习中的概率论与数理统计(Python实现数学期望、方差等)

toyiye 2024-06-21 12:36 28 浏览 0 评论

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。


一、概率论数理统计常见的统计量Python实现总结


1、求数学期望

#coding=utf-8
import numpy as np
arr = [1,2,3,4,5,6]
#1、数学期望(俗称平均值)
num_avg = np.mean(arr)
print(num_avg)


2、求方差、标准差

#coding=utf-8
import numpy as np
arr = [1,2,3,4,5,6]
# 求方差
num_var = np.var(arr)
print(num_var)
# 求标准差
num_std = np.std(arr,ddof=1)
print(num_std)

3、求协方差

#coding=utf-8
import numpy as np
#求协方差
x=np.array([[1 ,2 ,3] ,
[2 ,5 ,6 ],
[ 7 ,8 ,9],
[ 11 ,11 ,12]])
cov_xy = np.cov(x)
print(cov_xy)


二、求相关系数的Python实现总结

1、公式法

#coding=utf-8
import numpy
import pandas
X = [1,2,3,4,5]
Y = [1.01 , 2.02 , 3.03 ,4.04 , 5.05]
# 均值
XMean = numpy.mean(X)
YMean = numpy.mean(Y)
#标准差
XSD = numpy.std(X)
YSD = numpy.std(Y)
#z分数
ZX = (X-XMean)/XSD
ZY = (Y-YMean)/YSD#相关系数
r = numpy.sum(ZX*ZY)/(len(X))
print(r)

2、通过numpy的corrcoef方法计算相关性系数


#coding=utf-8
import numpy
X = [10.11, 20.11, 33.11]
Y = [10.22, 20.22, 30.22 ]
t=numpy.corrcoef(X,Y)
print(t)


3、通过pandas的corr方法计算相关性系数


#coding=utf-8
import numpy
import pandas
X = [10.11, 20.11, 33.11]
Y = [10.22, 20.22, 30.22 ]
data = pandas.DataFrame({'X':X,'Y':Y})
t2=data.corr()
print(t2)


三、常见的分布Python实现总结

1、正太分布

正态分布是一种连续分布,其函数可以在实线上的任何地方取值。正态分布由两个参数描述:分布的平均值μ和方差σ2 。


#coding=utf-8
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
mu = 0 # mean
sigma = 1 # standard deviation
x = np.arange(-3, 3, 0.1)
print(x)
y = stats.norm.pdf(x, 0, 1)
print(y)
plt.plot(x, y)
plt.title('Normal: $\mu$=%.1f, $\sigma^2$=%.1f' % (mu, sigma))
plt.xlabel('x')
plt.ylabel('Probability density', fontsize=15)
plt.show()

2、指数分布

指数分布是一种连续概率分布,用于表示独立随机事件发生的时间间隔。比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等。


我将参数λ设置为0.2,并将x的取值范围设置为 $[1, 10]$ 。

#coding=utf-8
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
lambd = 0.2
x = np.arange(1,10,0.1)
y =lambd * np.exp(-lambd *x)
print(y)
plt.plot(x, y)
plt.title('Exponential: $\lambda$=%.2f' % (lambd))
plt.xlabel('x')
plt.ylabel('Probability density', fontsize=15)
plt.show()


3、二项分布


某射手射击,射击结果分为中靶和不中靶两种,若每次射击相互独立,中靶的概率皆为0.7,讨论在4次射击中恰好2次中靶的概率(0.2646)


#coding=utf-8
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
p = 0.7 # 事件A概率0.7
n = 4 # 重复实验4次
k = np.arange(n+1) # 5种可能出现的结果(中0次、中1次、中2次、中3次、中4次)
r = stats.binom.pmf(k, n, p)
print(r)


4、泊松分布(Poisson Distribution)


一个服从泊松分布的随机变量X,表示在具有比率参数(rate parameter)λ的一段固定时间间隔内,事件发生的次数。参数λ告诉你该事件发生的比率。随机变量X的平均值和方差都是λ。


E(X) = λ, Var(X) = λ


泊松分布的例子:已知某路口发生事故的比率是每天2次,那么在此处一天内发生4次事故的概率是多少?

让我们考虑这个平均每天发生2起事故的例子。泊松分布的实现和二项分布有些类似,在泊松分布中我们需要指定比率参数。泊松分布的输出是一个数列,包含了发生0次、1次、2次,直到10次事故的概率。我用结果生成了以下图片。

#coding=utf-8
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
rate = 2
n = np.arange(0, 10)
y = stats.poisson.pmf(n, rate)
print(y)
plt.plot(n, y, 'o-')
plt.title('Poisson: rate=%i' % (rate), fontsize=15)
plt.xlabel('Number of accidents')
plt.ylabel('Probability of number accidents', fontsize=15)
plt.show()

5、T分布

t分布形状类似于标准正态分布; t分布是对称分布,较正态分布离散度强,密度曲线较标准正态分布密度曲线更扁平


(1)T分布的应用场景:


- 根据小样本来估计呈正态分布且方差未知的总体的均值

- 对于任何一种样本容量,真正的平均值抽样分布是t分布,因此,当存在疑问时,应使用t分布


- 当样本容量在 30-35之间时,t分布与标准正态分布难以区分

-当样本容量达到120时,t分布与标准正态分布实际上完全相同了

-

(2)自由度df对分布的影响

-- 样本方差使用一个估计的参数(平均值),所以计算置信区间时使用的t分布的自由度为 n - 1

-- 由于引入额外的参数(自由度df),t分布比标准正态分布的方差更大(置信区间更宽)

-- 与标准正态分布曲线相比,自由度df越小,t分布曲线愈平坦,曲线中间愈低,曲线双侧尾部翘得愈高

-- 自由度df愈大,t分布曲线愈接近正态分布曲线,当自由度df= ∞ 时,t分布曲线为标准正态分布曲线

#coding=utf-8
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# 不同自由度的学生t分布与标准正态分布
import numpy as np
from scipy.stats import norm
from scipy.stats import t
import matplotlib.pyplot as plt
print('比较t-分布与标准正态分布')
x = np.linspace( -3, 3, 100)
plt.plot(x, t.pdf(x,1), label='df=1')
plt.plot(x, t.pdf(x,2), label='df=20')
plt.plot(x, t.pdf(x,100), label = 'df=100')
plt.plot( x[::5], norm.pdf(x[::5]),'kx', label='normal')
plt.legend()
plt.show()


6、 β分布(Beta Distribution)

β分布是一个取值在 [0, 1] 之间的连续分布,它由两个形态参数α和β的取值所刻画。


β分布的形状取决于α和β的值。贝叶斯分析中大量使用了β分布。


#coding=utf-8
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
a = 0.5
b = 0.5
x = np.arange(0.01, 1, 0.01)
y = stats.norm.pdf(x, a, b)
print(y)
plt.plot(x, y)
plt.title('Beta: a=%.1f, b=%.1f' % (a, b))
plt.xlabel('x')
plt.ylabel('Probability density', fontsize=15)
plt.show()



尊敬的读者:如果您感觉好麻烦关注、收藏、点赞,谢谢!

《大数据和人工智能交流》的宗旨

1、将大数据和人工智能的专业数学:概率数理统计、线性代数、决策论、优化论、博弈论等数学模型变得通俗易懂。

2、将大数据和人工智能的专业涉及到的数据结构和算法:分类、聚类 、回归算法、概率等算法变得通俗易懂。

3、最新的高科技动态:数据采集方面的智能传感器技术;医疗大数据智能决策分析;物联网智慧城市等等。

根据初学者需要会有C语言、Java语言、Python语言、Scala函数式等目前主流计算机语言。

根据读者的需要有和人工智能相关的计算机科学与技术、电子技术、芯片技术等基础学科通俗易懂的文章。


相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码