<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/support-vector-machines-for-machine-learning/](https://machinelearningmastery.com/support-vector-machines-for-machine-learning/) 支持向量機可能是最流行和最受關注的機器學習算法之一。 它們在20世紀90年代開發時非常受歡迎,并且仍然是高表現算法的首選方法,幾乎??沒有調整。 在這篇文章中,您將發現支持向量機(SVM)機器學習算法。閱讀這篇文章后你會知道: * 如何解開用于指代支持向量機的許多名稱。 * SVM在模型實際存儲在磁盤上時使用的表示形式。 * 如何使用學習的SVM模型表示來預測新數據。 * 如何從訓練數據中學習SVM模型。 * 如何最好地為SVM算法準備數據。 * 您可能希望獲得有關SVM的更多信息。 SVM是一種令人興奮的算法,概念相對簡單。這篇文章是為那些在統計學和線性代數方面很少或根本沒有背景的開發人員編寫的。 因此,我們將在此描述中保持高級別,并專注于具體的實施問題。關于為何使用特定方程式或如何使用它們的問題未被涵蓋,您可能希望深入了解更多閱讀部分。 讓我們開始吧。 ![Support Vector Machines for Machine Learning](img/d3e69523a5c9c0a9f4c9e5886f637cc8.jpg) 用于機器學習的支持向量機 照片由 [Francisco Barberis](https://www.flickr.com/photos/franbar11/13986168190/) 拍攝,保留一些權利。 ## 最大邊界分類器 Maximal-Margin分類器是一個假設分類器,可以最好地解釋SVM在實踐中的工作原理。 數據中的數字輸入變量(x)(列)形成n維空間。例如,如果您有兩個輸入變量,這將形成一個二維空間。 超平面是分割輸入變量空間的線。在SVM中,選擇超平面以最好地將輸入變量空間中的點與它們的類(0級或1級)分開。在二維中,您可以將其視為一條線,并假設我們的所有輸入點都可以是完全被這條線隔開。例如: B0 +(B1 * X1)+(B2 * X2)= 0 其中通過學習算法找到確定線的斜率和截距(B0)的系數(B1和B2),并且X1和X2是兩個輸入變量。 您可以使用此行進行分類。通過將輸入值插入線方程,您可以計算新點是高于還是低于線。 * 在該線上方,等式返回大于0的值,該點屬于第一個類(類0)。 * 在該線下方,等式返回小于0的值,該點屬于第二類(類1)。 * 接近該行的值返回接近零的值,并且該點可能難以分類。 * 如果值的大小很大,則模型可能對預測更有信心。 線與最近數據點之間的距離稱為邊距。可以將兩個類分開的最佳或最佳線是作為最大邊距的線。這稱為Maximal-Margin超平面。 邊距計算為從直線到最近點的垂直距離。只有這些點與定義線和分類器的構造相關。這些點稱為支持向量。它們支持或定義超平面。 使用最大化裕度的優化過程從訓練數據中學習超平面。 ## 獲取免費算法思維導圖 ![Machine Learning Algorithms Mind Map](img/2ce1275c2a1cac30a9f4eea6edd42d61.jpg) 方便的機器學習算法思維導圖的樣本。 我已經創建了一個由類型組織的60多種算法的方便思維導圖。 下載,打印并使用它。 ## 軟邊距分類器 在實踐中,真實數據是混亂的,并且不能與超平面完美分離。 必須放寬最大化分隔類的線的余量的約束。這通常稱為軟邊際分類器。此更改允許訓練數據中的某些點違反分隔線。 引入了一組額外的系數,使每個維度的余量擺動空間。這些系數有時稱為松弛變量。這增加了模型的復雜性,因為模型有更多參數適合數據以提供這種復雜性。 引入了一個調整參數,簡稱為C,它定義了所有維度允許的擺動幅度。 C參數定義允許的保證金違規金額。 C = 0沒有違規,我們回到上面描述的不靈活的最大邊界分類器。 C的值越大,允許越多違反超平面。 在從數據學習超平面期間,位于邊緣距離內的所有訓練實例將影響超平面的放置并且被稱為支持向量。并且由于C影響允許落入邊距內的實例數,因此C會影響模型使用的支持向量的數量。 * C值越小,算法對訓練數據越敏感(方差越大,偏差越小)。 * C值越大,算法對訓練數據的敏感度越低(方差越小,偏差越大)。 ## 支持向量機(內核) SVM算法在實踐中使用內核實現。 在線性SVM中學習超平面是通過使用一些線性代數轉換問題來完成的,這超出了SVM介紹的范圍。 一個強有力的見解是線性SVM可以使用任何兩個給定觀察的內積而不是觀察本身來重新描述。兩個向量之間的內積是每對輸入值的乘積之和。 例如,載體[2,3]和[5,6]的內積是2 * 5 + 3 * 6或28。 使用輸入(x)和每個支持向量(xi)之間的點積來預測新輸入的等式計算如下: f(x)= B0 + sum(ai *(x,xi)) 這是一個方程,涉及使用訓練數據中的所有支持向量計算新輸入向量(x)的內積。必須通過學習算法從訓練數據估計系數B0和ai(對于每個輸入)。 ### 線性核SVM 點積稱為內核,可以重寫為: K(x,xi)= sum(x * xi) 內核定義新數據和支持向量之間的相似性或距離度量。點積是用于線性SVM或線性核的相似性度量,因為距離是輸入的線性組合。 可以使用其他內核將輸入空間轉換為更高維度,例如多項式內核和徑向內核。這被稱為 [Kernel Trick](https://en.wikipedia.org/wiki/Kernel_method) 。 期望使用更復雜的內核,因為它允許行分離彎曲或甚至更復雜的類。這反過來可以導致更準確的分類器。 ### 多項式核SVM 我們可以使用多項式內核代替點積,例如: K(x,xi)= 1 + sum(x * xi)^ d 必須手動指定多項式的次數到學習算法。當d = 1時,這與線性內核相同。多項式核允許輸入空間中的曲線。 ### 徑向核SVM 最后,我們還可以有一個更復雜的徑向內核。例如: K(x,xi)= exp(-gamma * sum((x-xi ^ 2)) 其中gamma是必須為學習算法指定的參數。伽瑪的良好默認值是0.1,其中γ通常為0 &lt;1。伽馬&lt; 1.徑向核非常局部,可以在特征空間內創建復雜區域,如二維空間中的閉合多邊形。 ## 如何學習SVM模型 需要使用優化過程來解決SVM模型。 您可以使用數值優化過程來搜索超平面的系數。這是低效的,并不是像 [LIBSVM](https://en.wikipedia.org/wiki/LIBSVM) 那樣廣泛使用的SVM實現中使用的方法。如果將算法實現為練習,則可以使用[隨機梯度下降](https://en.wikipedia.org/wiki/Subgradient_method)。 有一些專門的優化程序可以將優化問題重新制定為二次規劃問題。最常用的擬合SVM的方法是[順序最小優化](https://en.wikipedia.org/wiki/Sequential_minimal_optimization)(SMO)方法非常有效。它將問題分解為可以通過分析(通過計算)而不是數字(通過搜索或優化)解決的子問題。 ## SVM的數據準備 本節列出了在學習SVM模型時如何最好地準備訓練數據的一些建議。 * **數字輸入**:SVM假設您的輸入是數字。如果您有分類輸入,則可能需要將它們轉換為二進制虛擬變量(每個類別一個變量)。 * **二元分類**:本文中描述的基本SVM用于二進制(兩類)分類問題。雖然已經開發了用于回歸和多類分類的擴展。 ## 進一步閱讀 支持向量機是一個巨大的研究領域。關于這個主題有很多書籍和論文。如果您希望深入了解該技術的背景和理論,本節列出了一些開創性和最有用的結果。 [弗拉基米爾·瓦普尼克(HTG1),這項技術的發明者之一有兩本被認為是關于該主題的開創性的書籍。它們非常數學,也很嚴謹。](https://en.wikipedia.org/wiki/Vladimir_Vapnik) * [統計學習理論的本質](http://www.amazon.com/dp/0387987800?tag=inspiredalgor-20),Vapnik,1995 * [統計學習理論](http://www.amazon.com/dp/8126528923?tag=inspiredalgor-20),Vapnik,1998 任何關于機器學習的好書都將涵蓋SVM,下面是我最喜歡的一些。 * [統計學習簡介:在R](http://www.amazon.com/dp/1461471370?tag=inspiredalgor-20) 中的應用,第8章 * [Applied Predictive Modeling](http://www.amazon.com/dp/1461468485?tag=inspiredalgor-20) ,第13章 * [統計學習要素:數據挖掘,推理和預測](http://www.amazon.com/dp/0387848576?tag=inspiredalgor-20)第12章 有關SVM的無數教程和期刊文章。以下是Cortes和Vapnik關于SVM的開創性論文的鏈接,以及另一篇精彩的入門教程。 * [支持 - 向量網絡](http://link.springer.com/article/10.1007%2FBF00994018) [PDF]作者:Cortes和Vapnik 1995 * [用于模式識別的支持向量機教程](http://research.microsoft.com/en-us/um/people/cburges/papers/svmtutorial.pdf) [PDF] 1998 維基百科提供了一些關于該主題的良好(盡管密集)信息: * 維基百科上的[支持向量機](https://en.wikipedia.org/wiki/Support_vector_machine) * [Wikibook on Support Vector Machines](https://en.wikibooks.org/wiki/Support_Vector_Machines) 最后,Q&amp; A網站上有很多帖子要求簡單解釋SVM,下面是兩個你可能會覺得有用的選擇。 * [支持向量機(SVM)在外行人的意義上是什么意思?](https://www.quora.com/What-does-support-vector-machine-SVM-mean-in-laymans-terms) * [請解釋支持向量機(SVM),就像我5歲](https://www.reddit.com/r/MachineLearning/comments/15zrpp/please_explain_support_vector_machines_svm_like_i) ## 摘要 在這篇文章中,您發現了用于機器學習的支持向量機算法。你了解到: * Maximal-Margin分類器,為理解SVM提供了一個簡單的理論模型。 * 軟邊界分類器,它是Maximal-Margin分類器的修改,用于放寬邊距以處理實際數據中的噪聲類邊界。 * 支持向量機以及如何將學習算法重新配置為點積內核以及如何使用其他內核(如多項式和徑向)。 * 如何使用數值優化來學習超平面,并且有效實現使用稱為順序最小優化的備用優化方案。 您對SVM或這篇文章有任何疑問嗎? 在評論中提問,我會盡力回答。
                  <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>

                              哎呀哎呀视频在线观看