作者 | Farhad Malik譯者 | Monanfei責編 | 夕顔出品 | AI科技大本營(ID: rgznai100)為什麼正态分布如此特殊?為什麼大量數據科學和機器學習的文章都圍繞正态分布進行讨論?我決定寫一篇文章,用一種簡單易懂的方式來介紹正态分布。
在機器學習的世界中,以概率分布為核心的研究大都聚焦于正态分布。本文将闡述正态分布的概率,并解釋它的應用為何如此的廣泛,尤其是在數據科學和機器學習領域,它幾乎無處不在。
我将會從基礎概念出發,解釋有關正态分布的一切,并揭示它為何如此重要。
文章結構本文的主要内容如下:
簡短的背景介紹
- 概率分布是什麼
- 正态分布意味着什麼
- 正态分布的變量有哪些
- 如何使用 Python 來檢驗數據的分布
- 如何使用 Python 參數化生産一個正态分布
- 正态分布的問題
- 首先,正态分布又名高斯分布
- 它以數學天才 Carl Friedrich Gauss 命名
正态分布又名高斯分布
- 越簡單的模型越是常用,因為它們能夠被很好的解釋和理解。正态分布非常簡單,這就是它是如此的常用的原因。
因此,理解正态分布非常有必要。什麼是概率分布?首先介紹一下相關概念。
考慮一個預測模型,該模型可以是我們的數據科學研究中的一個組件。
- 如果我們想精确預測一個變量的值,那麼我們首先要做的就是理解該變量的潛在特性。
- 首先我們要知道該變量的可能取值,還要知道這些值是連續的還是離散的。簡單來講,如果我們要預測一個骰子的取值,那麼第一步就是明白它的取值是1 到 6(離散)。
- 第二步就是确定每個可能取值(事件)發生的概率。如果某個取值永遠都不會出現,那麼該值的概率就是 0 。
事件的概率越大,該事件越容易出現。
- 在實際操作中,我們可以大量重複進行某個實驗,并記錄該實驗對應的輸出變量的結果。
- 我們可以将這些取值分為不同的集合類,在每一類中,我們記錄屬于該類結果的次數。例如,我們可以投10000次骰子,每次都有6種可能的取值,我們可以将類别數設為6,然後我們就可以開始對每一類出現的次數進行計數了。
- 我們可以畫出上述結果的曲線,該曲線就是概率分布曲線。目标變量每個取值的可能性就由其概率分布決定。
- 一旦我們知道了變量的概率分布,我們就可以開始估計事件出現的概率了,我們甚至可以使用一些概率公式。至此,我們就可更好的理解變量的特性了。概率分布取決于樣本的一些特征,例如平均值,标準偏差,偏度和峰度。
- 如果将所有概率值求和,那麼求和結果将會是100%
世界上存在着很多不同的概率分布,而最廣泛使用的就是正态分布了。
初遇正态分布我們可以畫出正态分布的概率分布曲線,可以看到該曲線是一個鐘型的曲線。如果變量的均值,模和中值相等,那麼該變量就呈現正态分布。
如下圖所示,為正态分布的概率分布曲線:
理解和估計變量的概率分布非常重要。下面列出的變量的分布都比較接近正态分布:
- 人群的身高
- 成年人的血壓
- 傳播中的粒子的位置
- 測量誤差
- 回歸中的殘差
- 人群的鞋碼
- 一天中雇員回家的總耗時
- 教育指标
此外,生活中有大量的變量都是具有 x % 置信度的正态變量,其中,x<100。
什麼是正态分布?正态分布隻依賴于數據集的兩個特征:樣本的均值和方差。
均值——樣本所有取值的平均
方差——該指标衡量了樣本總體偏離均值的程度
正态分布的這種統計特性使得問題變得異常簡單,任何具有正态分布的變量,都可以進行高精度分預測。值得注意的是,大自然中發現的變量,大多近似服從正态分布。
正态分布很容易解釋,這是因為:
- 正态分布的均值,模和中位數是相等的。
- 我們隻需要用均值和标準差就能解釋整個分布。
正态分布是我們熟悉的正常行為
為何如此多的變量都大緻服從正态分布?這個現象可以由如下定理理解釋:當在大量随機變量上重複很多次實驗時,它們的分布總和将非常接近正态分布。
由于人的身高是一個随機變量,并且基于其他随機變量,例如一個人消耗的營養量,他們所處的環境,他們的遺傳等等,這些變量的分布總和最終是非常接近正态的。
這就是中心極限定理。
本文的核心:我們從上文的分析得出,正态分布是許多随機分布的總和。 如果我們繪制正态分布密度函數,那麼它的曲線将具有以下特征:
如上圖所示,該鐘形曲線有均值為 100,标準差為1:
- 均值是曲線的中心。 這是曲線的最高點,因為大多數點都是均值。
- 曲線兩側的點數相等。 曲線的中心具有最多的點數。
- 曲線下的總面積是變量所有取值的總概率。
- 因此總曲線面積為 100%
更進一步,如上圖所示:
- 約 68.2% 的點在 -1 到 1 個标準偏差範圍内。
- 約 95.5% 的點在 -2 到 2 個标準偏差範圍内。
- 約 99.7% 的點在 -3 至 3 個标準偏差範圍内。
這使我們可以輕松估計變量的變化性,并給出相應置信水平,它的可能取值是多少。例如,在上面的灰色鐘形曲線中,變量值在 99-101 之間的可能性為 68.2%。
正态概率分布函數
正态概率分布函數的形式如下:
概率密度函數基本上可以看作是連續随機變量取值的概率。
正态分布是鐘形曲線,其中mean = mode = median。
- 如果使用概率密度函數繪制變量的概率分布曲線,則給定範圍的曲線下的面積,表示目标變量在該範圍内取值的概率。
- 概率分布曲線基于概率分布函數,而概率分布函數本身是根據諸如平均值或标準差等多個參數計算的。
- 我們可以使用概率分布函數來查找随機變量取值範圍内的值的相對概率。 例如,我們可以記錄股票的每日收益,将它們分組到适當的集合類中,然後計算股票在未來獲得20-40%收益的概率。
标準差越大,樣品中的變化性越大。
如何使用 Python 探索變量的概率分布最簡單的方法是加載 data frame 中的所有特征,然後運行以下腳本(使用pandas 庫):
DataFrame.hist(bins=10) #Make a histogram of the DataFrame.
該函數向我們展示了所有變量的概率分布。
變量服從正态分布意味着什麼?如果我們将大量具有不同分布的随機變量加起來,所得到的新變量将最終具有正态分布。這就是前文所述的中心極限定理。
服從正态分布的變量總是服從正态分布。 例如,假設 A 和 B 是兩個具有正态分布的變量,那麼:
• A x B 是正态分布
• A B 是正态分布
因此,使用正态分布,預測變量并在一定範圍内找到它的概率會變得非常簡單。
樣本不服從正态分布怎麼辦?我們可以将變量的分布轉換為正态分布。
我們有多種方法将非正态分布轉化為正态分布:
1.線性變換
一旦我們收集到變量的樣本數據,我們就可以對樣本進行線性變化,并計算Z得分:
- 計算平均值
- 計算标準偏差
- 對于每個 x,使用以下方法計算 Z:
2.使用 Boxcox 變換
我們可以使用 SciPy 包将數據轉換為正态分布:
scipy.stats.boxcox(x, lmbda=None, alpha=None) 3.使用 Yeo-Johnson 變換
另外,我們可以使用 yeo-johnson 變換。 Python 的 sci-kit learn 庫提供了相應的功能:
sklearn.preprocessing.PowerTransformer(method=’yeojohnson’,standardize=True, copy=True)
正态分布的問題
由于正态分布簡單且易于理解,因此它也在預測研究中被過度使用。 假設變量服從正态分布會有一些顯而易見的缺陷。 例如,我們不能假設股票價格服從正态分布,因為價格不能為負。 因此,我們可以假設股票價格服從對數正态分布,以确保它永遠不會低于零。
我們知道股票收益可能是負數,因此收益可以假設服從正态分布。
假設變量服從正态分布而不進行任何分析是愚蠢的。變量可以服從Poisson,Student-t 或 Binomial 分布,盲目地假設變量服從正态分布可能導緻不準确的結果。
總結本文闡述了正态分布的概念和性質,以及它如此重要的原因。
希望能幫助到你。
原文鍊接:http://bit.ly/2NyetFz
(*本文為 AI科技大本營翻譯文章,轉載請聯系 1092722531)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!