python统计字数分布可视化展示_数据的概率分布并用python实现概率分布可视化图...
一、基礎概念
先來看下數據的類型,常見的數據分類方式有三種:第一種是按照數據的結構屬性分類,根據數據的存儲形式分為結構化數據和非結構化數據,例如數據庫的存儲對象基本上都是結構化數據,結構化數據是進行數據分析的基本類型;對于非結構化數據,其存在形式多樣化,有視頻、音頻、圖片、影像、文檔和文本等形式,對于非結構化數據只有將其轉化為結構化數據才能進行數分析。第二種按照數據的連續性特征分為離散型數據和連續性數據;第三種根據數據的測量尺度分為:定類數據、定序數據、定距數據和定比數據。
隨機變量
每次試驗的結果可以用一個變量的數值來表示,這個變量的取值隨偶然因素變化,但又遵從一定的概率分布規律。
離散變量
離散型隨機變量是在一定區間內變量取值為有限個或可數個。
連續變量
連續性隨機變量就是在一定區間內變量取值有無限個,或數值無法一一列舉出來。
期望值
期望值是隨機試驗在同樣的機會下重復多次的結果計算出的等同于“期望”的平均值,期望值也成為數學期望或均值,它是指在一個離散性隨機變量實驗中每次可能結果的概率乘以其結果的總和。
古典概率
又稱為事前概率,是指當隨機事件中各種可能發生的結果及其出現的次數都可以由演繹或外推法得知,而無需經過任何統計試驗即可計算各種可能發生結果的概率。
條件概率
是指事件A在時間B發生的條件下發生的概率。
二、離散變量概率分布
二項分布
在概率論或統計學中,二項分布是n個獨立的是/非試驗中成功的次數的離散概率分布,其中每次試驗的成功概率為p。這樣的單次成功/失敗的試驗又稱為伯努利試驗。當n=1時,二項分布就是伯努利分布。
若進行了n次伯努利試驗,成功了x次,失敗的次數為n-x,設成功的概率為p,失敗的概率為q=1-p,發生這種情況的概率用以下公式表示:(二項分布 x~B(n,p))
二項分布的均值和方差分別為:
泊松分布
泊松分布的概率函數為:
, k=0,1...
泊松分布的參數
是單位時間(或單位面積)內隨機事件的平均發生次數,泊松分布適合于描述單位時間內隨機事件發生的次數。
泊松分布的期望和方差均為
。
泊松分布是由二項分布推導而來的,當二項分布的n很大而p很小時,泊松分布可作為二項分布的近似,其中
為np, 通常當n>=20,p<=0.05時,就可以用泊松公式近似的計算。
三、連續變量概率分布
均勻分布
均勻概率分布是古典概率分布的連續形式,是指隨機事件的可能結果是連續型數據變量,所有的連續型數據結果所對應的概率相等。也叫矩形分布,它是對稱概率分布,在相同長度間隔的分布概率是等可能的。均勻分布由兩個參數a,b定義,他們是數軸上的最小值和最大值,U(a,b)。
其概率密度函數f(x):
當a
當xb時,
均勻分布的期望和方差為:
,
正態分布
正態分布又名高斯分布,若隨機變量X服從一個數學期望為μ、方差為σ^2的正態分布,記為N(μ,σ^2)。其概率密度函數為正態分布的期望值μ決定了其位置,其標準差σ決定了分布的幅度。當μ = 0,σ = 1時的正態分布是標準正態分布。
正態曲線呈鐘型,兩頭低,中間高,左右對稱因其曲線呈鐘形,因此人們又經常稱之為鐘形曲線。
其概率密度函數為:
卡方分布
若n個相互獨立的隨機變量ξ?,ξ?,...,ξn ,均服從標準正態分布(也稱獨立同分布于標準正態分布),則這n個服從標準正態分布的隨機變量的平方和構成一新的隨機變量,其分布規律稱為卡方分布(
分布)。
或者
,其中v是自由度,v=n-k, k是限制條件數。
beta分布
在概率論中,貝塔分布也稱B分布,是指一組定義在(0,1)區間的連續概率分布,有兩個參數
。貝塔分布是一個作為伯努利分布和二項式分布的共軛先驗分布的密度函數,在機器學習和數理統計學中有重要應用。
B分布的概率密度函數是:
隨機變量X服從參數為
的B分布通常寫作:
。
四、用Python代碼實現常見概率分布
二項分布(伯努利分布)
from scipy import stats as st
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
#防止亂碼
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 二項分布
n = 100
p = 0.25
k = np.arange(0,n)
binomial = st.binom.pmf(k,n,p)
plt.plot(k,binomial,'o-')
plt.title('伯努利分布:n=%i,p=%.2f'%(n,p),fontsize=15)
plt.xlabel('成功次數')
plt.ylabel('成功概率',fontsize=15)
plt.grid(True)#顯示軸網格線
plt.show()
泊松分布
x = np.random.poisson(lam=6, size=1000) # lam為λ size為k
pillar = 20
a = plt.hist(x, bins=pillar, density=True, range=[0, pillar], color='g', alpha=0.5)
plt.title('泊松分布',fontsize=15)
plt.xlabel('柱子個數')
plt.ylabel('概率',fontsize=15)
plt.plot(a[1][0:pillar], a[0], 'r')
plt.grid()
plt.show()
均勻分布
#均勻分布
#PDF 概率分布函數
plt.plot(np.linspace(-3,3,100),stats.uniform.pdf(np.linspace(-3,3,100)))
plt.fill_between(np.linspace(-3,3,100),stats.uniform.pdf(np.linspace(-3,3,100)),alpha=0.15)
plt.text(x=-1.5,y=0.7,s="pdf(uniform)",rotation=65,alpha=0.75,weight="bold",color="g")
正態分布
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
#概率密度函數
plt.plot(np.linspace(-3,3,100),stats.norm.pdf(np.linspace(-3,3,100))) #從(-3,3)中隨機選取100個數,繪制該事件的概率密度函數
plt.fill_between(np.linspace(-3,3,100),stats.norm.pdf(np.linspace(-3,3,100)),alpha=.15)#對曲線內部進行填充
#注解
plt.text(x=-1,y=0.3,s="pdf(normed)",rotation=.65,weight="bold",color='g')
卡方分布
x = np.linspace(0,30,100)
y = st.chi2.pdf(np.linspace(0,30,100),df=3)
#PDF 概率密度函數
plt.plot(x,y)#繪制0到30的卡方分布曲線,給定自由度為3
plt.fill_between(x,y,alpha=0.15) #填充曲線
plt.title(u'卡方分布:自由度為3')
plt.show()
總結
以上是生活随笔為你收集整理的python统计字数分布可视化展示_数据的概率分布并用python实现概率分布可视化图...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt web混合编程_QT做界面真是绝美
- 下一篇: trove mysql 镜像_trove