Logistic回歸和SVM的異同

  這個問題在最近面試的時候被問了幾次,讓談一下Logistic回歸(以下簡稱LR)和SVM的異同。由于之前沒有對比分析過,而且不知道從哪個角度去分析,一時語塞,只能不知為不知。

  現在對這二者做一個對比分析,理清一下思路。

  

  相同點

  1、LR和SVM都是分類算法(曾經我認為這個點簡直就是廢話,了解機器學習的人都知道。然而,雖然是廢話,也要說出來,畢竟確實是一個相同點。)

  2、如果不考慮使用核函數,LR和SVM都是線性分類模型,也就是說它們的分類決策面是線性的。

    其實LR也能使用核函數,但我們通常不會在LR中使用核函數,只會在SVM中使用。原因下面會提及。

  3、LR和SVM都是監督學習方法。

    監督學習方法、半監督學習方法和無監督學習方法的概念這里不再贅述。

  4、LR和SVM都是判別模型。

  判別模型和生成模型的概念這里也不再贅述。典型的判別模型包括K近鄰法感知機決策樹Logistic回歸最大熵SVMboosting條件隨機等。典型的生成模型包括樸素貝葉斯法隱馬爾可夫模型高斯混合模型

  5、LR和SVM在學術界和工業界都廣為人知并且應用廣泛。(感覺這個點也比較像廢話)

  

  不同點

  1、loss function不一樣

  LR的loss function是

        

  SVM的loss function是

        

?

LR基于概率理論,通過極大似然估計方法估計出參數的值,然后計算分類概率,取概率較大的作為分類結果。SVM基于幾何間隔最大化,把最大幾何間隔面作為最優分類面。

  2、SVM只考慮分類面附近的局部的點,即支持向量,LR則考慮所有的點,與分類面距離較遠的點對結果也起作用,雖然作用較小。

?  SVM中的分類面是由支持向量控制的,非支持向量對結果不會產生任何影響。LR中的分類面則是由全部樣本共同決定。線性SVM不直接依賴于數據分布,分類平面不受一類點影響;LR則受所有數據點的影響,如果數據不同類別strongly unbalance,一般需要先對數據做balancing。

  3、在解決非線性分類問題時,SVM采用核函數,而LR通常不采用核函數。

  分類模型的結果就是計算決策面,模型訓練的過程就是決策面的計算過程。在計算決策面時,SVM算法中只有支持向量參與了核計算,即kernel machine的解的系數是稀疏的。在LR算法里,如果采用核函數,則每一個樣本點都會參與核計算,這會帶來很高的計算復雜度,所以,在具體應用中,LR很少采用核函數。

  4、SVM不具有伸縮不變性,LR則具有伸縮不變性。

  SVM模型在各個維度進行不均勻伸縮后,最優解與原來不等價,對于這樣的模型,除非本來各維數據的分布范圍就比較接近,否則必須進行標準化,以免模型參數被分布范圍較大或較小的數據影響。LR模型在各個維度進行不均勻伸縮后,最優解與原來等價,對于這樣的模型,是否標準化理論上不會改變最優解。但是,由于實際求解往往使用迭代算法,如果目標函數的形狀太“扁”,迭代算法可能收斂得很慢甚至不收斂。所以對于具有伸縮不變性的模型,最好也進行數據標準化。

  5、SVM損失函數自帶正則項,因此,SVM是結構風險最小化算法。而LR需要額外在損失函數上加正則項。

  所謂結構風險最小化,意思就是在訓練誤差和模型復雜度之間尋求平衡,防止過擬合,從而達到真實誤差的最小化。未達到結構風險最小化的目的,最常用的方法就是添加正則項。

?

參考博客

http://www.cnblogs.com/bentuwuying/p/6616761.html

轉載于:https://www.cnblogs.com/Peyton-Li/p/7620081.html

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

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

相關文章

[轉載] python學習筆記2--操作符,數據類型和內置功能

參考鏈接: Python中的Inplace運算符| 1(iadd(),isub(),iconcat()…) 什么是操作符? 簡單的回答可以使用表達式4 5等于9,在這里4和5被稱為操作數,被稱為操符。 Python語言支持操作者有以下幾種類型。 算…

scala bitset_Scala中的BitSet

scala bitsetScala BitSet (Scala BitSet) Set is a collection of unique elements. 集合是唯一元素的集合。 Bitset is a set of positive integers represented as a 64-bit word. 位集是一組表示為64位字的正整數。 Syntax: 句法: var bitset : Bitset Bits…

構建安全網絡 比格云全系云產品30天內5折購

一年之計在于春,每年的三、四月,都是個人創業最佳的起步階段,也是企業采購最火熱的時期。為了降低用戶的上云成本,讓大家能無門檻享受到優質高性能的云服務,比格云從3月16日起,將上線“充值30天內&#xff…

python中 numpy_Python中的Numpy

python中 numpyPython中的Numpy是什么? (What is Numpy in Python?) Numpy is an array processing package which provides high-performance multidimensional array object and utilities to work with arrays. It is a basic package for scientific computati…

[轉載] python之路《第二篇》Python基本數據類型

參考鏈接: Python中的Inplace運算符| 1(iadd(),isub(),iconcat()…) 運算符 1、算數運算: 2、比較運算: 3、賦值運算: 4、邏輯運算: 5、成員運算: 6、三元運算 三元運算&…

數據結構 基礎知識

一。邏輯結構: 是指數據對象中數據 素之間的相互關系。 其實這也是我 今后最需要關注的問題 邏輯結構分為以 四種1. 集合結構 2.線性結構 3.數形結構 4,圖形結構 二。物理結構: 1,順序存儲結,2 2. 鏈式存儲結構 一,時間復雜…

ruby 變量類中范圍_Ruby中的類

ruby 變量類中范圍Ruby類 (Ruby Classes) In the actual world, we have many objects which belong to the same category. For instance, I am working on my laptop and this laptop is one of those laptops which exist around the globe. So, this laptop is an object o…

以云計算的名義 駐云科技牽手阿里云

本文講的是以云計算的名義 駐云科技牽手阿里云一次三個公司的牽手 可能會改變無數企業的命運 2017年4月17日,對于很多人來說可能只是個平常的工作日,但是對于國內無數的企業來說卻可能是個會改變企業命運的日。駐云科技聯合國內云服務提供商阿里云及國外…

[轉載] python學習筆記

參考鏈接: Python | a b并不總是a a b 官網http://www.python.org/ 官網library http://docs.python.org/library/ PyPI https://pypi.python.org/pypi 中文手冊,適合快速入門 http://download.csdn.net/detail/xiarendeniao/4236870 py…

標志寄存器_訪問標志寄存器,并與寄存器B |交換標志寄存器F的內容 8085微處理器...

標志寄存器Problem statement: 問題陳述: Write an assembly language program in 8085 microprocessor to access Flag register and exchange the content of flag register F with register B. 在8085微處理器中編寫匯編語言程序以訪問標志寄存器,并…

瀏覽器端已支持 ES6 規范(包括 export import)

當然,是幾個比較優秀的瀏覽器,既然是優秀的瀏覽器,大家肯定知道是那幾款啦,我就不列舉了,我用的是 chrome。 對 script 聲明 type 為 module 后就可以享受 es6 規范所帶來的模塊快感了。 基礎語法既然是全支持&#xf…

[轉載] Python學習:Python成員運算符和身份運算符

參考鏈接: Python中和is運算符之間的區別 Python成員運算符 除了以上的一些運算符之外,Python還支持成員運算符,測試實例中包含了一系列的成員,包括字符串,列表或元組。 運算符 描述 實例 in 如果在指定的序列中找…

量詞邏輯量詞里面的v表示?_代理知識表示中的量詞簡介(基于人工智能)

量詞邏輯量詞里面的v表示?As we know that in an AI-based agent, the knowledge is represented through two types of logic: The propositional logic and the predicate logic. In the propositional logic, we have declarative sentences, and in the predica…

[轉載] Python 機器學習經典實例

參考鏈接: Python中的邏輯門 內容介紹 在如今這個處處以數據驅動的世界中,機器學習正變得越來越大眾化。它已經被廣泛地應用于不同領域,如搜索引擎、機器人、無人駕駛汽車等。本書首先通過實用的案例介紹機器學習的基礎知識,然后…

哈希表的最差復雜度是n2_給定數組A []和數字X,請檢查A []中是否有對X | 使用哈希O(n)時間復雜度| 套裝1...

哈希表的最差復雜度是n2Prerequisite: 先決條件: Hashing data structure 散列數據結構 Problem statement: 問題陳述: Given an array and a sum X, fins any pair which sums to X. Expected time complexity O(n). 給定一個數組和一個和X &#xff…

一文讀懂深度學習框架下的目標檢測(附數據集)

從簡單的圖像分類到3D位置估算,在機器視覺領域里從來都不乏有趣的問題。其中我們最感興趣的問題之一就是目標檢測。 如同其他的機器視覺問題一樣,目標檢測目前為止還沒有公認最好的解決方法。在了解目標檢測之前,讓我們先快速地了解一下這個領…

[轉載] Python-Strings

參考鏈接: Python成員資格和身份運算符 | in, not in, is, is not Strings 介紹 String是Python中最常用的類型。僅僅用引號括起字符就可以創建string變量。字符串使用單引號或雙引號對Python來說是一樣的。 var1 Hello World! var2 "Pyth…

aes-128算法加密_加密算法問題-人工智能中的一種約束滿意問題

aes-128算法加密The Crypt-Arithmetic problem in Artificial Intelligence is a type of encryption problem in which the written message in an alphabetical form which is easily readable and understandable is converted into a numeric form which is neither easily…

讀書筆記《集體智慧編程》Chapter 2 : Make Recommendations

本章概要本章主要介紹了兩種協同過濾(Collaborative Filtering)算法,用于個性化推薦:基于用戶的協同過濾(User-Based Collaborative Filtering,又稱 K-Nearest Neighbor Collaborative Filtering&#xff0…

[轉載] python中的for循環對象和循環退出

參考鏈接: Python中循環 流程控制-if條件 判斷條件,1位true,0是flesh,成立時true,不成立flesh,not取反 if 1; print hello python print true not取反,匹配取反,表示取非1…