<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 機器學習的置信區間 > 原文: [https://machinelearningmastery.com/confidence-intervals-for-machine-learning/](https://machinelearningmastery.com/confidence-intervals-for-machine-learning/) 許多機器學習涉及估計機器學習算法在看不見的數據上的表現。 置信區間是量化估計不確定性的一種方式。它們可用于在群體參數上添加界限或可能性,例如平均值,從群體的獨立觀察樣本估計。 在本教程中,您將發現置信區間以及如何在實踐中計算置信區間。 完成本教程后,您將了解: * 置信區間是對總體參數的估計的界限。 * 可以直接計算分類方法的估計技能的置信區間。 * 可以使用引導程序以無分布的方式估計任意任意總體統計量的置信區間。 讓我們開始吧。 * **更新June / 2018** :修復了引導代碼示例部分采樣中的拼寫錯誤。 ![Confidence Intervals for Machine Learning](img/376c11a99795ebb0c589f41afc9292b1.jpg) 機器學習的置信區間 [Paul Balfe](https://www.flickr.com/photos/paul_e_balfe/34633468352/) 的照片,保留一些權利。 ## 教程概述 本教程分為3個部分;他們是: 1. 什么是置信區間? 2. 分類準確性的時間間隔 3. 非參數置信區間 ## 什么是置信區間? 置信區間是人口變量估計值的界限。它是一個區間統計量,用于量化估計的不確定性。 > 包含人口或過程未知特征的置信區間。感興趣的數量可以是人口屬性或“參數”,例如人口或過程的平均值或標準差。 - 第3頁,[統計間隔:從業者和研究人員指南](http://amzn.to/2G8w3IL),2017年。 置信區間不同于描述從分布中采樣的數據范圍的容差區間。它也不同于描述單個觀察的界限的預測間隔。相反,置信區間提供總體參數的界限,例如平均值,標準偏差或類似值。 在應用機器學習中,我們可能希望在預測模型的技能呈現中使用置信區間。 例如,置信區間可用于表示分類模型的技能,可以表述為: _給定樣本,范圍x到y有95%的可能性涵蓋真實的模型精度。_ 要么 _模型的準確度為x +/- y,置信水平為95%。_ 置信區間也可用于呈現回歸預測模型的誤差;例如: _范圍x到y有95%的可能性涵蓋了模型的真實誤差。_ or _模型的誤差在95%置信水平下為x +/- y。_ 盡管使用了其他較不常見的值,例如90%和99.7%,但在呈現置信區間時,95%置信度的選擇非常常見。在實踐中,您可以使用您喜歡的任何值。 > 95%置信區間(CI)是根據我們的數據計算出的一系列值,很可能包括我們估計的人口數的真實值。 - 第4頁,[新統計學概論:估計,開放科學及其他](http://amzn.to/2HhrT0w),2016年。 置信區間的值是其量化估計的不確定性的能力。它提供了下限和上限以及可能性。單獨作為半徑測量,置信區間通常被稱為誤差范圍,并且可以用于通過使用[誤差條](https://en.wikipedia.org/wiki/Error_bar)以圖形方式描繪圖表上的估計的不確定性。 通常,從中得出估計的樣本越大,估計越精確,置信區間越小(越好)。 * **較小的置信區間**:更精確的估計。 * **更大的置信區間**:估計不太精確。 > 我們還可以說,CI告訴我們估計的準確程度,誤差幅度是我們的精確度量。短CI意味著一個小的誤差范圍,我們有一個相對精確的估計[...]長CI意味著很大的誤差,我們的精度很低 — Page 4, [Introduction to the New Statistics: Estimation, Open Science, and Beyond](http://amzn.to/2HhrT0w), 2016. 置信區間屬于稱為估計統計的統計領域,可用于呈現和解釋實驗結果,而不是統計顯著性檢驗或除此之外。 > 估算為分析和解釋結果提供了更具信息性的方法。 [...]知道和思考效應的幅度和精確度對于定量科學比考慮觀察至少那個極端數據的可能性更有用,假設絕對沒有效果。 - [估算統計數據應取代2016年的顯著性檢驗](https://www.nature.com/articles/nmeth.3729)。 在實踐中,使用統計顯著性檢驗可能優選置信區間。 原因是從業者和利益相關者更容易直接與域名相關聯。它們也可以被解釋并用于比較機器學習模型。 > 這些不確定性估計有兩個方面。首先,間隔使模型的消費者了解模型的好壞。 [...]通過這種方式,置信區間有助于衡量比較模型時可用證據的權重。置信區間的第二個好處是促進模型之間的權衡。如果兩個模型的置信區間顯著重疊,則表明兩者之間的(統計)等價,并且可能提供支持不太復雜或更可解釋的模型的理由。 - 第416頁, [Applied Predictive Modeling](http://amzn.to/2Fmrbib) ,2013。 現在我們知道置信區間是什么,讓我們看一下我們可以用它來計算預測模型的幾種方法。 ## 分類準確性的時間間隔 分類問題是在給定一些輸入數據的情況下預測標簽或類結果變量的問題。 通常使用分類準確度或分類誤差(精度的倒數)來描述分類預測模型的技能。例如,在75%的時間內對類結果變量進行正確預測的模型具有75%的分類準確度,計算公式如下: ```py accuracy = total correct predictions / total predictions made * 100 ``` 可以基于訓練期間模型未看到的保持數據集(例如驗證或測試數據集)來計算該準確度。 分類精度或分類誤差是[比例](https://en.wikipedia.org/wiki/Proportionality_(mathematics))或比率。它描述了模型所做的正確或不正確預測的比例。每個預測都是二元決策,可能是正確的或不正確的。從技術上講,這被稱為[伯努利試驗](https://en.wikipedia.org/wiki/Bernoulli_trial),以Jacob Bernoulli命名。伯努利試驗中的比例具有稱為[二項分布](https://en.wikipedia.org/wiki/Binomial_distribution)的特定分布。值得慶幸的是,對于大樣本量(例如超過30個),我們可以使用高斯近似分布。 > 在統計學中,一系列成功或失敗的獨立事件稱為伯努利過程。 [...]對于大N,該隨機變量的分布接近正態分布。 - 第148頁,[數據挖掘:實用機器學習工具和技術](http://amzn.to/2G7sxhP),第二版,2005年。 我們可以使用比例的高斯分布(即分類精度或誤差)的假設來容易地計算置信區間。 在分類錯誤的情況下,間隔的半徑可以計算為: ```py interval = z * sqrt( (error * (1 - error)) / n) ``` 在分類精度的情況下,間隔的半徑可以計算為: ```py interval = z * sqrt( (accuracy * (1 - accuracy)) / n) ``` 其中,間隔是置信區間的半徑,誤差和準確度分別是分類誤差和分類精度,n是樣本的大小,sqrt是平方根函數,z是高斯分布的臨界值。從技術上講,這稱為二項式比例置信區間。 常用的高斯分布臨界值及其相應的顯著性水平如下: * 1.64(90%) * 1.96(95%) * 2.33(98%) * 2.58(99%) 在具有50個示例(n = 50)的驗證數據集上考慮具有20%或0.2(誤差= 0.2)的誤差的模型。我們可以如下計算95%置信區間(z = 1.96): ```py # binomial confidence interval from math import sqrt interval = 1.96 * sqrt( (0.2 * (1 - 0.2)) / 50) print('%.3f' % interval) ``` 運行該示例,我們看到計算和打印的置信區間的計算半徑。 ```py 0.111 ``` 然后我們可以提出如下聲明: * 模型的分類誤差為20%+ / - 11% * 模型的真實分類誤差可能在9%到31%之間。 我們可以看到樣本大小對置信區間半徑的估計精度的影響。 ```py # binomial confidence interval interval = 1.96 * sqrt( (0.2 * (1 - 0.2)) / 100) print('%.3f' % interval) ``` 運行該示例顯示置信區間降至約7%,從而提高了模型技能估計的精度。 ```py 0.078 ``` 請記住,置信區間是一個范圍內的可能性。真正的模型技能可能超出范圍。 > 事實上,如果我們一遍又一遍地重復這個實驗,每次繪制一個包含新例子的新樣本S,我們會發現,對于大約95%的這些實驗,計算的間隔將包含真實誤差。出于這個原因,我們將此區間稱為95%置信區間估計 - 第131頁,[機器學習](http://amzn.to/2tr32Wb),1997。 [proportion_confint()statsmodels函數](http://www.statsmodels.org/dev/generated/statsmodels.stats.proportion.proportion_confint.html)是二項式比例置信區間的實現。 默認情況下,它為二項分布做出高斯假設,但支持其他更復雜的計算變量。該函數將成功(或失敗)計數,試驗總數和顯著性水平作為參數,并返回置信區間的下限和上限。 下面的例子在一個假設的案例中證明了這個函數,其中模型從具有100個實例的數據集中做出了88個正確的預測,并且我們對95%置信區間感興趣(作為0.05的顯著性提供給函數)。 ```py from statsmodels.stats.proportion import proportion_confint lower, upper = proportion_confint(88, 100, 0.05) print('lower=%.3f, upper=%.3f' % (lower, upper)) ``` 運行該示例將打印模型分類精度的下限和上限。 ```py lower=0.816, upper=0.944 ``` ## 非參數置信區間 我們通常不知道所選績效指標的分布。或者,我們可能不知道計算技能分數的置信區間的分析方法。 > 通常會違反作為參數置信區間基礎的假設。預測變量有時不是正態分布的,即使是預測變量,正態分布的方差在預測變量的所有級別上也可能不相等。 - 第326頁,[人工智能的經驗方法](http://amzn.to/2FrFJgg),1995。 在這些情況下,自舉重采樣方法可以用作計算置信區間的非參數方法,名義上稱為自舉置信區間。 自舉是一種模擬蒙特卡羅方法,其中樣本是從具有替換的固定有限數據集中提取的,并且對每個樣本估計參數。該過程通過采樣導致對真實總體參數的穩健估計。 我們可以使用以下偽代碼來證明這一點。 ```py statistics = [] for i in bootstraps: sample = select_sample_with_replacement(data) stat = calculate_statistic(sample) statistics.append(stat) ``` 該程序可用于通過在每個樣品上擬合模型并評估模型在未包括在樣品中的樣品的技能來估計預測模型的技能。然后,當對看不見的數據進行評估時,可以將模型的均值或中值技能表示為模型技能的估計值。 通過從特定百分位數的技能分數樣本中選擇觀察,可以將置信區間添加到該估計中。 回想一下百分位數是從分類樣本中抽取的觀察值,其中樣本中觀察值的百分比下降。例如,樣本的第70個百分位表示70%的樣本低于該值。第50百分位數是分布的中位數或中間位數。 首先,我們必須選擇置信水平的顯著性水平,例如95%,表示為5.0%(例如100-95)。因為置信區間在中位數附近是對稱的,所以我們必須選擇第2.5百分位數和第97.5百分位數的觀察值來給出全范圍。 我們可以用一個有效的例子來計算bootstrap置信區間。 假設我們有一個數據集,其中1000個觀測值的值介于0.5和1.0之間,均勻分布。 ```py # generate dataset dataset = 0.5 + rand(1000) * 0.5 ``` 我們將執行100次自舉程序,并從替換的數據集中抽取1,000個觀察樣本。我們將估計人口的平均值作為我們將在自助樣本上計算的統計量。這可以很容易地成為模型評估。 ```py # bootstrap scores = list() for _ in range(100): # bootstrap sample indices = randint(0, 1000, 1000) sample = dataset[indices] # calculate and store statistic statistic = mean(sample) scores.append(statistic) ``` 一旦我們獲得了bootstrap統計數據的樣本,我們就可以計算出集中趨勢。我們將使用中位數或第50百分位,因為我們不假設任何分布。 ```py print('median=%.3f' % median(scores)) ``` 然后,我們可以將置信區間計算為以中位數為中心的中間95%的觀察統計值。 ```py # calculate 95% confidence intervals (100 - alpha) alpha = 5.0 ``` 首先,基于所選擇的置信區間計算期望的較低百分位數。然后從引導統計數據樣本中檢索此百分位數的觀察結果。 ```py # calculate lower percentile (e.g. 2.5) lower_p = alpha / 2.0 # retrieve observation at lower percentile lower = max(0.0, percentile(scores, lower_p)) ``` 我們對置信區間的上邊界做同樣的事情。 ```py # calculate upper percentile (e.g. 97.5) upper_p = (100 - alpha) + (alpha / 2.0) # retrieve observation at upper percentile upper = min(1.0, percentile(scores, upper_p)) ``` 下面列出了完整的示例。 ```py # bootstrap confidence intervals from numpy.random import seed from numpy.random import rand from numpy.random import randint from numpy import mean from numpy import median from numpy import percentile # seed the random number generator seed(1) # generate dataset dataset = 0.5 + rand(1000) * 0.5 # bootstrap scores = list() for _ in range(100): # bootstrap sample indices = randint(0, 1000, 1000) sample = dataset[indices] # calculate and store statistic statistic = mean(sample) scores.append(statistic) print('50th percentile (median) = %.3f' % median(scores)) # calculate 95% confidence intervals (100 - alpha) alpha = 5.0 # calculate lower percentile (e.g. 2.5) lower_p = alpha / 2.0 # retrieve observation at lower percentile lower = max(0.0, percentile(scores, lower_p)) print('%.1fth percentile = %.3f' % (lower_p, lower)) # calculate upper percentile (e.g. 97.5) upper_p = (100 - alpha) + (alpha / 2.0) # retrieve observation at upper percentile upper = min(1.0, percentile(scores, upper_p)) print('%.1fth percentile = %.3f' % (upper_p, upper)) ``` 運行該示例總結了bootstrap樣本統計信息的分布,包括2.5th,50th(中位數)和97.5th百分位數。 ```py 50th percentile (median) = 0.750 2.5th percentile = 0.741 97.5th percentile = 0.757 ``` 然后,我們可以使用這些觀察結果來對樣本分布做出聲明,例如: _范圍0.741至0.757的可能性為95%,涵蓋了真實的統計平均值。_ ## 擴展 本節列出了一些擴展您可能希望探索的教程的想法。 * 在您自己的小型人工測試數據集上測試每個置信區間方法。 * 找到3篇研究論文,證明每種置信區間法的使用。 * 開發一個函數來計算機器學習技能分數的給定樣本的自舉置信區間。 如果你探索任何這些擴展,我很想知道。 ## 進一步閱讀 如果您希望深入了解,本節將提供有關該主題的更多資源。 ### 帖子 * [如何以置信區間報告分類器表現](https://machinelearningmastery.com/report-classifier-performance-confidence-intervals/) * [如何計算Python中機器學習結果的Bootstrap置信區間](https://machinelearningmastery.com/calculate-bootstrap-confidence-intervals-machine-learning-results-python/) * [使用Python的置信區間理解時間序列預測不確定性](https://machinelearningmastery.com/time-series-forecast-uncertainty-using-confidence-intervals-python/) ### 圖書 * [了解新統計:影響大小,置信區間和元分析](http://amzn.to/2oQW6No),2011。 * [新統計學概論:估計,開放科學及其他](http://amzn.to/2HhrT0w),2016年。 * [統計間隔:從業者和研究人員指南](http://amzn.to/2G8w3IL),2017年。 * [Applied Predictive Modeling](http://amzn.to/2Fmrbib) ,2013。 * [機器學習](http://amzn.to/2tr32Wb),1997。 * [數據挖掘:實用機器學習工具和技術](http://amzn.to/2G7sxhP),第二版,2005年。 * [Bootstrap簡介](http://amzn.to/2p2zUPl),1996。 * [人工智能的經驗方法](http://amzn.to/2FrFJgg),1995。 ### 文件 * [估算統計數據應取代2016年的顯著性檢驗](https://www.nature.com/articles/nmeth.3729)。 * [Bootstrap置信區間,統計科學](https://projecteuclid.org/download/pdf_1/euclid.ss/1032280214),1996。 ### API * [statsmodels.stats.proportion.proportion_confint()API](http://www.statsmodels.org/dev/generated/statsmodels.stats.proportion.proportion_confint.html) * [numpy.random.rand()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.rand.html) * [numpy.random.randint()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.randint.html) * [numpy.random.seed()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.seed.html) * [numpy.percentile()API](https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.percentile.html) * [numpy.median()API](https://docs.scipy.org/doc/numpy/reference/generated/numpy.median.html) ### 用品 * [維基百科的間隔估計](https://en.wikipedia.org/wiki/Interval_estimation) * [維基百科上的置信區間](https://en.wikipedia.org/wiki/Confidence_interval) * [維基百科上的二項式比例置信區間](https://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval) * [交叉驗證的RMSE置信區間](https://stats.stackexchange.com/questions/78079/confidence-interval-of-rmse) * [維基百科上的引導](https://en.wikipedia.org/wiki/Bootstrapping_(statistics)) ## 摘要 在本教程中,您發現了置信區間以及如何在實踐中計算置信區間。 具體來說,你學到了: * 置信區間是對總體參數的估計的界限。 * 可以直接計算分類方法的估計技能的置信區間。 * 可以使用引導程序以無分布的方式估計任意任意總體統計量的置信區間。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看