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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 一種選擇機器學習算法的數據驅動方法 > 原文: [https://machinelearningmastery.com/a-data-driven-approach-to-machine-learning/](https://machinelearningmastery.com/a-data-driven-approach-to-machine-learning/) ### _ 如果您知道要使用哪種算法或算法配置, 您不需要使用機器學習 _ 沒有最好的機器學習算法或算法參數。 我想要治愈你這種類型的銀彈心態。 我每天都會看到很多這樣的問題: * _ 哪種機器學習算法最好?_ * _ 機器學習算法和問題之間的映射是什么?_ * _ 機器學習算法的最佳參數是什么?_ 這些問題有一種模式。 您通常不會也無法事先知道這些問題的答案。你必須通過實證研究發現它。 有一些廣泛的筆刷啟發式方法可以回答這些問題,但如果您希望從算法或問題中獲得最大收益,即使是這些也可能會讓您失望。 在這篇文章中,我想鼓勵你擺脫這種心態,掌握一種數據驅動的方法,這種方法將改變你接近機器學習的方式。 [![data driven approach to machine learning](img/27fdd33b6b9f0f76050031b085e7dbeb.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/09/data-driven-approach-to-machine-learning.jpg) 數據驅動的機器學習方法 攝影: [James Cullen](https://www.flickr.com/photos/tlgjaymz/467195251) ,保留一些權利 ## 最佳機器學習算法 一些算法比其他算法具有更多的“_ 功率 _”。它們是非參數的或高度靈活的和自適應的,或高度自我調整或以上所有。 通常,這種功率的實現成本很高,需要非常大的數據集,有限的可擴展性,或者可能導致過度擬合的大量系數。 隨著更大的數據集,人們對更簡單的擴展和表現良好的方法產生了興趣。 哪個是最好的算法,你應該總是嘗試并花費最多時間學習的算法? 我可以丟掉一些名字,但最明智的答案是“_ 無 _”和“_ 全部 _”。 ### 沒有最好的機器學習算法 你無法知道 _ 先驗 _ 哪種算法最適合你的問題。 再次閱讀上述內容。默想吧。 默想吧。 * 您可以應用自己喜歡的算法。 * 您可以應用書籍或紙張中推薦的算法。 * 您可以應用現在贏得最多 Kaggle 比賽的算法。 * 您可以應用最適合您的測試裝備,基礎架構,數據庫或其他任何方法的算法。 這些都是偏見。 他們認為節省時間是捷徑。事實上,有些可能是非常有用的捷徑,但哪些是捷徑? 根據定義,偏差將限制您可以實現的解決方案,您可以實現的準確性,以及最終可能產生的影響。 ## 算法映射到問題 存在[一般類別的問題](http://machinelearningmastery.com/practical-machine-learning-problems/ "Practical Machine Learning Problems"),分類和回歸等監督問題以及流形學習和聚類等無監督問題。 在計算機視覺,自然語言處理和語音處理等機器學習的子領域中存在這些問題的更具體的實例。我們也可以采用另一種方式,更抽象,并將所有這些問題視為函數逼近和函數優化的實例。 您可以將算法映射到問題類,例如,有一些算法可以處理監督回歸問題和監督分類問題,以及兩種類型的問題。 您還可以構建[算法目錄](http://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/ "A Tour of Machine Learning Algorithms"),這可能會激發您嘗試使用哪種算法。 您可以針對問題競爭算法并報告結果。有時這被稱為烘烤,并且在一些會議過程中很受歡迎,用于呈現新算法。 ### 算法結果的有限可轉移性 一般來說,賽車算法是[反智能](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.73.6198)。它很少科學嚴謹(蘋果到蘋果)。 賽車算法的一個關鍵問題是您無法輕松地將結果從一個問題轉移到另一個問題。如果你認為這個陳述是正確的,那么閱讀論文和博客中的算法競賽并不會告訴你哪個算法可以嘗試解決你的問題。 如果算法 _A_ 在問題 _X_ 上殺死算法 _B_ ,那么它會告訴你什么算法 _A_ 和 _B_ 問題 _Y_ ?你必須努力解決問題 _X_ 和 _Y_ 。它們是否具有被研究中的算法利用的相同或相似的屬性(屬性,屬性分布,功能形式)?這是一些艱苦的工作。 我們對一臺機器學習算法比另一臺機器學習算法效果更好有一個細粒度的理解。 ## 最佳算法參數 機器學習算法是參數化的,因此您可以根據您的問題定制其行為和結果。 問題在于“_ 如何 _”進行剪裁很少(如果有的話)解釋。通常,即使算法開發人員自己也很難理解。 通常,具有隨機元素的機器學習算法是復雜系統,因此必須進行研究。第一順序 - 可以描述參數對復雜系統的影響。如果是這樣,您可能有一些關于如何將算法配置為系統的啟發式方法。 這是第二個訂單,它對你的結果有什么影響,這是不知道的。有時你可以在一般性方面談論參數對作為一個系統的算法的影響,以及它如何轉化為問題類,通常不會。 ### 沒有最佳算法參數 新的算法配置集本質上是新的算法實例,可以幫助您挑戰問題(盡管在他們可以實現的結果中相對受限或類似)。 您無法知道問題的最佳算法參數 _ 先驗 _。 * 您可以使用開創性論文中使用的參數。 * 您可以使用書中的參數。 * 你可以使用“_ 我怎么做 _”kaggle post 中列出的參數。 好的經驗法則。對?也許,也許不是。 ## 數據驅動方法 我們不需要陷入絕望之中。我們成為科學家。 您有偏見可以縮短算法選擇和算法參數選擇的決策。我們認為,在許多情況下,它們可以很好地為您服務。 我希望您對此提出質疑,考慮放棄啟發式和最佳實踐,并采用數據驅動的算法選擇方法。 而不是選擇您喜歡的算法,嘗試 10 或 20 算法。 在那些表現出更好的表現,穩健性,速度或任何你最感興趣的問題的人身上加倍。 網格搜索數十,數百或數千種參數組合,而不是選擇通用參數。 成為客觀科學家,留下軼事并研究來自您的問題領域的復雜學習系統和數據觀察的交集。 ### 行動中的數據驅動方法 這是一種強大的方法,需要較少的前期知識,但需要更多的后端計算和實驗。 因此,您很可能需要使用較小的數據集樣本,以便快速獲得結果。您將需要一個完全可以信賴的測試工具。 旁注:您如何完全信任您的測試工具? 您可以通過以數據驅動的方式選擇[測試選項](http://machinelearningmastery.com/how-to-choose-the-right-test-options-when-evaluating-machine-learning-algorithms/ "How To Choose The Right Test Options When Evaluating Machine Learning Algorithms")來建立信任,這使您可以確信所選配置是可靠的。估計方法的類型(分裂,增強,k 折交叉驗證等)及其配置(k 的大小等)。 ### 快速穩健的結果 你會很快得到好結果。 如果隨機森林是您最喜歡的算法,您可能需要花費數天或數周的時間徒勞地嘗試從算法中獲取最大的問題,這可能不適合首先使用該方法。使用數據驅動的方法,您可以盡早折扣(相對)表現不佳的人。你可以快速失敗。 它不需要依賴于偏見和最喜歡的算法和配置。獲得良好而強大的結果是一項艱苦的工作。 結果是你不再關心算法炒作,它只是包含在[現場檢查套件](http://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/ "Why you should be Spot-Checking Algorithms on your Machine Learning Problems")中的另一種方法。你不再擔心你是否錯過了不使用算法 _X_ 或 _Y_ 或配置 _A_ 或 _B_ ( []害怕失去](http://machinelearningmastery.com/the-best-machine-learning-algorithm/ "The Best Machine Learning Algorithm")),你把它們混在一起。 ### 利用自動化 數據驅動的方法是搜索問題。您可以利用自動化。 在開始之前,您可以編寫可重復使用的腳本來搜索問題的最可靠測試工具。沒有更多的臨時猜測。 您可以編寫可重用的腳本,在各種庫和實現中自動嘗試 10,20,100 算法。沒有更喜歡的算法或庫。 不同算法之間的界限消失了。新參數配置是一種新算法。您可以將可重復使用的腳本寫入網格或隨機搜索每個算法以真正對其功能進行采樣。 在前面添加特征工程,以便數據上的每個“_ 視圖 _”是一個新的問題,可以對抗算法。最后通過 Bolt-on 集合來組合部分或全部結果(元算法)。 [我一直在這個兔子洞](http://machinelearningmastery.com/the-seductive-trap-of-black-box-machine-learning/ "The Seductive Trap of Black-Box Machine Learning")。這是一種強大的思維方式,它可以獲得強大的結果。 ## 摘要 在這篇文章中,我們研究了算法和算法參數選擇的常見啟發式和最佳實踐方法。 我們認為這種方法會導致我們的思維局限。當沒有這樣的東西時,我們渴望獲得銀彈通用最佳算法和最佳算法配置。 * 沒有最好的通用機器學習算法。 * 沒有最好的通用機器學習算法參數。 * 算法從一個問題到另一個問題的能力的可轉移性是值得懷疑的。 解決方案是成為科學家并研究我們問題的算法。 我們必須采用數據驅動的問題,檢查算法,網格搜索算法參數,并快速找到能夠可靠,快速地產生良好結果的方法。
                  <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>

                              哎呀哎呀视频在线观看