如何使用支持向量機學習非線性數據集

2021-01-08 不靠譜的貓

支持向量機(SVM)

什麼是支持向量機呢?支持向量機是監督機器學習模型,可對數據進行分類分析。實際上,支持向量機算法是尋找能將實例進行分離的最佳超平面的過程。

如果數據像上面那樣是線性可分離的,那麼我們用一個線性分類器就能將兩個類分開。如果我們的數據是非線性可分的,我們應該怎麼做呢?就像這樣:

正如我們所看到的,即使來自不同類的數據點是可分離的,我們也不能簡單地畫一條直線來進行分類。

那麼我們如何使用支持向量機來擬合非線性機器學習數據集呢?

使用SVM進行實驗

創建機器學習數據集

首先創建非線性機器學習數據集。Python代碼如下:

嘗試使用線性支持向量機

我們首先嘗試使用線性支持向量機,Python實現如下:

C是與錯誤分類相關的成本。C值越高,算法對數據集的正確分離就越嚴格。對於線性分類器,我們使用kernel='linear'。

如我們所見,即使我們將成本設置得很高,但這條線也無法很好地分離紅點和藍點。

徑向基函數核

到目前為止,我們使用的線性分類器為:

正如我們所看到的,g(x)是一個線性函數。當g(x) >為0時,預測值為1。當g(x) <0時,預測值為-1。但是由於我們不能使用線性函數處理像上面這樣的非線性數據,我們需要將線性函數轉換成另一個函數。

這個分類器似乎是我們非線性數據的理想選擇。讓我們來看看Python的代碼:

gamma是1 / sigma。請記住,sigma是調節函數。因此,gamma值越小,sigma值就越大,分類器對各個點之間的距離就越不敏感。

讓我們把伽瑪放大看看會發生什麼

好像將伽瑪值提高100倍可以提高分類器對訓練集的準確性。把伽馬值再乘以10會怎麼樣呢?

這是否意味著如果我們將伽瑪提高到10000,它將更加準確呢?事實上,如果伽瑪值太大,則分類器最終會對差異不敏感。

讓我們增加C。C是與整個機器學習數據集的錯誤分類相關的成本。換句話說,增加C將增加對整個數據集的敏感性,而不僅僅是單個數據點。

我們已經找到了參數,因此我們的SVM分類器可以成功地將兩組點分開。

最後

我希望本文能讓您對SVM分類器是什麼以及如何使用它來學習非線機器學習性數據集有一個直觀的認識。如果數據是高維的,您則無法通過可視化來判斷分類器的性能。好的做法是根據訓練集進行訓練,並在測試集上使用混淆矩陣或f1-分數等指標。

相關焦點

  • 智能財務風險預警方法—支持向量機
    「大數據與人工智慧環境下的智能財務風險預警方法」系列推文四:智能財務風險預警方法—支持向量機一、支持向量機理論支持向量機是統計模型中一個比較年輕的模型,也是一種非常實用的時間模型,它的主要理論依據是統計學習理論中的維度理論,並且遵循著結構風險最小的原則,主要應用在處理模式與識別的分類問題上,或者時間序列預測,判別樣本等其他一系列判別方面的模型
  • 一個簡單的案例帶你了解支持向量機算法(Python代碼)
    大多數的初學者都是從學習回歸開始的。是因為回歸易於學習和使用,但這能夠解決我們全部的問題嗎?當然不行!因為,你要學習的機器學習算法不僅僅只有回歸!把機器學習算法想像成一個裝有斧頭,劍,刀,弓箭,匕首等等武器的軍械庫。你有各種各樣的工具,但你應該學會在正確的時間和場合使用它們。作為一個類比,我們可以將「回歸」想像成一把能夠有效切割數據的劍,但它無法處理高度複雜的數據。
  • 從零推導支持向量機 (SVM) | 雷鋒網
    儘管現在深度學習十分流行,了解支持向量機的原理,對想法的形式化、簡化,及一步步使模型更一般化的過程,及其具體實現仍然有其研究價值。另一方面,支持向量機仍有其一席之地。相比深度神經網絡,支持向量機特別擅長於特徵維數多於樣本數的情況,而小樣本學習至今仍是深度學習的一大難題。1.
  • 超詳細支持向量機知識點,面試官會問的都在這裡了
    它的基本思想是在特徵空間中尋找間隔最大的分離超平面使數據得到高效的二分類,具體來講,有三種情況(不加核函數的話就是個線性模型,加了之後才會升級為一個非線性模型):當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機;當訓練數據近似線性可分時,引入鬆弛變量,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機;當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化
  • 25道題檢測你對支持向量機算法的掌握程度
    相反的是,「支持向量機(SVM)」就像一把鋒利的刀,它比較適用於較小的數據集,但在較小的數據集上面,它可以構建更加強大的模型。相信在你學習機器學習算法解決分類問題的時候,肯定聽說過支持向量機(SVM),在過去的五十年中SVM在隨著時間進行演化,並且在分類之外也得到了應用,比如回歸、離散值分析、排序。
  • 支持向量機+sklearn繪製超平面
    核函數4.SVM 應用實例1.快速了解SVM 支持向量機(support vector machines,SVM)是一種二類分類模型。它的基本模型是定義在特徵空間上的間隔最大的線性分類器,間隔最大使它有別於感知機;而且SVM還支持核技巧,能夠對非線形的數據進行分類,其實就是將非線形問題變換為線性問題,通過解變換後的線性問題來得到原來非線形問題的解。舉個例子來說明支持向量機是來幹什麼的吧!
  • 形象講解支持向量機
    支持向量機(SVM)是由分離超平面的判別分類器。換句話說,給定標記的訓練數據(監督學習),算法輸出最佳超平面,其對新示例進行分類。在二維空間中,這個超平面是將平面分成兩部分的線,其中每一類都位於兩側。本文以一個外行的角度來學習假設在圖表上給出了兩個標籤類的圖,如圖(A)所示。你能決定一個分類線嗎?
  • 「研究」支持向量機和其它類人工神經網絡的聯繫及區別
    支持向量機(Support Vector Machines,SVM)是20世紀90年代初,由Vapnik教授領導的研究小組提出的一種新的智能機器,它基於Vapnik等人在上世紀60年代末提出統計學習理論。
  • 如何學習SVM(支持向量機)以及改進實現SVM算法程序 - 雷鋒網
    雷鋒網 AI 科技評論按,本文為韋易笑在知乎問題如何學習SVM(支持向量機)以及改進實現SVM算法程序下面的回覆,雷鋒網 AI 科技評論獲其授權轉載。以下為正文:學習 SVM 的最好方法是實現一個 SVM,可講理論的很多,講實現的太少了。
  • 機器學習|劉老師專欄—從邏輯回歸到支持向量機(一)
    劉老師專欄,今天分享的是從邏輯回歸到支持向量機解決分類問題的思路,算法理論知識固然重要,但更值得學習的是解決問題的思考方式,仔細欣賞劉老師的分享吧~需要複習邏輯回歸?請戳:機器學習|劉老師專欄——機器的「是非觀」機器學習|劉老師專欄——機器學習與是非題(二)機器學習|劉老師專欄——關於邏輯回歸的更多思考支持向量機是解決分類問題的另一個重要方法,關於這個方法的具體內容,因為我覺得插入公式和圖片都很麻煩,所以不再贅述。而且,相比於教材來說,贅述也不過是一種重複。
  • 改進遺傳算法的支持向量機特徵選擇解決方案
    支持向量機是一種在統計學習理論的基礎上發展而來的機器學習方法[1],通過學習類別之間分界面附近的精確信息,可以自動尋找那些對分類有較好區分能力的支持向量,由此構造出的分類器可以使類與類之間的間隔最大化,因而有較好的泛化性能和較高的分類準確率。由於支持向量機具有小樣本、非線性、高維數、避免局部最小點以及過學習現象等優點,所以被廣泛運用於故障診斷、圖像識別、回歸預測等領域。
  • 深度講解支持向量機背後的數學思想
    在支持向量機(support vector machine,SVM)算法中,有諸多數學思想。學習SVM是一個非常好的實踐數學思想的過程,為我們以後創新解決問題思路提供了啟發。在卷積神經網絡興起之前,在機器學習界一直是非常受追捧的算法,不光是因為其有良好的泛化能力、很高的準確度,更是因為其完備的數學理論依據以及諸多較難理解的數學知識。
  • 改進遺傳算法的支持向量機特徵選擇解決方案介紹
    支持向量機是一種在統計學習理論的基礎上發展而來的機器學習方法[1],通過學習類別之間分界面附近的精確信息,可以自動尋找那些對分類有較好區分能力的支持
  • 數據建模中分類與預測模型
    3.實現過程  分類算法有兩步過程:第一步是學習步,通過歸納分析訓練樣本集來建立分類模型得到分類規則;第二步是分類步,先用已知的測試樣本集評估分類規則的準確率,如果準確率是可以接受的,則使用該模型對未知類標號的待測樣本集進行預測。  預測模型的實現也有兩步,第一步是通過訓練集建立預測屬性(數值型的)的函數模型,第二步在模型通過檢驗後進行預測或控制。
  • 入門| 從線性回歸到無監督學習,數據科學家需要掌握的十大統計技術
    因此他們需要系統地研究統計機器學習,該學科脫胎於統計學和泛函分析,並結合了資訊理論、最優化理論和線性代數等多門學科。為什麼學習統計學習?理解不同技術背後的理念非常重要,它可以幫助你了解如何使用以及什麼時候使用。同時,準確評估一種方法的性能也非常重要,因為它能告訴我們某種方法在特定問題上的表現。
  • 機器學習入門案例:鳶尾花數據集分類 繪製PR曲線
    案例使用鳶尾花數據集進行分類預測,並繪製評價分類性能的PR曲線圖 認識分類任務和數據集 Iris(鳶尾花)數據集
  • 支持向量機其實沒那麼玄乎
    在機器學習中,支持向量機也是一種常見的算法。支持向量機的原理是,在兩類的樣本中,尋找到能最好劃分類別的超平面。如果在平面中找不到,那就進入更多維度的空間,直至某個維度的空間能夠劃分出最合適的支持向量。兩條支持向量中間的那個超平面就是機器能夠利用的判斷邏輯。
  • 機器學習中不平衡數據集分類示例:乳腺鉬靶微鈣化攝影數據集分類
    在本教程中,您將發現如何開發和評估乳腺癌鉬靶攝影數據集的不平衡分類模型。完成本教程後,您將知道:如何加載和探索數據集,並從中獲得預處理數據與選擇模型的靈感。如何使用代價敏感算法評估一組機器學習模型並提高其性能。
  • 被稱為21世紀最性感的工作,我們要如何學習「數據科學」?
    統計/機器學習(與R編程):介紹數據科學的核心算法,如線性和非線性回歸的類型,分類技術,如logistic回歸,樸素貝葉斯,支持向量機,決策樹(香草決策樹,隨機森林,推進),無監督學習方法,如聚類,神經網絡介紹。5.
  • 想入門機器學習?機器之心為你準備了一份中文資源合集
    管理特徵的類別和缺失、歸一化和降維(PCA、ICA、NMF)是大幅提高算法性能的基本技術,而且還有助於研究如何將數據集分割成訓練集和測試集、如何採取交叉驗證來取代傳統的測試方法。著維度、廣播操作與可視化:如何高效使用TensorFlow數據可視化Matplotlib 即使不是純粹的機器學習話題,了解如何可視化數據集也很重要。Matplotlib 可能是最廣泛使用的解決方案:Matplotlib 易用,允許繪製不同種類的圖表。Bokeh 和 Seaborne 提供了有趣的替代方案。