25道題檢測你對支持向量機算法的掌握程度

2020-12-15 CDA數據分析師

介紹

在我們學習機器算法的時候,可以將機器學習算法視為包含刀槍劍戟斧鉞鉤叉的一個軍械庫。你可以使用各種各樣的兵器,但你要明白這些兵器是需要在合適的時間合理的地點使用它們。作為類比,你可以將「回歸算法」想像成能夠有效切割數據的劍,但無法處理高度複雜的數據。相反的是,「支持向量機(SVM)」就像一把鋒利的刀,它比較適用於較小的數據集,但在較小的數據集上面,它可以構建更加強大的模型。

相信在你學習機器學習算法解決分類問題的時候,肯定聽說過支持向量機(SVM),在過去的五十年中SVM在隨著時間進行演化,並且在分類之外也得到了應用,比如回歸、離散值分析、排序。我相信你在不同的途徑中肯定也接觸過支持向量機,是不是覺得已經對這個東西有些頭痛,認為很多人都會,但是自己好像怎麼都不能明白過來它的原理,或者說你已經對自己有關支持向量機的知識已經很有自信了,那麼現在你來對地方了,這份技能測試就是專門測試你對於支持向量機的掌握程度已經是否可以應用。這份測試已經有超過550多人參加了,最後我會放出這些人的分數的分布情況,從而方便你對比一下自己的支持向量機的水平程度。

技能測試問題(每題1分)

問題背景:1-2

假設你使用的是一個線性SVM分類器,是用來解決存在的2分類問題。現在你已經獲得了以下數據,其中一些點用紅色圈起來表示支持向量。

1)如果從數據中刪除以下任何一個紅點。決策邊界會改變嗎?

A)YES B)NO

2)[是或否]如果從數據中刪除非紅色圓圈點,決策邊界會發生變化嗎?

A)真 B)假

3)有關於支持向量機的泛化誤差是什麼意思?

A)超平面與支持向量的距離 B)支持向量機對未知數據的預測精度如何 C)支持向量機中的閾值誤差量

4)當C參數設置為無窮大時,以下哪項成立?

A)如果存在最優的超平面,那麼則會是完全可以分類數據 B)軟邊際分類器將分離數據

C)以上都不是

5)硬邊緣是什麼意思?

A)SVM允許分類中的誤差很小 B)SVM允許分類中的誤差很大 C)以上都不是

6)訓練支持向量機的最小時間複雜度是O(n2)。根據這一事實,什麼尺寸的數據集不是最適合SVM的?

A)大型數據集 B)小型數據集 C)中型數據集 D)大小無關緊要

7)支持向量機的有效性取決於:

A)內核的選擇 B)內核的參數 C)軟邊距的參數C D)以上所有

8)支持向量是最接近決策邊界的數據點。

A)是 B)否

9)支持向量機在以下什麼情況中的效果最差:

A)數據是線性可分的 B)數據乾淨並且可以使用 C)數據有噪音且包含重疊點

10)假設在支持向量機中使用高Gamma值並且使用RBF內核。這意味著什麼?

A)模型考慮甚至遠離超平面的點進行建模 B)模型只考慮超平面附近的點進行建模 C)模型不會受到點距離超平面的影響並進行建模 D)沒有以上

11)支持向量機中的代價參數表示:

A)要進行的交叉驗證的數量 B)要使用的內核 C)模型的分類錯誤和簡單性之間的權衡 D)以上都不是

12)

假設你正在基於數據X進行構建支持向量機模型。數據X可能容易出錯,這意味著你不應該過多地信任任何特定的數據點。假如現在你想建立一個支持向量機模型,它的二次核函數為2次多項式,它使用鬆弛變量C作為它的超參數之一。基於此,請給出以下問題的答案。

當你使用非常大的C值(C->無窮大)時會發生什麼?

注意:對於小C,也可以正確地對所有數據點進行分類

A)對於給定的超參數C,我們仍然可以正確的對數據進行分類 B)對於給定的超參數C,我們不能對數據進行正確的分類 C)不好說 D)以上都不是

13)當使用非常小的C值(C~0)會發生什麼?

A)將會發生分類錯誤 B)數據將被正確的分類 C)不好說 D)以上都不是

14)如果我正在使用我的數據集的所有特徵,並且我在訓練集上達到100%的準確率,但在驗證集上卻只達到約70%,我應該注意什麼?

A)欠擬合 B)沒什麼注意的,模型是非常完美的 C)過度擬合

15)以下哪項是支持向量機在現實世界中的實際應用?

A)文本和超文本分類 B)圖像分類 C)新聞文章的聚類 D)以上所有

問題背景:16 - 18

假設你在訓練支持向量機後訓練了一個具有線性決策邊界的支持向量機,你正確的發現了你的支持向量機的模型還不合適。

16)下面選項中哪一個是你更能考慮進行迭代支持向量機的?

A)增加你的數據點 B)減少你的數據點 C)嘗試計算更多的變量 D)嘗試減少變量

17)假設你在前一個問題中給出了正確的答案。你認為實際上會發生什麼?

1.我們正在降低偏差 2.我們正在降低方差 3.我們正在增加偏差 4.我們正在增加方差

A)1和2 B)2和3 C)1和4 D)2和4

18)在上面的問題中,假設你想要更改其中一個(支持向量機)超參數,以便效果與之前的問題相同,也就是模型不適合?

A)我們將增加參數C B)我們將減小參數C C)C中的變化不起作用 D)這些都不是

19)在支持向量機中使用高斯核函數之前,我們通常使用特徵歸一化。那麼什麼是真正的特徵歸一化?

我們進行特徵歸一化時,以便新特徵佔主導地位有時,對於分類變量,特徵歸一化是不可行的當我們在支持向量機中使用高斯核函數時,特徵歸一化總是有幫助的A)1 B)1和2 C)1和3 D)2和3

問題背景:20-22

假設你正在處理4分類問題,並且你希望在數據上訓練支持向量機模型,因為你正在使用One-vs-all方法。現在回答以下問題

20)在這種情況下我們需要訓練支持向量機模型多少次

A)1 B)2 C)3 D)4

21)假設你的數據中具有相同的類分布。現在,比如說在一對一訓練中進行1次訓練,支持向量機模型需要10秒鐘。那麼端到端訓練一對一的方法需要多少秒?

A)20 B)40 C)60 D)80

22)假設你的問題現在已經發生了改變。現在,數據只有2個類。在這種情況下,你認為我們需要訓練支持向量機多少次?

A)1 B)2 C)3 D)4

問題背景:23 - 24

假設你使用的支持向量機的線性核函數為2次多項式,現在認為你已將其應用於數據上並發現它完全符合數據,這意味著,訓練和測試精度為100%。

23)現在,假設你增加了這個內核的複雜度(或者說多項式的階數)。你認為會發生什麼?

A)增加複雜性將使數據過度擬合 B)增加複雜性將使數據不適應模型 C)由於你的模型已經100%準確,因此不會發生任何事情 D)以上都不是

24)在上一個問題中,在增加複雜性之後,你發現訓練精度仍然是100%。你認為這背後的原因是什麼?

由於數據是固定的,我們擬合更多的多項式項或參數,因此算法開始記憶數據中的所有內容由於數據是固定的,SVM不需要在大的假設空間中進行搜索A)1 B)2 C)1和2 D)這些都不是

25)支持向量機中的kernel是什麼?

kernel是將低維數據映射到高維空間這是一個相似函數A)1 B)2 C)1和2 D)這些都不是

答案與講解

1)正確答案:A

這三個例子的位置使得刪除它們中的任何一個都會在約束中引入鬆弛效果。因此決策邊界將完全改變。

2)正確答案:B

從數據另一方面來說,數據中的其餘點不會對決策邊界產生太大影響。

3)正確答案:B

統計中的泛化誤差通常是樣本外誤差,它是用來衡量模型預測先見未知的數據值的準確性。

4)正確答案:A

在如此高水平的誤差分類懲罰水平上,軟邊際將不會存在,因為沒有錯誤的餘地。

5)正確答案:A

硬邊界意味著SVM在分類方面非常嚴格,並且試圖在訓練集中完美的完成分類,從而導致過度擬合。

6)正確答案:A

分類邊界清晰的數據集與支持向量機的分類效果最好

7)正確答案:D

支持向量機的有效性取決於你如何選擇上面提到的三個基本需求,從而最大化你的效率,減少誤差和過度擬合。

8)正確答案:A

它們是最接近超平面的點,也是最難分類的點。它們還對決策邊界的位置有直接影響。

9)正確答案:C

當數據具有噪聲和重疊點時,如何在不分類的情況下畫出清晰的超平面是一個很大的問題。

10)正確答案:B

SVM調整中的gamma參數表示超平面附近的或遠離超平面的點的影響

對於較低的gamma值,模型將被過於約束並包括訓練數據集中的所有的點,而不會真正的捕獲形狀。

對於更高的gamma值,模型將很好地捕獲數據集的形狀。

11)正確答案:C

代價參數決定了支持向量機被允許在多大程度上「彎曲」數據。對於低的代價參數,你的目標是一個光滑平穩的超平面,對於更高的代價,你的目標是正確地分類更多的點。它也簡稱為分類錯誤的代價。

12)正確答案:A

對於較大的C值,錯誤分類的點的代價非常高,因此決策邊界將儘可能完美地分離數據。

13)正確答案:A

該分類器可以最大化的提高大多數點之間的邊距,同時會對少數點進行錯誤的分類,因為代價是非常低的。

14)正確答案:C

如果我們非常容易就達到了100%的訓練準確度,那麼我們就需要檢查來確認我們是否過度擬合了數據。

15)正確答案:D

支持向量機是高度通用的模型,可用於幾乎所有現實世界的問題,從回歸到聚類和手寫識別。

16)正確答案:C

這裡最好的選擇是為模型創建嘗試更多的變量。

17)正確答案:C

更好的模型將降低偏差並增加方差

18)正確答案:A

增加C參數在這裡是正確的,因為它將確保模型的規範化

19)正確答案:B

表述一和二是正確的。

20)正確答案:D

對於一個4分類問題,如果使用one-vs-all方法,則必須至少訓練SVM 4次。

21)正確答案:B

需要10×4 = 40秒

22)正確答案:A

僅訓練一次SVM就可以得到合適的結果

23)正確答案:A

增加數據的複雜性會使算法過度擬合數據。

24)正確答案:C

兩個給定的陳述都是正確的。

25)正確答案:C

兩個給定的陳述都是正確的。

結果檢查

是不是已經對完答案,已經算出自己的分數了呢,以下是參與者得分的總體分布,看一下自己的水平在那個位置吧:

在這個圖表中,列表示的得分的人數,行表示獲得的分數,全部答對的人只有1位,相信看完自己的分數後,你應該對自己的水平有了一定的了解,也明白自己對於支持向量機的哪些知識還有些不足,這樣我們可以更好的去學習。

25 Questions to test a Data Scientist on Support Vector Machines

相關焦點

  • 支持向量機(SVM)算法總結
    但很多算法工程師以外的人對這一算法了解不多。今天我們就聊一聊支持向量機算法。要理解svm我們需要先理解什麼是間隔最大化,首先從簡單的線性二分類開始開始說起。要想對不用的樣本空間分開來,如下如所示,需要找出一條線將不同分類的樣本隔離開。
  • 機器學習算法入門之「支持向量機」
    在之前的文章中,我們已經介紹過兩個分類算法,一個是KNN算法,一個是邏輯回歸算法。其中,KNN算法的分類依據是距離,邏輯回歸算法的分類依據是概率。本文要介紹的支持向量機,也是在分類問題中被廣泛應用的一種算法,先來看一下它的定義。
  • 機器學習的金融應用第五講:懲罰回歸算法與支持向量機
    然後,我們將引入支持向量機(SVM)、k近鄰(KNN)和分類回歸樹(CART)算法。在接下來的討論中,假設我們對一個目標變量Y和n個特徵值X1,…Xn,我們可以構建X(Xi的向量)和Y之間的關係(回歸或分類)。
  • 支持向量機:SMO算法剖析
    本文力求簡化SMO的算法思想,畢竟自己理解有限,無奈還是要拿一堆公式推來推去,但是靜下心看完本篇並隨手推導,你會迎刃而解的。推薦參看SMO原文中的偽代碼。,αN),其他參數均為已知,有多種算法可以對上述問題求解,但是算法複雜度均很大。但1998年,由Platt提出的序列最小最優化算法(SMO)可以高效的求解上述SVM問題,它把原始求解N個參數二次規劃問題分解成很多個子二次規劃問題分別求解,每個子問題只需要求解2個參數,方法類似於坐標上升,節省時間成本和降低了內存需求。每次啟發式選擇兩個變量進行優化,不斷循環,直到達到函數最優值。
  • 一個簡單的案例帶你了解支持向量機算法(Python代碼)
    你有各種各樣的工具,但你應該學會在正確的時間和場合使用它們。作為一個類比,我們可以將「回歸」想像成一把能夠有效切割數據的劍,但它無法處理高度複雜的數據。相反,「支持向量機」就像一把鋒利的刀—它適用於較小的數據集,但它可以再這些小的數據集上面構建更加強大的模型。現在,我希望你現在已經掌握了隨機森林,樸素貝葉斯算法和模型融合的算法基礎。
  • 支持向量機(SVM)原理剖析
    這顯示出支持向量機的一個重要性質:「訓練完成後,大部分的訓練樣本都不需要保留,最終模型僅與支持向量有關」。綜合以上討論,我們可以得到「線性支持向量機」學習算法如下:「輸入」:訓練數據集 對於輸入空間中的非線性分類問題,可以通過非線性變換將它轉化為某個維特徵空間中的線性分類問題,在高維特徵空間中學習線性支持向量機。
  • 經典算法解讀:一文看懂支持向量機以及推導
    還有一個更加強大的算法廣泛的應用於工業界和學術界,它被稱為支持向量機(Support Vector Machine)。與邏輯回歸和神經網絡相比,支持向量機,或者簡稱SVM,在學習複雜的非線性方程時提供了一種更為清晰,更加強大的方式。因此,在接下來的視頻中,我會探討這一算法。在稍後的課程中,我也會對監督學習算法進行簡要的總結。
  • 從零推導支持向量機 (SVM) | 雷鋒網
    為了能使優化問題繼續保持為二次規劃問題,我們需要引入一個取值為連續值的變量,刻畫樣本滿足約束的程度。我們引入鬆弛變量 (slack variable) ξi,用於度量樣本違背約束的程度。當樣本違背約束的程度越大,鬆弛變量值越大。即,
  • 在深度學習盛行的時代,你仍需知道支持向量機這6大優勢
    20世紀90年代中期,Vapnik和他的AT&T Bell實驗室小組提出了支持向量機算法,該算法以統計學習理論為基礎,採用結構風險最小化準則設計學習機器,較好地解決了非線性、高維數、局部極小點等問題,並具有較好的推廣能力。
  • 理解支持向量機
    支持向量機是機器學習中最不易理解的算法之一,它對數學有較高的要求。之前SIGAI微信公眾號已經發過「用一張圖理解SVM脈絡」,「理解SVM的核函數和參數」這兩篇文章,今天重啟此話題,對SVM的推導做一個清晰而透徹的介紹,幫助大家真正理解SVM,掌握其精髓。市面上有不少講解支持向量機的文章和書籍,但真正結構清晰、觸達精髓的講解非常少見。
  • 【典型算法】SVM算法
    小編說:機器學習算法眾多,全部掌握,一則不可能,二則沒必要。如何靈活掌握和應用機器學習算法呢?
  • 支持向量機
    但是在支持向量機這裡,把參數提到前面,用參數 C 作為 A 的參數,以 A 作為權重。支持向量機的代價函數為:有別於邏輯回歸假設函數輸出的是概率,支持向量機它是直接預測 y 的值是0還是1。也就是說其假設函數是這樣子的:二.
  • 【機器學習基礎】數學推導+純Python實現機器學習算法8-9:線性可分支持向量機和線性支持向量機
    但實際上在神經網絡興起之前,基於感知機的另一種模型——支持向量機,同樣可以解決非線性問題。     支持向量機一般來說有三種任務類型:線性可分情況,近似線性可分情況以及線性不可分情況。針對這三種分別線性可分支持向量機、線性支持向量機和線性不可分支持向量機。筆者將分三次對這三種支持向量機進行介紹。
  • 一文看懂支持向量機,你懂我is吧?
    1.1 簡介及發展歷程支持向量機,英文全稱是Support Vector Machines,縮寫為SVM,下文都將以該縮寫代替。SVM 起源於上個世紀六十年代,是機器學習中用於分類的一種算法。它大致經歷了以下四個階段:•1 線性分類器(Linear Classifier)•2 線性支持向量機(LSVM)•3 線性不可分問題改進(引入軟間隔,Soft Margin)•4 非線性支持向量機(核函數方法,kernal method)其中4非線性支持向量機才是現代意義上的支持向量機,因為它引入 了核函數方法,能夠將非線性問題轉化到高維空間(線性化),使得支持向量機能夠處理非線性問題
  • AI產品經理必懂算法:支持向量機SVM
    作為AI產品經理必懂算法的第二篇,來了解一下支持向量機SVM算法,英文全稱是「Support Vector Machine」。在機器學習中,SVM是監督學習下的二分類算法,可用於分類和回歸任務。如上圖所示,即三維樣本數據被二維平面劃分,在二維空間中的不可分問題也被轉換成了三維線性可分問題,可以被支持向量機處理。基於這個思想,SVM採用核函數來實現低維空間到高維空間的映射,從而在一定程度上解決了低維空間線性不可分的問題。下面我們簡述一下關於核函數的定義,以利於進一步理解他的作用。
  • SVM | 支持向量機原理講解(一)
    深度學習(2012)出現之前,如果不考慮集成學習的算法,不考慮特定的訓練數據集,在分類算法中的表現SVM說是排第一估計是沒有什麼異議的。 SVM本來是一種線性分類和非線性分類都支持的二元分類算法,但經過演變,現在也支持多分類問題,也能應用到了回歸問題。本篇文章重點講解線性支持向量機的模型原理和目標函數優化原理。
  • 支持向量機(SVM)說明及示例
    支持向量機(SVM)可以解決支持分類和回歸問題,這兩個問題的解決都是通過構造函數h來實現的,該函數將輸入向量x與輸出y進行匹配:y = h(x )優缺點優點:該算法可以基於內核對線性和非線性問題的極限進行建模。它對於「過擬合」也非常可行,尤其是在大空間中。
  • 支持向量機超參數的可視化解釋
    作者 | Soner Yıldırım 編譯 | VK 來源 | Towards Datas Science支持向量機(SVM)是一種應用廣泛的有監督機器學習算法。在這篇文章中,我們將深入探討支持向量機的兩個重要超參數C和gamma,並通過可視化解釋它們的影響。所以我假設你對算法有一個基本的理解,並把重點放在這些超參數上。支持向量機用一個決策邊界來分離屬於不同類別的數據點。
  • 機器學習算法筆記-SVM支持向量機簡介及JAVA小實現
    前言最近開始學習一些機器學習裡的主要算法,SVM支持向量機是我目前產品裡用到的核心算法,想在這裡把我學到的一些東西記錄下來。
  • 關於支持向量機(SVM)的原理,你了解多少?(萬字長文 速收)
    其實Coursera的課堂上Andrew Ng講過支持向量機,但顯然他沒有把這作為重點,加上Ng講支持向量機的方法我一時半會難以完全消化,所以聽的也是一知半解。真正開始了解支持向量機就是看的這篇「三重境界」,之後才對這個算法有了大概的概念,以至如何去使用,再到其中的原理為何,再到支持向量機的證明等。總之,這篇文章開啟了我長達數月的研究支持向量機階段,直到今日。」