<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國際加速解決方案。 廣告
                # 從梯度提升開始,比較 165 個數據集上的 13 種算法 > 原文: [https://machinelearningmastery.com/start-with-gradient-boosting/](https://machinelearningmastery.com/start-with-gradient-boosting/) _**你應該使用哪種機器學習算法?**_ 這是應用機器學習的核心問題。 在 Randal Olson 和其他人最近的一篇論文中,他們試圖回答它并為您提供算法和參數指南,以便在檢查更廣泛的算法套件之前首先嘗試您的問題。 在這篇文章中,您將發現從大量機器學習數據集中評估許多機器學習算法的研究和結果,以及本研究提出的建議。 閱讀這篇文章后,你會知道: * 該集合樹算法在各種數據集中表現良好。 * 由于沒有銀彈??算法,因此測試一套問題的算法至關重要。 * 測試給定算法的一組配置至關重要,因為它可以使某些問題的表現提高 50%。 讓我們開始吧。 ![Start With Gradient Boosting, but Always Spot Check Algorithms and Configurations](https://img.kancloud.cn/2b/a3/2ba3a49818fc5cc282005cb95468cc1e_640x427.jpg) 從 Gradient Boosting 開始,但始終檢查算法和配置 照片由 [Ritesh Man Tamrakar](https://www.flickr.com/photos/_rmt_/16132591083/) ,保留一些權利。 ## 論文 2017 年, [Randal Olson](http://www.randalolson.com/) 等。發布了一篇論文的預印本,其中有一個有趣的標題“[數據驅動建議將機器學習應用于生物信息學問題](https://arxiv.org/abs/1708.05070)”。 他們的工作目標是解決每個從業者在開始預測建模問題時面臨的問題;即: _**我應該使用什么算法?**_ 作者將此問題描述為選擇重載,如下所示: > 雖然有幾個容易獲得的 ML 算法實現對于尋求超越簡單統計的生物信息學研究人員是有利的,但是許多研究人員經歷“選擇過載”并且難以為他們的問題選擇正確的 ML 算法。 他們通過在大量標準機器學習數據集樣本中運行適當的算法樣本來解決問題,以查看哪些算法和參數通常最有效。 他們將論文描述為: > ...在一組 165 個公開可用的分類問題上對 13 種最先進的常用機器學習算法進行全面分析,以便為當前研究人員提供數據驅動的算法建議 它非常類似于論文“[我們需要數百個分類器來解決現實世界的分類問題嗎?](http://jmlr.csail.mit.edu/papers/v15/delgado14a.html) “覆蓋在帖子中”[使用隨機森林:在 121 個數據集](https://machinelearningmastery.com/use-random-forest-testing-179-classifiers-121-datasets/)上測試 179 個分類器“的方法和結果。 ## 機器學習算法 共有 13 種不同的算法被選擇用于該研究。 選擇算法以提供類型或基本假設的混合。 目標是代表文獻中使用的最常見的算法類別,以及最新的最新算法 下面提供了完整的算法列表。 * 高斯樸素貝葉斯(GNB) * 伯努利樸素貝葉斯(BNB) * 多項式樸素貝葉斯(MNB) * Logistic 回歸(LR) * 隨機梯度下降(SGD) * 被動攻擊性分類器(PAC) * 支持向量分類器(SVC) * K-最近鄰(KNN) * 決策樹(DT) * 隨機森林(RF) * 額外樹分類器(ERF) * AdaBoost(AB) * 梯度樹提升(GTB) scikit-learn 庫用于實現這些算法。 > 每個算法具有零個或多個參數,并且針對每個算法執行跨合理參數值的網格搜索。 對于每種算法,使用固定網格搜索來調整超參數。 下面列出了算法表和評估的超參數,摘自論文。 ![Table of Algorithms and Parameters](https://img.kancloud.cn/59/16/5916c60abd73bfc1868b68cb129d193e_695x1024.jpg) 算法和參數表 使用 10 倍交叉驗證和平衡準確度測量來評估算法。 交叉驗證沒有重復,可能會在結果中引入一些統計噪聲。 ## 機器學習數據集 選擇 165 個標準機器學習問題進行研究。 許多問題來自生物信息學領域,盡管并非所有數據集都屬于這一研究領域。 所有預測問題都是具有兩個或更多類別的分類類型問題。 > 在 Penn 機器學習基準(PMLB)的 165 個監督分類數據集上比較算法。 [...] PMLB 是一組公開可用的分類問題,這些問題已經標準化為相同的格式,并在中心位置收集,可通過 Python 輕松訪問。 數據集來自 Penn 機器學習基準(PMLB)集合,該集合是一個以統一格式提供標準機器學習數據集并通過簡單的 Python API 提供的項目。您可以在 GitHub 項目上了解有關此數據集目錄的更多信息: * [賓州機器學習基準](https://github.com/EpistasisLab/penn-ml-benchmarks) 在擬合模型之前,所有數據集都是標準化的。 > 在評估每個 ML 算法之前,我們通過減去平均值并將特征縮放到單位方差來縮放每個數據集的特征。 未執行其他數據準備,也未執行特征選擇或特征工程。 ## 結果分析 進行大量實驗后,需要分析很多技能分數。 對結果的分析處理得很好,提出了有趣的問題,并以易于理解的圖表的形式提供了結果。 > 整個實驗設計總共包含超過 550 萬 ML 算法和參數評估,從而從多個角度分析了豐富的數據集...... 對每個數據集進行算法表現排序,然后計算每個算法的平均等級。 這提供了一個粗略且易于理解的概念,即平均哪些算法表現良好。 結果表明,梯度提升和隨機森林的等級最低(表現最好),樸素貝葉斯方法的平均等級最高(表現最差)。 > 事后測試強調了 Gradient Tree Boosting 的令人印象深刻的表現,其顯著優于除了隨機森林之外的每個算法(p &lt;0.05)。 0.01 級。 這是從一篇很好的圖表中得到的證明,摘自論文。 ![Algorithm Mean Rank](https://img.kancloud.cn/69/9c/699cc003dcfa64586ca31a3391ca8eb7_1024x481.jpg) 算法平均等級 沒有一種算法表現最佳或最差。 這是機器學習從業者所熟知的智慧,但對于該領域的初學者來說很難掌握。 沒有靈丹妙藥,你必須在給定的數據集上測試一套算法,看看哪種算法效果最好。 > ...值得注意的是,沒有一種 ML 算法在所有 165 個數據集中表現最佳。例如,盡管分別是整體最差和最佳排名的算法,但是有多個 NB 數據集,其中多項式 NB 執行以及優于梯度樹增強(Gradient Tree Boosting)。因此,在將 ML 應用于新數據集時,考慮不同的 ML 算法仍然很重要。 此外,選擇正確的算法是不夠的。您還必須為數據集選擇正確的算法配置。 > ......選擇正確的 ML 算法并調整其參數對大多數問題都至關重要。 結果發現,調整算法可以將方法的技能提高 3%到 50%,具體取決于算法和數據集。 > 結果證明了使用默認 ML 算法超參數是不明智的:調整通常會將算法的準確度提高 3-5%,具體取決于算法。在某些情況下,參數調整導致 CV 精度提高 50%。 這可以通過論文中的圖表來證明,該圖表顯示了參數調整對每種算法的改進。 ![Algorithm performance improvement via parameter tuning](https://img.kancloud.cn/78/8f/788fabb50e0c9a4686ad8a6cf1afc929_1016x1024.jpg) 通過參數調整提高算法表現 并非所有算法都是必需的。 結果發現,在 165 個測試數據集中的 106 個中,五個算法和特定參數的表現達到了 1%。 建議將這五種算法作為生物信息學中給定數據集上的點檢查算法的起點,但我還建議更一般: * 梯度提升 * 隨機森林 * 支持向量分類器 * 額外的樹木 * Logistic 回歸 本文提供了這些算法的表格,包括推薦的參數設置和所涵蓋的數據集的數量,例如:算法和配置達到最高 1%的表現。 ![Suggested Algorithms](https://img.kancloud.cn/d9/4c/d94c01683ebc064b8dc244c7aa1d3c03_1024x775.jpg) 建議的算法 ## 實際發現 本文有兩個重要的發現,對于從業者來說很有價值,特別是那些剛出生的人或那些因自己的預測模型問題而受到壓力的人。 ### 1.使用 Ensemble Trees 如果有疑問或時間壓力,請在數據集上使用集合樹算法,例如梯度提升和隨機森林。 > 該分析展示了最先進的基于樹的集成算法的強度,同時也顯示了 ML 算法表現的依賴于問題的性質。 ### 2.現場檢查和調整 沒有人可以看你的問題并告訴你使用什么算法,并且沒有銀彈算法。 您必須為每種算法測試一套算法和一套參數,以查看哪種算法最適合您的特定問題。 > 此外,分析表明,選擇正確的 ML 算法并徹底調整其參數可以顯著提高大多數問題的預測準確性,并且是每個 ML 應用中的關鍵步驟。 我一直在談論這個問題;例如,看帖子: * [選擇機器學習算法的數據驅動方法](https://machinelearningmastery.com/a-data-driven-approach-to-machine-learning/) ## 進一步閱讀 如果您希望深入了解,本節將提供有關該主題的更多資源。 * [將機器學習應用于生物信息學問題的數據驅動建議](https://arxiv.org/abs/1708.05070) * [scikit-learn GitHub 基準測試](https://github.com/rhiever/sklearn-benchmarks) * [賓州機器學習基準](https://github.com/EpistasisLab/penn-ml-benchmarks) * [scikit-learn 的預測模型在大量機器學習數據集上的定量比較:一個良好的開端](https://crossinvalidation.com/2017/08/22/quantitative-comparison-of-scikit-learns-predictive-models-on-a-large-number-of-machine-learning-datasets-a-good-start/) * [使用隨機森林:在 121 個數據集上測試 179 個分類器](https://machinelearningmastery.com/use-random-forest-testing-179-classifiers-121-datasets/) ## 摘要 在這篇文章中,您發現了一項研究和調查結果,這些研究和結果來自大量機器學習數據集中的許多機器學習算法。 具體來說,你學到了: * 該集合樹算法在各種數據集中表現良好。 * 由于沒有銀彈??算法,因此測試一套問題的算法至關重要。 * 測試給定算法的一組配置至關重要,因為它可以使某些問題的表現提高 50%。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看