機器學習是一門理論性和實戰性都比較強的技術學科。在應聘機器學習相關工作崗位時,我們常常會遇到各種各樣的機器學習問題和知識點。為了幫助大家對這些知識點進行梳理和理解,以便能夠更好地應對機器學習筆試包括面試。紅色石頭準備在公眾號連載一些機器學習筆試題系列文章,希望能夠對大家有所幫助!
今天,紅色石頭帶大家繼續“死磕”相關筆試題!各個擊破!
Q1. 在 n 維空間中(n > 1),下列哪種方法最適合用來檢測異常值?
A. 正態機率圖
B. 箱形圖
C. 馬氏距離
D. 散點圖
答案:C
解析:正態機率圖(Normal Probability Plot)一般用來檢查一組資料是否服從正態分佈。是實數與正態分佈資料之間函式關係的散點圖。如果這組實數服從正態分佈,正態機率圖將是一條直線。如下圖所示:
箱形圖(Box Plot),是一種用作顯示一組資料分散情況資料的統計圖。因型狀如箱子而得名。如下圖所示:
散點圖(Scatter Plot)是描述離散資料點的空間分佈。
馬氏距離(Mahalonobis distance)多用來計算某樣本點與資料集的距離,優點是具有尺度無關性。馬氏距離的計算公式如下:
其中,μ 是樣本集均值,S 是樣本集協方差矩陣。我們注意到馬氏距離的公式與歐式距離公式只是多了一個協方差矩陣的逆。這也正是馬氏距離的優點之處,它考慮了不同特徵之間的協方差不同,將其進行歸一化,使得距離度量與尺度無關。
舉個簡單的例子來說明,假如 A 的身高體重為(170,60000),B 的身高體重為(170,61000),C 的身高體重是(160,60000),其中身高體重的單位分別是 cm、g。按照常理來說,A 和 B 的體型是比較相近的,但是如果使用歐式距離,計算得到 A 和 C 比較相近。原因在於身高維度的方差較小,而體重維度的方差較大。馬氏距離恰恰消除了各個維度方差不同的影響,把方差歸一化,使得特徵之間的關係更加符合實際情況。
因此,馬氏距離更適合來判斷樣本點與資料集的位置關係,判斷其是否離群。正態機率圖、箱形圖、散點圖都比較直觀,容易判斷出錯。
Q2. 邏輯迴歸與多元迴歸分析有哪些不同之處?
A. 邏輯迴歸用來預測事件發生的機率
B. 邏輯迴歸用來計算擬合優度指數
C. 邏輯迴歸用來對迴歸係數進行估計
D. 以上都是
答案:D
解析:A 選項,邏輯迴歸是用來解決分類問題的,可以用於預測事件發生的機率。
B 選項,一般來說,為了測量真實樣本與模型的擬合程度,可以使用邏輯迴歸來計算擬合優度指數。
C 選項,在擬合邏輯迴歸模型之後,我們還可以根據係數值,來判斷各個獨立特徵與目標輸出的關係(正相關或負相關)。
Q3. 下列關於 bootstrap 說法正確的是?
A. 從總的 M 個特徵中,有放回地抽取 m 個特徵(m < M)
B. 從總的 M 個特徵中,無放回地抽取 m 個特徵(m < M)
C. 從總的 N 個樣本中,有放回地抽取 n 個樣本(n < N)
D. 從總的 N 個樣本中,無放回地抽取 n 個樣本(n < N)
答案:C
解析:bootstrap 的思想是從已有的資料集中模擬出類似但又不完全一樣的資料集。主要是針對沒有足夠資料來訓練多個模型的情況。
bootstrap 的做法是,假設有 N 筆資料 D,先從中選出一個樣本,再放回去,再選擇一個樣本,再放回去,共重複 n 次。這樣我們就得到了一個新的 n 筆資料 D’,這個新的資料集中可能包含原資料集裡的重複樣本點,也可能沒有原資料集裡的某些樣本,D’ 與 D 類似但又不完全相同。值得一提的是,抽取-放回的操作次數不一定非要是 N,次數可以任意設定。例如原始樣本有 10000 個,我們可以抽取-放回 3000 次,得到包含 3000 個樣本的 D’ 也是完全可以的。
Q4. “監督式學習中存在過擬合,而對於非監督式學習來說,沒有過擬合”,這句話是否正確?
A. 正確
B. 錯誤
答案:B
解析:對於非監督式學習,仍然可能存在過擬合。一般來說,評估非監督式學習的指標也有很多,例如使用調整蘭德指數(Adjusted Rand Score)來評估聚類模型。
聚類模型中,假設實際類別資訊為 C,聚類結果為 K,a 表示在 C 與 K 中都是同類別的元素有幾對,b 表示在 C 與 K 中都是不同類別的元素有幾對,則蘭德指數為:
RI 取值範圍為 [0,1],值越大意味著聚類結果與真實情況越吻合。
但是,在聚類結果隨機的情況下,RI 並不為 0。因此,為了解決這一問題,調整蘭德指數(Adjusted Rand Score)被提出,它具有更高的區分度:
ARI 取值範圍為 [−1,1],值越大意味著聚類結果與真實情況越吻合。從廣義的角度來講,ARI 衡量的是兩個資料分佈的吻合程度。
Q5. 關於 k 折交叉驗證,下列說法正確的是?
A. k 值並不是越大越好,k 值過大,會降低運算速度
B. 選擇更大的 k 值,會讓偏差更小,因為 k 值越大,訓練集越接近整個訓練樣本
C. 選擇合適的 k 值,能減小驗方差
D. 以上說法都正確
答案: D
解析:機器學習中,在樣本量不充足的情況下,為了充分利用資料集對演算法效果進行測試,將資料集隨機分為 k 個包,每次將其中一個包作為測試集,剩下 k-1 個包作為訓練集進行訓練。
k 折交叉驗證的的 k 值不能太大,也不能太小。k 值過大,會降低運算速度。若 k 與樣本數量 N 相同,則是留一法(Leave-One-Out)。k 值較大,訓練集越接近整個訓練樣本,有利於減小模型偏差(bias)。一般可以將 k 作為超引數除錯,根據表現選擇合適的 k 值。
k 折交叉驗證能夠有效提高模型的學習能力,類似於增加了訓練樣本數量,使得學習的模型更加穩健,魯棒性更強。選擇合適的 k 值能夠有效避免過擬合。
Q6. 如果迴歸模型中存在多重共線性(multicollinearity),應該如何解決這一問題而不丟失太多資訊(多選)?
A. 剔除所有的共線性變數
B. 剔除共線性變數中的一個
C. 透過計算方差膨脹因子(Variance Inflation Factor,VIF)來檢查共線性程度,並採取相應措施
D. 刪除相關變數可能會有資訊損失,我們可以不刪除相關變數,而使用一些正則化方法來解決多重共線性問題,例如 Ridge 或 Lasso 迴歸。
答案:BCD
解析:如果迴歸模型中存在共線性變數,那麼可以採取相應措施,剔除共線性變數中的一個。為了檢驗多重共線性,我們可以建立一個相關矩陣來識別和去除相關度在 75% 以上的變數(閾值大小可人為設定)。此外,我們可以使用計算方差膨脹因子(VIF)來檢查多重共線性的存在。若 VIF <= 4 則沒有多重共線性,若 VIF>10 值意味著嚴重的多重共線性。此外,我們可以使用容忍度作為多重共線性的指標。
方差膨脹因子(Variance Inflation Factor,VIF):是指解釋變數之間存在多重共線性時的方差與不存在多重共線性時的方差之比。VIF 跟容忍度是倒數關係。詳細介紹可自行查閱統計學資料。
但是,去除相關變數可能導致資訊的丟失。為了保留這些變數,我們可以使用正則化來“懲罰”迴歸模型,如 Ridge 和 Lasso 迴歸。此外,我們可以新增一些隨機噪聲相關變數,使變數變得彼此不同。但是,增加噪聲可能會影響預測精度,因此應該謹慎使用這種方法。
Q7. 評估完模型之後,發現模型存在高偏差(high bias),應該如何解決?
A. 減少模型的特徵數量
B. 增加模型的特徵數量
C. 增加樣本數量
D. 以上說法都正確
答案:B
解析:如果模型存在高偏差(high bias),意味著模型過於簡單。為了使模型更加健壯,我們可以在特徵空間中新增更多的特徵。而新增樣本數量將減少方差。
Q8. 在構建一個決策樹模型時,我們對某個屬性分割節點,下面四張圖中,哪個屬性對應的資訊增益最大?
A. outlook
B. humidity
C. windy
D. temperature
答案:A
解析:李航的《統計學習方法》中,對資訊增益有如下定義:特徵 A 對訓練資料集 D 的資訊增益 g(D,A),定義為集合 D 的經驗熵 H(D) 與特徵 A 給定條件下 D 的經驗條件熵 H(D|A) 之差,即
g(D,A) = H(D) – H(D|A)
這一題,我們先計算經驗熵 H(D):
H(D) = -9/14 * log(9/14) – 5/14 * log(5/14) = 0.6518
圖一中,經驗條件熵 H(D|A) 為:
H(D|A) = 5/14 * (-2/5 * log(2/5)-3/5 * log(3/5)) + 4/14 * (-1 * log(1)-0) + 5/14 * (-3/5 * log(3/5)-2/5 * log(2/5)) = 0.4807
圖一的資訊增益為:
g(D,A) = H(D) – H(D|A) = 0.6518 – 0.4807 = 0.1711
圖二中,經驗條件熵 H(D|A) 為:
H(D|A) = 7/14 * (-3/7 * log(3/7)-4/7 * log(4/7)) + 7/14 * (-6/7 * log(6/7)-1/7 * log(1/7)) = 0.5465
圖二的資訊增益為:
g(D,A) = H(D) – H(D|A) = 0.6518 – 0.5465 = 0.1053
圖三中,經驗條件熵 H(D|A) 為:
H(D|A) = 8/14 * (-6/8 * log(6/8)-2/8 * log(2/8)) + 6/14 * (-3/6 * log(3/6)-3/6 * log(3/6)) = 0.6184
圖三的資訊增益為:
g(D,A) = H(D) – H(D|A) = 0.6518 – 0.6184 = 0.0334
圖四中,經驗條件熵 H(D|A) 為:
H(D|A) = 4/14 * (-2/4 * log(2/4)-2/4 * log(2/4)) + 6/14 *(-4/6 * log(4/6)-2/6 * log(2/6)) + 4/14 * (-3/4 * log(3/4)-1/4 * log(1/4)) = 0.6315
圖四的資訊增益為:
g(D,A) = H(D) – H(D|A) = 0.6518 – 0.6315 = 0.0203
顯然,圖一 outlook 對應的資訊增益最大。
Q9. 在決策樹分割結點的時候,下列關於資訊增益說法正確的是(多選)?
A. 純度高的結點需要更多的資訊來描述它
B. 資訊增益可以用”1位元-熵”獲得
C. 如果選擇一個屬性具有許多特徵值, 那麼這個資訊增益是有偏差的
答案: BC
Q10. 如果一個 SVM 模型出現欠擬合,那麼下列哪種方法能解決這一問題?
A. 增大懲罰引數 C 的值
B. 減小懲罰引數 C 的值
C. 減小核係數(gamma引數)
答案:A
解析:SVM模型出現欠擬合,表明模型過於簡單,需要提高模型複雜度。
Soft-Margin SVM 的目標為:
C 值越大,相應的模型月複雜。接下來,我們看看 C 取不同的值時,模型的複雜程度。
從上圖可以看出,C=1 時,模型比較簡單,分類錯誤的點也比較多,發生欠擬合。當 C 越來越大的時候,模型越來越複雜,分類錯誤的點也在減少。但是,當 C 值很大的時候,雖然分類正確率提高,但很可能把 noise 也進行了處理,從而可能造成過擬合。
而對於 SVM 的核函式,同樣,核係數越大,模型越複雜。舉個例子,核係數分別取 1, 10, 100 時對應的分類效果如下:
從圖中可以看出,當核係數比較小的時候,分類線比較光滑。當核係數越來越大的時候,分類線變得越來越複雜和扭曲,直到最後,分類線變成一個個獨立的小區域。為什麼會出現這種區別呢?這是因為核係數越大,其對應的核函式越尖瘦,那麼有限個核函式的線性組合就比較離散,分類效果並不好。所以, SVM 也會出現過擬合現象,核係數的正確選擇尤為重要,不能太小也不能太大。
參考文獻:
Solutions for Skilltest Machine Learning : Revealed