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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 有關機器學習的有用知識 > 原文: [https://machinelearningmastery.com/useful-things-to-know-about-machine-learning/](https://machinelearningmastery.com/useful-things-to-know-about-machine-learning/) 您是否想要一些有助于開發成功的機器學習應用程序的技巧和竅門? 這是 2012 年一篇題為“[關于機器學習的一些有用的東西](http://www.cs.washington.edu/homes/pedrod/papers/cacm12.pdf)”(PDF)的期刊文章的主題,由 Wash of Washing 教授 [Pedro Domingos](http://homes.cs.washington.edu/~pedrod/) 。 這是一個有趣的閱讀,有一個很好的開放鉤子: > 開發成功的機器學習應用程序需要大量的“黑色藝術”,這在教科書中很難找到 這篇文章總結了他的文章中概述的機器學習研究人員和從業者所學到的 12 個主要經驗教訓。 ![Useful Things To Know About Machine Learning](img/1b09dc0a19bc6ff0931c398e49f68bb6.jpg) 有用的事情要了解機器學習 照片由 [jeffreyw](https://www.flickr.com/photos/jeffreyww/6310914828/) ,保留一些權利。 ## 1.學習=表達+評估+優化 當面對機器學習算法時,不要使用您可能使用的數百種可能的機器學習算法迷失在雜草中。 專注于三個關鍵組成部分: * **表示**。您選擇的分類定義了解決方案將采用的表示以及稱為假設空間的所有可學習分類器的空間。示例包括實例,超平面,決策樹,規則集和神經網絡。 * **評估**。您將用于從錯誤的分類器判斷良好分類器的評估函數。這可能是算法內部使用的損失函數。示例包括準確,平方誤差,可能性和信息增益。 * **優化**。搜索好分類器的方法。這在內部是如何算法在評估函數的上下文中遍歷假設空間到能夠進行準確預測的最終分類器。示例包括組合優化和連續優化及其子集。 ## 重要的是概括 > 機器學習的基本目標是概括超出訓練集中的示例。 我們必須期望不再遇到與訓練集中的樣本相同的樣本。單獨評估模型在訓練集上的準確性幾乎不能說明模型對看不見的數據的有用性。 注意不要用測試數據污染訓練過程。在訓練數據集上使用交叉驗證,并為最終驗證創建保留集。 > 我們必須使用訓練錯誤作為測試錯誤的替代,這充滿了危險。 ## 僅數據還不夠 無論你擁有多少數據,僅靠數據是不夠的。 > 每個學習器必須在其給出的數據之外體現一些知識或假設,以便超越它。 我們必須做出假設。這些產生了偏見,但讓我們避免了沒有免費午餐的陷阱,也沒有假設我們正在解決的問題。 我們在分類器中做出的簡單假設使我們走了很長的路,例如: * 誤差函數的平滑度 * 類似的例子有類似的類 * 有限的依賴 * 復雜性有限 歸納(機器學習方法所使用的學習類型)將少量數據轉化為大量的輸出知識。它比演繹更強大。歸納需要少量的知識作為輸入,我們必須有效地使用它。 例如: * 如果我們對在域中使示例類似的內容有很多了解,我們可以使用實例方法。 * 如果我們了解概率依賴性,我們可以使用圖形模型。 * 如果我們知道每個類需要哪些前提條件,我們就可以使用規則集。 > 機器學習并不神奇;它無法從無到有。它的作用是從更少的東西中獲得更多。 ## 過度擬合有很多面孔 我們必須謹慎地學習訓練數據中的隨機波動。這稱為過度擬合,當訓練數據的準確度較高且測試數據集較低時,可以識別。 泛化錯誤可以分解為偏差和方差: * **偏見**是學習器學習錯誤的傾向。線性學習器具有高偏差,因為它僅限于使用超平面分離類。 * **方差**是學習器傾向于學習隨機事物而不管真實信號。決策樹具有很大的差異,因為它們受到訓練數據中細節的高度影響。 有時強大的錯誤假設(讀取偏差)可能比弱假設更好,這解釋了為什么具有強獨立性假設的樸素貝葉斯能夠比像 C4.5 這樣需要更多數據以避免過度擬合的強大決策樹做得更好。 * 交叉驗證有幫助,但如果我們經常檢查并最終過度擬合整個訓練數據集,則會導致問題。 * 正規化可以通過懲罰更復雜的分類器來提供幫助。 * 統計顯著性檢驗可以幫助確定變化是否是有意義的變化。 > 通過陷入欠擬合(偏差)的相反誤差,很容易避免過度擬合(方差)。同時避免兩者都需要學習一個完美的分類器,并且事先不知道它沒有一種技術總能做到最好(沒有免費的午餐)。 有關更多信息,請參閱 [Bias-variance 權衡](https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff)上的維基百科條目。 ## 5.直覺在高維度上失敗 機器學習中的第二大問題是[維數詛咒](https://en.wikipedia.org/wiki/Curse_of_dimensionality)。 多明戈斯很好地說明了這一點: > 隨著示例的維度(特征的數量)的增加,正確地推廣變得指數級更難,因為固定大小的訓練集覆蓋了輸入空間的逐漸減少的部分。 基于相似性的推理在高維空間中迅速崩潰。在高維度上,所有示例看起來都相似。我們的直覺也會崩潰,例如試圖理解多元高斯分布中的均值。 反擊這種問題的效果被稱為“_ 非均勻性 _ 的祝福”(我認為是多明戈斯的術語)。這指的是這樣一個事實,即來自現實世界域的觀察結果通常不是均勻分布的,而是以有用和有意義的方式進行分組或聚類。 ## 6.理論上的保證不是它們看起來的樣子 應該用大量的鹽來理論保證。 例子包括: * 算法確保良好泛化所需的樣本數。 * 給定無限數據,算法保證輸出正確的分類器。 如果您不是理論機器學習背景,那么這一課可能看起來很深奧。 Domongos 很好地總結了它: > 理論保證在機器學習中的主要作用不是作為實際決策的標準,而是作為算法設計的理解和推動力的源泉。 ## 7.特征工程是關鍵 使機器學習項目失敗并成功的最大區別的因素是所使用的功能。 當所有特征與類相關時,學習很容易,但更常見的是類是功能的復雜功能。 > 機器學習不是構建數據集和運行學習器的一次性過程,而是運行學習器,分析結果,修改數據和/或學習器以及重復的迭代過程 原始數據通常不包含用于學習算法的足夠結構,必須從可用數據構造特征以更好地將結構暴露給算法。因此,特征工程通常是特定于域的。 一種方法是生成大量特征并選擇與該類最相關的特征。這可以很好地工作,但陷阱是忽略與輸出變量有用的特征內非線性關系的可能性。 有關特征工程的更多信息,請參閱帖子:[發現特征工程,如何設計特征以及如何獲得它](http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/) ## 8.更多數據勝過更聰明的算法 當您達到限制但仍需要更好的結果時,您有兩種選擇: * 設計更好的學習算法 * 收集更多數據(更多觀察和/或更多功能) 獲得更好結果的最快途徑通常是獲取更多數據。 > 根據經驗,具有大量數據的愚蠢算法勝過一個具有適度數量的聰明算法。 計算機科學受時間和記憶的限制,機器學習增加了第三個約束,即訓練數據。 今天我們經常擁有的數據超出了我們的使用范圍。復雜的分類器可能需要很長時間才能進行訓練或者無法大規模運作。這意味著在實踐中使用更簡單的分類器。此外,大規模地,大多數分類器實現非常相似的結果。 > 所有學習器基本上都是通過將附近的例子分組到同一個班級來工作;關鍵的區別在于“附近”的含義。 通常,在更復雜的算法之前使用更簡單的算法。根據算法使用的參數或術語數量來看復雜性。 ## 9.學習很多模型,而不只是一個 不要選擇一個喜歡的算法并優化它來解決你的問題。嘗試許多不同的算法然后將它們組合在一起以獲得最佳結果。 > 在機器學習的早期,每個人都有他們最喜歡的學習器,以及一些先驗理由相信它的優越性。 考慮采取三種最流行的合奏方法: * **Bagging** :生成不同的訓練數據樣本,為每個訓練數據做好準備,并使用投票結合預測。 * **提升**:在訓練期間通過他們的難度訓練實例,特別關注那些難以分類的實例。 * **堆疊**:使用更高級別的分類器來學習如何最好地組合其他分類器的預測。 ## 10.簡單并不意味著準確性 選擇具有相同訓練誤差的兩個分類器的簡單是一個很好的經驗法則。更簡單的分類器并不總是在測試數據集上具有最佳精度。 或許更有趣的觀點是考慮每個分類器的假設空間大小的復雜性。這是每個算法可以生成的可能分類器的空間。較大的空間可能被采樣較少,并且所得到的分類器可能不太可能過度擬合到訓練數據。 > 結論是,更簡單的假設應該是首選,因為簡單本身就是一種美德,而不是因為與準確性的假設聯系。 ## 11.代表性并不意味著可以學習 與挑選最喜歡的算法相關,從業者可以陷入挑選最喜歡的表示的陷阱并且用通用近似的理論聲明來證明它(例如,它可以用于近似任意目標函數)。 > 給定有限的數據,時間和記憶,標準學習器只能學習所有可能功能的一小部分,并且這些子集對于具有不同表示的學習器是不同的。 關注可以學習目標函數的問題,而不是它的表現。 ## 12.相關性并不意味著因果關系 分類器只能學習相關性。它們具有統計性??質。 預測模型所做的預測旨在幫助復雜領域的人類決策,其中只有歷史觀察可用且無法進行對照實驗。 有趣的是,相關性可以作為因果關系的指南,并可以作為調查的起點。 ## 摘要 在這篇文章中,我們查看了多明戈斯 2012 年論文中概述的機器學習研究人員和從業者所學到的 12 個經驗教訓。 那些教訓再次是: 1. 學習=表達+評估+優化 2. 重要的是概括 3. 僅憑數據還不夠 4. 過度擬合有很多面孔 5. 直覺在高維度上失敗 6. 理論上的保證不是他們看起來的 7. 特征工程是關鍵 8. 更多數據勝過更聰明的算法 9. 學習很多模型,而不只是一個 10. 簡單并不意味著準確性 11. 可代表性并不意味著可以學習 12. 相關并不意味著因果關系 您可以下載一份 PDF 文件,題為“[一些有用的機器學習知識](http://www.cs.washington.edu/homes/pedrod/papers/cacm12.pdf)”。 Domingos 也是一個名為“[機器學習](https://www.coursera.org/course/machlearning)”的課程在線機器學習課程的作者,可能是在華盛頓大學錄制的。點擊“[預覽講座](https://class.coursera.org/machlearning-001/lecture/preview)”按鈕可以免費查看課程的所有視頻。 最后,多明戈斯有一本新書名為“[主算法:終極學習機器將如何重建我們的世界](http://www.amazon.com/dp/0465065708?tag=inspiredalgor-20)”。我的副本今天到了。
                  <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>

                              哎呀哎呀视频在线观看