<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 淺談計算正態匯總統計量 > 原文: [https://machinelearningmastery.com/a-gentle-introduction-to-calculating-normal-summary-statistics/](https://machinelearningmastery.com/a-gentle-introduction-to-calculating-normal-summary-statistics/) 數據樣本是來自更廣泛人群的快照,可以從域中獲取或由過程生成。 有趣的是,許多觀察結果符合稱為正態分布的常見模式或分布,或者更正式地說,符合高斯分布。關于高斯分布的知識很多,因此,存在可以與高斯數據一起使用的統計和統計方法的整個子場。 在本教程中,您將發現高斯分布,如何識別它,以及如何計算從此分布中提取的數據的關鍵摘要統計信息。 完成本教程后,您將了解: * 高斯分布描述了許多觀察,包括在應用機器學習期間看到的許多觀察。 * 分布的中心趨勢是最可能的觀察,并且可以從數據樣本估計為平均值或中值。 * 方差是與分布中的平均值的平均偏差,并且可以從數據樣本估計為方差和標準偏差。 讓我們開始吧。 ![A Gentle Introduction to Calculating Normal Summary Statistics](img/890f07539a4a0931a2649074bdda43b3.jpg) 計算正態匯總統計的溫和介紹 [John](https://www.flickr.com/photos/14733994@N02/3070769316/) 的照片,保留一些權利。 ## 教程概述 本教程分為6個部分;他們是: 1. 高斯分布 2. 樣本與人口 3. 測試數據集 4. 中心傾向 5. 方差 6. 描述高斯 ## 高斯分布 數據分布是指繪制圖形時的形狀,例如直方圖。 最常見且因此眾所周知的連續值分布是鐘形曲線。它被稱為“_正常_”分布,因為它是許多數據所屬的分布。它也被稱為高斯分布,更正式地命名為Carl Friedrich Gauss。 因此,您將看到對正常分布或高斯的數據的引用,這些引用是可互換的,兩者都指向同一事物:數據看起來像高斯分布。 具有高斯分布的觀測的一些示例包括: * 人的高度。 * 智商分數。 * 體溫。 我們來看看正態分布。下面是一些生成和繪制理想化高斯分布的代碼。 ```py # generate and plot an idealized gaussian from numpy import arange from matplotlib import pyplot from scipy.stats import norm # x-axis for the plot x_axis = arange(-3, 3, 0.001) # y-axis as the gaussian y_axis = norm.pdf(x_axis, 0, 1) # plot data pyplot.plot(x_axis, y_axis) pyplot.show() ``` 運行該示例生成理想化高斯分布的圖。 x軸是觀察值,y軸是每次觀察的頻率。在這種情況下,大約0.0的觀測值是最常見的,-3.0和3.0附近的觀測值很少或不太可能。 ![Line Plot of Gaussian Distribution](img/b90086f99e5435d6c9ef3e05eb2aadf8.jpg) 高斯分布的線圖 當數據是高斯數據或我們假設用于計算統計數據的高斯分布時,它是有用的。這是因為非常好理解高斯分布。因此,統計領域的大部分內容專門用于此分發的方法。 值得慶幸的是,我們在機器學習中使用的許多數據通常符合高斯分布,例如我們可用于擬合模型的輸入數據,以及對不同訓練數據樣本的模型的重復評估。 并非所有數據都是高斯數據,有時候通過查看數據的直方圖或使用統計檢驗來檢查是非常重要的。一些不符合高斯分布的觀測實例包括: * 人民的收入。 * 城市人口。 * 銷售書籍。 ## 樣本與人口 我們可以想到由某個未知過程生成的數據。 我們收集的數據稱為數據樣本,而可以收集的所有可能數據稱為總體。 * **數據樣本**:來自一組的觀察的子集。 * **數據人口**:來自一組的所有可能觀察結果。 這是一個重要的區別,因為不同的統計方法用于樣本與群體,在應用機器學習中,我們經常處理數據樣本。如果您在談論機器學習中的數據時閱讀或使用“_群體_”這個詞,那么它很可能意味著在統計方法方面的樣本。 您將在機器學習中遇到的兩個數據樣本示例包括: * 訓練和測試數據集。 * 模型的表現分數。 使用統計方法時,我們通常只想使用樣本中的觀察結果來對群體進行聲明。 兩個明顯的例子包括: * 訓練樣本必須代表觀察人口,以便我們能夠擬合一個有用的模型。 * 測試樣本必須代表觀察人口,以便我們能夠對模型技能進行無偏見的評估。 因為我們正在處理樣本并對人口提出索賠,這意味著總有一些不確定性,理解和報告這種不確定性很重要。 ## 測試數據集 在我們探索具有高斯分布的數據的一些重要匯總統計數據之前,讓我們首先生成一個我們可以使用的數據樣本。 我們可以使用 _randn()_ NumPy函數生成從高斯分布中提取的隨機數樣本。 有兩個關鍵參數定義任何高斯分布;它們是均值和標準差。稍后我們將更多地介紹這些參數,因為它們也是估計何時從未知高斯分布中獲取數據的關鍵統計數據。 _randn()_函數將生成從高斯分布中繪制的指定數量的隨機數(例如10,000),其均值為零,標準差為1.然后我們可以將這些數字縮放為高斯分布我們通過重新調整數字來選擇。 通過添加所需的平均值(例如50)并將該值乘以標準偏差(5),可以使這一點保持一致。 ```py data = 5 * randn(10000) + 50 ``` 然后,我們可以使用直方圖繪制數據集,并查找繪制數據的預期形狀。 下面列出了完整的示例。 ```py # generate a sample of random gaussians from numpy.random import seed from numpy.random import randn from matplotlib import pyplot # seed the random number generator seed(1) # generate univariate observations data = 5 * randn(10000) + 50 # histogram of generated data pyplot.hist(data) pyplot.show() ``` 運行該示例將生成數據集并將其繪制為直方圖。 我們幾乎可以看到數據的高斯形狀,但它是塊狀的。這突出了一個重點。 有時,數據不會是完美的高斯分布,但它會有類似高斯分布的分布。它幾乎是高斯的,如果以不同的方式繪制,以某種方式縮放,或者如果收集更多數據,它可能會更高斯。 通常,在處理類似高斯的數據時,我們可以將其視為高斯數據并使用所有相同的統計工具并獲得可靠的結果。 ![Histogram plot of Gaussian Dataset](img/1f52dc9c4eae8ad46fe2360ed56ff082.jpg) 高斯數據集的直方圖 在這個數據集的情況下,我們確實有足夠的數據,并且繪圖是塊狀的,因為繪圖功能選擇任意大小的桶來分割數據。我們可以選擇一種不同的,更精細的方式來分割數據并更好地揭示基礎高斯分布。 下面列出了更精確的繪圖的更新示例。 ```py # generate a sample of random gaussians from numpy.random import seed from numpy.random import randn from matplotlib import pyplot # seed the random number generator seed(1) # generate univariate observations data = 5 * randn(10000) + 50 # histogram of generated data pyplot.hist(data, bins=100) pyplot.show() ``` 運行該示例,我們可以看到,選擇100個數據分割可以更好地創建一個清晰顯示數據高斯分布的圖。 數據集是從完美高斯生成的,但數字是隨機選擇的,我們只選擇10,000個觀察樣本。您可以看到,即使使用此受控設置,數據樣本中也會出現明顯的噪音。 這突出了另一個重點:我們應該總是期望我們的數據樣本中存在一些噪音或限制。與純底層分布相比,數據樣本將始終包含錯誤。 ![Histogram plot of Gaussian Dataset With More Bins](img/a303b2fd449005a952a1c42e5c08e568.jpg) 具有更多區間的高斯數據集的直方圖 ## 集中趨勢 分布的中心趨勢是指分布中的中間或典型值。最常見或最可能的價值。 在高斯分布中,集中趨勢稱為均值,或者更正式地稱為算術平均值,并且是定義任何高斯分布的兩個主要參數之一。 樣本的平均值計算為觀察值之和除以樣本中觀察值的總數。 ```py mean = sum(data) / length(data) ``` 它也以更緊湊的形式寫成: ```py mean = 1 / length(data) * sum(data) ``` 我們可以通過在陣列上使用 _mean()_ NumPy函數來計算樣本的平均值。 ```py result = mean(data) ``` 下面的示例在上一節中開發的測試數據集上演示了這一點。 ```py # calculate the mean of a sample from numpy.random import seed from numpy.random import randn from numpy import mean # seed the random number generator seed(1) # generate univariate observations data = 5 * randn(10000) + 50 # calculate mean result = mean(data) print('Mean: %.3f' % result) ``` 運行該示例計算并打印樣本的平均值。 該樣本的算術平均值的計算是對從中抽取樣本的群體的基礎高斯分布的參數的估計。作為估計,它將包含錯誤。 因為我們知道基礎分布的真實均值為50,所以我們可以看到10,000個觀測樣本的估計值是合理準確的。 ```py Mean: 50.049 ``` 平均值很容易受到異常值的影響,即遠離平均值的罕見值。這些可能是分布邊緣或錯誤的合法罕見的觀察。 此外,平均值可能會產生誤導。計算另一個分布上的均值,例如均勻分布或功率分布,可能沒有多大意義,因為盡管可以計算該值,但它將指代看似任意的預期值而不是分布的真正集中趨勢。 在異常值或非高斯分布的情況下,計算的替代和常用的集中趨勢是中值。 通過首先對所有數據進行排序然后在樣本中定位中間值來計算中值。如果存在奇數個觀測值,則這很簡單。如果存在偶數個觀測值,則將中值計算為中間兩個觀測值的平均值。 我們可以通過調用 _median()_ NumPy函數來計算數組樣本的中位數。 ```py result = median(data) ``` 下面的示例在測試數據集上演示了這一點。 ```py # calculate the median of a sample from numpy.random import seed from numpy.random import randn from numpy import median # seed the random number generator seed(1) # generate univariate observations data = 5 * randn(10000) + 50 # calculate median result = median(data) print('Median: %.3f' % result) ``` 運行該示例,我們可以看到中值是從樣本計算并打印出來的。 結果與平均值沒有太大差別,因為樣本具有高斯分布。如果數據具有不同的(非高斯)分布,則中值可能與均值非常不同,并且可能更好地反映潛在人口的集中趨勢。 ```py Median: 50.042 ``` ## 方差 分布的方差指的是觀察結果與平均值變化或不同的平均值。 將方差視為衡量分布擴散的指標是有用的。低方差將具有圍繞均值分組的值(例如,窄鐘形),而高方差將具有從均值分布的值(例如,寬鐘形)。 我們可以通過一個例子,通過繪制具有低和高方差的理想高斯來證明這一點。下面列出了完整的示例。 ```py # generate and plot gaussians with different variance from numpy import arange from matplotlib import pyplot from scipy.stats import norm # x-axis for the plot x_axis = arange(-3, 3, 0.001) # plot low variance pyplot.plot(x_axis, norm.pdf(x_axis, 0, 0.5)) # plot high variance pyplot.plot(x_axis, norm.pdf(x_axis, 0, 1)) pyplot.show() ``` 運行該示例繪制了兩個理想化的高斯分布:藍色具有圍繞均值分組的低方差,而橙色具有更高的方差和更多的分布。 ![Line plot of Gaussian distributions with low and high variance](img/6cda540206f123083e7b67c57daa4ba8.jpg) 具有低和高方差的高斯分布的線圖 從高斯分布中提取的數據樣本的方差計算為樣本均值中樣本中每個觀察值的平均平方差: ```py variance = 1 / (length(data) - 1) * sum(data[i] - mean(data))^2 ``` 方差通常表示為 _s ^ 2_ ,清楚地顯示度量的平方單位。您可以從觀察數量中看到沒有( - 1)的等式,這是對總體而不是樣本的方差的計算。 我們可以使用 _var()_函數計算NumPy中數據樣本的方差。 下面的示例演示了計算測試問題的方差。 ```py # calculate the variance of a sample from numpy.random import seed from numpy.random import randn from numpy import var # seed the random number generator seed(1) # generate univariate observations data = 5 * randn(10000) + 50 # calculate variance result = var(data) print('Variance: %.3f' % result) ``` 運行該示例計算并打印方差。 ```py Variance: 24.939 ``` 很難解釋方差,因為單位是觀測值的平方單位。我們可以通過取結果的平方根將單位返回到觀測的原始單位。 例如,24.939的平方根約為4.9。 通常,當總結高斯分布的擴展時,使用方差的平方根來描述。這稱為標準偏差。標準偏差和均值是指定任何高斯分布所需的兩個關鍵參數。 我們可以看到4.9的值非常接近于為測試問題創建樣本時指定的標準偏差的值5。 我們可以將方差計算包裝在平方根中以直接計算標準偏差。 ```py standard deviation = sqrt(1 / (length(data) - 1) * sum(data[i] - mean(data))^2) ``` 標準偏差通常寫為s或希臘小寫字母sigma。 可以通過 _std()_函數直接在NumPy中計算標準偏差。 下面的示例演示了測試問題的標準偏差的計算。 ```py # calculate the standard deviation of a sample from numpy.random import seed from numpy.random import randn from numpy import std # seed the random number generator seed(1) # generate univariate observations data = 5 * randn(10000) + 50 # calculate standard deviation result = std(data) print('Standard Deviation: %.3f' % result) ``` 運行該示例計算并打印樣本的標準偏差。該值與方差的平方根匹配,并且非常接近5.0,即問題定義中指定的值。 ```py Standard Deviation: 4.994 ``` 可以針對非高斯分布計算方差的度量,但是通常需要識別分布,以便可以計算特定于該分布的特定方差度量。 ## 描述高斯 在應用機器學習中,您通常需要報告算法的結果。 也就是說,報告模型對樣本外數據的估計技能。 這通常通過報告k倍交叉驗證或一些其他重復取樣程序的平均表現來完成。 在報告模型技能時,您實際上總結了技能分數的分布,并且很可能從高斯分布中得出技能分數。 通常只報告模型的平均表現。這將隱藏模型技能分布的另外兩個重要細節。 至少我建議報告模型分數的高斯分布和樣本大小的兩個參數。理想情況下,確認模型技能分數確實是高斯分數或看起來高斯足以防止報告高斯分布的參數也是一個好主意。 這很重要,因為技能分數的分布可以由讀者重建,并且可能與未來相同問題的模型技能進行比較。 ## 擴展 本節列出了一些擴展您可能希望探索的教程的想法。 * 開發自己的測試問題并計算集中趨勢和方差測量。 * 開發一個函數來計算給定數據樣本的摘要報告。 * 加載并匯總標準機器學習數據集的變量 如果你探索任何這些擴展,我很想知道。 ## 進一步閱讀 如果您希望深入了解,本節將提供有關該主題的更多資源。 ### 蜜蜂 * [scipy.stats.norm()API](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html) * [numpy.random.seed()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.seed.html) * [numpy.random.randn()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randn.html) * [matplotlib.pyplot.hist()API](https://matplotlib.org/api/_as_gen/matplotlib.pyplot.hist.html) * [numpy.mean()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.mean.html) * [numpy.median()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.median.html) * [numpy.var()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.var.html) * [numpy.std()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html) ### 用品 * [維基百科上的正態分布](https://en.wikipedia.org/wiki/Normal_distribution) * [維基百科上的中心趨勢](https://en.wikipedia.org/wiki/Central_tendency) * [維基百科上的算術平均值](https://en.wikipedia.org/wiki/Arithmetic_mean) * [維基百科上的中位數](https://en.wikipedia.org/wiki/Median) * [維基百科上的差異](https://en.wikipedia.org/wiki/Variance) * [維基百科的標準偏差](https://en.wikipedia.org/wiki/Standard_deviation) ## 摘要 在本教程中,您發現了高斯分布,如何識別它,以及如何計算從此分布中提取的數據的關鍵摘要統計信息。 具體來說,你學到了: * 高斯分布描述了許多觀察,包括在應用機器學習期間看到的許多觀察。 * 分布的中心趨勢是最可能的觀察,并且可以從數據樣本估計為平均值或中值。 * 方差是與分布中的平均值的平均偏差,并且可以從數據樣本估計為方差和標準偏差。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看