svm 支持向量机 回归 预测_机器学习:简单理解支持向量机SVM
在介紹過貝葉斯之后,今天嘗試著給大家介紹支持向量機SVM。
在機器學習中,SVM試圖找到一個最佳的超平面,該平面可以最佳地分割來自不同類別的觀察結果。一個在N-1維的超平面可以分割?維的特征空間。例如,二維特征空間中的超平面是一條線,而三維特征空間中的超平面是一個面。最佳超平面即不同特征空間中離該超平面最近的點的距離最大,這些最近的點就是所謂的支持向量。如下圖:一定理解:支持向量是離最佳超平面最近的點
SVM的原理
根據前面提到的SVM定義,其實我們可以有無限多個可行的超平面。我們如何確定最佳選擇?讓我一步步來說明
- 認識超平面
首先,我們需要了解什么才是一個合格的超平面。在以下示例中,超平面C是唯一正確的,因為它成功地按其標記將觀察結果分開,超平面A和B卻失敗了。我們可以從數學上來看:
在二維空間中,一條線可以由一個斜率向量w(二維)和一個截距b來定義。類似地,在n維空間中,超平面可以由n維向量w和截距b定義。超平面上的任何數據點x都滿足
如果一個超平面滿足以下2點,則為合格的超平面:
- 對于來自一類的任何數據點x,它都滿足
- 對于來自另一個類的任何數據點x,它都滿足
只有C為合格的超平面
w和b可能有無數種可能。因此,接下來我們探討如何在可能的超平面中確定最佳的超平面
- 確定最佳超平面
在以下實例中,ABC都是合格的超平面,但C才是最佳超平面,為什么呢?因為C使正側最近的數據點與其自身之間的距離與負側最近的數據點與其自身之間的距離的和最大。此時正側的最近點可以構成一個平行于決策超平面的超平面,我們稱其為正超平面。另一方面,負側的最近點構成負超平面。正負超平面之間的垂直距離稱為余量,其值等于上述兩個距離的總和。如果余量最大化,則決策超平面是最佳的。
C才是最佳超平面
下面顯示了使用兩個類別的樣本訓練的SVM模型的最大余量(最佳)超平面和余量。邊緣上的樣本(一個類別中的兩個黃星,另一類別中的一個藍點,如下所示)就是所謂的支持向量。
正負超平面與支持向量
運用SVM的機器學習要做的呢就是去找到這個最佳超平面,具體過程設計到好多數學知識,這兒不展開(1是因為頭條寫公式太垃圾,2是我也不會,哈哈哈)
其實了解這么多就差不多了,但是還有一種情況
線性超平面不好分咋整?
想一想這個時候,如何處理如圖這個情況
接下來繼續
離群值的處理
對于含有離群值的數據這個時候其實是找不到最優超平面的,此時用SVM時我們允許分類錯誤,但是會盡量最小化引入的誤差。對于一個樣本X它的分類錯誤可以表示為:
為了計算簡便對于一組m個樣本的訓練集:
分類錯誤可以表示為
別問我為什么,我不知道
但要理解,其中參數C控制兩個指標(模型方差與偏倚)之間的權衡。
當選擇大值的C時,錯誤分類的懲罰會變得相對較高,這使得數據分割變得更加嚴格(盡可能分成標準的2類),模型易于過擬合。具有大C的SVM模型具有較低的偏差,但可能會有較大的方差。
相反,當C的值足夠小時,錯誤分類的影響變得相對較小,這允許更多錯誤分類的數據點,從而使得分割不太嚴格。C較小的SVM模型方差低,但可能會偏倚較大。
圖示如下:
大C與小C的區別
參數C可以通過交叉驗證進行微調,之后講。
感謝大家耐心看完,發表這些東西的主要目的就是督促自己,希望大家關注評論指出不足,一起進步。內容我都會寫的很細,一個目的就是零基礎也能懂,因為自己就是什么基礎沒有從零學Python的。
總結
以上是生活随笔為你收集整理的svm 支持向量机 回归 预测_机器学习:简单理解支持向量机SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac锁屏设置快捷键
- 下一篇: elementui 加载中_Elemen