機器學習之支持向量機(SVM)總結

文章目錄

  • 1、知道SVM相關的各種概念
  • 2、知道目標函數、損失函數、正則項的意義
    • 2.1、目標函數
    • 2.2、損失函數
    • 2.3、正則化(添加噪音避免過擬合)
  • 3、了解SVM算法原理
  • 4、知道SVM的目標函數
  • 5、知道SVM的損失函數以及公式
  • 6、知道SVM支持向量機的計算過程
    • 6.1、推導過程:
    • 6.2、推導實例
  • 7、了解核函數相關知識
  • 8、了解SVM算法的調參技巧

1、知道SVM相關的各種概念

線性可分:一條直線可以分割開兩種類別
間隔:分割線兩邊直線之間的間隔
支持向量:分割線兩邊直線上的點
非線性支持向量機:在高維空間形成分割超平面映射到低維空間形成分割界限。
這里寫圖片描述
分割超平面:兩個集合上的距離最近的兩個點的垂直平分面。
這里寫圖片描述

2、知道目標函數、損失函數、正則項的意義

弄清楚目標函數、損失函數、正則項這幾個概念:

2.1、目標函數

目標函數:指所關心的目標與相關的因素的函數關系。舉個例子,假如我們想要預測公司樓下手抓餅店明天能賣多少張手抓餅,已知過去10天每天賣多少,以及每天的天氣情況,是否有節假日,和手抓餅店老板和老板娘的感情狀況,這幾項數據都統計好了。對應到目標函數的解釋就是:
關心的目標是明天能賣多少手抓餅,未知量。
相關因素是每天數量,天氣情況,節假日,老板老板娘感情狀況,已知量。
目標函數:按照一定的思路把這些已知條件利用起來,去求解未知量的函數關系式。
目標函數f(x)就是用設計變量來表示的所追求的目標形式,所以目標函數就是設計變量的函數,是一個標量。(簡單的說就是函數表達式)是指所關心的目標(某一變量)與相關的因素(某些變量)的函數關系。

2.2、損失函數

也叫代價函數,是同一個東西。是用來評估模型的預測值f(x)與真實值Y的差距,它是一個非負實值函數。稍等一下,為什么是非負的呢?舉個例子:比如上面說的手抓餅,模型預測第一天是30,真實值是29,差距30-29是1;預測第二天是35,真實值是36,差距35-36是-1;如果把它們直接加起來就是1-1 = 0,難到沒有差距?非常明顯是錯誤的,差距是0人家還以為都預測對了呢,其實都預測錯了,所以不能有負值,可以用絕對值,平方或者一些其它的數學運算。
常用的損失函數有:
LR邏輯回歸:log對數損失函數 參考
最小二乘法:平方損失函數 參考:
Adaboost:指數損失函數 (后面會專門介紹這個算法)
好的,現在我們再來看一下目標函數通常的定義形式:
Obj(Θ)=L(Θ)+Ω(Θ)

中文翻譯一下是 :
目標函數 = 損失函數 + 正則項

目標函數和損失函數我們都理解了,那么正則項是干什么的呢?

2.3、正則化(添加噪音避免過擬合)

回到我們前面舉的那個例子,如果第五天有個人中彩票了然后興奮的來買了1百張手抓餅,比幾天的量都多,很明顯這個情況會影響我們的模型訓練,這個情況就是過擬合。而加入正則項的目的就是使模型避免過擬合。
常用的有L1,L2正則化,很熟悉對不對,前面講過的線性代數中的L1,L2范數有些類似。其實本質是一樣的,在機器學習里叫正則化,線性代數叫范數,統計學里叫懲罰項。
機器學習里:L1使用的是絕對值距離,也叫曼哈頓距離,L2使用的是平方距離,也叫做歐式(Euclidean)距離
線性代數:L1 范數計算的是向量所有元素絕對值的和,L2 范數計算的是通常意義上的向量長度

目標函數,損失函數和正則項的作用,優化損失函數使模型避免欠擬合使損失函數最小化,優化正則項使模型避免過擬合。

3、了解SVM算法原理

即先求每個點到每條直線的最小值,這樣每條直線對應一個最小距離值,再從這組距離值中找出最大值,這個最大值對應的直線也就是我們需要的分割超平面。
這里寫圖片描述
w為對應系數矩陣(A,B),Φ(x)代表的是變量矩陣(x,y)
y(xi)=0:代表點在平面上。>0:代表點在平面的上方。
y(xi)>0:代表的是在分隔超平面的一側,yi=1;
這里寫圖片描述
這里寫圖片描述

4、知道SVM的目標函數

知道目標函數(分割超平面)的表達式以及對應的含義:某點到某分隔超平面的距離(需要找到最優的分隔超平面:即先找到每個點到每條直線的最小距離,之后得到每條直線對應的最小距離組成一個數組,再找出這組數中的最大值,對應的分隔超平面即為所求的最優分隔超平面(所以求目標函數的過程才是一個先求最小值而后求最大值的步驟,知道最小和最大代表的含義))
這里寫圖片描述

5、知道SVM的損失函數以及公式

SVM:分對了損失值為0,分錯了損失值為距離支持向量所在的直線的距離。
這里寫圖片描述

6、知道SVM支持向量機的計算過程

  1. 先求出點到直線距離的一般表示形式。
  2. 由于是求所有點到直線的距離所以需要除以一個w來做歸一化處理。
  3. 由于一系列的約束條件,轉化為了用拉格朗日乘子法優化的問題(求極值的問題)
  4. 利用拉格朗日的一些性質來轉化,最終得到一個最簡的式子。
  5. 之后將對應的點代入這個式子就能求出一般表達式中對應的一個參數,進而得到整個式子。

6.1、推導過程:

通過縮放w,b(即||w||)總是可以使得yiy(xi)>=1得到滿足。即此處多了一個限制條件,根據這個限制條件來進一步轉化目標函數。
這里寫圖片描述
由約束條件yi
y(xi)>=1,得到原目標函數可以轉化為新目標函數
這里寫圖片描述
線性可分SVM的目標函數
這里寫圖片描述
將目標函數轉化為拉格朗日乘子法來求。
一般問題的優化的解法(即求極值的問題):拉格朗日乘子法
拉格朗日乘子法是一種經典的求解條件極值的解析方法,可將所有約束的優化模型問題轉化為無約束極值問題的求解。
這里寫圖片描述
這里寫圖片描述
求極大極小問題,先求極小值即先對w,b求導數。
這里寫圖片描述
得到上面兩個條件后代入拉格朗日函數得到下面的式子
這里寫圖片描述
由前面得到得條件接著求解
這里寫圖片描述
原函數求的是極小極大值而拉格朗日對偶函數求的是極大極小值(參考上圖),所以需要先求該式子的最小值,這里通過添加負號做出對應的轉換。
這里寫圖片描述
求的最小值對應的α值
這里寫圖片描述
根據α值得到下面的值
這里寫圖片描述

6.2、推導實例

這里寫圖片描述
注意計算這個最小值的過程(求一個一元二次方程的最小值的過程)
這里寫圖片描述
注意這個結論
這里寫圖片描述

7、了解核函數相關知識

核函數思想:將不可分的輸入數據映射到核函數空間中來進行分割。
這里寫圖片描述
知道核函數為什么被使用:減小運算的復雜度。
知道這幾個核函數:多項核函數、高斯核函數RBF、Sigmoid核函數。
知道為什么需要核函數:將原始輸入空間映射到新的特征空間從而使得原本線性不可分的樣本在核空間中可分。
這里寫圖片描述

8、了解SVM算法的調參技巧

知道調參中常用的參數以及對應的參數的含義。
詳情參考:https://blog.csdn.net/qq_16633405/article/details/70243030

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456457.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在CentOS上搭建PHP服務器環境

您也可以使用一鍵自動部署環境的工具,請參見網友開發的這個工具 http://www.centos.bz/2013/08/ezhttp-tutorial/安裝apache:yum install httpd httpd-devel 啟動apache:/etc/init.d/httpd start此時輸入服務器的IP地址,應該看到apache的服務頁面&#x…

jQuery之滾動事件$(window).scroll(function()

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>滾動事件</title><script src"https://code.jquery.com/jquery-2.2.4.min.js"></script><style>img{position:fixe…

《瘋狂Java講義》(二十九)---- JDBC

JDBC編程步驟加載數據庫驅動Class.forName(driverClass). 例如&#xff1a;Class.forName("oracle.jdbc.driver.OracleDriver"); 2. 通過DriverManager獲取數據庫連接。 DriverManager.getConnection(String url, String user, String pwd); 3. 通過Connection對象創…

機器學習之聚類算法的原理推導及相關知識總結

文章目錄1、知道幾個關于"差"的概念2、理解相似度度量的各種方法和相互關系2.1、歐氏距離2.2、jaccard相似系數2.3、余弦相似度2.4、Pearson相似系數2.5、相對熵3、掌握掌握K-Means算法3.1、知道聚類的思想3.2、K-Means算法原理3.3、知道K-Mediods聚類3.4、如何選取K…

Flex 布局教程:語法

Java數組聲明的三種方式 第一種(聲明并初始化)&#xff1a; 數據類型[] 數組名{值,值,...}; 例&#xff1a;int[] a {1,2,3,4,5,6,7,8}; 第二種(聲明后賦值)&#xff1a; 數據類型[] 數組名 new 數據類型[數組長度]; 數組名[下標1]值…

注意:匿名函數調用直接加載函數名setInterval(move,30)

setInterval要求第一個參數必須是含Javascript命令的字符串或函數對象&#xff0c;所以 setInterval("move()",300) 以及 setInterval(move,300) 這兩個都是正確的。 而 setInterval(move(),300) 當Javascript運行到這個語句時&#xff0c;會立即執行move這個函數&am…

vue import組件的使用

vue import組件的使用 1新建/src/component/firstcomponent.vue <template><div id"firstcomponent"><h1>I am a title.</h1></div> </template>2在app.vue引入組件 并且注冊 <script> import firstcomponent from ./comp…

牽絲戲

余少能視鬼&#xff0c;嘗于雪夜野寺逢一提傀儡翁&#xff0c;鶴發襤褸&#xff0c;唯持一木偶制作極精&#xff0c;宛如嬌女&#xff0c;繪珠淚盈睫&#xff0c;惹人見憐。 時云彤雪狂&#xff0c;二人比肩向火&#xff0c;翁自述曰&#xff1a;少時好觀牽絲戲&#xff0c;耽…

機器學習之EM算法的原理推導及相關知識總結

文章目錄1、知道先驗概率和后驗概率2、了解高斯混合模型GMM3、通過最大似然估計推導EM算法的過程的實例4、EM算法5、知道pLSA模型1、知道先驗概率和后驗概率 先驗概率&#xff08;prior probability&#xff09;是指根據以往經驗和分析得到的概率&#xff08;理解為自定義概率…

jQuery中的on 和事件委派

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>事件</title><style>p{width:100px;height:100px;border: 1px solid gray;}</style><script src"https://code.jquery.com/…

python pip處理

查看pip 版本號 pip --version 升級方法 on linux or os X: pip install -U pip on windows: python -m pip install -U pip 轉載于:https://www.cnblogs.com/yangwithtao/p/6397114.html

js中innerHTML和innerText jQuery中html()和text()的區別

js中innerHTML和innerText的區別innerHTML innerHTML 會將標簽和標簽中的內容否獲取回來 innerHTML .innerHTML ‘<p></p>’; 只會將文本內容解析出來&#xff0c;不會顯示標簽innerText innerText 只會將標簽中的內容獲取回來&#xff0c;不會獲取標簽 innerT…

ECMAScript 6 -- let和const命令

ES6新增了let命令&#xff0c;用來聲明變量。它的用法類似于var&#xff0c;但是所聲明的變量&#xff0c;只在let命令所在的代碼塊內有效。 for (let i 0; i < 10; i) {console.log(i);} 可以執行 for (let i 0; i < 10; i) {}console.log(i); 就會報錯 ncaught Refer…

機器學習之樸素貝葉斯算法的推理及相關知識總結

文章目錄1、樸素貝葉斯公式1.1、貝葉斯公式的應用2、了解貝葉斯網絡2.1、知道什么是貝葉斯網絡2.2、貝葉斯網絡的兩種表示形式2.3、掌握全連接的貝葉斯網絡的公式2.3、知道條件概率表參數個數分析的方法2.4、掌握變量聯合分布概率的公式及含義2.5、知道馬爾科夫模型3、了解D-se…

mysql之外鍵

外鍵的作用,主要有兩個: 一個是讓數據庫自己通過外鍵來保證數據的完整性和一致性 一個就是能夠增加ER圖的可讀性 有些人認為外鍵的建立會給開發時操作數據庫帶來很大的麻煩.因為數據庫有時候會由于沒有通過外鍵的檢測而使得開發人員刪除,插入操作失敗.他們覺得這樣很麻煩 …

Android onLoadFinished與onLoaderReset

onLoadFinished 這個方法是在前面已創建的加載器已經完成其加載過程后被調用&#xff0c;這個方法保證會在應用到加載器上的數據被釋放之前被調用。在此方法中&#xff0c;你必須刪除所有對舊數據的使用(因為它將很快會被刪除)&#xff0c;但是不要自己去釋放它們&#xff0c;因…

HA機制的大數據集群的搭建過程

文章目錄集群規劃1、 準備Linux環境1.1、修改Linux主機名1.3、修改主機名和IP的映射關系1.4、關閉防火墻1.5、ssh免登陸&#xff08;主節點和從節點之間&#xff09;2、 安裝JDK2.1、上傳2.2、解壓jdk2.3、將java添加到環境變量中2.4、刷新配置2.5、驗證3、安裝zookeeper3.1、解…

Linux系統7個運行級別圖文詳解

Linux系統7個運行級別圖文詳解 當安裝linux操作系統時將選擇下列那一個操作 ______ A&#xff0e;選擇 "圖形登錄方式" 設定系統開始運行級為4 B&#xff0e;選擇 "文本登錄方式" 設定系統開始運行級為3 C&#xff0e;選擇 "文本登錄方式" 設定系…

CRISPR基因編輯

2007年&#xff0c;一家酸奶公司發現一種細菌擁有抵御病毒的特殊防御機制。2012年&#xff0c;細菌的這種機制就被科學家闡述清楚&#xff0c;2013年這一領域快速增長。它被視為分子生物學的一個奇跡&#xff0c;事實上&#xff0c;它并非僅對生物學家產生革命的影響&#xff0…

酒店之王

酒店之王 題目描述 XX酒店的老板想成為酒店之王&#xff0c;本著這種希望&#xff0c;第一步要將酒店變得人性化。由于很多來住店的旅客有自己喜好的房間色調、陽光等&#xff0c;也有自己所愛的菜&#xff0c;但是該酒店只有p間房間&#xff0c;一天只有固定的q道不同的菜。 有…