每個資料科學專家都應該知道的六個概率分佈
摘要:概率分佈在許多領域都很常見,包括保險、物理、工程、電腦科學甚至社會科學,如心理學和醫學。它易於應用,並應用很廣泛。本文重點介紹了日常生活中經常能遇到的六個重要分佈,並解釋了它們的應用。
01 介紹
假設你是一所大學的老師。在對一週的作業進行了檢查之後,你給所有的學生打了分數。你把這些打了分數的論文交給大學的資料錄入人員,並告訴他建立一個包含所有學生成績的電子表格。但這個人卻只儲存了成績,而沒有包含對應的學生。
他又犯了另一個錯誤,在匆忙中跳過了幾項,但我們卻不知道丟了誰的成績。我們來看看如何來解決這個問題吧。
一種方法是將成績視覺化,看看是否可以在資料中找到某種趨勢。
上面展示的圖形稱為資料的頻率分佈。其中有一個平滑的曲線,但你注意到有一個異常情況了嗎?在某個特定的分數範圍內,資料的頻率異常低。所以,最準確的猜測就是丟失值了,從而導致在分佈中出現了凹陷。
這個過程展示了你該如何使用資料分析來嘗試解決現實生活中的問題。對於任何一位資料科學家、學生或從業者來說,分佈是必須要知道的概念,它為分析和推理統計提供了基礎。
雖然概率為我們提供了數學上的計算,而分佈卻可以幫助我們把內部發生的事情視覺化。
在本文中,我將介紹一些重要的概率分佈,並會清晰全面地對它們進行解釋。
注意:本文假設你已經具有了概率方面的基本知識。如果沒有,可以參考這篇有關概率基礎的文章。
02 常見的資料型別
在開始詳細講述分佈之前,先來看看我們會遇到哪些種類的資料。資料可以分為離散的和連續的。
離散資料:顧名思義,只包含指定的值。例如,當你投骰子的時候,輸出結果只可能是1、2、3、4、5或6,而不可能出現1.5或2.45。
連續資料:可以在給定的範圍內取任何值。範圍可以是有限的,也可以是無限的。例如,女孩的體重或身高、路程的長度。女孩的體重可以是54千克、54.5千克,或54.5436千克。
現在我們開始學習分佈的型別。
03 分佈的型別
伯努利分佈
我們首先從最簡單的分佈伯努利分佈開始。
伯努利分佈只有兩種可能的結果,1(成功)和0(失敗)。因此,具有伯努利分佈的隨機變數X可以取值為1,也就是成功的概率,可以用p來表示,也可以取值為0,即失敗的概率,用q或1-p來表示。
概率質量函式由下式給出:px(1-p)1-x, 其中x € (0, 1)。它也可以寫成:
成功與失敗的概率不一定相等。這裡,成功的概率(p)與失敗的概率不同。所以,下圖顯示了我們之間比賽結果的伯努利分佈。
這裡,成功的概率 = 0.15,失敗的概率 = 0.85 。如果我打了你,我可能會期待你向我打回來。任何分佈的基本預期值是分佈的平均值。來自伯努利分佈的隨機變數X的期望值如為:
E(X) = 1*p + 0*(1-p) = p
隨機變數與二項分佈的方差為:
V(X) = E(X²) – [E(X)]² = p – p² = p(1-p)
伯努利分佈的例子有很多,比如說明天是否要下雨,如果下雨則表示成功,如果不下雨,則表示失敗。
均勻分佈
對於投骰子來說,結果是1到6。得到任何一個結果的概率是相等的,這就是均勻分佈的基礎。與伯努利分佈不同,均勻分佈的所有可能結果的n個數也是相等的。
如果變數X是均勻分佈的,則密度函式可以表示為:
均勻分佈的曲線是這樣的:
你可以看到,均勻分佈曲線的形狀是一個矩形,這也是均勻分佈又稱為矩形分佈的原因。其中,a和b是引數。
花店每天銷售的花束數量是均勻分佈的,最多為40,最少為10。我們來計算一下日銷售量在15到30之間的概率。
日銷售量在15到30之間的概率為(30-15)*(1/(40-10)) = 0.5
同樣地,日銷售量大於20的概率為 = 0.667
遵循均勻分佈的X的平均值和方差為:
平均值 -> E(X) = (a+b)/2
方差 -> V(X) = (b-a)²/12
標準均勻密度的引數 a = 0 和 b = 1,因此標準均勻密度由下式給出:
二項分佈
讓我們來看看玩板球這個例子。假設你今天贏了一場比賽,這表示一個成功的事件。你再比了一場,但你輸了。如果你今天贏了一場比賽,但這並不表示你明天肯定會贏。我們來分配一個隨機變數X,用於表示贏得的次數。 X可能的值是多少呢?它可以是任意值,這取決於你擲硬幣的次數。
只有兩種可能的結果,成功和失敗。因此,成功的概率 = 0.5,失敗的概率可以很容易地計算得到:q = p – 1 = 0.5。
二項式分佈就是隻有兩個可能結果的分佈,比如成功或失敗、得到或者丟失、贏或敗,每一次嘗試成功和失敗的概率相等。
結果有可能不一定相等。如果在實驗中成功的概率為0.2,則失敗的概率可以很容易地計算得到 q = 1 - 0.2 = 0.8。
每一次嘗試都是獨立的,因為前一次投擲的結果不能決定或影響當前投擲的結果。只有兩個可能的結果並且重複n次的實驗叫做二項式。二項分佈的引數是n和p,其中n是試驗的總數,p是每次試驗成功的概率。
在上述說明的基礎上,二項式分佈的屬性包括:
1. 每個試驗都是獨立的。
2. 在試驗中只有兩個可能的結果:成功或失敗。
3. 總共進行了n次相同的試驗。
4. 所有試驗成功和失敗的概率是相同的。 (試驗是一樣的)
二項分佈的數學表示由下式給出:
成功概率不等於失敗概率的二項分佈圖:
現在,當成功的概率 = 失敗的概率時,二項分佈圖如下
二項分佈的均值和方差由下式給出:
平均值 -> µ = n*p
方差 -> Var(X) = n*p*q
正態分佈
正態分佈代表了宇宙中大多數情況的運轉狀態。大量的隨機變數被證明是正態分佈的。任何一個分佈只要具有以下特徵,則可以稱為正態分佈:
1. 分佈的平均值、中位數和模式一致。
2. 分佈曲線是鐘形的,關於線 x = μ 對稱。
3. 曲線下的總面積為1。
4. 有一半的值在中心的左邊,另一半在右邊。
正態分佈與二項分佈有著很大的不同。然而,如果試驗次數接近於無窮大,則它們的形狀會變得十分相似。
遵循正態分佈的隨機變數X的值由下式給出:
正態分佈的隨機變數X的均值和方差由下式給出:
均值 -> E(X) = µ
方差 -> Var(X) = σ^2
其中,μ(平均)和σ(標準偏差)是引數。
隨機變數X〜N(μ,σ)的圖如下所示。
標準正態分佈定義為平均值等於0,標準偏差等於1的分佈:
泊松分佈
假設你在一個呼叫中心工作,一天裡你大概會接到多少個電話?它可以是任何一個數字。現在,呼叫中心一天的呼叫總數可以用泊松分佈來建模。這裡有一些例子:
1. 醫院在一天內錄製的緊急電話的數量。
2. 某個地區在一天內報告的失竊的數量。
3. 在一小時內抵達沙龍的客戶人數。
4. 在特定城市上報的自殺人數。
5. 書中每一頁列印錯誤的數量。
泊松分佈適用於在隨機時間和空間上發生事件的情況,其中,我們只關注事件發生的次數。
當以下假設有效時,則稱為**泊松分佈**
1. 任何一個成功的事件都不應該影響另一個成功的事件。
2. 在短時間內成功的概率必須等於在更長的間內成功的概率。
3. 時間間隔變小時,在給間隔時間內成功的概率趨向於零。
泊松分佈中使用了這些符號:
λ是事件發生的速率
t是時間間隔的長
X是該時間間隔內的事件數。
其中,X稱為泊松隨機變數,X的概率分佈稱為泊松分佈。
令μ表示長度為t的間隔中的平均事件數。那麼,µ = λ*t。
泊松分佈的X由下式給出:
平均值μ是該分佈的引數。 μ也定義為該間隔的λ倍長度。泊松分佈圖如下所示:
下圖顯示了隨著平均值的增加曲線的偏移情況:
可以看出,隨著平均值的增加,曲線向右移動。
泊松分佈中X的均值和方差:
均值 -> E(X) = µ
方差 -> Var(X) = µ
指數分佈
讓我們再一次看看呼叫中心的那個例子。不同呼叫之間的時間間隔是多少呢?在這裡,指數分佈模擬了呼叫之間的時間間隔。
其他類似的例子有:
1. 地鐵到達時間間隔
2. 到達加油站的時間
3. 空調的壽命
指數分佈廣泛用於生存分析。從機器的預期壽命到人類的預期壽命,指數分佈都能成功地提供結果。
具有**的指數分佈**的隨機變數X:
f(x) = { λe-λx, x ≥ 0
引數 λ>0 也稱為速率。
對於生存分析,λ被稱為任何時刻t的裝置的故障率,假定它已經存活到t時刻。
遵循指數分佈的隨機變數X的均值和方差為:
平均值 -> E(X) = 1/λ
方差 -> Var(X) = (1/λ)²
此外,速率越大,曲線下降越快,速率越慢,曲線越平坦。下面的圖很好地解釋了這一點。
為了簡化計算,下面給出一些公式。
P{X≤x} = 1 – e-λx 對應於x左側曲線下的面積。
PP{X>x} = e-λx 對應於x右側曲線下的面積。
P{x1-λx1 – e-λx2, corresponds to the area under the density curve between x1 and x2.
P{x1-λx1 – e-λx2 對應於x1和x2之間地曲線下的面積。
04 各種分佈之間的關係
伯努利與二項分佈之間的關係
1. 伯努利分佈是具有單項試驗的二項式分佈的特殊情況。
2. 伯努利分佈和二項式分佈只有兩種可能的結果,即成功與失敗。
3. 伯努利分佈和
二項式分佈都具有獨立的軌跡。
泊松與二項式分佈之間的關係
泊松分佈在滿足以下條件的情況下是二項式分佈的極限情況:
1. 試驗次數無限大或n → ∞。
2. 每個試驗成功的概率是相同的,無限小的,或p → 0。
3. np = λ,是有限的。
正態分佈關係
正態分佈是在滿足以下條件的情況下二項分佈的另一種限制形式:
1. 試驗次數無限大,n → ∞。
2. p和q都不是無限小。
正態分佈也是引數λ → ∞的泊松分佈的極限情況。
指數和泊松分佈之間的關係
如果隨機事件之間的時間遵循速率為λ的指數分佈,則時間長度t內的事件總數遵循具有引數λt的泊松分佈。
05 結束語
概率分佈在許多領域都很常見,包括保險、物理、工程、電腦科學甚至社會科學,如心理學和醫學。它易於應用,並應用很廣泛。本文重點介紹了日常生活中經常能遇到的六個重要分佈,並解釋了它們的應用。現在,你已經能夠識別、關聯和區分這些分佈了。
來源:雲棲社群
精彩活動
推薦閱讀
Q: 說說你對概率分佈的認識?
歡迎留言與大家分享
請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:[email protected]
更多精彩文章,請在公眾號後臺點選“歷史文章”檢視
相關推薦
每個資料科學專家都應該知道的六個概率分佈
摘要:概率分佈在許多領域都很常見,包括保險、物理、工程、電腦科學甚至社會科學,如心理學和醫學。它
每個JavaScript開發人員都應該知道的新ES2018功能(譯文)
前言 原文地址:css-tricks.com/new-es2018-… 原文作者:Faraz Kelhini 譯者:Timbok 翻譯工具:Google Translate 本文首發於我的個人網站: Timbok.top 正文 ECMAScript標準的第九版,官方稱為
每個Java程式設計師都應該知道的5個JVM命令列標誌
JVM是多數開發人員視為理所當然的Java功能和效能背後的重負荷機器。然而,我們很少有人能理解JVM是如何進行工作的—像任務分配和垃圾收集、轉動執行緒、開啟和關閉檔案、中斷和/或JIT編譯Java位元組碼,等等。 不熟悉JVM將不僅會影響應用程式效能,而且當J
資料科學中的常見的6種概率分佈(Python實現)
作者:Pier Paolo Ippolito@南安普敦大學 編譯:機器學習演算法與Python實戰(微信公眾號:tjxj666) 原文:https://towardsdatascience.com/probability-distributions-in-data-science-cce6e64873a7
每個電腦科學專業的學生都應該知道些什麼?
每個電腦科學專業的學生都應該知道什麼? “每個電腦科學專業的學生都應該知道什麼?”可以把這個問題作為四個問題的結合點來回答: 1.每個學生應該知道什麼才能找到一份好工作? 2.要維持終身就業,每個學生都應該知道些什麼? 3.進入研究生院應該知道什麼? 4.每個學生都應該知道什麼對社會有益
每個人都應該知道的15個大資料術語
1.演算法。“演算法”如何與大資料相關?即使演算法是一個通用術語,但大資料分析使其在當代更受青睞
每個Ubuntu 18.04用戶都應該知道13鍵盤快捷方式!
邊緣 我不 roc 字母 ctrl + c 版本 strong 通過 ffffff 了解鍵盤快捷鍵可以提高你的工作效率。這裏有一些有用的Ubuntu快捷鍵,可以幫助你像專業版一樣使用Ubuntu。 你可以使用鍵盤和鼠標結合的操作系統~~~ 註意:下面提到的鍵盤快捷鍵適用於
AI 從業者都應該知道的實驗資料集
雷鋒網AI 科技評論按:資料集對於深度學習模型的重要性不言而喻,然而根據性質、型別、領域的不同,資料集往往散落在不同的資源平臺裡,急需人們做出整理。fast.ai近期將這些重要的資料集彙總到了一篇文章裡,雷鋒網 AI 科技評論把文章編譯如下。 少了資料,我們的機器學習和深度
每個程式設計師都應該知道的 15 個最佳 PHP 庫
1. PChart PChart是一個令人印象深刻的PHP庫,可以以一種視覺化圖表的形式生成文字資料。資料可以展示為柱狀圖,餅狀圖,以及其他格式。使用SQL查詢可以幫助PHP指令碼建立令人驚歎的圖表和圖形。 2. PHP CAPTCHA PHP CAPTCHA是另一個偉
每個程式設計師都應該知道的8個Linux命令
cat cat – 連線檔案,並輸出結果 sort sort – 檔案裡的文字按行排序 grep grep, egrep, fgrep – 打印出匹配條件的文字行 cut cut – 刪除檔案中字元行上的某些區域 sed se
每個極客都應該知道的Linux命令
轉自http://os.51cto.com/art/201403/431387_all.htm 是什麼區分開普通的Linux使用者和超級極客的呢?很簡單:用在學習那些使長時工作轉變為一瞬間工作的技巧、訣竅、祕訣和技術上的時間。如果你想提高效率而又不用做這些蒐集資料的
linux 每個程式設計師都應該知道的8個Linux命令
每個程式設計師,在職業生涯的某個時刻,總會發現自己需要知道一些Linux方面的知識。我並不是說你應該成為一個Linux專家,我的意思是,當面對linux命令列任務時,你應該能很熟練的完成。事實上,學會了下面8個命令,我基本上能完成任何需要完成的任務。 注意:下
每個程式設計師都應該知道的
http://projectmona.com/bits-of-brilliance-session-five/ 裡面內容很雜但很豐富,是UIUC教授Jeff Erickson在程式設計方面的個人收集(其他收集可以參見:http://projectmona.com/bits-
每個 Java 開發者都應該知道的 5 個註解
自 JDK5 推出以來,註解已成為Java生態系統不可缺少的一部分。雖然開發者為Java框架(例如Spring的@Autowired)開發了無數的自定義註解,但編譯器認可的一些註解非常重要。在本文中,我們將看到5個Java編譯器支援的註解,並瞭解其期望用途。順便,我們將探索其
每個人都應該知道的3種機器學習演算法
譯者注:決策樹 & 聚類演算法 & 線性迴歸:應該使用哪種機器學習演算法?使用它的原因是什麼?作者在本文中詳細介紹了這些內容。以下為譯文。假設有一些跟資料相關的難題需要你去解決。之前你已經聽過機器學習演算法的厲害之處了,因此你自己也想借此機會嘗試
(不斷更新)每個程式設計師都應該知道的那些事兒
http://projectmona.com/bits-of-brilliance-session-five/裡面內容很雜但很豐富,是UIUC教授Jeff Erickson在程式設計方面的個人收集(其他收集可以參見:http://projectmona.com/bits-of
每個開發人員都應該知道的10個Linux命令
譯者注:讓你生活更簡單的幾個不常用的Linux命令。以下為譯文: 作為一個軟體工程師,學習Linux是我做過的最好的時間投資。因為它是一個使用者必須理解和維護的系統,每天的使用經驗就像在水坑中新增一滴水一樣。很長時間以後,水坑就變成了湖泊,甚至海洋。 今
每個開發人員都應該知道的11個Linux命令
本文主要挑選出讀者有必要首先學習的 11 個 Linux 命令,如果不熟悉的讀者可以在虛擬機器或雲伺服器上實操下,對於開發人員來說,能熟練掌握 Linux 做一些基本的操作是必要的! 事不宜遲,這裡有 11 個 Linux 命令列技巧,可以使你的生活工作更輕鬆。 1. grep $ grep "so
每個開發人員都應該知道的WebSockets知識
轉載請註明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 原文出處:https://blog.bitsrc.io/deep-dive-into-websockets-e6c4c7622423 在Internet發展的早期,Web應用程式是圍繞由使
每一個JavaScript開發者都應該知道的10道面試題
結束 vid 認識 本質 特定 更新 mixin 構造函數 程序猿 JavaScript十分特別。而且差點兒在每一個大型應用中起著至關關鍵的數據。那麽,究竟是什麽使JavaScript顯得與眾不同,意義非凡? 這裏有一些問題將幫助你了解其真正的奧妙所在: