全部課程
發(fā)布時(shí)間: 2018-10-11 11:51:27
3.1 概率論內(nèi)容介紹
3.1.1 概率論介紹
概率論是研究隨機(jī)現(xiàn)象數(shù)量規(guī)律的數(shù)學(xué)分支。隨機(jī)現(xiàn)象是相對(duì)于決定性現(xiàn)象而言的,在一定條件下必然發(fā)生某一結(jié)果的現(xiàn)象稱為決定性現(xiàn)象。
概率論是用來描述不確定性的數(shù)學(xué)工具,很多人工智能算法都是通過描述樣本的概率相關(guān)信息或推斷來構(gòu)建模型。
3.1.2 實(shí)驗(yàn)介紹
本章節(jié)主要實(shí)現(xiàn)概率與統(tǒng)計(jì)相關(guān)的知識(shí)點(diǎn),主要用到的框架是 numpy 和 scipy 框架。
3.2 概率論內(nèi)容實(shí)現(xiàn)
提前導(dǎo)入模塊,代碼如下:
>>> import numpy as np
>>> import scipy as sp
3.2.1 均值實(shí)現(xiàn)
# 數(shù)據(jù)準(zhǔn)備
>>> b = [1,3,5,6]
>>> ll = [[1,2,3,4,5,6],[3,4,5,6,7,8]]
# 代碼輸入:
>>> np.mean(b)
# 結(jié)果輸出:
>>> 3.75
>>> np.mean(ll) #全部元素求均值
# 結(jié)果輸出:
>>> 4.5
>>> np.mean(ll,0) #按列求均值
# 結(jié)果輸出:
>>> [2. 3. 4. 5. 6. 7.]
>>> np.mean(ll,1) #按行求均值
# 結(jié)果輸出:
>>> [3.5 5.5]
3.2.2 方差與標(biāo)準(zhǔn)差實(shí)現(xiàn)
# 數(shù)據(jù)準(zhǔn)備
>>> b=[1,3,5,6]
>>> ll=[[1,2,3,4,5,6],[3,4,5,6,7,8]]
# 求方差:
# 代碼輸入:
>>> np.var(b)
# 結(jié)果輸出:
>>> 3.6875
# 代碼輸入:
>>> np.var(ll[0])
# 結(jié)果輸出:
>>> 3.6874999999999996
# 代碼輸入:
>>> np.var(ll,1)) #第二個(gè)參數(shù)為 1,表示按行求方差
# 結(jié)果輸出:
>>> [2.91666667 2.91666667]
3.2.3 標(biāo)準(zhǔn)差實(shí)現(xiàn)
# 數(shù)據(jù)準(zhǔn)備
>>> b=[1,3,5,6]
>>> ll=[[1,2,3,4,5,6],[3,4,5,6,7,8]]
# 代碼輸入:
>>> np.std(b)
# 結(jié)果輸出:
>>> 1.920286436967152
# 代碼輸入:
>>> np.std(ll)
# 結(jié)果輸出:
>>> 1.9790570145063195
3.2.4 協(xié)方差實(shí)現(xiàn)
# 數(shù)據(jù)準(zhǔn)備
>>> b=[1,3,5,6]
# 代碼輸入:
>>> np.cov(b)
# 結(jié)果輸出:
>>> 4.916666666666666
3.2.5 相關(guān)系數(shù)
# 數(shù)據(jù)準(zhǔn)備
>>> vc=[1,2,39,0,8]
>>> vb=[1,2,38,0,8]
利用函數(shù)實(shí)現(xiàn):
# 代碼輸入:
>>> np.corrcoef(vc,vb)
# 結(jié)果輸出:
>>> 4.916666666666667
自定義實(shí)現(xiàn):
# 代碼輸入:
>>> np.mean(np.multiply((vc-np.mean(vc)),(vb-np.mean(vb))))/(np.std(vb)*np.std(vc))
# 結(jié)果輸出:
>>> 4.916666666666666
3.2.6 二項(xiàng)分布實(shí)現(xiàn)
服從二項(xiàng)分布的隨機(jī)變量 X 表示在 n 次獨(dú)立同分布的伯努利試驗(yàn)中成功的次數(shù),其中每次試驗(yàn)的成功概率為 p。
# 代碼輸入:
from scipy.stats import binom, norm, beta, expon import numpy as np
import matplotlib.pyplot as plt
binom_sim = binom.rvs(n=10, p=0.3, size=10000) print('Data:',binom_sim)
print('Mean: %g' % np.mean(binom_sim)) print('SD: %g' % np.std(binom_sim, ddof=1)) plt.hist(binom_sim, bins=10, normed=True) plt.xlabel(('x'))
plt.ylabel('density') plt.show()
# 結(jié)果輸出:
Data: [2 4 3 ... 3 4 1]
Mean: 2.9821
SD: 1.43478
# 分布圖如下:
3.2.1 泊松分布實(shí)現(xiàn)
一個(gè)服從泊松分布的隨機(jī)變量 X,表示在具有比率參數(shù)λ的一段固定時(shí)間間隔內(nèi),事件發(fā)生的次數(shù)。參數(shù)λ告訴你該事件發(fā)生的比率。隨機(jī)變量 X 的平均值和方差都是λ。
# 代碼輸入:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.poisson(lam=5, size=10000) pillar = 15
a = plt.hist(x, bins=pillar, normed=True, range=[0, pillar], color='g', alpha=0.5) plt.plot(a[1][0:pillar], a[0], 'r')
plt.grid() plt.show()
# 分布圖如下:
注:該代碼只在可視化界面下才能輸出上述圖形,學(xué)員可在自己本地環(huán)境下測試。
3.2.1 正態(tài)分布
正態(tài)分布是一種連續(xù)分布,其函數(shù)可以在實(shí)線上的任何地方取值。正態(tài)分布由兩個(gè)參數(shù)描述: 分 布 的 平 均 值 μ 和 標(biāo) 準(zhǔn) 差 σ 。# 代碼輸入:
from scipy.stats import norm import numpy as np
import matplotlib.pyplot as plt
mu = 0
sigma = 1
x = np.arange(-5, 5, 0.1)
y = norm.pdf(x, mu, sigma) plt.plot(x, y)
plt.xlabel('x') plt.ylabel('density') plt.show()
# 分布圖如下:
注:該代碼只在可視化界面下才能輸出上述圖形,學(xué)員可在自己本地環(huán)境下測試。
3.2.1 beta 分布
beta 分布是一個(gè)取值在 [0, 1] 之間的連續(xù)分布,它由兩個(gè)形態(tài)參數(shù)α和β的取值所刻畫。
# 代碼輸入:
from scipy.stats import beta import numpy as np
import matplotlib.pyplot as plt
a = 0.5
b = 0.5
x = np.arange(0.01, 1, 0.01) y = beta.pdf(x, a, b) plt.plot(x, y)
plt.title('Beta: a=%.1f,b=%.1f' % (a, b)) plt.xlabel('x')
plt.ylabel('density') plt.show()
# 分布圖如下:
注:該代碼只在可視化界面下才能輸出上述圖形,學(xué)員可在自己本地環(huán)境下測試。
3.2.1 指數(shù)分布
指數(shù)分布是一種連續(xù)概率分布,用于表示獨(dú)立隨機(jī)事件發(fā)生的時(shí)間間隔。比如旅客進(jìn)入機(jī)場的時(shí)間間隔、打進(jìn)客服中心電話的時(shí)間間隔等。
# 代碼輸入:
from scipy.stats import expon import numpy as np
import matplotlib.pyplot as plt
lam = 0.5
x = np.arange(0, 15, 0.1) y = expon.pdf(x, lam) plt.plot(x, y)
plt.title('Exponential: lam=%.2f' % lam) plt.xlabel('x')
plt.ylabel('density') plt.show()
# 分布圖如下:
注:該代碼只在可視化界面下才能輸出上述圖形,學(xué)員可在自己本地環(huán)境下測試?
上一篇: {HTML5}進(jìn)階選擇器-第二節(jié)
下一篇: {Docker}簡介