機器學習筆試題精選(六)

红色石头發表於2018-08-01

機器學習是一門理論性和實戰性都比較強的技術學科。在應聘機器學習相關工作崗位時,我們常常會遇到各種各樣的機器學習問題和知識點。為了幫助大家對這些知識點進行梳理和理解,以便能夠更好地應對機器學習筆試包括面試。紅色石頭準備在公眾號連載一些機器學習筆試題系列文章,希望能夠對大家有所幫助!

今天的筆試題主要涉及的知識點包括:降維、PCA、特徵選擇、隨機森林、GBDT、整合學習等。

Q1. 我們想要訓練一個 ML 模型,樣本數量有 100 萬個,特徵維度是 5000,面對如此大資料,如何有效地訓練模型(多選)?

A. 對訓練集隨機取樣,在隨機取樣的資料上建立模型

B. 嘗試使用線上機器學習演算法

C. 使用 PCA 演算法減少特徵維度

答案:ABC

解析:本題考查的是如何解決樣本數量和特徵維度過大的問題。

在有限的記憶體下,如何處理高特徵緯度的訓練樣本是一項非常艱鉅的任務。下面這些方法可以用來解決這一問題。

  • 我們可以隨機抽樣資料集,包括樣本數量和特徵數量。這意味著,我們可以建立一個更小的資料集,比如說,有 1000 個特徵和 300000 個樣本進行訓練。<p>
  • 使用線上學習(online learning)演算法

  • 使用主成分分析演算法(PCA)挑選有效的特徵,去除冗餘特徵。

關於線上學習與離線學習,離線學習是我們最為常見的一種機器學習演算法模式,使用全部資料參與訓練。訓練完成,整個模型就確定了;而線上學習一般每次使用一個資料或是小批次資料進行訓練,每次訓練都會最佳化模型,模型處於不斷最佳化更改狀態。

PCA(principal Component Analysis),是一種使用最廣泛的資料壓縮演算法。在PCA中,資料從原來的座標系轉換到新的座標系,由資料本身決定。轉換座標系時,以方差最大的方向作為座標軸方向,因為資料的最大方差給出了資料的最重要的資訊。第一個新座標軸選擇的是原始資料中方差最大的方法,第二個新座標軸選擇的是與第一個新座標軸正交且方差次大的方向。重複該過程,重複次數為原始資料的特徵維數。

什麼是冗餘特徵呢?比如汽車資料中,裡面既有以“千米/每小時”度量特徵,也有“英里/小時”的特徵,顯然這兩個特徵有一個是多餘的。

Q2. 我們希望減少資料集中的特徵數量。你可以採取以下哪一個步驟來減少特徵(多選)?

A. 使用正向選擇法(Forward Selection)

B. 使用反向消除法(Backward Elimination)

C. 逐步選擇消除法(Stepwise)

D. 計算不同特徵之間的相關係數,刪去相關係數高的特徵之一

答案:ABCD

解析:本題考查的是機器學習模型中特徵選擇問題。

正向選擇(Forward Selection)是首先選擇一個特徵,每個特徵都試一遍,選擇對模型準確率提升最高的那個特徵;然後再在這個特徵基礎上新增另外一個特徵,方法類似,直到模型準確率不再提示為止。

反向消除(Backward Elimination)是首先包含了所有的特徵,然後嘗試刪除每個特徵,最終刪掉對模型準確率提升最高的一個特徵(因為刪除這個特徵,模型準確率反而增加了,說明是無用特徵)。如此類推,直到刪除特徵並不能提升模型為止。

相對於 Forward Selection,Backward Elimination 的優點在於其允許一些低貢獻值的特徵能夠進到模型中去(有時候低貢獻值的特徵能在組合中有更大的貢獻值,而 Forward Selection 忽略了這種組合的可能性),因此Backward Elimination能夠避免受一兩個占主導地位的特徵的干擾。

另外還有一種特徵選擇方法是 Stepwise,該方法結合上述兩者的方法,新加入一個特徵之後,再嘗試刪去一個特徵,直至達到某個預設的標準。這種方法的缺點是,預設的標準不好定,而且容易陷入到過擬合當中。

除此之外,也可以使用基於相關性的特徵選擇,可以去除多重線性特徵。例如上一題中“千米/每小時”和“英里/小時”是相關性很大的特徵,可刪其一。

Q3. 下面關於 Random Forest 和 Gradient Boosting Trees 說法正確的是?

A. Random Forest 的中間樹不是相互獨立的,而 Gradient Boosting Trees 的中間樹是相互獨立的

B. 兩者都使用隨機特徵子集來建立中間樹

C. 在 Gradient Boosting Trees 中可以生成並行樹,因為它們是相互獨立的

D. 無論任何資料,Gradient Boosting Trees 總是優於 Random Forest

答案:B

解析:本題考查的是隨機森林和梯度提升樹(GBDT)的基本機率和區別。

Random Forest 是基於 Bagging 的,而 Gradient Boosting Trees 是基於 Boosting 的。Bagging 和 Boosting 的區別在於:

1)樣本選擇上:

Bagging:訓練集是在原始集中有放回選取的,從原始集中選出的各輪訓練集之間是獨立的。

Boosting:每一輪的訓練集不變,只是訓練集中每個樣例在分類器中的權重發生變化。而權值是根據上一輪的分類結果進行調整。

2)樣例權重:

Bagging:使用均勻取樣,每個樣例的權重相等。

Boosting:根據錯誤率不斷調整樣例的權值,錯誤率越大則權重越大。

3)預測函式:

Bagging:所有預測函式的權重相等。

Boosting:每個弱分類器都有相應的權重,對於分類誤差小的分類器會有更大的權重。

4)平行計算:

Bagging:各個預測函式可以並行生成。

Boosting:各個預測函式只能順序生成,因為後一個模型引數需要前一輪模型的結果。

因此,Gradient Boosting Trees 的中間樹不是相互獨立的,因為前一棵樹的結果影響下一棵樹。Random Forest 的中間樹相互獨立,因此可以並行生成這些樹。

在這兩種演算法中,我們使用隨機特徵集來生成中間樹。

Gradient Boosting Trees 並不總比 Random Forest 好,依賴於資料。

Q4. “對於 PCA 處理後的特徵,其樸素貝葉斯特徵相互獨立的假設一定成立,因為所有主成分都是正交的,所以不相關”。這句話是否正確?

A. True

B. False

答案:B

解析:本題考查的是 PCA 和 樸素貝葉斯的基本機率和區別。

這句話有兩處錯誤:一是 PCA 轉換之後的特徵不一定不相關;二是不相關並不等價於相互獨立。

正交和不相關沒有必然關係,只有當一個隨機變數的統計平均等於零時,正交和不相關等價。

獨立則必定不相關,而不相關卻不一定互相獨立,只有是高斯時獨立和不相關才等價。

Q5. 下列關於 PCA 說法正確的是(多選)?

A. 在使用 PCA 之前,我們必須標準化資料

B. 應該選擇具有最大方差的主成分

C. 應該選擇具有最小方差的主成分

D. 可以使用 PCA 在低維空間中視覺化資料

答案:ABD

解析:本題考查的是主成分分析(PCA)的基本概念和推導原理。

PCA 對資料中變數的尺度非常敏感,因此我們需要對各個變數進行標準化。方法是減去各自變數的均值,除以標準差。

\frac{x_i-\mu}{\sigma}

舉個例子,假如某個變數單位從 km 改成 cm,大大增加了其方差,那麼該變數可能就成為了主成分。這是我們不希望看大的。

B 是正確的,因為我們總是選擇方差最大的主成分。可以這麼來理解,方差越大,說明在該特徵上分佈越廣泛,說明該特徵月有用,影響越大。

PCA 有時在較低維度上繪製資料是非常有用。例如我們可以提取前 2 個主要組成部分,然後在二維平面上使用散點圖視覺化資料。

Q6. 下圖中,主成分的最佳數目是多少?

A. 10

B. 20

C. 30

D. 無法確定

答案:C

解析:本題考查的是 PCA 的基本概念。

顯然,當主成分數目為 30 的時候,積累的方差比例最大。

Q7. 資料科學家經常使用多個演算法進行預測,並將多個機器學習演算法的輸出(稱為“整合學習”)結合起來,以獲得比所有個體模型都更好的更健壯的輸出。則下列說法正確的是?

A. 基本模型之間相關性高

B. 基本模型之間相關性低

C. 整合方法中,使用加權平均代替投票方法

D. 基本模型都來自於同一演算法

答案:B

解析:本題考查的是整合學習的基本原理。

整合學習,顧名思義,透過將多個單個學習器整合/組合在一起,使它們共同完成學習任務。

舉個例子來說明,假如你有 T 個朋友,每個朋友向你預測推薦明天某支股票會漲還是會跌,那麼你該選擇哪個朋友的建議呢?第一種方法是從 T 個朋友中選擇一個最受信任,對股票預測能力最強的人,直接聽從他的建議就好。這是一種普遍的做法,對應的就是 validation 的思想,即選擇犯錯誤最小的模型。第二種方法,如果每個朋友在股票預測方面都是比較厲害的,都有各自的專長,那麼就同時考慮 T 個朋友的建議,將所有結果做個投票,一人一票,最終決定出對該支股票的預測。這種方法對應的是 uniformly 思想。第三種方法,如果每個朋友水平不一,有的比較厲害,投票比重應該更大一些,有的比較差,投票比重應該更小一些。那麼,仍然對 T 個朋友進行投票,只是每個人的投票權重不同。這種方法對應的是 non-uniformly 的思想。第四種方法與第三種方法類似,但是權重不是固定的,根據不同的條件,給予不同的權重。比如如果是傳統行業的股票,那麼給這方面比較厲害的朋友較高的投票權重,如果是服務行業,那麼就給這方面比較厲害的朋友較高的投票權重。以上所述的這四種方法都是將不同人不同意見融合起來的方式,這就是整合思想,即把多個基本模型結合起來,得到更好的預測效果。

通常來說,基本模型之間的相關性越低越好,因為每個模型有各自的特長,整合起來才更加強大。

Q8. 如何在監督式學習中使用聚類演算法(多選)?

A. 首先,可以建立聚類,然後分別在不同的叢集上應用監督式學習演算法

B. 在應用監督式學習演算法之前,可以將其類別 ID 作為特徵空間中的一個額外的特徵

C. 在應用監督式學習之前,不能建立聚類

D. 在應用監督式學習演算法之前,不能將其類別 ID 作為特徵空間中的一個額外的特徵

答案:AB

解析:本題考查的是聚類演算法與監督式學習。

我們可以為不同的叢集構建獨立的機器學習模型,並且可以提高預測精度。將每個類別的 ID 作為特徵空間中的一個額外的特徵可能會提高的精度結果。

Q9. 下面哪句話是正確的?

A. 機器學習模型的精準度越高,則模型的效能越好

B. 增加模型的複雜度,總能減小測試樣本誤差

C. 增加模型的複雜度,總能減小訓練樣本誤差

D. 以上說法都不對

答案:C

解析:本題考查的是機器學習模型的評判指標。

機器學習模型的精準度(Precision)越高,模型效能不一定越好,還要看模型的召回率(Recall),特別是在正負樣本分佈不均的情況下。一般使用 F1 score 評判標準。

F1=2\cdot\frac{P\cdot R}{P+R}

增加模型複雜度,通常可能造成過擬合。過擬合的表現是訓練樣本誤差減小,而測試樣本誤差增大。

Q10. 關於 GBDT 演算法,下列說法正確的是(多選)?

A. 增加用於分割的最小樣本數量,有助於避免過擬合

B. 增加用於分割的最小樣本數量,容易造成過擬合

C. 減小每個基本樹的樣本比例,有助於減小方差

D. 減小每個基本樹的樣本比例,有助於減小偏差

答案:AC

解析:本題考查的是 GBDT 的基本概念。

節點中用於分割所需的最小樣本數用來控制過擬合。過高的值可能導致欠擬合,因此,它應該使用交叉驗證進行調整。

每個基本樹選擇的樣本比例是透過隨機抽樣來完成的。小於1的值能夠減小方差使模型具有魯棒性。典型值 0.8 通常工作良好,但可以進一步精細調整。

GBDT 透過多輪迭代,每輪迭代產生一個弱分類器,每個分類器在上一輪分類器的殘差基礎上進行訓練。對弱分類器的要求一般是足夠簡單,並且是低方差和高偏差的,因為訓練的過程是透過降低偏差來不斷提高最終分類器的精度。

參考文獻:

Solutions for Skilltest Machine Learning : Revealed


相關文章