紅色石頭的我的網站:redstonewill.com面試
機器學習是一門理論性和實戰性都比較強的技術學科。在應聘機器學習相關工做崗位時,咱們經常會遇到各類各樣的機器學習問題和知識點。爲了幫助你們對這些知識點進行梳理和理解,以便可以更好地應對機器學習筆試包括面試。紅色石頭準備在公衆號連載一些機器學習筆試題系列文章,但願可以對你們有所幫助!算法
今天的筆試題主要涉及的知識點包括:SVM、高斯核、F1 score、Leave-One_out 交叉驗證、神經網絡、隱馬爾可夫模型等。網絡
Q1. 假設咱們在支持向量機(SVM)算法中對 Gamma(RBF 核係數 γ)的不一樣值進行可視化。因爲某種緣由,咱們忘記了標記伽馬值的可視化。令 g一、g二、g3 分別對應着下面的圖 一、圖 2 和圖 3。則關於 g一、g二、g3 大小下列說法正確的是?機器學習
A. g1 > g2 > g3函數
B. g1 = g2 = g3性能
C. g1 < g2 < g3學習
D. g1 > g2 = g3測試
E. g1 < g2 = g3優化
答案:C網站
解析:本題考查的是 Kernel SVM 中 Gamma γ 對模型形狀的影響。
SVM 中爲了獲得更加複雜的分類面並提升運算速度,一般會使用核函數的技巧。徑向基核函數(RBF)也稱爲高斯核函數是最經常使用的核函數,其核函數的表達式以下所示:
形式與高斯分佈相似,Gamma γ 是高斯分佈中標準差 Sigma σ 的導數。咱們知道在高斯分佈中,σ 越小,對應的高斯曲線就越尖瘦。也就是說 γ 越大,高斯核函數對應的曲線就越尖瘦。這樣,運用核技巧獲得的 SVM 分類面就更加曲折複雜,甚至會將許多樣本隔離成單個的小島。
下面是 γ 分別取 一、十、100 時對應的 SVM 分類效果:
值得一提的是,γ 太小容易形成欠擬合,γ 過大容易形成過擬合。
Q2. 咱們知道二元分類的輸出是機率值。通常設定輸出機率大於或等於 0.5,則預測爲正類;若輸出機率小於 0.5,則預測爲負類。那麼,若是將閾值 0.5 提升,例如 0.6,大於或等於 0.6 的才預測爲正類。則準確率(Precision)和召回率(Recall)會發生什麼變化(多選)?
A. 準確率(Precision)增長或者不變
B. 準確率(Precision)減少
C. 召回率(Recall)減少或者不變
D. 召回率(Recall)增大
答案:AC
解析:本題考察的是二元分類閾值提升對準確率和召回率的影響。
首先來看一下什麼是準確率和召回率,下面分別用 P 和 R 表明。以一個簡單的例子來講明,例如預測 20 個西瓜中哪些是好瓜,這 20 個西瓜中實際有 15 個好瓜,5 個壞瓜。某個模型預測的結果是:16 個好瓜,4 個壞瓜。其中,預測的 16 個好瓜中有 14 個確實是好瓜,預測的 4 個壞瓜中有 3 個確實是壞瓜。下面以一張圖表說明:
這樣,準確率 P 的定義是:
能夠理解爲預測好瓜中,確實是好瓜的比例。該例子中 P = 14/(14+2)。
召回率 R 的定義是:
能夠理解爲真實的好瓜被預測出來的比例。該例子中 R = 14/(14+1)。
如今,若是二元分類閾值提升,至關於斷定好瓜的標準更嚴格了。因此可能會形成預測是好瓜的數目減小,即 TP 和 FP 均減少。所以準確率可能會增長,極端的,苛刻條件,只預測一個是好瓜,那該瓜是好瓜的機率會很大,即準確率很高。可是 15 個好瓜你只挑出來 1 個,召回率就下降了。
準確率和召回率都不能很好地反映模型性能,一般使用 F1 score 來做爲模型預測水平判據。F1 Score 被定義爲準確率和召回率的調和平均數。,以下所示:
Q3. 點擊率預測是一個正負樣本不平衡問題(例如 99% 的沒有點擊,只有 1% 點擊)。假如在這個非平衡的數據集上創建一個模型,獲得訓練樣本的正確率是 99%,則下列說法正確的是?
A. 模型正確率很高,不須要優化模型了
B. 模型正確率並不高,應該創建更好的模型
C. 沒法對模型作出好壞評價
D. 以上說法都不對
答案:B
解析:這一題延續了上題中準確率和召回率的知識點,考查了正負樣本分佈不均問題。
模型訓練過程當中正負樣本分佈不均是常見的問題。這時候不能單獨只看預測正確率。對於此題來講,若是咱們預測的結果是 100% 沒有點擊,0% 點擊,那麼能夠說正確率是 99%,由於只有 1% 的點擊預測錯誤。可是,咱們其實更關心的那 1% 的點擊率並無預測出來。能夠說這樣的模型是沒有任何意義的。
對應正負樣本不平衡的狀況須要作一些數據處理,主要包括:採樣、數據合成、懲罰因子加權、一分類。其中,一分類便是在正負樣本分佈極不平衡的時候,把它看作一分類(One Class Learning)或異常檢測(Novelty Detection)問題。這類方法的重點不在於捕捉類間的差異,而是爲其中一類進行建模,經典的工做包括 One-class SVM 等。
Q4. 假設咱們使用 kNN 訓練模型,其中訓練數據具備較少的觀測數據(下圖是兩個屬性 x、y 和兩個標記爲 「+」 和 「o」 的訓練數據)。如今令 k = 1,則圖中的 Leave-One-Out 交叉驗證錯誤率是多少?
A. 0%
B. 20%
C. 50%
D. 100%
答案:D
解析:本題考查的是 kNN 算法和 Leave-One-Out 交叉驗證。
kNN 算法是標記類算法,取當前實例最近鄰的 k 個樣本,k 個樣本中所屬的最多類別即斷定爲該實例的類別。本題中 k = 1,則只須要看最近鄰的那一個樣本屬於「+」 仍是「o」便可。
Leave-One-Out 交叉驗證是一種用來訓練和測試分類器的方法,假定數據集有N 個樣本,將這個樣本分爲兩份,第一份 N-1 個樣本用來訓練分類器,另外一份 1 個樣本用來測試,如此迭代 N 次,全部的樣本里全部對象都經歷了測試和訓練。
分別對這 10 個點進行觀察能夠發現,每一個實例點最近鄰的都不是當前實例所屬的類別,所以每次驗證都是錯誤的。總體的錯誤率即爲 100%。
Q5. 若是在大型數據集上訓練決策樹。爲了花費更少的時間來訓練這個模型,下列哪一種作法是正確的?
A. 增長樹的深度
B. 增長學習率
C. 減少樹的深度
D. 減小樹的數量
答案:C
解析:本題考查的是決策樹相關概念。
通常用決策樹進行分類,從根結點開始,對實例的某一特徵進行測試,根據測試結果,將實例分配到其子結點。這時,每個子結點對應着該特徵的一個取值。如此遞歸地對實例進行測試並分類,直至達到葉結點。最後將實例分到葉結點的類中。—— 引自李航 《統計學習方法》
決策樹深度越深,在訓練集上偏差會越小,準確率越高。可是容易形成過擬合,並且增長模型的訓練時間。對決策樹進行修剪,減少樹的深度,可以提升模型的訓練速度,有效避免過擬合。
單決策樹中,學習率不是一個有效參數。
決策樹是單樹,隨機森林由多個決策樹組成。
Q6. 關於神經網絡,下列說法正確的是?
A. 增長網絡層數,可能會增長測試集分類錯誤率
B. 增長網絡層數,必定會增長訓練集分類錯誤率
C. 減小網絡層數,可能會減小測試集分類錯誤率
D. 減小網絡層數,必定會減小訓練集分類錯誤率
答案:AC
解析:本題考查的是神經網絡層數對訓練偏差和測試偏差的影響。
通常來講,神經網絡層數越多,模型越複雜,對數據的分類效果越好。因此,從最簡單的層數開始,增長網絡層數都能使得訓練偏差和測試偏差減少。可是,神經網絡層數過多容易形成過擬合,即對訓練樣本分類效果很好,偏差小,可是測試偏差很大。
爲了不發生過擬合,應該選擇合適的神經網絡層數並使用正則化技術來讓神經網絡更加穩健。
Q7. 假設咱們使用原始的非線性可分版本的 Soft-SVM 優化目標函數。咱們須要作什麼來保證獲得的模型是線性可分離的?
A. C = 0
B. C = 1
C. C 正無窮大
D. C 負無窮大
答案:C
解析:本題考查的是 SVM 和 Soft-SVM 之間的聯繫和彼此轉化條件。
Soft-SVM 在原來的 SVM 基礎上增長了分類錯誤項,以下式:
其中,第二項即爲分類錯誤項。C 爲參數相似於正則化中的懲罰因子。其中, ξn 表示每一個點犯錯誤的程度,ξn = 0,表示沒有錯誤,ξn 越大,表示錯誤越大,即點距離邊界(負的)越大。參數 C 表示儘量選擇寬邊界和儘量不要犯錯二者之間的權衡,由於邊界寬了,每每犯錯誤的點會增長。large C 表示但願獲得更少的分類錯誤,即不惜選擇窄邊界也要儘量把更多點正確分類;small C 表示但願獲得更寬的邊界,即不惜增長錯誤點個數也要選擇更寬的分類邊界。所以,C 正無窮大時,能夠實現沒有分類錯誤的點,模型線性可分。
從另外一方面來看,線性可分 SVM 中,對偶形式解得拉格朗日因子 αn≥0;而在 Soft-SVM 中,對偶形式解得拉格朗日因子 0 ≤ αn ≤ C。顯然,當 C 無正無窮大的時候,二者形式相同。
值得一提的是,當 C 值很大的時候,雖然分類正確率提升,但極可能把 noise 也進行了處理,從而可能形成過擬合。也就是說 Soft-SVM 一樣可能會出現過擬合現象,因此參數 C 的選擇很是重要。下圖是 C 分別取一、十、100時,相應的分類曲線:
Q8. 在訓練完 SVM 以後,咱們能夠只保留支持向量,而捨去全部非支持向量。仍然不會影響模型分類能力。這句話是否正確?
A. 正確
B. 錯誤
答案:A
解析:本題考查的是對支持向量機 SVM 的概念理解。
其實,剛學習支持向量機時會有個疑問,就是爲何會叫這個名字。該算法決定分類面的通常是關鍵的幾個點,這幾個點構建了分類面,所以被稱爲支持向量。該算法也就叫支持向量機了。訓練完畢以後,其它非支持向量對分類面並沒有影響,去掉無妨。
對於線性可分的 SVM,能夠根據拉格朗日因子 αn 數值來判斷當前樣本 (xn, yn) 是否爲 SV。
若 αn = 0:不是 SV
若 αn > 0:是 SV,且分類正確
對於 Soft-SVM(線性不可分),能夠根據拉格朗日因子 αn 數值與參數 C 的關係來判斷當前樣本 (xn, yn) 是否爲 SV。
若 αn = 0:不是 SV,且分類正確
若 0 < αn < C:是 SV
若 αn = C:不是 SV,且分類錯誤(或剛好位於分類面上)
對 SVM 概念不太清楚的同窗能夠看看林軒田機器學習技法 1-6 對 SVM 的講解,通俗易懂,內容翔實。對應的筆記能夠在本公衆號查閱,放上第 1 講連接:
Q9. 下列哪些算法能夠用來夠造神經網絡(多選)?
A. kNN
B. 線性迴歸
C. 邏輯迴歸
答案:BC
解析:本題考查的是 kNN、線性迴歸、邏輯迴歸與神經網絡之間的一些關係。
kNN 是一種基於實例的學習算法,不具備任何訓練參數。所以不能用來構造神經網絡。
線性迴歸和邏輯迴歸均可以用來構造神經網絡模型,其實兩者就是單神經元的神經網絡。
Q10. 下列數據集適用於隱馬爾可夫模型的是?
A. 基因數據
B. 影評數據
C. 股票市場價格
D. 以上全部
答案:D
解析:本題考查的是隱馬爾可夫模型適用於解決哪類問題。
隱馬爾可夫模型(Hidden Markov Model,HMM)是關於時序的機率模型,描述一個隱藏的馬爾可夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個觀察而產生觀測隨機序列的過程。所以,隱馬爾可夫模型適用於解決時間序列問題。
參考文獻:
Solutions for Skilltest Machine Learning : Revealed