1. 程式人生 > >SVM學習總結(一)如何學習SVM

SVM學習總結(一)如何學習SVM

一、前言

前段時間一直在鑽研SVM演算法,原先一直覺得一個非常簡單的演算法,沒想到在學的時候還挺難,主要還是對凸優化方面的知識不太熟悉,以後得加強,下面主要說說SVM演算法的學習思路(對小白初學者)。

二、學習方法

通過各種資料的對比學習,我個人覺得使用李航的《統計學習方法》第七章,再輔助以網上的資料應該就差不多了,然後再寫個SMO演算法就可以了。(下文提到的書都指《統計學習方法》)主要學習步驟如下:
第一階段:
(1)理解SVM思想
認真讀一遍書中第七章第一節,看完後應該知道SVM大體的求解思想,如果看書看的不是很清楚可以在網上看看其他人寫的教程,這個階段主要以理解SVM思想為主。
第二階段
(1)準備工作
認真看一遍書中的附錄C(沒學過凸優化的一定要看,你要不看的話,我可以非常確定,你一定理解不了SVM的求解思路)
(2)理解線性可分支援向量機、線性支援向量機、非線性支援向量機及核函式的重要作用
這個階段應該將書上第七章全部精度一遍,一些證明也一定要看。
第三階段:
(1)看懂SMO演算法大體流程。
主要看書上SMO演算法流程,如果看的一知半解,沒關係,到原始碼中學習。
(2)實現SMO演算法
如果有時間可以通過看書中7.4和SMO演算法原論文自己構建一個,如果你沒時間,可以看我稍後找的一個例子原始碼,初學不太建議直接看林智仁教授的libsvm演算法,因為工程包中加入了一些演算法加速的東西。
第四階段:
(1)跑幾個簡單例子,然後慢慢變複雜。

四、一些好的學習資料推薦

相關推薦

SVM學習總結如何學習SVM

一、前言 前段時間一直在鑽研SVM演算法,原先一直覺得一個非常簡單的演算法,沒想到在學的時候還挺難,主要還是對凸優化方面的知識不太熟悉,以後得加強,下面主要說說SVM演算法的學習思路(對小白初學者)。 二、學習方法 通過各種資料的對比學習,我個人覺得使

機器學習總結SVM支援向量機面試必考

基本思想:試圖尋找一個超平面來對樣本分割,把樣本中的正例和反例用超平面分開,並儘可能的使正例和反例之間的間隔最大。 演算法推導過程: (1)代價函式:假設正類樣本y =wTx+ b>=+1,負

JSON必知必會學習總結

tor lint 沒有 script app 對數 數據交換格式 object 什麽 七月第一周,從學校畢業回來上班的第一周。離開一段時候後,再次回來重新工作,有了很多新的認識,不再是實習時那麽混混沌沌了。每天我自己該做什麽,怎麽做,做到什麽程度更清晰了。除了要去完成我負責

PHP學習總結

encode 什麽 code 解決 new span att 面向對象 反斜杠 》PHP 面向對象 使用parent訪問父類的構造方法(__construct)時一定要為當前類繼承要訪問的構造方法 類的構造方法(__construct)在實例化時直接被加載,靜態方法

Java IO學習總結

file flush writer directory 創建 str java 資源 tab 一、File 類 Java中不管文件還是目錄都可以使用File類操作,File能新建、刪除、重命名文件和目錄,但是不能訪問文件內容本身,訪問文件內容需要使用輸入輸出流。 Fi

JSP學習總結

展示 cat 一起 time server 資源 type div simple 一、JSP的介紹與項目部署 JSP,全稱 Java server page是由Sun公司開發的一種動態生成網頁資源的技術。JSP技術使用java語言作為腳本語言,可以將html元素和java代

JAVA學習總結

產生 java虛擬機 右鍵 分布式系 jdk 問題 功能 地址 輸出 一、Java是什麽? Java 是由 Sun Microsystems 在 1995 年首先發布的編程語言和計算平臺。Java 是一項用於開發應用程序的技術,可以讓 Web 變得更有意思和更實用。有許多應

Linux學習總結 windos環境vmware安裝centos7

color 學習總結 oot 遠程訪問服務 分享圖片 watermark 需要 mage 磁盤大小 1.在這裏我先簡單介紹下虛擬化技術,就是我們通過軟件虛擬化出來一個硬件環境,然後就可以在系統裏面安裝子系統,以來我們避免了裝linux,windos雙系統的麻煩,二來我們可以

webservice學習總結-- WebService相關概念介紹

IT strong 資源 fire 求和 log AC service服務 為什麽 一、WebService是什麽? 基於Web的服務:服務器端整出一些資源讓客戶端應用訪問(獲取數據) 一個跨語言、跨平臺的規範(抽象) 多個跨平臺、跨語言的應用間通信整合的方案(實際)

【Java】 Spring 框架初步學習總結簡單實現 IoC 和 AOP

1.0 其中 表示 只需要 第一篇 否則 info fin pojo   Spring 是一個開源的設計層面的輕量級框架,Spring 的好處網上有太多,這裏就不在贅述。   IoC 控制反轉和 AOP 面向切面編程是 Spring 的兩個重要特性。   IoC(Inver

python學習總結,第一個python程序的編寫

程序代碼 spa 編碼 結構 編輯 下載地址 utf 修改編碼 general 1. python是一種解釋性,編譯型,互動型的語言,面向對象,動態數據類型的高級程序設計語言。 1.1 交互式:意味著可以在一個提示符直接交互執行你寫的程序。 1.2 解釋型:意味著開發過程中

MyBatis學習總結——ORM概要與MyBatis快速起步

管理 stat prim aot 驅動 單元測試 build sta 環境 目錄 一、ORM 1.1、ORM簡介 1.2、ORM的概念 1.3、ORM的優缺點 二、MyBatis 2.1、MyBatis的特點 2.2、MyBatis工作流程

[學習總結] python語言學習總結

用py也很久了,很多東西只知道拿來用,並沒有深究,感覺這樣是不夠的。 我決定寫這麼一篇總結,把很多遺忘的東西拾起來,把很多沒搞懂的東西搞清楚。 1.eval函式 用法:eval(expression, globals=None, locals=None) 解釋:將字串str當成有效的表

Dubbo的學習總結——遠端呼叫

在學習用dubbo進行分散式遠端呼叫之前,先來看一個簡單的有關訪問網路上的天氣預報介面的遠端呼叫例項。 1.先建立一個java專案,建立過程這裡不詳細講述,只附上一張截圖供入門級選手參考: 2.建立好一個java專案後,接下來就是建立一個Weather實體類(這裡可以使用lombok的@Da

Http學習總結

http使用面向連線的TCP作為傳輸層協議。http本身無連線。 請求報文 CRLF是回車換行   方法為GET的請求報文     方法為POST的請求報文   &n

多執行緒學習總結

一、程序和執行緒的定義 程序:程序是資源(CPU、記憶體等)分配的基本單位,它是程式執行時的一個例項。程式執行時系統就會建立一個程序,併為它分配資源,然後把該程序放入程序就緒佇列,程序排程器選中它的時候就會為它分配CPU時間,程式開始真正執行。 執行緒:執行緒是程式執行時的最小單位,它是程序

JavaWeb學習總結---httpservletrequest物件

javaweb學習總結(十)——HttpServletRequest物件(一) 一、HttpServletRequest介紹   HttpServletRequest物件代表客戶端的請求,當客戶端通過HTTP協議訪問伺服器時,HTTP請求頭中的所有資訊都封裝在這個物件中,通過這個物件提供的方

java執行緒學習總結

(宣告:並非原創,只是一個簡單總結) 一、執行緒和程序的概念:            程序:程序是處於執行過程中的程式,並且具有一定的對功能,是系統進行資源分配和排程的一個獨立單位。      

Git學習總結git的安裝和配置

git的安裝: 在這裡,因為網上有了很多詳盡的教程,我就不贅述了。git安裝教程 然後你需要申請一個GitHub賬號:點選申請GitHub賬號 申請GitHub賬號的時候要繫結一個郵箱,繫結QQ郵箱即可。 下面將你電腦上的git繫結GitHub賬號: 開啟Git

Spring Boot 學習總結 ---入口類和@SpringBootApplication

入口類和@SpringBootApplication SpringBoot通常有一個名為*Application的入口類,入口類裡有一個main方法,這個main方法是一個標準的java應用的入口方法。在main方法中使用SpringApplication.run(*App