机器学习中的概率论与梳理统计(Python实现数学期望、方差等)
一、概率论数理统计常见的统计量实现总结
1、求数学期望
#=utf-8
asnp
arr = [1,2,3,4,5,6]
#1、数学期望(俗称平均值)
= np.mean(arr)
print()
2、求方差、标准差
#=utf-8
asnp
arr = [1,2,3,4,5,6]
# 求方差
= np.var(arr)
print()
# 求标准差
= np.std(arr,ddof=1)
print()
3、求协方差
#=utf-8
asnp
#求协方差
x=np.array([[1 ,2 ,3] ,
[2 ,5 ,6 ],
[ 7 ,8 ,9],
[ 11 ,11 ,12]])
= np.cov(x)
print()
二、求相关系数的实现总结
1、公式法
#=utf-8
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的方法计算相关性系数
#=utf-8
X = [10.11, 20.11, 33.11]
Y = [10.22, 20.22, 30.22 ]
t=numpy.(X,Y)
print(t)
3、通过的corr方法计算相关性系数
#=utf-8
X = [10.11, 20.11, 33.11]
Y = [10.22, 20.22, 30.22 ]
data = .({'X':X,'Y':Y})
t2=data.corr()
print(t2)
三、常见的分布实现总结
1、正太分布
正态分布是一种连续分布,其函数可以在实线上的任何地方取值。正态分布由两个参数描述:分布的平均值μ和方差σ2 。
#=utf-8
asnp
. asplt
mu = 0 # mean
sigma = 1 #
x = np.(-3, 3, 0.1)
print(x)
y = stats.norm.pdf(x, 0, 1)
print(y)
plt.plot(x, y)
plt.title(': $\mu$=%.1f, $\sigma^2$=%.1f'% (mu, sigma))
plt.('x')
plt.(' ', =15)
plt.show()
2、指数分布
指数分布是一种连续概率分布,用于表示独立随机事件发生的时间间隔。比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、中文维基百科新条目出现的时间间隔等等。
我将参数λ设置为0.2,并将x的取值范围设置为 $[1, 10]$ 。
#=utf-8
asnp
. asplt
lambd = 0.2
x = np.(1,10,0.1)
y =lambd * np.exp(-lambd *x)
print(y)
plt.plot(x, y)
plt.title(': $\$=%.2f'% (lambd))
plt.('x')
plt.(' ', =15)
plt.show()
3、二项分布
某射手射击,射击结果分为中靶和不中靶两种,若每次射击相互独立,中靶的概率皆为0.7,讨论在4次射击中恰好2次中靶的概率(0.2646)
#=utf-8
asnp
. asplt
p = 0.7 # 事件A概率0.7
n = 4 # 重复实验4次
k = np.(n+1) # 5种可能出现的结果(中0次、中1次、中2次、中3次、中4次)
r = stats.binom.pmf(k, n, p)
print(r)
4、泊松分布( )
一个服从泊松分布的随机变量X,表示在具有比率参数(rate )λ的一段固定时间间隔内,事件发生的次数。参数λ告诉你该事件发生的比率。随机变量X的平均值和方差都是λ。
E(X) = λ, Var(X) = λ
泊松分布的例子:已知某路口发生事故的比率是每天2次,那么在此处一天内发生4次事故的概率是多少?
让我们考虑这个平均每天发生2起事故的例子。泊松分布的实现和二项分布有些类似,在泊松分布中我们需要指定比率参数。泊松分布的输出是一个数列,包含了发生0次、1次、2次,直到10次事故的概率。我用结果生成了以下图片。
#=utf-8
asnp
. asplt
rate = 2
n = np.(0, 10)
y = stats..pmf(n, rate)
print(y)
plt.plot(n, y, 'o-')
plt.title(': rate=%i'% (rate), =15)
plt.(' of ')
plt.(' of ', =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分布曲线为标准正态分布曲线
#=utf-8
asnp
. asplt
# 不同自由度的学生t分布与标准正态分布
asnp
.stats
.stats
. asplt
print('比较t-分布与标准正态分布')
x = np.( -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='')
plt.()
plt.show()
6、 β分布(Beta )
β分布是一个取值在 [0, 1] 之间的连续分布,它由两个形态参数α和β的取值所刻画。
β分布的形状取决于α和β的值。贝叶斯分析中大量使用了β分布。
#=utf-8
asnp
. asplt
a = 0.5
b = 0.5
x = np.(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.('x')
plt.(' ', =15)
plt.show()
我来说两句