機器學習能力自測題—看看你的機器學習知識能打幾分?不容錯過的機器學習試題與術語

一直苦於沒有辦法自測一下機器學習知識掌握程度,最近看到一篇Ankit Gupta寫的博客Solutions for Skilltest Machine Learning : Revealed。有40題機器學習自測題,馬上可以看看你的機器學習知識能打幾分?順便還能查漏補缺相關術語,以及SVM, 隱馬爾科夫, 特徵選擇, 神經網絡, 線性迴歸等衆多知識點.

以下是試題, 附答案:

Q1:在一個n維的空間中, 最好的檢測outlier(離羣點)的方法是:

A. 作正態分佈概率圖

B. 作盒形圖

C. 馬氏距離

D. 作散點圖

答案:C

馬氏距離是基於卡方分佈的,度量多元outlier離羣點的統計方法。更多請詳見:這裏和”各種距離“。

 

Q2:對數機率迴歸(logistics regression)和一般迴歸分析有什麼區別?:

A. 對數機率迴歸是設計用來預測事件可能性的

B. 對數機率迴歸可以用來度量模型擬合程度

C. 對數機率迴歸可以用來估計迴歸係數

D. 以上所有

答案:D

A: 這個在我們第八期#8提到過,對數機率迴歸其實是設計用來解決分類問題的

B: 對數機率迴歸可以用來檢驗模型對數據的擬合度

C: 雖然對數機率迴歸是用來解決分類問題的,但是模型建立好後,就可以根據獨立的特徵,估計相關的迴歸係數。就我認爲,這只是估計迴歸係數,不能直接用來做迴歸模型。

 

Q3:bootstrap數據是什麼意思?(提示:考“bootstrap”和“boosting”區別)

A. 有放回地從總共M個特徵中抽樣m個特徵

B. 無放回地從總共M個特徵中抽樣m個特徵

C. 有放回地從總共N個樣本中抽樣n個樣本

D. 無放回地從總共N個樣本中抽樣n個樣本

答案:C

需要集成學習基礎知識,詳情請見:bootstrap, boosting, bagging 幾種方法的聯繫

 

Q4:“過擬合”只在監督學習中出現,在非監督學習中,沒有“過擬合”,這是:

A. 對的

B. 錯的

答案:B

我們可以評估無監督學習方法通過無監督學習的指標,如:我們可以評估聚類模型通過調整蘭德係數(adjusted rand score

 

Q5:對於k折交叉驗證, 以下對k的說法正確的是 :

A. k越大, 不一定越好, 選擇大的k會加大評估時間

B. 選擇更大的k, 就會有更小的bias (因爲訓練集更加接近總數據集)

C. 在選擇k時, 要最小化數據集之間的方差

D. 以上所有

答案:D

k越大, bias越小, 訓練時間越長. 在訓練時, 也要考慮數據集間方差差別不大的原則. 比如, 對於二類分類問題, 使用2-折交叉驗證, 如果測試集裏的數據都是A類的, 而訓練集中數據都是B類的, 顯然, 測試效果會很差.

如果不明白bias和variance的概念, 務必參考下面鏈接:

 

Q6:迴歸模型中存在多重共線性, 你如何解決這個問題?

A. 去除這兩個共線性變量

B. 我們可以先去除一個共線性變量

C. 計算VIF(方差膨脹因子), 採取相應措施

D. 爲了避免損失信息, 我們可以使用一些正則化方法, 比如, 嶺迴歸和lasso迴歸.

以下哪些是對的:

A. 1

B. 2

C. 2和3

D. 2, 3和4

答案: D

解決多重公線性, 可以使用相關矩陣去去除相關性高於75%的變量 (有主觀成分). 也可以VIF, 如果VIF值<=4說明相關性不是很高, VIF值>=10說明相關性較高.

我們也可以用 嶺迴歸和lasso迴歸的帶有懲罰正則項的方法. 我們也可以在一些變量上加隨機噪聲, 使得變量之間變得不同, 但是這個方法要小心使用, 可能會影響預測效果.

 

Q7:模型的高bias是什麼意思, 我們如何降低它 ?

A. 在特徵空間中減少特徵

B. 在特徵空間中增加特徵

C. 增加數據點

D. B和C

E. 以上所有

答案: B

bias太高說明模型太簡單了, 數據維數不夠, 無法準確預測數據, 所以, 升維吧 !

如果不明白bias和variance的概念, 務必參考下面鏈接:

 

Q8:訓練決策樹模型, 屬性節點的分裂, 具有最大信息增益的圖是下圖的哪一個: 

q8_image123

A. Outlook

B. Humidity

C. Windy

D. Temperature

答案: A

信息增益, 增加平均子集純度, 詳細研究, 請戳下面鏈接:

 

Q9:對於信息增益, 決策樹分裂節點, 下面說法正確的是: 

A. 純度高的節點需要更多的信息去區分

B. 信息增益可以用”1比特-熵”獲得

C. 如果選擇一個屬性具有許多歸類值, 那麼這個信息增益是有偏差的

A. 1

B. 2

C.2和3

D. 所有以上

答案: C

詳細研究, 請戳下面鏈接:

 

Q10:如果SVM模型欠擬合, 以下方法哪些可以改進模型 : 

A. 增大懲罰參數C的值

B. 減小懲罰參數C的值

C. 減小核係數(gamma參數)

答案: A

如果SVM模型欠擬合, 我們可以調高參數C的值, 使得模型複雜度上升.

LibSVM中,SVM的目標函數是:

1de6d986ed0b17cd90615544918461ec_r

而, gamma參數是你選擇徑向基函數作爲kernel後,該函數自帶的一個參數.隱含地決定了數據映射到新的特徵空間後的分佈.
gamma參數與C參數無關. gamma參數越高, 模型越複雜.
 
 

Q11:下圖是同一個SVM模型, 但是使用了不同的徑向基核函數的gamma參數, 依次是g1, g2, g3 , 下面大小比較正確的是 : 

q11_image2

A. g1 > g2 > g3

B. g1 = g2 = g3

C. g1 < g2 < g3

D. g1 >= g2 >= g3

E. g1 <= g2 <= g3

答案: C

參考Q10題

 

Q12:假設我們要解決一個二類分類問題, 我們已經建立好了模型, 輸出是0或1, 初始時設閾值爲0.5, 超過0.5概率估計, 就判別爲1, 否則就判別爲0 ; 如果我們現在用另一個大於0.5的閾值,  那麼現在關於模型說法, 正確的是 : 

A. 模型分類的召回率會降低或不變

B. 模型分類的召回率會升高

C. 模型分類準確率會升高或不變

D. 模型分類準確率會降低

A. 1

B. 2

C.1和3

D. 2和4

E. 以上都不是

答案: C

這篇文章講述了閾值對準確率和召回率影響 :

Confidence Splitting Criterions Can Improve Precision And Recall in Random Forest Classifiers

 

Q13:”點擊率問題”是這樣一個預測問題, 99%的人是不會點擊的, 而1%的人是會點擊進去的, 所以這是一個非常不平衡的數據集. 假設, 現在我們已經建了一個模型來分類, 而且有了99%的預測準確率, 我們可以下的結論是 : 

A. 模型預測準確率已經很高了, 我們不需要做什麼了

B. 模型預測準確率不高, 我們需要做點什麼改進模型

C. 無法下結論

D. 以上都不對

答案: B

99%的預測準確率可能說明, 你預測的沒有點進去的人很準確 (因爲有99%的人是不會點進去的, 這很好預測). 不能說明你的模型對點進去的人預測準確, 所以, 對於這樣的非平衡數據集, 我們要把注意力放在小部分的數據上, 即那些點擊進去的人.

詳細可以參考這篇文章: article

 

Q14:使用k=1的knn算法, 下圖二類分類問題, “+” 和 “o” 分別代表兩個類, 那麼, 用僅拿出一個測試樣本的交叉驗證方法, 交叉驗證的錯誤率是多少 : 

14-2-768x608

A. 0%

B. 100%

C.  0% 到  100%

D. 以上都不是

答案: B

knn算法就是, 在樣本週圍看k個樣本, 其中大多數樣本的分類是A類, 我們就把這個樣本分成A類. 顯然, k=1 的knn在上圖不是一個好選擇, 分類的錯誤率始終是100%

 

Q15:我們想在大數據集上訓練決策樹, 爲了使用較少時間, 我們可以 : 

A.  增加樹的深度

B.  增加學習率 (learning rate)

C.  減少樹的深度

D. 減少樹的數量

答案: C

  • 增加樹的深度, 會導致所有節點不斷分裂, 直到葉子節點是純的爲止. 所以, 增加深度, 會延長訓練時間.
  • 決策樹沒有學習率參數可以調. (不像集成學習和其它有步長的學習方法)
  • 決策樹只有一棵樹, 不是隨機森林.
 

Q16:對於神經網絡的說法, 下面正確的是 : 

1. 增加神經網絡層數, 可能會增加測試數據集的分類錯誤率
2. 減少神經網絡層數, 總是能減小測試數據集的分類錯誤率
3. 增加神經網絡層數, 總是能減小訓練數據集的分類錯誤率

A. 1

B. 1 和 3

C. 1 和 2

D. 2

答案: A

深度神經網絡的成功, 已經證明, 增加神經網絡層數, 可以增加模型範化能力, 即, 訓練數據集和測試數據集都表現得更好. 但是, 在這篇文獻中, 作者提到, 更多的層數, 也不一定能保證有更好的表現. 所以, 不能絕對地說層數多的好壞, 只能選A

 

Q17:假如我們使用非線性可分的SVM目標函數作爲最優化對象, 我們怎麼保證模型線性可分 : 

A. 設C=1

B. 設C=0

C. 設C=無窮大

D. 以上都不對

答案: C

C無窮大保證了所有的線性不可分都是可以忍受的.

 

Q18:訓練完SVM模型後, 不是支持向量的那些樣本我們可以丟掉, 也可以繼續分類: 

A. 正確

B. 錯誤

答案: A

SVM模型中, 真正影響決策邊界的是支持向量

 

Q19:以下哪些算法, 可以用神經網絡去構造: 

1. KNN
2. 線性迴歸
3. 對數機率迴歸

A. 1和 2

B. 2 和 3

C. 1, 2 和 3

D. 以上都不是

答案: B

1. KNN算法不需要訓練參數, 而所有神經網絡都需要訓練參數, 因此神經網絡幫不上忙
2. 最簡單的神經網絡, 感知器, 其實就是線性迴歸的訓練
3. 我們可以用一層的神經網絡構造對數機率迴歸

 

Q20:請選擇下面可以應用隱馬爾科夫(HMM)模型的選項: 

A. 基因序列數據集

B. 電影瀏覽數據集

C. 股票市場數據集

D. 所有以上

答案: D

只要是和時間序列問題有關的 , 都可以試試HMM

 

Q21:我們建立一個5000個特徵, 100萬數據的機器學習模型. 我們怎麼有效地應對這樣的大數據訓練 : 

A. 我們隨機抽取一些樣本, 在這些少量樣本之上訓練

B. 我們可以試用在線機器學習算法

C. 我們應用PCA算法降維, 減少特徵數

D. B 和 C

E. A 和 B

F. 以上所有

答案: F

Q22:我們想要減少數據集中的特徵數, 即降維. 選擇以下適合的方案 :

1. 使用前向特徵選擇方法
2. 使用後向特徵排除方法
3. 我們先把所有特徵都使用, 去訓練一個模型, 得到測試集上的表現. 然後我們去掉一個特徵, 再去訓練, 用交叉驗證看看測試集上的表現. 如果表現比原來還要好, 我們可以去除這個特徵.
4. 查看相關性表, 去除相關性最高的一些特徵

A. 1 和 2

B. 2, 3和4

C. 1, 2和4

D. All

答案: D

  1. 前向特徵選擇方法和後向特徵排除方法是我們特徵選擇的常用方法
  2. 如果前向特徵選擇方法和後向特徵排除方法在大數據上不適用, 可以用這裏第三種方法.
  3. 用相關性的度量去刪除多餘特徵, 也是一個好方法

所有D是正確的

 

Q23:對於 隨機森林和GradientBoosting Trees, 下面說法正確的是:

  1. 在隨機森林的單個樹中, 樹和樹之間是有依賴的, 而GradientBoosting Trees中的單個樹之間是沒有依賴的.
  2. 這兩個模型都使用隨機特徵子集, 來生成許多單個的樹.
  3. 我們可以並行地生成GradientBoosting Trees單個樹, 因爲它們之間是沒有依賴的, GradientBoosting Trees訓練模型的表現總是比隨機森林好

A. 2

B. 1 and 2

C. 1, 3 and 4

D. 2 and 4

答案: A

  1. 隨機森林是基於bagging的, 而Gradient Boosting trees是基於boosting的, 所有說反了,在隨機森林的單個樹中, 樹和樹之間是沒有依賴的, 而GradientBoosting Trees中的單個樹之間是有依賴關係.
  2. 這兩個模型都使用隨機特徵子集, 來生成許多單個的樹.

所有A是正確的

 

Q24:對於PCA(主成分分析)轉化過的特徵 ,  樸素貝葉斯的”不依賴假設”總是成立, 因爲所有主要成分是正交的, 這個說法是 :

A. 正確的

B. 錯誤的

答案: B.

這個說法是錯誤的, 首先, “不依賴”和”不相關”是兩回事, 其次, 轉化過的特徵, 也可能是相關的.

 

Q25:對於PCA說法正確的是 :

1. 我們必須在使用PCA前規範化數據
2. 我們應該選擇使得模型有最大variance的主成分
3. 我們應該選擇使得模型有最小variance的主成分
4. 我們可以使用PCA在低維度上做數據可視化

A. 1, 2 and 4

B. 2 and 4

C. 3 and 4

D. 1 and 3

E. 1, 3 and 4

答案: A

  • PCA對數據尺度很敏感, 打個比方, 如果單位是從km變爲cm, 這樣的數據尺度對PCA最後的結果可能很有影響(從不怎麼重要的成分變爲很重要的成分).
  • 我們總是應該選擇使得模型有最大variance的主成分
  • 有時在低維度上左圖是需要PCA的降維幫助的

 

Q26:對於下圖, 最好的主成分選擇是多少 ? :

q26_image4

A. 7

B. 30

C. 35

D. Can’t Say

答案: B

  • 主成分選擇使variance越大越好, 在這個前提下, 主成分越少越好。
 

Q27:數據科學家可能會同時使用多個算法(模型)進行預測, 並且最後把這些算法的結果集成起來進行最後的預測(集成學習),以下對集成學習說法正確的是 :

A. 單個模型之間有高相關性

B. 單個模型之間有低相關性

C. 在集成學習中使用“平均權重”而不是“投票”會比較好

D. 單個模型都是用的一個算法

答案: B

  • Kaggle Ensemble Guide
  • 5 Easy questions on Ensemble Modeling everyone should know

  •  

    Q28:在有監督學習中, 我們如何使用聚類方法? :

    A. 我們可以先創建聚類類別, 然後在每個類別上用監督學習分別進行學習

    B. 我們可以使用聚類“類別id”作爲一個新的特徵項, 然後再用監督學習分別進行學習

    C. 在進行監督學習之前, 我們不能新建聚類類別

    D. 我們不可以使用聚類“類別id”作爲一個新的特徵項, 然後再用監督學習分別進行學習

    A. 2 和 4

    B. 1 和 2

    C. 3 和 4

    D. 1 和 3

    答案: B

    我們可以爲每個聚類構建不同的模型, 提高預測準確率。

    “類別id”作爲一個特徵項去訓練, 可以有效地總結了數據特徵。

    所以B是正確的

     

    Q29:以下說法正確的是 :

    A. 一個機器學習模型,如果有較高準確率,總是說明這個分類器是好的

    B. 如果增加模型複雜度, 那麼模型的測試錯誤率總是會降低

    C. 如果增加模型複雜度, 那麼模型的訓練錯誤率總是會降低

    D. 我們不可以使用聚類“類別id”作爲一個新的特徵項, 然後再用監督學習分別進行學習

    A. 1

    B. 2

    C. 3

    D. 1 and 3

    答案: C

    考的是過擬合和欠擬合的問題。

     

    Q30:對應GradientBoosting tree算法, 以下說法正確的是 :

    A. 當增加最小樣本分裂個數,我們可以抵制過擬合

    B. 當增加最小樣本分裂個數,會導致過擬合

    C. 當我們減少訓練單個學習器的樣本個數,我們可以降低variance

    D. 當我們減少訓練單個學習器的樣本個數,我們可以降低bias

    A. 2 和 4

    B. 2 和 3

    C. 1 和 3

    D. 1 和 4

    答案: C

    • 最小樣本分裂個數是用來控制“過擬合”參數。太高的值會導致“欠擬合”,這個參數應該用交叉驗證來調節。
    • 第二點是靠bias和variance概念的。

     

    Q31:以下哪個圖是KNN算法的訓練邊界 :

    q31_image5

    A) B

    B) A

    C) D

    D) C

    E) 都不是

    答案: B

    KNN算法肯定不是線性的邊界, 所以直的邊界就不用考慮了。另外這個算法是看周圍最近的k個樣本的分類用以確定分類,所以邊界一定是坑坑窪窪的。

     

    Q32:如果一個訓練好的模型在測試集上有100%的準確率, 這是不是意味着在一個新的數據集上,也會有同樣好的表現? :

    A. 是的,這說明這個模型的範化能力已經足以支持新的數據集合了

    B. 不對,依然後其他因素模型沒有考慮到,比如噪音數據

    答案: B
    沒有一個模型是可以總是適應新數據的。我們不可能可到100%準確率。

    Q33:下面的交叉驗證方法 :

    i. 有放回的Bootstrap方法

    ii. 留一個測試樣本的交叉驗證

    iii. 5折交叉驗證

    iv. 重複兩次的5折教程驗證

    當樣本是1000時,下面執行時間的順序,正確的是:

    A. i > ii > iii > iv

    B. ii > iv > iii > i

    C. iv > i > ii > iii

    D. ii > iii > iv > i

    答案: B

    • Boostrap方法是傳統地隨機抽樣,驗證一次的驗證方法,只需要訓練1次模型,所以時間最少。
    • 留一個測試樣本的交叉驗證,需要n次訓練過程(n是樣本個數),這裏,要訓練1000個模型。
    • 5折交叉驗證需要訓練5個模型。
    • 重複2次的5折交叉驗證,需要訓練10個模型。

    所有B是正確的

     

    Q34. Removed

     

    Q35:變量選擇是用來選擇最好的判別器子集, 如果要考慮模型效率,我們應該做哪些變量選擇的考慮? :

    1. 多個變量其實有相同的用處
    2. 變量對於模型的解釋有多大作用
    3. 特徵攜帶的信息
    4. 交叉驗證

    A. 1 和 4

    B. 1, 2 和 3

    C. 1,3 和 4

    D. 以上所有

    答案: C

    注意, 這題的題眼是考慮模型效率,所以不要考慮選項2.

     

    Q36:對於線性迴歸模型,包括附加變量在內,以下的可能正確的是 :

    1. R-Squared 和 Adjusted R-squared都是遞增的
    2. R-Squared 是常量的,Adjusted R-squared是遞增的
    3. R-Squared 是遞減的, Adjusted R-squared 也是遞減的
    4. R-Squared 是遞減的, Adjusted R-squared是遞增的

    A. 1 和 2

    B. 1 和 3

    C. 2 和 4

    D. 以上都不是

    答案: D

    R-squared不能決定係數估計和預測偏差,這就是爲什麼我們要估計殘差圖。但是,R-squared有R-squared 和 predicted R-squared 所沒有的問題。
    每次你爲模型加入預測器,R-squared遞增或不變.

    詳細請看這個鏈接:discussion.

     

    Q37:對於下面三個模型的訓練情況, 下面說法正確的是 :

    q37_image6

    1. 第一張圖的訓練錯誤與其餘兩張圖相比,是最大的
    2. 最後一張圖的訓練效果最好,因爲訓練錯誤最小
    3. 第二張圖比第一和第三張圖魯棒性更強,是三個裏面表現最好的模型
    4. 第三張圖相對前兩張圖過擬合了
    5. 三個圖表現一樣,因爲我們還沒有測試數據集

    A. 1 和 3

    B. 1 和 3

    C. 1, 3 和 4

    D. 5

    答案: C

     

    Q38:對於線性迴歸,我們應該有以下哪些假設? :

    1. 找到利羣點很重要, 因爲線性迴歸對利羣點很敏感
    2. 線性迴歸要求所有變量必須符合正態分佈
    3. 線性迴歸假設數據沒有多重線性相關性

    A. 1 和 2

    B. 2 和 3

    C. 1,2 和 3

    D. 以上都不是

    答案: D

    • 利羣點要着重考慮, 第一點是對的
    • 不是必須的, 當然, 如果是正態分佈, 訓練效果會更好
    • 有少量的多重線性相關性是可以的, 但是我們要儘量避免

     

    Q39:當我們構造線性模型時, 我們注意變量間的相關性. 在相關矩陣中搜索相關係數時, 如果我們發現3對變量的相關係數是(Var1 和Var2, Var2和Var3, Var3和Var1)是-0.98, 0.45, 1.23 . 我們可以得出什麼結論: 

    1. Var1和Var2是非常相關的
    2. 因爲Var和Var2是非常相關的, 我們可以去除其中一個
    3. Var3和Var1的1.23相關係數是不可能的

    A. 1 and 3

    B. 1 and 2

    C. 1,2 and 3

    D. 1

    答案: C

    • Var1和Var2相關係數是負的, 所以這是多重線性相關, 我們可以考慮去除其中一個.
    • 一般地, 如果相關係數大於0.7或者小於-0.7, 是高相關的
    • 相關性係數範圍應該是 [-1,1]

     

    Q40:如果在一個高度非線性並且複雜的一些變量中, 一個樹模型可能比一般的迴歸模型效果更好. 只是:

    A. 對的

    B. 錯的

    答案: A

     

    翻譯自參考文獻:

    Solutions for Skilltest Machine Learning : Revealed

    本文章屬於“David 9的博客”原創,如需轉載,請聯繫微信david9ml,或郵箱:[email protected]

    發佈了67 篇原創文章 · 獲贊 133 · 訪問量 35萬+
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章