<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國際加速解決方案。 廣告
                # 如何計算Python中機器學習結果的Bootstrap置信區間 > 原文: [https://machinelearningmastery.com/calculate-bootstrap-confidence-intervals-machine-learning-results-python/](https://machinelearningmastery.com/calculate-bootstrap-confidence-intervals-machine-learning-results-python/) 重要的是既展示機器學習模型的預期技能,又展示該模型技能的置信區間。 置信區間提供了一系列模型技能,以及在對新數據進行預測時模型技能落在范圍之間的可能性。例如,分類準確率的95%可能性在70%和75%之間。 計算機器學習算法置信區間的有效方法是使用引導程序。這是用于估計可用于計算經驗置信區間的統計數據的一般技術,無論技能分數的分布如何(例如,非高斯分布) 在本文中,您將了解如何使用引導程序計算機器學習算法表現的置信區間。 閱讀這篇文章后,你會知道: * 如何使用引導程序估計統計信息的置信區間。 * 如何應用此方法來評估機器學習算法。 * 如何實現用于估計Python中置信區間的bootstrap方法。 讓我們開始吧。 * **2017年6月更新**:修正了為numpy.percentile()提供錯誤值的錯誤。謝謝Elie Kawerk。 * **更新March / 2018** :更新了數據集文件的鏈接。 ![How to Calculate Bootstrap Confidence Intervals For Machine Learning Results in Python](img/14c678555f6f330945f25df0e047316d.jpg) 如何計算Python中機器學習結果的Bootstrap置信區間 照片由 [Hendrik Wieduwilt](https://www.flickr.com/photos/hendrikwieduwilt/13744081435/) ,保留一些權利。 ## Bootstrap置信區間 使用引導程序計算置信區間包括兩個步驟: 1. 計算統計數據 2. 計算置信區間 ### 1.計算統計人口 第一步是使用引導程序多次重新采樣原始數據并計算感興趣的統計量。 使用替換對數據集進行采樣。這意味著每次從原始數據集中選擇一個項目時,都不會將其刪除,從而允許再次為該樣本選擇該項目。 統計數據在樣本上計算并存儲,以便我們建立一個感興趣的統計數據。 引導重復的數量定義了估計的方差,越多越好,通常是數百或數千。 我們可以使用以下偽代碼演示此步驟。 ```py statistics = [] for i in bootstraps: sample = select_sample_with_replacement(data) stat = calculate_statistic(sample) statistics.append(stat) ``` ### 2.計算置信區間 現在我們有了感興趣的統計數據,我們可以計算置信區間。 這是通過首先排序統計數據,然后在置信區間選擇所選百分位數的值來完成的。在這種情況下選擇的百分位稱為alpha。 例如,如果我們對95%的置信區間感興趣,則α將為0.95,我們將選擇2.5%百分位數的值作為下限,將97.5%百分位數作為感興趣統計量的上限。 例如,如果我們從1,000個bootstrap樣本計算1,000個統計數據,則下限將是第25個值,上限將是第975個值,假設統計列表已訂購。 在這里,我們計算一個非參數置信區間,它不對統計分布的函數形式做出任何假設。該置信區間通常稱為經驗置信區間。 我們可以用下面的偽代碼來證明這一點。 ```py ordered = sort(statistics) lower = percentile(ordered, (1-alpha)/2) upper = percentile(ordered, alpha+((1-alpha)/2)) ``` ## Bootstrap模型表現 引導程序可用于評估機器學習算法的表現。 每次迭代采樣的大小可以限制為可用數據的60%或80%。這意味著將會有一些未包含在樣本中的樣本。這些被稱為袋(OOB)樣品。 然后可以在每個自舉迭代的數據樣本上訓練模型,并在袋外樣本上進行評估,以給出可以收集的表現統計量,并且可以從中計算置信區間。 我們可以使用以下偽代碼演示此過程。 ```py statistics = [] for i in bootstraps: train, test = select_sample_with_replacement(data, size) model = train_model(train) stat = evaluate_model(test) statistics.append(stat) ``` ## 計算分類準確性置信區間 本節演示如何使用引導程序使用Python機器學習庫scikit-learn計算實際數據集上的機器學習算法的經驗置信區間。 本節假定您已安裝Pandas,NumPy和Matplotlib。如果您在設置環境方面需要幫助,請參閱教程: * [如何使用Anaconda設置用于機器學習和深度學習的Python環境](http://machinelearningmastery.com/setup-python-environment-machine-learning-deep-learning-anaconda/) 首先,下載 [Pima Indians數據集](https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data)并將其放在當前工作目錄中,文件名為“pima _-_ indians _-diabetes.data.csv_ ”(更新: [在這里下載](https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv))。 我們將使用Pandas加載數據集。 ```py # load dataset data = read_csv('pima-indians-diabetes.data.csv', header=None) values = data.values ``` 接下來,我們將配置引導程序。我們將使用1,000次自舉迭代并選擇一個50%的數據集大小的樣本。 ```py # configure bootstrap n_iterations = 1000 n_size = int(len(data) * 0.50) ``` 接下來,我們將迭代引導程序。 將使用sklearn中的 [resample()函數](http://scikit-learn.org/stable/modules/generated/sklearn.utils.resample.html)替換樣本。檢索未包含在樣本中的任何行并將其用作測試數據集。接下來,決策樹分類器適合樣本并在測試集上進行評估,計算分類分數,并添加到跨所有引導收集的分數列表中。 ```py # run bootstrap stats = list() for i in range(n_iterations): # prepare train and test sets train = resample(values, n_samples=n_size) test = numpy.array([x for x in values if x.tolist() not in train.tolist()]) # fit model model = DecisionTreeClassifier() model.fit(train[:,:-1], train[:,-1]) # evaluate model predictions = model.predict(test[:,:-1]) score = accuracy_score(test[:,-1], predictions) ``` 收集分數后,將創建直方圖以了解分數的分布。我們通常期望這種分布是高斯分布,也許是偏差與均值周圍的對稱方差。 最后,我們可以使用[百分位數()NumPy函數](https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.percentile.html)計算經驗置信區間。使用95%置信區間,因此選擇2.5和97.5百分位數的值。 綜合這些,下面列出了完整的例子。 ```py import numpy from pandas import read_csv from sklearn.utils import resample from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score from matplotlib import pyplot # load dataset data = read_csv('pima-indians-diabetes.data.csv', header=None) values = data.values # configure bootstrap n_iterations = 1000 n_size = int(len(data) * 0.50) # run bootstrap stats = list() for i in range(n_iterations): # prepare train and test sets train = resample(values, n_samples=n_size) test = numpy.array([x for x in values if x.tolist() not in train.tolist()]) # fit model model = DecisionTreeClassifier() model.fit(train[:,:-1], train[:,-1]) # evaluate model predictions = model.predict(test[:,:-1]) score = accuracy_score(test[:,-1], predictions) print(score) stats.append(score) # plot scores pyplot.hist(stats) pyplot.show() # confidence intervals alpha = 0.95 p = ((1.0-alpha)/2.0) * 100 lower = max(0.0, numpy.percentile(stats, p)) p = (alpha+((1.0-alpha)/2.0)) * 100 upper = min(1.0, numpy.percentile(stats, p)) print('%.1f confidence interval %.1f%% and %.1f%%' % (alpha*100, lower*100, upper*100)) ``` 運行該示例會在每次引導迭代時打印分類精度。 創建1000個準確度分數的直方圖,顯示類似高斯分布。 ![Distribution of Classification Accuracy Using the Bootstrap](img/58225babd47d6836760c7e90f3ed5a65.jpg) 使用Bootstrap分配分類準確度 最后,報告置信區間,表明置信區間64.4%和73.0%有95%的可能性涵蓋模型的真實技能。 ```py ... 0.646288209607 0.682203389831 0.668085106383 0.673728813559 0.686021505376 95.0 confidence interval 64.4% and 73.0% ``` 該相同方法可用于計算任何其他誤差分數的置信區間,例如回歸算法的均方根誤差。 ## 進一步閱讀 本節提供有關引導程序和引導程序置信區間的其他資源。 * [Bootstrap簡介](http://www.amazon.com/dp/0412042312?tag=inspiredalgor-20),1996 * [Bootstrap置信區間](https://projecteuclid.org/download/pdf_1/euclid.ss/1032280214),統計科學,1996 * 第5.2.3節,Bootstrap置信區間,[人工智能的經驗方法](http://www.amazon.com/dp/0262032252?tag=inspiredalgor-20) * 維基百科上的 [Bootstrapping](https://en.wikipedia.org/wiki/Bootstrapping_(statistics)) * 第4.4節重采樣技術,[應用預測建模](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ## 摘要 在這篇文章中,您了解了如何使用引導程序來計算機器學習算法的置信區間。 具體來說,你學到了: * 如何計算數據集中統計量的置信區間的自舉估計值。 * 如何應用引導程序來評估機器學習算法。 * 如何計算Python中機器學習算法的bootstrap置信區間。 您對置信區間有任何疑問嗎? 在下面的評論中提出您的問題。
                  <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>

                              哎呀哎呀视频在线观看