算法工程師(機器學習)部分面試題(轉載參考)

其他參考:https://www.jianshu.com/p/980efc8105b2?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

https://www.jianshu.com/p/4a7f7127eef1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

https://www.jianshu.com/p/d792279a30bc?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

總結一點面試問題--算法工程師(機器學習)

轉載:https://www.jianshu.com/p/4a3c5e34d0f8

csdn博客文章地址

需要內推三七互娛的盆友萌,(9月5號截止)可以參考另一篇文章,或者內推QQ羣:175423207

BAT機器學習面試系列

1.請簡要介紹下SVM。

SVM,全稱是support vector machine,中文名叫支持向量機。SVM是一個面向數據的分類算法,它的目標是爲確定一個分類超平面,從而將不同的數據分隔開。

擴展:

支持向量機學習方法包括構建由簡至繁的模型:線性可分支持向量機、線性支持向量機及非線性支持向量機。當訓練數據線性可分時,通過硬間隔最大化,學習一個線性的分類器,即線性可分支持向量機,又稱爲硬間隔支持向量機;當訓練數據近似線性可分時,通過軟間隔最大化,也學習一個線性的分類器,即線性支持向量機,又稱爲軟間隔支持向量機;當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化,學習非線性支持向量機。

支持向量機通俗導論(理解SVM的三層境界)

機器學習之深入理解SVM

2.請簡要介紹下Tensorflow的計算圖。

@寒小陽:Tensorflow是一個通過計算圖的形式來表述計算的編程系統,計算圖也叫數據流圖,可以把計算圖看做是一種有向圖,Tensorflow中的每一個計算都是計算圖上的一個節點,而節點之間的邊描述了計算之間的依賴關係。 

3.請問GBDT和XGBoost的區別是什麼?

@Xijun LI:XGBoost類似於GBDT的優化版,不論是精度還是效率上都有了提升。與GBDT相比,具體的優點有: 

1.損失函數是用泰勒展式二項逼近,而不是像GBDT裏的就是一階導數; 

2.對樹的結構進行了正則化約束,防止模型過度複雜,降低了過擬合的可能性; 

3.節點分裂的方式不同,GBDT是用的基尼係數,XGBoost是經過優化推導後的。

知識點鏈接:集成學習總結

4.在k-means或kNN,我們是用歐氏距離來計算最近的鄰居之間的距離。爲什麼不用曼哈頓距離?

曼哈頓距離只計算水平或垂直距離,有維度的限制。另一方面,歐氏距離可用於任何空間的距離計算問題。因爲,數據點可以存在於任何空間,歐氏距離是更可行的選擇。例如:想象一下國際象棋棋盤,象或車所做的移動是由曼哈頓距離計算的,因爲它們是在各自的水平和垂直方向做的運動。

5.百度2015校招機器學習筆試題。

知識點鏈接:百度2015校招機器學習筆試題

6.簡單說說特徵工程。

7.關於LR。

@rickjin:把LR從頭到腳都給講一遍。建模,現場數學推導,每種解法的原理,正則化,LR和maxent模型啥關係,LR爲啥比線性迴歸好。有不少會背答案的人,問邏輯細節就糊塗了。原理都會? 那就問工程,並行化怎麼做,有幾種並行化方式,讀過哪些開源的實現。還會,那就準備收了吧,順便逼問LR模型發展歷史。

聲明:由於原文中的鏈接已經失效,故而自己補充了一個新的鏈接

知識點鏈接:機器學習之Logistic迴歸(邏輯蒂斯迴歸)

8.overfitting怎麼解決?

dropout、regularization、batch normalizatin

9.LR和SVM的聯繫與區別?

@朝陽在望,聯繫: 

1、LR和SVM都可以處理分類問題,且一般都用於處理線性二分類問題(在改進的情況下可以處理多分類問題) 

2、兩個方法都可以增加不同的正則化項,如L1、L2等等。所以在很多實驗中,兩種算法的結果是很接近的。 

區別: 

1、LR是參數模型,SVM是非參數模型。 

2、從目標函數來看,區別在於邏輯迴歸採用的是Logistical Loss,SVM採用的是hinge loss.這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關係較小的數據點的權重。 

3、SVM的處理方法是隻考慮Support Vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯迴歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重。 

4、邏輯迴歸相對來說模型更簡單,好理解,特別是大規模線性分類時比較方便。而SVM的理解和優化相對來說複雜一些,SVM轉化爲對偶問題後,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算。 

5、Logic 能做的 SVM能做,但可能在準確率上有問題,SVM能做的Logic有的做不了。

答案來源:機器學習常見面試問題(一)

10.LR與線性迴歸的區別與聯繫?

@nishizhen 

個人感覺邏輯迴歸和線性迴歸首先都是廣義的線性迴歸, 

其次經典線性模型的優化目標函數是最小二乘,而邏輯迴歸則是似然函數, 

另外線性迴歸在整個實數域範圍內進行預測,敏感度一致,而分類範圍,需要在[0,1]。邏輯迴歸就是一種減小預測範圍,將預測值限定爲[0,1]間的一種迴歸模型,因而對於這類問題來說,邏輯迴歸的魯棒性比線性迴歸的要好。 

@乖乖癩皮狗:邏輯迴歸的模型本質上是一個線性迴歸模型,邏輯迴歸都是以線性迴歸爲理論支持的。但線性迴歸模型無法做到sigmoid的非線性形式,sigmoid可以輕鬆處理0/1分類問題。

11.爲什麼XGBoost要用泰勒展開,優勢在哪裏?

@AntZ:XGBoost使用了一階和二階偏導, 二階導數有利於梯度下降的更快更準. 使用泰勒展開取得二階倒數形式, 可以在不選定損失函數具體形式的情況下用於算法優化分析.本質上也就把損失函數的選取和模型算法優化/參數選擇分開了. 這種去耦合增加了XGBoost的適用性。

12.XGBoost如何尋找最優特徵?是又放回還是無放回的呢?

@AntZ:XGBoost在訓練的過程中給出各個特徵的評分,從而表明每個特徵對模型訓練的重要性.。XGBoost利用梯度優化模型算法, 樣本是不放回的(想象一個樣本連續重複抽出,梯度來回踏步會不會高興)。但XGBoost支持子採樣, 也就是每輪計算可以不使用全部樣本。

13.談談判別式模型和生成式模型?

判別方法:由數據直接學習決策函數 Y = f(X),或者由條件分佈概率 P(Y|X)作爲預測模型,即判別模型。

生成方法:由數據學習聯合概率密度分佈函數 P(X,Y),然後求出條件概率分佈P(Y|X)作爲預測的模型,即生成模型。

由生成模型可以得到判別模型,但由判別模型得不到生成模型。

常見的判別模型有:K近鄰、SVM、決策樹、感知機、線性判別分析(LDA)、線性迴歸、傳統的神經網絡、邏輯斯蒂迴歸、boosting、條件隨機場

常見的生成模型有:樸素貝葉斯、隱馬爾可夫模型、高斯混合模型、文檔主題生成模型(LDA)、限制玻爾茲曼機

14.L1和L2的區別。

L1範數(L1 norm)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規則算子”(Lasso regularization)。 

比如 向量A=[1,-1,3], 那麼A的L1範數爲 |1|+|-1|+|3|. 

簡單總結一下就是: 

L1範數: 爲x向量各個元素絕對值之和。 

L2範數: 爲x向量各個元素平方和的1/2次方,L2範數又稱Euclidean範數或Frobenius範數

Lp範數: 爲x向量各個元素絕對值p次方和的1/p次方. 

在支持向量機學習過程中,L1範數實際是一種對於成本函數求解最優的過程,因此,L1範數正則化通過向成本函數中添加L1範數,使得學習得到的結果滿足稀疏化,從而方便人類提取特徵。 

L1範數可以使權值稀疏,方便特徵提取。 

L2範數可以防止過擬合,提升模型的泛化能力。

15.L1和L2正則先驗分別服從什麼分佈 ?

@齊同學:面試中遇到的,L1和L2正則先驗分別服從什麼分佈,L1是拉普拉斯分佈,L2是高斯分佈。

16.CNN最成功的應用是在CV,那爲什麼NLP和Speech的很多問題也可以用CNN解出來?爲什麼AlphaGo裏也用了CNN?這幾個不相關的問題的相似性在哪裏?CNN通過什麼手段抓住了這個共性?

@許韓

知識點鏈接(答案解析):深度學習崗位面試問題整理筆記

17.說一下Adaboost,權值更新公式。當弱分類器是Gm時,每個樣本的的權重是w1,w2…,請寫出最終的決策公式。

答案解析

18.LSTM結構推導,爲什麼比RNN好?

推導forget gate,input gate,cell state, hidden information等的變化;因爲LSTM有進有出且當前的cell informaton是通過input gate控制之後疊加的,RNN是疊乘,因此LSTM可以防止梯度消失或者爆炸。

19.經常在網上搜索東西的朋友知道,當你不小心輸入一個不存在的單詞時,搜索引擎會提示你是不是要輸入某一個正確的單詞,比如當你在Google中輸入“Julw”時,系統會猜測你的意圖:是不是要搜索“July”,如下圖所示:

這叫做拼寫檢查。根據谷歌一員工寫的文章How to Write a Spelling Corrector顯示,Google的拼寫檢查基於貝葉斯方法。請說說的你的理解,具體Google是怎麼利用貝葉斯方法,實現”拼寫檢查”的功能。

用戶輸入一個單詞時,可能拼寫正確,也可能拼寫錯誤。如果把拼寫正確的情況記做c(代表correct),拼寫錯誤的情況記做w(代表wrong),那麼”拼寫檢查”要做的事情就是:在發生w的情況下,試圖推斷出c。換言之:已知w,然後在若干個備選方案中,找出可能性最大的那個c,也就是求P(c|w)P(c|w)的最大值。而根據貝葉斯定理,有: 

P(c|w)=P(w|c)P(c)P(w)P(c|w)=P(w|c)P(c)P(w)

由於對於所有備選的c來說,對應的都是同一個w,所以它們的P(w)是相同的,因此我們只要最大化P(w|c)P(c)P(w|c)P(c)即可。其中:

P(c)表示某個正確的詞的出現”概率”,它可以用”頻率”代替。如果我們有一個足夠大的文本庫,那麼這個文本庫中每個單詞的出現頻率,就相當於它的發生概率。某個詞的出現頻率越高,P(c)就越大。比如在你輸入一個錯誤的詞“Julw”時,系統更傾向於去猜測你可能想輸入的詞是“July”,而不是“Jult”,因爲“July”更常見。

P(w|c)表示在試圖拼寫c的情況下,出現拼寫錯誤w的概率。爲了簡化問題,假定兩個單詞在字形上越接近,就有越可能拼錯,P(w|c)就越大。舉例來說,相差一個字母的拼法,就比相差兩個字母的拼法,發生概率更高。你想拼寫單詞July,那麼錯誤拼成Julw(相差一個字母)的可能性,就比拼成Jullw高(相差兩個字母)。值得一提的是,一般把這種問題稱爲“編輯距離”,參見程序員編程藝術第二十八~二十九章:最大連續乘積子串、字符串編輯距離

所以,我們比較所有拼寫相近的詞在文本庫中的出現頻率,再從中挑出出現頻率最高的一個,即是用戶最想輸入的那個詞。具體的計算過程及此方法的缺陷請參見How to Write a Spelling Corrector

20.爲什麼樸素貝葉斯如此“樸素”?

因爲它假定所有的特徵在數據集中的作用是同樣重要和獨立的。正如我們所知,這個假設在現實世界中是很不真實的,因此,說樸素貝葉斯真的很“樸素”。

21.機器學習中,爲何要經常對數據做歸一化?

@zhanlijun

本題解析來源:爲什麼一些機器學習模型需要對數據進行歸一化?

22.談談深度學習中的歸一化問題。

詳情參見此視頻:深度學習中的歸一化

23.請簡要說說一個完整機器學習項目的流程。

1 抽象成數學問題 

明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。 

這裏的抽象成數學問題,指的我們明確我們可以獲得什麼樣的數據,目標是一個分類還是迴歸或者是聚類的問題,如果都不是的話,如果劃歸爲其中的某類問題。 

2 獲取數據 

數據決定了機器學習結果的上限,而算法只是儘可能逼近這個上限。 

數據要有代表性,否則必然會過擬合。 

而且對於分類問題,數據偏斜不能過於嚴重,不同類別的數據數量不要有數個數量級的差距。 

而且還要對數據的量級有一個評估,多少個樣本,多少個特徵,可以估算出其對內存的消耗程度,判斷訓練過程中內存是否能夠放得下。如果放不下就得考慮改進算法或者使用一些降維的技巧了。如果數據量實在太大,那就要考慮分佈式了。 

3 特徵預處理與特徵選擇 

良好的數據要能夠提取出良好的特徵才能真正發揮效力。 

特徵預處理、數據清洗是很關鍵的步驟,往往能夠使得算法的效果和性能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,數據挖掘過程中很多時間就花在它們上面。這些工作簡單可複製,收益穩定可預期,是機器學習的基礎必備步驟。 

篩選出顯著特徵、摒棄非顯著特徵,需要機器學習工程師反覆理解業務。這對很多結果有決定性的影響。特徵選擇好了,非常簡單的算法也能得出良好、穩定的結果。這需要運用特徵有效性分析的相關技術,如相關係數、卡方檢驗、平均互信息、條件熵、後驗概率、邏輯迴歸權重等方法。 

4 訓練模型與調優 

直到這一步纔用到我們上面說的算法進行訓練。現在很多算法都能夠封裝成黑盒供人使用。但是真正考驗水平的是調整這些算法的(超)參數,使得結果變得更加優良。這需要我們對算法的原理有深入的理解。理解越深入,就越能發現問題的癥結,提出良好的調優方案。 

5 模型診斷 

如何確定模型調優的方向與思路呢?這就需要對模型進行診斷的技術。 

過擬合、欠擬合 判斷是模型診斷中至關重要的一步。常見的方法如交叉驗證,繪製學習曲線等。過擬合的基本調優思路是增加數據量,降低模型複雜度。欠擬合的基本調優思路是提高特徵數量和質量,增加模型複雜度。 

誤差分析 也是機器學習至關重要的步驟。通過觀察誤差樣本,全面分析誤差產生誤差的原因:是參數的問題還是算法選擇的問題,是特徵的問題還是數據本身的問題…… 

診斷後的模型需要進行調優,調優後的新模型需要重新進行診斷,這是一個反覆迭代不斷逼近的過程,需要不斷地嘗試, 進而達到最優狀態。 

6 模型融合 

一般來說,模型融合後都能使得效果有一定提升。而且效果很好。 

工程上,主要提升算法準確度的方法是分別在模型的前端(特徵清洗和預處理,不同的採樣模式)與後端(模型融合)上下功夫。因爲他們比較標準可複製,效果比較穩定。而直接調參的工作不會很多,畢竟大量數據訓練起來太慢了,而且效果難以保證。 

7 上線運行 

這一部分內容主要跟工程實現的相關性比較大。工程上是結果導向,模型在線上運行的效果直接決定模型的成敗。 不單純包括其準確程度、誤差等情況,還包括其運行的速度(時間複雜度)、資源消耗程度(空間複雜度)、穩定性是否可接受。 

這些工作流程主要是工程實踐上總結出的一些經驗。並不是每個項目都包含完整的一個流程。這裏的部分只是一個指導性的說明,只有大家自己多實踐,多積累項目經驗,纔會有自己更深刻的認識。 

故,基於此,七月在線每一期ML算法班都特此增加特徵工程、模型調優等相關課。比如,這裏有個公開課視頻《特徵處理與特徵選擇》。

24.new 和 malloc的區別?

知識點鏈接:new 和 malloc的區別

25.hash 衝突及解決辦法?

@Sommer_Xia

關鍵字值不同的元素可能會映象到哈希表的同一地址上就會發生哈希衝突。解決辦法: 

1)開放定址法:當衝突發生時,使用某種探查(亦稱探測)技術在散列表中形成一個探查(測)序列。沿此序列逐個單元地查找,直到找到給定 的關鍵字,或者碰到一個開放的地址(即該地址單元爲空)爲止(若要插入,在探查到開放的地址,則可將待插入的新結點存人該地址單元)。查找時探查到開放的 地址則表明表中無待查的關鍵字,即查找失敗。 

2) 再哈希法:同時構造多個不同的哈希函數。 

3)鏈地址法:將所有哈希地址爲i的元素構成一個稱爲同義詞鏈的單鏈表,並將單鏈表的頭指針存在哈希表的第i個單元中,因而查找、插入和刪除主要在同義詞鏈中進行。鏈地址法適用於經常進行插入和刪除的情況。 

4)建立公共溢出區:將哈希表分爲基本表和溢出表兩部分,凡是和基本表發生衝突的元素,一律填入溢出表。

26.如何解決梯度消失和梯度膨脹?

(1)梯度消失: 

根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小於1的話,那麼即使這個結果是0.99,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於0。 

可以採用ReLU激活函數有效的解決梯度消失的情況。 

(2)梯度膨脹: 

根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大於1的話,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於無窮大。

可以通過激活函數來解決。

27.下列哪個不屬於CRF模型對於HMM和MEMM模型的優勢( )

A. 特徵靈活 

B. 速度快 

C. 可容納較多上下文信息 

D. 全局最優 

解答:首先,CRF,HMM(隱馬模型),MEMM(最大熵隱馬模型)都常用來做序列標註的建模。 

隱馬模型一個最大的缺點就是由於其輸出獨立性假設,導致其不能考慮上下文的特徵,限制了特徵的選擇。 

最大熵隱馬模型則解決了隱馬的問題,可以任意選擇特徵,但由於其在每一節點都要進行歸一化,所以只能找到局部的最優值,同時也帶來了標記偏見的問題,即凡是訓練語料中未出現的情況全都忽略掉。 

條件隨機場則很好的解決了這一問題,他並不在每一個節點進行歸一化,而是所有特徵進行全局歸一化,因此可以求得全局的最優值。

答案爲B。

28.簡單說下有監督學習和無監督學習的區別?

有監督學習:對具有標記的訓練樣本進行學習,以儘可能對訓練樣本集外的數據進行分類預測。(LR,SVM,BP,RF,GBDT) 

無監督學習:對未標記的樣本進行訓練學習,比發現這些樣本中的結構知識。(KMeans,DL)

29.瞭解正則化麼?

正則化是針對過擬合而提出的,以爲在求解模型最優的是一般優化最小的經驗風險,現在在該經驗風險上加入模型複雜度這一項(正則化項是模型參數向量的範數),並使用一個rate比率來權衡模型複雜度與以往經驗風險的權重,如果模型複雜度越高,結構化的經驗風險會越大,現在的目標就變爲了結構經驗風險的最優化,可以防止模型訓練過度複雜,有效的降低過擬合的風險。 

奧卡姆剃刀原理,能夠很好的解釋已知數據並且十分簡單纔是最好的模型。

30.協方差和相關性有什麼區別?

相關性是協方差的標準化格式。協方差本身很難做比較。例如:如果我們計算工資($)和年齡(歲)的協方差,因爲這兩個變量有不同的度量,所以我們會得到不能做比較的不同的協方差。爲了解決這個問題,我們計算相關性來得到一個介於-1和1之間的值,就可以忽略它們各自不同的度量。

31.線性分類器與非線性分類器的區別以及優劣。

如果模型是參數的線性函數,並且存在線性分類面,那麼就是線性分類器,否則不是。 

常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性迴歸。 

常見的非線性分類器:決策樹、RF、GBDT、多層感知機。 

SVM兩種都有(看線性核還是高斯核)。 

線性分類器速度快、編程方便,但是可能擬合效果不會很好。 

非線性分類器編程複雜,但是效果擬合能力強。

32.數據的邏輯存儲結構(如數組,隊列,樹等)對於軟件開發具有十分重要的影響,試對你所瞭解的各種存儲結構從運行速度、存儲效率和適用場合等方面進行簡要地分析。

33.什麼是分佈式數據庫?

分佈式數據庫系統是在集中式數據庫系統成熟技術的基礎上發展起來的,但不是簡單地把集中式數據庫分散地實現,它具有自己的性質和特徵。集中式數據庫系統的許多概念和技術,如數據獨立性、數據共享和減少冗餘度、併發控制、完整性、安全性和恢復等在分佈式數據庫系統中都有了不同的、更加豐富的內容。

34.簡單說說貝葉斯定理。

在引出貝葉斯定理之前,先學習幾個定義: 

條件概率(又稱後驗概率)就是事件A在另外一個事件B已經發生條件下的發生概率。條件概率表示爲P(A|B),讀作“在B條件下A的概率”。 

比如,在同一個樣本空間Ω中的事件或者子集A與B,如果隨機從Ω中選出的一個元素屬於B,那麼這個隨機選擇的元素還屬於A的概率就定義爲在B的前提下A的條件概率,所以:P(A|B) = |A∩B|/|B|,接着分子、分母都除以|Ω|得到: 

P(A|B)=P(A∩B)P(B)P(A|B)=P(A∩B)P(B)

聯合概率表示兩個事件共同發生的概率。A與B的聯合概率表示爲P(A∩B)P(A∩B)或者P(A,B)P(A,B)。

邊緣概率(又稱先驗概率)是某個事件發生的概率。邊緣概率是這樣得到的:在聯合概率中,把最終結果中那些不需要的事件通過合併成它們的全概率,而消去它們(對離散隨機變量用求和得全概率,對連續隨機變量用積分得全概率),這稱爲邊緣化(marginalization),比如A的邊緣概率表示爲P(A),B的邊緣概率表示爲P(B)。 

接着,考慮一個問題:P(A|B)是在B發生的情況下A發生的可能性。 

1)首先,事件B發生之前,我們對事件A的發生有一個基本的概率判斷,稱爲A的先驗概率,用P(A)表示; 

2)其次,事件B發生之後,我們對事件A的發生概率重新評估,稱爲A的後驗概率,用P(A|B)表示; 

3)類似的,事件A發生之前,我們對事件B的發生有一個基本的概率判斷,稱爲B的先驗概率,用P(B)表示; 

4)同樣,事件A發生之後,我們對事件B的發生概率重新評估,稱爲B的後驗概率,用P(B|A)表示。

貝葉斯定理的公式表達式: 

P(A|B)=P(B|A)P(A)P(B)P(A|B)=P(B|A)P(A)P(B)

35.#include 和#include“filename.h”有什麼區別?

知識點鏈接:#include 和 #include”filename.h”有什麼區別

36.某超市研究銷售紀錄數據後發現,買啤酒的人很大概率也會購買尿布,這種屬於數據挖掘的哪類問題?(A) 

A. 關聯規則發現 B. 聚類 C. 分類 D. 自然語言處理

37.將原始數據進行集成、變換、維度規約、數值規約是在以下哪個步驟的任務?(C) 

A. 頻繁模式挖掘 B. 分類和預測 C. 數據預處理 D. 數據流挖掘

38.下面哪種不屬於數據預處理的方法? (D) 

A變量代換 B離散化 C 聚集 D 估計遺漏值

39.什麼是KDD? (A) 

A. 數據挖掘與知識發現 B. 領域知識發現C. 文檔知識發現 D. 動態知識發現

40.當不知道數據所帶標籤時,可以使用哪種技術促使帶同類標籤的數據與帶其他標籤的數據相分離?(B) 

A. 分類 B. 聚類 C. 關聯分析 D. 隱馬爾可夫鏈

41.建立一個模型,通過這個模型根據已知的變量值來預測其他某個變量值屬於數據挖掘的哪一類任務?(C) 

A. 根據內容檢索 B. 建模描述 

C. 預測建模 D. 尋找模式和規則

42.以下哪種方法不屬於特徵選擇的標準方法?(D) 

A嵌入 B 過濾 C 包裝 D 抽樣

43.請用python編寫函數find_string,從文本中搜索並打印內容,要求支持通配符星號和問號。

find_string('hello\nworld\n','wor')['wor']find_string('hello\nworld\n','l*d')['ld']find_string('hello\nworld\n','o.')['or']答案deffind_string(str,pat):importrereturnre.findall(pat,str,re.I)

1

2

3

4

5

6

7

8

9

10

44.說下紅黑樹的五個性質。

教你初步瞭解紅黑樹

45.簡單說下sigmoid激活函數。

常用的非線性激活函數有sigmoid、tanh、relu等等,前兩者sigmoid/tanh比較常見於全連接層,後者relu常見於卷積層。這裏先簡要介紹下最基礎的sigmoid函數(btw,在本博客中SVM那篇文章開頭有提過)。

Sigmoid的函數表達式如下:

也就是說,Sigmoid函數的功能是相當於把一個實數壓縮至0到1之間。當z是非常大的正數時,g(z)會趨近於1,而z是非常小的負數時,則g(z)會趨近於0。

壓縮至0到1有何用處呢?用處是這樣一來便可以把激活函數看作一種“分類的概率”,比如激活函數的輸出爲0.9的話便可以解釋爲90%的概率爲正樣本。

舉個例子,如下圖(圖引自Stanford機器學習公開課):

46.什麼是卷積?

對圖像(不同的數據窗口數據)和濾波矩陣(一組固定的權重:因爲每個神經元的多個權重固定,所以又可以看做一個恆定的濾波器filter)做內積(逐個元素相乘再求和)的操作就是所謂的『卷積』操作,也是卷積神經網絡的名字來源。 

非嚴格意義上來講,下圖中紅框框起來的部分便可以理解爲一個濾波器,即帶着一組固定權重的神經元。多個濾波器疊加便成了卷積層。

OK,舉個具體的例子。比如下圖中,圖中左邊部分是原始輸入數據,圖中中間部分是濾波器filter,圖中右邊是輸出的新的二維數據。

分解下上圖

47.什麼是CNN的池化pool層?

池化,簡言之,即取區域平均或最大,如下圖所示(圖引自cs231n):

上圖所展示的是取區域最大,即上圖左邊部分中 左上角2x2的矩陣中6最大,右上角2x2的矩陣中8最大,左下角2x2的矩陣中3最大,右下角2x2的矩陣中4最大,所以得到上圖右邊部分的結果:6 8 3 4。很簡單不是?

48.簡述下什麼是生成對抗網絡。

GAN之所以是對抗的,是因爲GAN的內部是競爭關係,一方叫generator,它的主要工作是生成圖片,並且儘量使得其看上去是來自於訓練樣本的。另一方是discriminator,其目標是判斷輸入圖片是否屬於真實訓練樣本。 

更直白的講,將generator想象成假幣製造商,而discriminator是警察。generator目的是儘可能把假幣造的跟真的一樣,從而能夠騙過discriminator,即生成樣本並使它看上去好像來自於真實訓練樣本一樣。

如下圖中的左右兩個場景:

更多請參見此課程:生成對抗網絡

49.學梵高作畫的原理是啥?

這裏有篇如何做梵高風格畫的實驗教程 教你從頭到尾利用DL學梵高作畫:GTX 1070 cuda 8.0 tensorflow gpu版,至於其原理請看這個視頻:NeuralStyle藝術化圖片(學梵高作畫背後的原理)

50.現在有 a 到 z 26 個元素, 編寫程序打印 a 到 z 中任取 3 個元素的組合(比如 打印 a b c ,d y z等)。

一道百度機器學習工程師職位的面試題

51.哪些機器學習算法不需要做歸一化處理?

概率模型不需要歸一化,因爲它們不關心變量的值,而是關心變量的分佈和變量之間的條件概率,如決策樹、RF。而像Adaboost、GBDT、XGBoost、SVM、LR、KNN、KMeans之類的最優化問題就需要歸一化。

52.說說梯度下降法。

@LeftNotEasy

機器學習中的數學(1)-迴歸(regression)、梯度下降(gradient descent)

53.梯度下降法找到的一定是下降最快的方向麼?

梯度下降法並不是下降最快的方向,它只是目標函數在當前的點的切平面(當然高維問題不能叫平面)上下降最快的方向。在Practical Implementation中,牛頓方向(考慮海森矩陣)才一般被認爲是下降最快的方向,可以達到Superlinear的收斂速度。梯度下降類的算法的收斂速度一般是Linear甚至Sublinear的(在某些帶複雜約束的問題)。

知識點鏈接:一文清晰講解機器學習中梯度下降算法(包括其變式算法)

54.牛頓法和梯度下降法有什麼不同?

@wtq1993

知識點鏈接:機器學習中常見的最優化算法

55.什麼是擬牛頓法(Quasi-Newton Methods)?

@wtq1993

機器學習中常見的最優化算法

56.請說說隨機梯度下降法的問題和挑戰?

57.說說共軛梯度法?

@wtq1993

機器學習中常見的最優化算法

58.對所有優化問題來說, 有沒有可能找到比現在已知算法更好的算法?

答案鏈接

59、什麼最小二乘法?

我們口頭中經常說:一般來說,平均來說。如平均來說,不吸菸的健康優於吸菸者,之所以要加“平均”二字,是因爲凡事皆有例外,總存在某個特別的人他吸菸但由於經常鍛鍊所以他的健康狀況可能會優於他身邊不吸菸的朋友。而最小二乘法的一個最簡單的例子便是算術平均。

最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和爲最小。用函數表示爲:

由於算術平均是一個歷經考驗的方法,而以上的推理說明,算術平均是最小二乘的一個特例,所以從另一個角度說明了最小二乘方法的優良性,使我們對最小二乘法更加有信心。

最小二乘法發表之後很快得到了大家的認可接受,並迅速的在數據分析實踐中被廣泛使用。不過歷史上又有人把最小二乘法的發明歸功於高斯,這又是怎麼一回事呢。高斯在1809年也發表了最小二乘法,並且聲稱自己已經使用這個方法多年。高斯發明了小行星定位的數學方法,並在數據分析中使用最小二乘方法進行計算,準確的預測了穀神星的位置。

對了,最小二乘法跟SVM有什麼聯繫呢?請參見支持向量機通俗導論(理解SVM的三層境界)

60、看你T恤上印着:人生苦短,我用Python,你可否說說Python到底是什麼樣的語言?你可以比較其他技術或者語言來回答你的問題。

15個重要Python面試題 測測你適不適合做Python?

61.Python是如何進行內存管理的?

2017 Python最新面試題及答案16道題

62.請寫出一段Python代碼實現刪除一個list裏面的重複元素。

1、使用set函數,set(list); 

2、使用字典函數:

a=[1,2,4,2,4,5,6,5,7,8,9,0]b={}b=b.fromkeys(a)c=list(b.keys())c

1

2

3

4

5

63.編程用sort進行排序,然後從最後一個元素開始判斷。

a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]a.sort()last=a[-1]fori inrange(len(a)-2,-1,-1):iflast==a[i]:dela[i]else:last=a[i]print(a)

1

2

3

4

5

6

7

8

9

64.Python裏面如何生成隨機數?

@Tom_junsong

random模塊

隨機整數:random.randint(a,b):返回隨機整數x,a<=x<=b 

random.randrange(start,stop,[,step]):返回一個範圍在(start,stop,step)之間的隨機整數,不包括結束值。 

隨機實數:random.random( ):返回0到1之間的浮點數 

random.uniform(a,b):返回指定範圍內的浮點數。

65.說說常見的損失函數。

對於給定的輸入X,由f(X)給出相應的輸出Y,這個輸出的預測值f(X)與真實值Y可能一致也可能不一致(要知道,有時損失或誤差是不可避免的),用一個損失函數來度量預測錯誤的程度。損失函數記爲L(Y, f(X))。 

常用的損失函數有以下幾種(基本引用自《統計學習方法》):

 

66.簡單介紹下Logistics迴歸。

Logistic迴歸目的是從特徵學習出一個0/1分類模型,而這個模型是將特性的線性組合作爲自變量,由於自變量的取值範圍是負無窮到正無窮。因此,使用logistic函數(或稱作sigmoid函數)將自變量映射到(0,1)上,映射後的值被認爲是屬於y=1的概率。

假設函數: 

hθ(x)=g(θTx)=11+e−θTxhθ(x)=g(θTx)=11+e−θTx

其中x是n維特徵向量,函數g就是Logistic函數。而:g(z)=11+e−zg(z)=11+e−z的圖像是:

可以看到,將無窮映射到了(0,1)。而假設函數就是特徵屬於y=1的概率。

P(y=1|x;θ)=hθ(x);P(y=0|x;θ)=1−hθ(x)P(y=1|x;θ)=hθ(x);P(y=0|x;θ)=1−hθ(x)

67.看你是搞視覺的,熟悉哪些CV框架,順帶聊聊CV最近五年的發展史如何?

答案解析

68.深度學習在視覺領域有何前沿進展?

@元峯

本題解析來源:深度學習在計算機視覺領域的前沿進展

69.HashMap與HashTable區別?

HashMap與Hashtable的區別

70.在分類問題中,我們經常會遇到正負樣本數據量不等的情況,比如正樣本爲10w條數據,負樣本只有1w條數據,以下最合適的處理方法是( )

A、將負樣本重複10次,生成10w樣本量,打亂順序參與分類 

B、直接進行分類,可以最大限度利用數據 

C、從10w正樣本中隨機抽取1w參與分類 

D、將負樣本每個權重設置爲10,正樣本權重爲1,參與訓練過程

@管博士:準確的說,其實選項中的這些方法各有優缺點,需要具體問題具體分析,有篇文章對各種方法的優缺點進行了分析,講的不錯 感興趣的同學可以參考一下:

How to handle Imbalanced Classification Problems in machine learning?

71.深度學習是當前很熱門的機器學習算法,在深度學習中,涉及到大量的矩陣相乘,現在需要計算三個稠密矩陣A,B,C的乘積ABC,假90設三個矩陣的尺寸分別爲m∗n,n∗p,p∗q,且m

A.(AB)C 

B.AC(B) 

C.A(BC) 

D.所以效率都相同

正確答案:A 

@BlackEyes_SGC: m*n*p

72.Nave Bayes是一種特殊的Bayes分類器,特徵變量是X,類別標籤是C,它的一個假定是:( C )

A.各類別的先驗概率P(C)是相等的 

B.以0爲均值,sqr(2)/2爲標準差的正態分佈 

C.特徵變量X的各個維度是類別條件獨立隨機變量 

D.P(X|C)是高斯分佈

正確答案:C 

@BlackEyes_SGC:樸素貝葉斯的條件就是每個變量相互獨立。

73.關於支持向量機SVM,下列說法錯誤的是(C)

A.L2正則項,作用是最大化分類間隔,使得分類器擁有更強的泛化能力 

B.Hinge 損失函數,作用是最小化經驗分類錯誤 

C.分類間隔爲1||w||1||w||,||w||代表向量的模 

D.當參數C越小時,分類間隔越大,分類錯誤越多,趨於欠學習

正確答案:C 

@BlackEyes_SGC: 

A正確。考慮加入正則化項的原因:想象一個完美的數據集,y>1是正類,y<-1是負類,決策面y=0,加入一個y=-30的正類噪聲樣本,那麼決策面將會變“歪”很多,分類間隔變小,泛化能力減小。加入正則項之後,對噪聲樣本的容錯能力增強,前面提到的例子裏面,決策面就會沒那麼“歪”了,使得分類間隔變大,提高了泛化能力。 

B正確。 

C錯誤。間隔應該是2||w||2||w||纔對,後半句應該沒錯,向量的模通常指的就是其二範數。 

D正確。考慮軟間隔的時候,C對優化問題的影響就在於把a的範圍從[0,+inf]限制到了[0,C]。C越小,那麼a就會越小,目標函數拉格朗日函數導數爲0可以求出w=∑iai∗yi∗xiw=∑iai∗yi∗xi,a變小使得w變小,因此間隔2||w||2||w||變大

74.在HMM中,如果已知觀察序列和產生觀察序列的狀態序列,那麼可用以下哪種方法直接進行參數估計( D )

A.EM算法 

B.維特比算法 

C.前向後向算法 

D.極大似然估計

正確答案:D 

@BlackEyes_SGC: 

EM算法: 只有觀測序列,無狀態序列時來學習模型參數,即Baum-Welch算法 

維特比算法: 用動態規劃解決HMM的預測問題,不是參數估計 

前向後向算法:用來算概率 

極大似然估計:即觀測序列和相應的狀態序列都存在時的監督學習算法,用來估計參數 

注意的是在給定觀測序列和對應的狀態序列估計模型參數,可以利用極大似然發估計。如果給定觀測序列,沒有對應的狀態序列,才用EM,將狀態序列看不不可測的隱數據。

75.假定某同學使用Naive Bayesian(NB)分類模型時,不小心將訓練數據的兩個維度搞重複了,那麼關於NB的說法中正確的是:(BD)

A.這個被重複的特徵在模型中的決定作用會被加強 

B.模型效果相比無重複特徵的情況下精確度會降低 

C.如果所有特徵都被重複一遍,得到的模型預測結果相對於不重複的情況下的模型預測結果一樣。 

D.當兩列特徵高度相關時,無法用兩列特徵相同時所得到的結論來分析問題 

E.NB可以用來做最小二乘迴歸 

F.以上說法都不正確

正確答案:BD 

@BlackEyes_SGC:NB的核心在於它假設向量的所有分量之間是獨立的。在貝葉斯理論系統中,都有一個重要的條件獨立性假設:假設所有特徵之間相互獨立,這樣才能將聯合概率拆分。

76.以下哪些方法不可以直接來對文本分類?(A)

A、Kmeans 

B、決策樹 

C、支持向量機 

D、KNN

正確答案: A分類不同於聚類。 

@BlackEyes_SGC:A:Kmeans是聚類方法,典型的無監督學習方法。分類是監督學習方法,BCD都是常見的分類方法。

77.已知一組數據的協方差矩陣P,下面關於主分量說法錯誤的是( C )

A、主分量分析的最佳準則是對一組數據進行按一組正交基分解, 在只取相同數量分量的條件下,以均方誤差計算截尾誤差最小 

B、在經主分量分解後,協方差矩陣成爲對角矩陣 

C、主分量分析就是K-L變換 

D、主分量是通過求協方差矩陣的特徵值得到

正確答案: C 

@BlackEyes_SGC:K-L變換與PCA變換是不同的概念,PCA的變換矩陣是協方差矩陣,K-L變換的變換矩陣可以有很多種(二階矩陣、協方差矩陣、總類內離散度矩陣等等)。當K-L變換矩陣爲協方差矩陣時,等同於PCA。

78.Kmeans的複雜度?

時間複雜度:O(tKmn),其中,t爲迭代次數,K爲簇的數目,m爲記錄數,n爲維數空間複雜度:O((m+K)n),其中,K爲簇的數目,m爲記錄數,n爲維數。

具體參考:機器學習之深入理解K-means、與KNN算法區別及其代碼實現

79.關於Logit 迴歸和SVM 不正確的是(A)

A. Logit迴歸本質上是一種根據樣本對權值進行極大似然估計的方法,而後驗概率正比於先驗概率和似然函數的乘積。logit僅僅是最大化似然函數,並沒有最大化後驗概率,更談不上最小化後驗概率。A錯誤 

B. Logit迴歸的輸出就是樣本屬於正類別的機率,可以計算出概率,正確 

C. SVM的目標是找到使得訓練數據儘可能分開且分類間隔最大的超平面,應該屬於結構風險最小化。 

D. SVM可以通過正則化係數控制模型的複雜度,避免過擬合。

@BlackEyes_SGC:Logit迴歸目標函數是最小化後驗概率,Logit迴歸可以用於預測事件發生概率的大小,SVM目標是結構風險最小化,SVM可以有效避免模型過擬合。

80.輸入圖片大小爲200×200,依次經過一層卷積(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一層卷積(kernel size 3×3,padding 1,stride 1)之後,輸出特徵圖大小爲:()

正確答案:97

@BlackEyes_SGC:計算尺寸不被整除只在GoogLeNet中遇到過。卷積向下取整,池化向上取整。

本題 (200-5+2*1)/2+1 爲99.5,取99 

(99-3)/1+1 爲97 

(97-3+2*1)/1+1 爲97

研究過網絡的話看到stride爲1的時候,當kernel爲 3 padding爲1或者kernel爲5 padding爲2 一看就是卷積前後尺寸不變。計算GoogLeNet全過程的尺寸也一樣。

81.影響聚類算法結果的主要因素有(BCD ) 

A.已知類別的樣本質量; 

B.分類準則; 

C.特徵選取; 

D.模式相似性測度

82.模式識別中,馬式距離較之於歐式距離的優點是(CD) 

A. 平移不變性; 

B. 旋轉不變性; 

C. 尺度不變性; 

D. 考慮了模式的分佈

83.影響基本K-均值算法的主要因素有(ABD) 

A. 樣本輸入順序; 

B. 模式相似性測度; 

C. 聚類準則; 

D. 初始類中心的選取

84.在統計模式分類問題中,當先驗概率未知時,可以使用(BD) 

A. 最小損失準則; 

B. 最小最大損失準則; 

C. 最小誤判概率準則; 

D. N-P判決

85.如果以特徵向量的相關係數作爲模式相似性測度,則影響聚類算法結果的主要因素有(BC) 

A. 已知類別樣本質量; 

B. 分類準則; 

C. 特徵選取; 

D. 量綱

86.歐式距離具有(AB );馬式距離具有(ABCD )。 

A. 平移不變性; 

B. 旋轉不變性; 

C. 尺度縮放不變性; 

D. 不受量綱影響的特性

87.你有哪些Deep Learning(RNN,CNN)調參的經驗?

答案解析,來自知乎

88.簡單說說RNN的原理。

我們升學到高三準備高考時,此時的知識是由高二及高二之前所學的知識加上高三所學的知識合成得來,即我們的知識是由前序鋪墊,是有記憶的,好比當電影字幕上出現:“我是”時,你會很自然的聯想到:“我是中國人”。

89.什麼是RNN?

@一隻鳥的天空,本題解析來源:

循環神經網絡(RNN, Recurrent Neural Networks)介紹

90.RNN是怎麼從單層網絡一步一步構造的的?

@何之源,本題解析來源:

完全圖解RNN、RNN變體、Seq2Seq、Attention機制

101.深度學習(CNN RNN Attention)解決大規模文本分類問題。

用深度學習(CNN RNN Attention)解決大規模文本分類問題 - 綜述和實踐

102.如何解決RNN梯度爆炸和彌散的問題的?

深度學習與自然語言處理(7)_斯坦福cs224d 語言模型,RNN,LSTM與GRU

103.如何提高深度學習的性能?

機器學習系列(10)_如何提高深度學習(和機器學習)的性能

104.RNN、LSTM、GRU區別?

@我愛大泡泡,本題解析來源:

面試筆試整理3:深度學習機器學習面試問題準備(必會)

105.當機器學習性能遭遇瓶頸時,你會如何優化的?

可以從這4個方面進行嘗試:基於數據、藉助算法、用算法調參、藉助模型融合。當然能談多細多深入就看你的經驗心得了。

這裏有一份參考清單:機器學習系列(20)_機器學習性能改善備忘單

106.做過什麼樣的機器學習項目?比如如何從零構建一個推薦系統?

推薦系統的公開課http://www.julyedu.com/video/play/18/148,另,再推薦一個課程:機器學習項目班 [10次純項目講解,100%純實戰](https://www.julyedu.com/course/getDetail/48)。

107.什麼樣的資料集不適合用深度學習?

@抽象猴,來源:

知乎解答

108.廣義線性模型是怎被應用在深度學習中?

@許韓,來源:

知乎解答

109.準備機器學習面試應該瞭解哪些理論知識?

知乎解答

110.標準化與歸一化的區別?

簡單來說,標準化是依照特徵矩陣的列處理數據,其通過求z-score的方法,將樣本的特徵值轉換到同一量綱下。歸一化是依照特徵矩陣的行處理數據,其目的在於樣本向量在點乘運算或其他核函數計算相似性時,擁有統一的標準,也就是說都轉化爲“單位向量”。規則爲L2的歸一化公式如下:

特徵向量的缺失值處理:

1.缺失值較多.直接將該特徵捨棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。 

2.缺失值較少,其餘的特徵缺失值都在10%以內,我們可以採取很多的方式來處理:

1) 把NaN直接作爲一個特徵,假設用0表示; 

2) 用均值填充; 

3) 用隨機森林等算法預測填充

111.隨機森林如何處理缺失值。

方法一(na.roughfix)簡單粗暴,對於訓練集,同一個class下的數據,如果是分類變量缺失,用衆數補上,如果是連續型變量缺失,用中位數補。 

方法二(rfImpute)這個方法計算量大,至於比方法一好壞?不好判斷。先用na.roughfix補上缺失值,然後構建森林並計算proximity matrix,再回頭看缺失值,如果是分類變量,則用沒有陣進行加權平均的方法補缺失值。然後迭代4-6次,這個補缺失值的思想和KNN有些類似1缺失的觀測實例的proximity中的權重進行投票。如果是連續型變量,則用proximity矩2。

112.隨機森林如何評估特徵重要性。

衡量變量重要性的方法有兩種,Decrease GINI 和 Decrease Accuracy: 

1) Decrease GINI: 對於迴歸問題,直接使用argmax(VarVarLeftVarRight)作爲評判標準,即當前節點訓練集的方差Var減去左節點的方差VarLeft和右節點的方差VarRight。 

2) Decrease Accuracy:對於一棵樹Tb(x),我們用OOB樣本可以得到測試誤差1;然後隨機改變OOB樣本的第j列:保持其他列不變,對第j列進行隨機的上下置換,得到誤差2。至此,我們可以用誤差1-誤差2來刻畫變量j的重要性。基本思想就是,如果一個變量j足夠重要,那麼改變它會極大的增加測試誤差;反之,如果改變它測試誤差沒有增大,則說明該變量不是那麼的重要。

113.優化Kmeans。

使用Kd樹或者Ball Tree 

將所有的觀測實例構建成一顆kd樹,之前每個聚類中心都是需要和每個觀測點做依次距離計算,現在這些聚類中心根據kd樹只需要計算附近的一個局部區域即可。

114.KMeans初始類簇中心點的選取。

K-means++算法選擇初始seeds的基本思想就是:初始的聚類中心之間的相互距離要儘可能的遠。

1.從輸入的數據點集合中隨機選擇一個點作爲第一個聚類中心 

2.對於數據集中的每一個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離D(x) 

3.選擇一個新的數據點作爲新的聚類中心,選擇的原則是:D(x)較大的點,被選取作爲聚類中心的概率較大 

4.重複2和3直到k個聚類中心被選出來 

5.利用這k個初始的聚類中心來運行標準的k-means算法

115.解釋對偶的概念。

一個優化問題可以從兩個角度進行考察,一個是primal 問題,一個是dual 問題,就是對偶問題,一般情況下對偶問題給出主問題最優值的下界,在強對偶性成立的情況下由對偶問題可以得到主問題的最優下界,對偶問題是凸優化問題,可以進行較好的求解,SVM中就是將Primal問題轉換爲dual問題進行求解,從而進一步引入核函數的思想。

116.如何進行特徵選擇?

特徵選擇是一個重要的數據預處理過程,主要有兩個原因:一是減少特徵數量、降維,使模型泛化能力更強,減少過擬合;二是增強對特徵和特徵值之間的理解。

常見的特徵選擇方式: 

1.去除方差較小的特徵。 

2.正則化。1正則化能夠生成稀疏的模型。L2正則化的表現更加穩定,由於有用的特徵往往對應係數非零。 

3.隨機森林,對於分類問題,通常採用基尼不純度或者信息增益,對於迴歸問題,通常採用的是方差或者最小二乘擬合。一般不需要feature engineering、調參等繁瑣的步驟。它的兩個主要問題,1是重要的特徵有可能得分很低(關聯特徵問題),2是這種方法對特徵變量類別多的特徵越有利(偏向問題)。 

4.穩定性選擇。是一種基於二次抽樣和選擇算法相結合較新的方法,選擇算法可以是迴歸、SVM或其他類似的方法。它的主要思想是在不同的數據子集和特徵子集上運行特徵選擇算法,不斷的重複,最終彙總特徵選擇結果,比如可以統計某個特徵被認爲是重要特徵的頻率(被選爲重要特徵的次數除以它所在的子集被測試的次數)。理想情況下,重要特徵的得分會接近100%。稍微弱一點的特徵得分會是非0的數,而最無用的特徵得分將會接近於0。

117.數據預處理。

1.缺失值,填充缺失值fillna: 

i. 離散:None, 

ii. 連續:均值。 

iii. 缺失值太多,則直接去除該列 

2.連續值:離散化。有的模型(如決策樹)需要離散值 

3.對定量特徵二值化。核心在於設定一個閾值,大於閾值的賦值爲1,小於等於閾值的賦值爲0。如圖像操作 

4.皮爾遜相關係數,去除高度相關的列

118.簡單說說特徵工程。

119.你知道有哪些數據處理和特徵工程的處理?

120.請對比下Sigmoid、Tanh、ReLu這三個激活函數?

121.Sigmoid、Tanh、ReLu這三個激活函數有什麼缺點或不足,有沒改進的激活函數?

@我愛大泡泡,來源:

面試筆試整理3:深度學習機器學習面試問題準備(必會)

122.怎麼理解決策樹、xgboost能處理缺失值?而有的模型(svm)對缺失值比較敏感?

知乎解答

123.爲什麼引入非線性激勵函數?

@Begin Again,來源:

知乎解答

如果不用激勵函數(其實相當於激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。

正因爲上面的原因,我們決定引入非線性函數作爲激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。最早的想法是Sigmoid函數或者Tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋)。

124.請問人工神經網絡中爲什麼ReLu要好過於Tanh和Sigmoid function?

@Begin Again,來源:

知乎解答

125.爲什麼LSTM模型中既存在Sigmoid又存在Tanh兩種激活函數?

本題解析來源:知乎解答

@beanfrog:二者目的不一樣:sigmoid 用在了各種gate上,產生0~1之間的值,這個一般只有sigmoid最直接了。tanh 用在了狀態和輸出上,是對數據的處理,這個用其他激活函數或許也可以。

@hhhh:另可參見A Critical Review of Recurrent Neural Networks for Sequence Learning的section4.1,說了那兩個tanh都可以替換成別的。

126.衡量分類器的好壞。

@我愛大泡泡,來源:

答案解析

這裏首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四種(可以畫一個表格)。

幾種常用的指標:

精度precision = TP/(TP+FP) = TP/~P (~p爲預測爲真的數量) 

召回率 recall = TP/(TP+FN) = TP/ P 

F1值: 2/F1 = 1/recall + 1/precision 

ROC曲線:ROC空間是一個以僞陽性率(FPR,false positive rate)爲X軸,真陽性率(TPR, true positive rate)爲Y軸的二維座標系所代表的平面。其中真陽率TPR = TP / P = recall, 僞陽率FPR = FP / N

127.機器學習和統計裏面的auc的物理意義是什麼?

詳情參見機器學習和統計裏面的auc怎麼理解?

128.觀察增益gain, alpha和gamma越大,增益越小?

@AntZ:XGBoost尋找分割點的標準是最大化gain. 考慮傳統的枚舉每個特徵的所有可能分割點的貪心法效率太低,XGBoost實現了一種近似的算法。大致的思想是根據百分位法列舉幾個可能成爲分割點的候選者,然後從候選者中計算Gain按最大值找出最佳的分割點。它的計算公式分爲四項, 可以由正則化項參數調整(lamda爲葉子權重平方和的係數, gama爲葉子數量):

第一項是假設分割的左孩子的權重分數, 第二項爲右孩子, 第三項爲不分割總體分數, 最後一項爲引入一個節點的複雜度損失。

由公式可知, gama越大gain越小, lamda越大, gain可能小也可能大。

原問題是alpha而不是lambda, 這裏paper上沒有提到, XGBoost實現上有這個參數. 上面是我從paper上理解的答案,下面是搜索到的:

如何對XGBoost模型進行參數調優

129.什麼造成梯度消失問題? 推導一下。 

 

@許韓,來源:

神經網絡的訓練中,通過改變神經元的權重,使網絡的輸出值儘可能逼近標籤以降低誤差值,訓練普遍使用BP算法,核心思想是,計算出輸出與標籤間的損失函數值,然後計算其相對於每個神經元的梯度,進行權值的迭代。

梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多激活函數將輸出值擠壓在很小的區間內,在激活函數兩端較大範圍的定義域內梯度爲0,造成學習停止。

130.什麼是梯度消失和梯度爆炸?

@寒小陽,反向傳播中鏈式法則帶來的連乘,如果有數很小趨於0,結果就會特別小(梯度消失);如果數都比較大,可能結果會很大(梯度爆炸)。

@單車

神經網絡訓練中的梯度消失與梯度爆炸

131.如何解決梯度消失和梯度膨脹?

(1)梯度消失: 

根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小於1的話,那麼即使這個結果是0.99,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於0,可以採用ReLU激活函數有效的解決梯度消失的情況。 

(2)梯度膨脹 

根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大於1的話,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於無窮大,可以通過激活函數來解決。

132.推導下反向傳播Backpropagation。

@我愛大泡泡,來源:

推導過程

133.SVD和PCA。

PCA的理念是使得數據投影后的方差最大,找到這樣一個投影向量,滿足方差最大的條件即可。而經過了去除均值的操作之後,就可以用SVD分解來求解這樣一個投影向量,選擇特徵值最大的方向。

134.數據不平衡問題。

這主要是由於數據分佈不平衡造成的。解決方法如下:

1)採樣,對小樣本加噪聲採樣,對大樣本進行下采樣 

2)進行特殊的加權,如在Adaboost中或者SVM中 

3)採用對不平衡數據集不敏感的算法 

4)改變評價標準:用AUC/ROC來進行評價 

5)採用Bagging/Boosting/Ensemble等方法 

6)考慮數據的先驗分佈

135.簡述神經網絡的發展。

MP模型+sgn—->單層感知機(只能線性)+sgn— Minsky 低谷 —>多層感知機+BP+Sigmoid— (低谷) —>深度學習+Pretraining+ReLU/Sigmoid

136.深度學習常用方法。

@SmallisBig,來源:

機器學習崗位面試問題彙總 之 深度學習

137.神經網絡模型(Neural Network)因受人類大腦的啓發而得名。神經網絡由許多神經元(Neuron)組成,每個神經元接受一個輸入,對輸入進行處理後給出一個輸出。請問下列關於神經元的描述中,哪一項是正確的?(E)

A.每個神經元只有一個輸入和一個輸出 

B.每個神經元有多個輸入和一個輸出 

C.每個神經元有一個輸入和多個輸出 

D.每個神經元有多個輸入和多個輸出 

E.上述都正確

答案:(E) 

每個神經元可以有一個或多個輸入,和一個或多個輸出

138.下圖是一個神經元的數學表示,

139.在一個神經網絡中,知道每一個神經元的權重和偏差是最重要的一步。如果知道了神經元準確的權重和偏差,便可以近似任何函數,但怎麼獲知每個神經的權重和偏移呢?(C)

A. 搜索每個可能的權重和偏差組合,直到得到最佳值 

B. 賦予一個初始值,然後檢查跟最佳值的差值,不斷迭代調整權重 

C. 隨機賦值,聽天由命 

D. 以上都不正確的

答案:(C) 

選項C是對梯度下降的描述。

140.梯度下降算法的正確步驟是什麼?( D)

1.計算預測值和真實值之間的誤差 

2.重複迭代,直至得到網絡權重的最佳值 

3.把輸入傳入網絡,得到輸出值 

4.用隨機值初始化權重和偏差 

5.對每一個產生誤差的神經元,調整相應的(權重)值以減小誤差

A. 1, 2, 3, 4, 5 

B. 5, 4, 3, 2, 1 

C. 3, 2, 1, 5, 4 

D. 4, 3, 1, 5, 2

答案:(D)

141.已知: 

- 大腦是有很多個叫做神經元的東西構成,神經網絡是對大腦的簡單的數學表達。 

- 每一個神經元都有輸入、處理函數和輸出。 

- 神經元組合起來形成了網絡,可以擬合任何函數。 

- 爲了得到最佳的神經網絡,我們用梯度下降方法不斷更新模型 

給定上述關於神經網絡的描述,什麼情況下神經網絡模型被稱爲深度學習模型?

A. 加入更多層,使神經網絡的深度增加 

B. 有維度更高的數據 

C. 當這是一個圖形識別的問題時 

D. 以上都不正確

答案:(A) 

更多層意味着網絡更深。沒有嚴格的定義多少層的模型才叫深度模型,目前如果有超過2層的隱層,那麼也可以及叫做深度模型。

142.卷積神經網絡可以對一個輸入進行多種變換(旋轉、平移、縮放),這個表述正確嗎?

答案:錯誤 

把數據傳入神經網絡之前需要做一系列數據預處理(也就是旋轉、平移、縮放)工作,神經網絡本身不能完成這些變換。

143.下面哪項操作能實現跟神經網絡中Dropout的類似效果?(B)

A. Boosting 

B. Bagging 

C. Stacking 

D. Mapping 

 

答案:B 

Dropout可以認爲是一種極端的Bagging,每一個模型都在單獨的數據上訓練,同時,通過和其他模型對應參數的共享,從而實現模型參數的高度正則化。

144.下列哪一項在神經網絡中引入了非線性?(B)

A. 隨機梯度下降 

B. 修正線性單元(ReLU) 

C. 卷積函數 

D .以上都不正確

答案:(B) 

修正線性單元是非線性的激活函數。

145.在訓練神經網絡時,損失函數(loss)在最初的幾個epochs時沒有下降,可能的原因是?(A)

A. 學習率(learning rate)太低 

B. 正則參數太高 

C. 陷入局部最小值 

D. 以上都有可能

答案:(A)

146.下列哪項關於模型能力(model capacity)的描述是正確的?(指神經網絡模型能擬合複雜函數的能力)(A)

A. 隱藏層層數增加,模型能力增加 

B. Dropout的比例增加,模型能力增加 

C. 學習率增加,模型能力增加 

D. 都不正確

答案:(A)

147.如果增加多層感知機(Multilayer Perceptron)的隱藏層層數,分類誤差便會減小。這種陳述正確還是錯誤?

答案:錯誤 

並不總是正確。過擬合可能會導致錯誤增加。

148.構建一個神經網絡,將前一層的輸出和它自身作爲輸入。下列哪一種架構有反饋連接?(A)

A. 循環神經網絡 

B. 卷積神經網絡 

C. 限制玻爾茲曼機 

D. 都不是

答案:(A)

149.下列哪一項在神經網絡中引入了非線性?在感知機中(Perceptron)的任務順序是什麼?

1.隨機初始化感知機的權重 

2.去到數據集的下一批(batch) 

3.如果預測值和輸出不一致,則調整權重 

4.對一個輸入樣本,計算輸出值

答案:1 - 4 - 3 - 2

150.假設你需要調整參數來最小化代價函數(cost function),可以使用下列哪項技術?(D)

A. 窮舉搜索 

B. 隨機搜索 

C. Bayesian優化 

D. 以上任意一種

答案:(D)

151.在下面哪種情況下,一階梯度下降不一定正確工作(可能會卡住)?(B)

答案:(B)

這是鞍點(Saddle Point)的梯度下降的經典例子。另,本題來源於:題目來源

152.下圖顯示了訓練過的3層卷積神經網絡準確度,與參數數量(特徵核的數量)的關係。

從圖中趨勢可見,如果增加神經網絡的寬度,精確度會增加到一個特定閾值後,便開始降低。造成這一現象的可能原因是什麼?(C)

A. 即使增加捲積核的數量,只有少部分的核會被用作預測 

B. 當卷積核數量增加時,神經網絡的預測能力(Power)會降低 

C. 當卷積核數量增加時,它們之間的相關性增加(correlate),導致過擬合 

D. 以上都不正確

答案:(C) 

如C選項指出的那樣,可能的原因是核之間的相關性。

153.假設我們有一個如下圖所示的隱藏層。隱藏層在這個網絡中起到了一定的降維作用。假如現在我們用另一種維度下降的方法,比如說主成分分析法(PCA)來替代這個隱藏層。那麼,這兩者的輸出效果是一樣的嗎?

答案:不同,因爲PCA用於相關特徵而隱層用於有預測能力的特徵。

154.神經網絡能組成函數(y=1xy=1x)嗎?

答案:可以,因爲激活函數可以是互反函數。

155.下列哪個神經網絡結構會發生權重共享?(D)

A. 卷積神經網絡 

B. 循環神經網絡 

C. 全連接神經網絡 

D. 選項A和B 

 

答案:(D)

156.批規範化(Batch Normalization)的好處都有啥?(A)

A. 在將所有的輸入傳遞到下一層之前對其進行歸一化(更改) 

B. 它將權重的歸一化平均值和標準差 

C. 它是一種非常有效的反向傳播(BP)方法 

D. 這些均不是

答案:(A)

157.在一個神經網絡中,下面哪種方法可以用來處理過擬合?(D) 

 

A. Dropout 

B. 分批歸一化(Batch Normalization) 

C. 正則化(regularization) 

D. 都可以

答案:(D)

158.如果我們用了一個過大的學習速率會發生什麼?(D) 

 

A. 神經網絡會收斂 

B. 不好說 

C. 都不對 

D. 神經網絡不會收斂

答案:(D)

159.下圖所示的網絡用於訓練識別字符H和T,如下所示:

網絡的輸出是什麼?(D)

D.可能是A或B,取決於神經網絡的權重設置

答案:(D) 

不知道神經網絡的權重和偏差是什麼,則無法判定它將會給出什麼樣的輸出。

160.假設我們已經在ImageNet數據集(物體識別)上訓練好了一個卷積神經網絡。然後給這張卷積神經網絡輸入一張全白的圖片。對於這個輸入的輸出結果爲任何種類的物體的可能性都是一樣的,對嗎?(D)

A. 對的 

B. 不知道 

C. 看情況 

D. 不對

答案:(D)各個神經元的反應是不一樣的 

161.當在卷積神經網絡中加入池化層(pooling layer)時,變換的不變性會被保留,是嗎?(C)

A. 不知道 

B. 看情況 

C. 是 

D. 否

答案:(C)使用池化時會導致出現不變性。

162.當數據過大以至於無法在RAM中同時處理時,哪種梯度下降方法更加有效?(A)

A. 隨機梯度下降法(Stochastic Gradient Descent) 

B. 不知道 

C. 整批梯度下降法(Full Batch Gradient Descent) 

D. 都不是

答案:(A)

163.下圖是一個利用sigmoid函數作爲激活函數的含四個隱藏層的神經網絡訓練的梯度下降圖。這個神經網絡遇到了梯度消失的問題。下面哪個敘述是正確的?(A)

A. 第一隱藏層對應D,第二隱藏層對應C,第三隱藏層對應B,第四隱藏層對應A 

B. 第一隱藏層對應A,第二隱藏層對應C,第三隱藏層對應B,第四隱藏層對應D 

C. 第一隱藏層對應A,第二隱藏層對應B,第三隱藏層對應C,第四隱藏層對應D 

D. 第一隱藏層對應B,第二隱藏層對應D,第三隱藏層對應C,第四隱藏層對應A

答案:(A)由於反向傳播算法進入起始層,學習能力降低,這就是梯度消失。

164.對於一個分類任務,如果開始時神經網絡的權重不是隨機賦值的,二是都設成0,下面哪個敘述是正確的?(C)

A. 其他選項都不對 

B. 沒啥問題,神經網絡會正常開始訓練 

C. 神經網絡可以訓練,但是所有的神經元最後都會變成識別同樣的東西 

D. 神經網絡不會開始訓練,因爲沒有梯度改變

答案:(C)

165.下圖顯示,當開始訓練時,誤差一直很高,這是因爲神經網絡在往全局最小值前進之前一直被卡在局部最小值裏。爲了避免這種情況,我們可以採取下面哪種策略?(A)

A. 改變學習速率,比如一開始的幾個訓練週期不斷更改學習速率 

B. 一開始將學習速率減小10倍,然後用動量項(momentum) 

C. 增加參數數目,這樣神經網絡就不會卡在局部最優處 

D. 其他都不對

答案:(A) 

選項A可以將陷於局部最小值的神經網絡提取出來。

166.對於一個圖像識別問題(在一張照片裏找出一隻貓),下面哪種神經網絡可以更好地解決這個問題?(D)

A. 循環神經網絡 

B. 感知機 

C. 多層感知機 

D. 卷積神經網絡

卷積神經網絡將更好地適用於圖像相關問題,因爲考慮到圖像附近位置變化的固有性質。

答案:(D)

167.假設在訓練中我們突然遇到了一個問題,在幾次循環之後,誤差瞬間降低。你認爲數據有問題,於是你畫出了數據並且發現也許是數據的偏度過大造成了這個問題。

你打算怎麼做來處理這個問題?(D)

A. 對數據作歸一化 

B. 對數據取對數變化 

C. 都不對 

D. 對數據作主成分分析(PCA)和歸一化

答案:(D) 

首先將相關的數據去掉,然後將其置零。

168.下面那個決策邊界是神經網絡生成的?(E)

A. A 

B. D 

C. C 

D. B 

E. 以上都有

答案:(E)

169.在下圖中,我們可以觀察到誤差出現了許多小的”漲落”。 這種情況我們應該擔心嗎?(B)

A. 需要,這也許意味着神經網絡的學習速率存在問題 

B. 不需要,只要在訓練集和交叉驗證集上有累積的下降就可以了 

C. 不知道 

D. 不好說

答案:(B) 

選項B是正確的,爲了減少這些“起伏”,可以嘗試增加批尺寸(batch size)。

170.在選擇神經網絡的深度時,下面那些參數需要考慮?(C)

1 神經網絡的類型(如MLP,CNN) 

2 輸入數據 

3 計算能力(硬件和軟件能力決定) 

4 學習速率 

5 映射的輸出函數

A. 1,2,4,5 

B. 2,3,4,5 

C. 都需要考慮 

D. 1,3,4,5

答案:(C) 

所有上述因素對於選擇神經網絡模型的深度都是重要的。

171.考慮某個具體問題時,你可能只有少量數據來解決這個問題。不過幸運的是你有一個類似問題已經預先訓練好的神經網絡。可以用下面哪種方法來利用這個預先訓練好的網絡?(C)

A. 把除了最後一層外所有的層都凍住,重新訓練最後一層 

B. 對新數據重新訓練整個模型 

C. 只對最後幾層進行調參(fine tune) 

D. 對每一層模型進行評估,選擇其中的少數來用

答案:(C)

172.增加捲積核的大小對於改進卷積神經網絡的效果是必要的嗎?

答案:不是,增加核函數的大小不一定會提高性能。這個問題在很大程度上取決於數據集。

173.請簡述神經網絡的發展史。

@SIY.Z。本題解析來源:

淺析 Hinton 最近提出的 Capsule 計劃

174.說說spark的性能調優。

https://tech.meituan.com/spark-tuning-basic.html 

https://tech.meituan.com/spark-tuning-pro.html

175.機器學習中,有哪些特徵選擇的工程方法?

數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已

1.計算每一個特徵與響應變量的相關性:工程上常用的手段有計算皮爾遜係數和互信息係數,皮爾遜係數只能衡量線性相關性而互信息係數能夠很好地度量各種相關性,但是計算相對複雜一些,好在很多toolkit裏邊都包含了這個工具(如sklearn的MINE),得到相關性之後就可以排序選擇特徵了; 

2.構建單個特徵的模型,通過模型的準確性爲特徵排序,藉此來選擇特徵; 

3.通過L1正則項來選擇特徵:L1正則方法具有稀疏解的特性,因此天然具備特徵選擇的特性,但是要注意,L1沒有選到的特徵不代表不重要,原因是兩個具有高相關性的特徵可能只保留了一個,如果要確定哪個特徵重要應再通過L2正則方法交叉檢驗*; 

4.訓練能夠對特徵打分的預選模型:RandomForest和Logistic Regression等都能對模型的特徵打分,通過打分獲得相關性後再訓練最終模型; 

5.通過特徵組合後再來選擇特徵:如對用戶id和用戶特徵最組合來獲得較大的特徵集再來選擇特徵,這種做法在推薦系統和廣告系統中比較常見,這也是所謂億級甚至十億級特徵的主要來源,原因是用戶數據比較稀疏,組合特徵能夠同時兼顧全局模型和個性化模型,這個問題有機會可以展開講。 

6.通過深度學習來進行特徵選擇:目前這種手段正在隨着深度學習的流行而成爲一種手段,尤其是在計算機視覺領域,原因是深度學習具有自動學習特徵的能力,這也是深度學習又叫unsupervised feature learning的原因。從深度學習模型中選擇某一神經層的特徵後就可以用來進行最終目標模型的訓練了。

176.常見的分類算法有哪些?

SVM、神經網絡、隨機森林、邏輯迴歸、KNN、貝葉斯

177.常見的監督學習算法有哪些?

感知機、SVM、人工神經網絡、決策樹、邏輯迴歸

178.在其他條件不變的前提下,以下哪種做法容易引起機器學習中的過擬合問題(D)

A. 增加訓練集量 

B. 減少神經網絡隱藏層節點數 

C. 刪除稀疏的特徵 

D. SVM算法中使用高斯核/RBF核代替線性核

正確答案:(D)

@劉炫320

一般情況下,越複雜的系統,過擬合的可能性就越高,一般模型相對簡單的話泛化能力會更好一點。

B.一般認爲,增加隱層數可以降低網絡誤差(也有文獻認爲不一定能有效降低),提高精度,但也使網絡複雜化,從而增加了網絡的訓練時間和出現“過擬合”的傾向, svm高斯核函數比線性核函數模型更復雜,容易過擬合

D.徑向基(RBF)核函數/高斯核函數的說明,這個核函數可以將原始空間映射到無窮維空間。對於參數 ,如果選的很大,高次特徵上的權重實際上衰減得非常快,實際上(數值上近似一下)相當於一個低維的子空間;反過來,如果選得很小,則可以將任意的數據映射爲線性可分——當然,這並不一定是好事,因爲隨之而來的可能是非常嚴重的過擬合問題。不過,總的來說,通過調整參數 ,高斯覈實際上具有相當高的靈活性,也是 使用最廣泛的核函數之一。

179.下列時間序列模型中,哪一個模型可以較好地擬合波動性的分析和預測?(D)

A. AR模型 

B. MA模型 

C. ARMA模型 

D. GARCH模型

正確答案:(D)

@劉炫320

R模型是一種線性預測,即已知N個數據,可由模型推出第N點前面或後面的數據(設推出P點),所以其本質類似於插值。

MA模型(moving average model)滑動平均模型,其中使用趨勢移動平均法建立直線趨勢的預測模型。

ARMA模型(auto regressive moving average model)自迴歸滑動平均模型,模型參量法高分辨率譜分析方法之一。這種方法是研究平穩隨機過程有理譜的典型方法。它比AR模型法與MA模型法有較精確的譜估計及較優良的譜分辨率性能,但其參數估算比較繁瑣。

GARCH模型稱爲廣義ARCH模型,是ARCH模型的拓展,由Bollerslev(1986)發展起來的。它是ARCH模型的推廣。GARCH(p,0)模型,相當於ARCH(p)模型。GARCH模型是一個專門針對金融數據所量體訂做的迴歸模型,除去和普通迴歸模型相同的之處,GARCH對誤差的方差進行了進一步的建模。特別適用於波動性的分析和預測,這樣的分析對投資者的決策能起到非常重要的指導性作用,其意義很多時候超過了對數值本身的分析和預測。

180.以下哪個屬於線性分類器最佳準則?(ACD)

A. 感知準則函數 

B.貝葉斯分類 

C.支持向量機 

D.Fisher準則

正確答案:(ACD)

@劉炫320

線性分類器有三大類:感知器準則函數、SVM、Fisher準則,而貝葉斯分類器不是線性分類器。

感知準則函數 :準則函數以使錯分類樣本到分界面距離之和最小爲原則。其優點是通過錯分類樣本提供的信息對分類器函數進行修正,這種準則是人工神經元網絡多層感知器的基礎。

支持向量機 :基本思想是在兩類線性可分條件下,所設計的分類器界面使兩類之間的間隔爲最大,它的基本出發點是使期望泛化風險儘可能小。(使用核函數可解決非線性問題)

Fisher 準則 :更廣泛的稱呼是線性判別分析(LDA),將所有樣本投影到一條遠點出發的直線,使得同類樣本距離儘可能小,不同類樣本距離儘可能大,具體爲最大化“廣義瑞利商”。

根據兩類樣本一般類內密集,類間分離的特點,尋找線性分類器最佳的法線向量方向,使兩類樣本在該方向上的投影滿足類內儘可能密集,類間儘可能分開。這種度量通過類內離散矩陣SwSw和類間離散矩陣SbSb實現。

181.基於二次準則函數的H-K算法較之於感知器算法的優點是(BD)?

A. 計算量小 

B. 可以判別問題是否線性可分 

C. 其解完全適用於非線性可分的情況 

D. 其解的適應性更好

正確答案:(BD)

@劉炫320

HK算法思想很樸實,就是在最小均方誤差準則下求得權矢量。 

他相對於感知器算法的優點在於,他適用於線性可分和非線性可分得情況,對於線性可分的情況,給出最優權矢量,對於非線性可分得情況,能夠判別出來,以退出迭代過程。

182.以下說法中正確的是(BD)?

A. SVM對噪聲(如來自其他分佈的噪聲樣本)魯棒 

B. 在AdaBoost算法中,所有被分錯的樣本的權重更新比例相同 

C. Boosting和Bagging都是組合多個分類器投票的方法,二者都是根據單個分類器的正確率決定其權重 

D. 給定n個數據點,如果其中一半用於訓練,一般用於測試,則訓練誤差和測試誤差之間的差別會隨着n的增加而減少

正確答案:(BD)

@劉炫320

A、SVM對噪聲(如來自其他分佈的噪聲樣本)魯棒 

SVM本身對噪聲具有一定的魯棒性,但實驗證明,是當噪聲率低於一定水平的噪聲對SVM沒有太大影響,但隨着噪聲率的不斷增加,分類器的識別率會降低。 

B、在AdaBoost算法中所有被分錯的樣本的權重更新比例相同 

AdaBoost算法中不同的訓練集是通過調整每個樣本對應的權重來實現的。開始時,每個樣本對應的權重是相同的,即其中n爲樣本個數,在此樣本分佈下訓練出一弱分類器。對於分類錯誤的樣本,加大其對應的權重;而對於分類正確的樣本,降低其權重,這樣分錯的樣本就被凸顯出來,從而得到一個新的樣本分佈。在新的樣本分佈下,再次對樣本進行訓練,得到弱分類器。以此類推,將所有的弱分類器重疊加起來,得到強分類器。 

C、Boost和Bagging都是組合多個分類器投票的方法,二者均是根據單個分類器的正確率決定其權重。 

Bagging與Boosting的區別: 

取樣方式不同。 

Bagging採用均勻取樣,而Boosting根據錯誤率取樣。 

Bagging的各個預測函數沒有權重,而Boosting是有權重的。 

Bagging的各個預測函數可以並行生成,而Boosing的各個預測函數只能順序生成。

183.輸入圖片大小爲200×200,依次經過一層卷積(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一層卷積(kernel size 3×3,padding 1,stride 1)之後,輸出特徵圖大小爲(C):

A. 95 

B. 96 

C. 97 

D. 98

正確答案:(C)

@劉炫320

首先我們應該知道卷積或者池化後大小的計算公式: 

out_height=((input_height - filter_height + padding_top+padding_bottom)/stride_height )+1 

out_width=((input_width - filter_width + padding_left+padding_right)/stride_width )+1

其中,padding指的是向外擴展的邊緣大小,而stride則是步長,即每次移動的長度。

這樣一來就容易多了,首先長寬一般大,所以我們只需要計算一個維度即可,這樣,經過第一次卷積後的大小爲: (200-5+2)/2+1,取99;經過第一次池化後的大小爲:(99-3)/1+1 爲97;經過第二次卷積後的大小爲: (97-3+2)/1+1 爲97。

184.在SPSS的基礎分析模塊中,作用是“以行列表的形式揭示數據之間的關係”的是(C)

A. 數據描述 

B. 相關 

C. 交叉表 

D. 多重相應

正確答案:(C )

185.一監獄人臉識別准入系統用來識別待進入人員的身份,此係統一共包括識別4種不同的人員:獄警,小偷,送餐員,其他。下面哪種學習方法最適合此種應用需求:(B)。

A. 二分類問題 

B. 多分類問題 

C. 層次聚類問題 

D. k-中心點聚類問題 

E. 迴歸問題 

F. 結構分析問題 

 

正確答案:(B)

@劉炫320

二分類:每個分類器只能把樣本分爲兩類。監獄裏的樣本分別爲獄警、小偷、送餐員、其他。二分類肯 定行不通。瓦普尼克95年提出來基礎的支持向量機就是個二分類的分類器,這個分類器學習過 程就是解一個基於正負二分類推導而來的一個最優規劃問題(對偶問題),要解決多分類問題 就要用決策樹把二分類的分類器級聯,VC維的概念就是說的這事的複雜度。 

層次聚類: 創建一個層次等級以分解給定的數據集。監獄裏的對象分別是獄警、小偷、送餐員、或者其 他,他們等級應該是平等的,所以不行。此方法分爲自上而下(分解)和自下而上(合併)兩種操作方式。 

K-中心點聚類:挑選實際對象來代表簇,每個簇使用一個代表對象。它是圍繞中心點劃分的一種規則,所以這裏並不合適。 

迴歸分析:處理變量之間具有相關性的一種統計方法,這裏的獄警、小偷、送餐員、其他之間並沒有什 麼直接關係。 

結構分析: 結構分析法是在統計分組的基礎上,計算各組成部分所佔比重,進而分析某一總體現象的內部結構特徵、總體的性質、總體內部結構依時間推移而表現出的變化規律性的統計方法。結構分析法的基本表現形式,就是計算結構指標。這裏也行不通。 

多分類問題: 針對不同的屬性訓練幾個不同的弱分類器,然後將它們集成爲一個強分類器。這裏獄警、 小偷、送餐員 以及他某某,分別根據他們的特點設定依據,然後進行區分識別。

186.關於 Logit 迴歸和 SVM 不正確的是(A)。

A. Logit迴歸目標函數是最小化後驗概率 

B. Logit迴歸可以用於預測事件發生概率的大小 

C. SVM目標是結構風險最小化 

D. SVM可以有效避免模型過擬合

正確答案:(A)

@劉炫320

A. Logit迴歸本質上是一種根據樣本對權值進行極大似然估計的方法,而後驗概率正比於先驗概率和似然函數的乘積。logit僅僅是最大化似然函數,並沒有最大化後驗概率,更談不上最小化後驗概率。而最小化後驗概率是樸素貝葉斯算法要做的。A錯誤 

B. Logit迴歸的輸出就是樣本屬於正類別的機率,可以計算出概率,正確 

C. SVM的目標是找到使得訓練數據儘可能分開且分類間隔最大的超平面,應該屬於結構風險最小化。 

D. SVM可以通過正則化係數控制模型的複雜度,避免過擬合。

187.有兩個樣本點,第一個點爲正樣本,它的特徵向量是(0,-1);第二個點爲負樣本,它的特徵向量是(2,3),從這兩個樣本點組成的訓練集構建一個線性SVM分類器的分類面方程是(C)

A. 2x+y=4 

B. x+2y=5 

C. x+2y=3 

D. 2x-y=0

正確答案:(C)

解析:這道題簡化了,對於兩個點來說,最大間隔就是垂直平分線,因此求出垂直平分線即可。

188.下面有關分類算法的準確率,召回率,F1 值的描述,錯誤的是?(C)

A. 準確率是檢索出相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的查準率 

B. 召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,衡量的是檢索系統的查全率 

C. 正確率、召回率和 F 值取值都在0和1之間,數值越接近0,查準率或查全率就越高 

D. 爲了解決準確率和召回率衝突問題,引入了F1分數

正確答案:(C)

解析:對於二類分類問題常用的評價指標是精準度(precision)與召回率(recall)。通常以關注的類爲正類,其他類爲負類,分類器在測試數據集上的預測或正確或不正確,4種情況出現的總數分別記作: 

TP——將正類預測爲正類數 

FN——將正類預測爲負類數 

FP——將負類預測爲正類數 

TN——將負類預測爲負類數 

由此: 

精準率定義爲:P = TP / (TP + FP) 

召回率定義爲:R = TP / (TP + FN) 

F1值定義爲: F1 = 2 P R / (P + R) 

精準率和召回率和F1取值都在0和1之間,精準率和召回率高,F1值也會高,不存在數值越接近0越高的說法,應該是數值越接近1越高。

189.以下幾種模型方法屬於判別式模型(Discriminative Model)的有(A) 

1)混合高斯模型 2)條件隨機場模型 

3)區分度訓練 4)隱馬爾科夫模型 

 

A. 2,3 

B. 3,4 

C. 1,4 

D. 1,2

正確答案:(A)

@劉炫320

常見的判別式模型有:Logistic Regression(Logistical 迴歸)

Linear discriminant analysis(線性判別分析) 

Supportvector machines(支持向量機) 

Boosting(集成學習) 

Conditional random fields(條件隨機場) 

Linear regression(線性迴歸) 

Neural networks(神經網絡) 

 

常見的生成式模型有:Gaussian mixture model and othertypes of mixture model(高斯混合及其他類型混合模型) 

Hidden Markov model(隱馬爾可夫) 

NaiveBayes(樸素貝葉斯) 

AODE(平均單依賴估計) 

Latent Dirichlet allocation(LDA主題模型) 

Restricted Boltzmann Machine(限制波茲曼機)

生成式模型是根據概率乘出結果,而判別式模型是給出輸入,計算出結果。

190.SPSS中,數據整理的功能主要集中在(AD )等菜單中。

A. 數據 

B. 直銷 

C. 分析 

D. 轉換 

 

正確答案:(AD )

@劉炫320

解析:對數據的整理主要在數據和轉換功能菜單中。

191.深度學習是當前很熱門的機器學習算法,在深度學習中,涉及到大量的矩陣相乘,現在需要計算三個稠密矩陣A,B,C的乘積ABC,假設三個矩陣的尺寸分別爲m∗n,n∗p,p∗q,且m

A. (AB)C 

B. AC(B) 

C. A(BC) 

D. 所以效率都相同

正確答案:(A)

@劉炫320

首先,根據簡單的矩陣知識,因爲 A*B , A 的列數必須和 B 的行數相等。因此,可以排除 B 選項。

然後,再看 A 、 C 選項。在 A 選項中,m∗n 的矩陣 A 和n∗p的矩陣 B 的乘積,得到 m∗p的矩陣 A*B ,而 A∗B的每個元素需要 n 次乘法和 n-1 次加法,忽略加法,共需要 m∗n∗p次乘法運算。同樣情況分析 A*B 之後再乘以 C 時的情況,共需要 m∗p∗q次乘法運算。因此, A 選項 (AB)C 需要的乘法次數是 m∗n∗p+m∗p∗q 。同理分析, C 選項 A (BC) 需要的乘法次數是 n∗p∗q+m∗n∗q。

由於m∗n∗p

192.Nave Bayes是一種特殊的Bayes分類器,特徵變量是X,類別標籤是C,它的一個假定是:( C )

A. 各類別的先驗概率P(C)是相等的 

B. 以0爲均值,sqr(2)/2爲標準差的正態分佈 

C. 特徵變量X的各個維度是類別條件獨立隨機變量 

D. P(X|C)是高斯分佈

正確答案:( C )

@劉炫320

樸素貝葉斯的條件就是每個變量相互獨立。

193.關於支持向量機SVM,下列說法錯誤的是(C)

A. L2正則項,作用是最大化分類間隔,使得分類器擁有更強的泛化能力 

B. Hinge 損失函數,作用是最小化經驗分類錯誤 

C. 分類間隔爲1||w||1||w||,||w||代表向量的模 

D. 當參數C越小時,分類間隔越大,分類錯誤越多,趨於欠學習

正確答案:(C)

@劉炫320

A正確。考慮加入正則化項的原因:想象一個完美的數據集,y>1是正類,y<-1是負類,決策面y=0,加入一個y=-30的正類噪聲樣本,那麼決策面將會變“歪”很多,分類間隔變小,泛化能力減小。加入正則項之後,對噪聲樣本的容錯能力增強,前面提到的例子裏面,決策面就會沒那麼“歪”了,使得分類間隔變大,提高了泛化能力。

B正確。

C錯誤。間隔應該是2||w||2||w||纔對,後半句應該沒錯,向量的模通常指的就是其二範數。

D正確。考慮軟間隔的時候,C對優化問題的影響就在於把a的範圍從[0,+inf]限制到了[0,C]。C越小,那麼a就會越小,目標函數拉格朗日函數導數爲0可以求出w=∑iai∗yi∗xiw=∑iai∗yi∗xi,a變小使得w變小,因此間隔2||w||2||w||變大。

194.在HMM中,如果已知觀察序列和產生觀察序列的狀態序列,那麼可用以下哪種方法直接進行參數估計( D )

A. EM算法 

B. 維特比算法 

C. 前向後向算法 

D. 極大似然估計

正確答案:( D )

@劉炫320

EM算法: 只有觀測序列,無狀態序列時來學習模型參數,即Baum-Welch算法

維特比算法: 用動態規劃解決HMM的預測問題,不是參數估計

前向後向算法:用來算概率

極大似然估計:即觀測序列和相應的狀態序列都存在時的監督學習算法,用來估計參數

注意的是在給定觀測序列和對應的狀態序列估計模型參數,可以利用極大似然發估計。如果給定觀測序列,沒有對應的狀態序列,才用EM,將狀態序列看不不可測的隱數據。

195.假定某同學使用Naive Bayesian(NB)分類模型時,不小心將訓練數據的兩個維度搞重複了,那麼關於NB的說法中正確的是: (BD)

A. 這個被重複的特徵在模型中的決定作用會被加強 

B. 模型效果相比無重複特徵的情況下精確度會降低 

C. 如果所有特徵都被重複一遍,得到的模型預測結果相對於不重複的情況下的模型預測結果一樣。 

D. 當兩列特徵高度相關時,無法用兩列特徵相同時所得到的結論來分析問題 

E. NB可以用來做最小二乘迴歸 

F. 以上說法都不正確 

 

正確答案:(BD)

196.L1與L2範數在Logistic Regression 中,如果同時加入L1和L2範數,會產生什麼效果( A )。

A. 可以做特徵選擇,並在一定程度上防止過擬合 

B. 能解決維度災難問題 

C. 能加快計算速度 

D. 可以獲得更準確的結果

正確答案:( A )

@劉炫320

L1範數具有係數解的特性,但是要注意的是,L1沒有選到的特徵不代表不重要,原因是兩個高相關性的特徵可能只保留一個。如果需要確定哪個特徵重要,再通過交叉驗證。

在代價函數後面加上正則項,L1即是Losso迴歸,L2是嶺迴歸。L1範數是指向量中各個元素絕對值之和,用於特徵選擇。L2範數 是指向量各元素的平方和然後求平方根,用於 防止過擬合,提升模型的泛化能力。因此選擇A。

對於機器學習中的範數規則化,也就是L0,L1,L2範數的詳細解答,請參閱範數規則化

197.機器學習中L1正則化和L2正則化的區別是?(AD)

A. 使用L1可以得到稀疏的權值 

B. 使用L1可以得到平滑的權值 

C. 使用L2可以得到稀疏的權值 

D. 使用L2可以得到平滑的權值

正確答案:(AD)

@劉炫320

L1正則化偏向於稀疏,它會自動進行特徵選擇,去掉一些沒用的特徵,也就是將這些特徵對應的權重置爲0。 

L2主要功能是爲了防止過擬合,當要求參數越小時,說明模型越簡單,而模型越簡單則,越趨向於平滑,從而防止過擬合。

L1正則化/Lasso 

L1正則化將係數w的L1範數作爲懲罰項加到損失函數上,由於正則項非零,這就迫使那些弱的特徵所對應的係數變成0。因此L1正則化往往會使學到的模型很稀疏(係數w經常爲0),這個特性使得L1正則化成爲一種很好的特徵選擇方法。

L2正則化/Ridge regression 

L2正則化將係數向量的L2範數添加到了損失函數中。由於L2懲罰項中係數是二次方的,這使得L2和L1有着諸多差異,最明顯的一點就是,L2正則化會讓係數的取值變得平均。對於關聯特徵,這意味着他們能夠獲得更相近的對應係數。還是以Y=X1+X2Y=X1+X2爲例,假設X1X1和X1X1具有很強的關聯,如果用L1正則化,不論學到的模型是Y=X1+X2Y=X1+X2還是Y=2X1Y=2X1,懲罰都是一樣的,都是2α2α。但是對於L2來說,第一個模型的懲罰項是2α2α,但第二個模型的是4α4α。可以看出,係數之和爲常數時,各系數相等時懲罰是最小的,所以纔有了L2會讓各個係數趨於相同的特點。

可以看出,L2正則化對於特徵選擇來說一種穩定的模型,不像L1正則化那樣,係數會因爲細微的數據變化而波動。所以L2正則化和L1正則化提供的價值是不同的,L2正則化對於特徵理解來說更加有用:表示能力強的特徵對應的係數是非零。

因此,一句話總結就是:L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。Lasso在特徵選擇時候非常有用,而Ridge就只是一種規則化而已。

198.位勢函數法的積累勢函數K(x)的作用相當於Bayes判決中的( AD )

A. 後驗概率 

B. 先驗概率 

C. 類概率密度 

D. 類概率密度與先驗概率的乘積

正確答案: (AD)

@劉炫320

事實上,AD說的是一回事。

參考鏈接:勢函數主要用於確定分類面,其思想來源於物理。

199.隱馬爾可夫模型三個基本問題以及相應的算法說法正確的是( ABC)

A. 評估—前向後向算法 

B. 解碼—維特比算法 

C. 學習—Baum-Welch算法 

D. 學習—前向後向算法

正確答案: ( ABC)

解析:評估問題,可以使用前向算法、後向算法、前向後向算法。

200.特徵比數據量還大時,選擇什麼樣的分類器?

答案:線性分類器,因爲維度高的時候,數據一般在維度空間裏面會比較稀疏,很有可能線性可分。

201.下列屬於無監督學習的是: (A)

A. k-means 

B. SVM 

C. 最大熵 

D. CRF

正確答案:(A)

解析: A是聚類,BC是分類,D是序列化標註,也是有監督學習。

202.下列哪個不屬於CRF模型對於HMM和MEMM模型的優勢(B) 

 

A. 特徵靈活 

B. 速度快 

C. 可容納較多上下文信息 

D. 全局最優

正確答案:(B)

解析: CRF 的優點:特徵靈活,可以容納較多的上下文信息,能夠做到全局最優CRF 的缺點:速度慢

CRF沒有HMM那樣嚴格的獨立性假設條件,因而可以容納任意的上下文信息。特徵設計靈活(與ME一樣) ————與HMM比較 

同時,由於CRF計算全局最優輸出節點的條件概率,它還克服了最大熵馬爾可夫模型標記偏置(Label-bias)的缺點。 ­­————與MEMM比較 

CRF是在給定需要標記的觀察序列的條件下,使用維特比算法,計算整個標記序列的聯合概率分佈,而不是在給定當前狀態條件下,定義下一個狀態的狀態分佈。————與ME比較

203.數據清理中,處理缺失值的方法是? (ABCD)

A. 估算 

B. 整例刪除 

C. 變量刪除 

D. 成對刪除

正確答案:(ABCD) 

@劉炫320

由於調查、編碼和錄入誤差,數據中可能存在一些無效值和缺失值,需要給予適當的處理。常用的處理方法有:估算,整例刪除,變量刪除和成對刪除。 

估算(estimation)。最簡單的辦法就是用某個變量的樣本均值、中位數或衆數代替無效值和缺失值。這種辦法簡單,但沒有充分考慮數據中已有的信息,誤差可能較大。另一種辦法就是根據調查對象對其他問題的答案,通過變量之間的相關分析或邏輯推論進行估計。例如,某一產品的擁有情況可能與家庭收入有關,可以根據調查對象的家庭收入推算擁有這一產品的可能性。 

整例刪除(casewise deletion)是剔除含有缺失值的樣本。由於很多問卷都可能存在缺失值,這種做法的結果可能導致有效樣本量大大減少,無法充分利用已經收集到的數據。因此,只適合關鍵變量缺失,或者含有無效值或缺失值的樣本比重很小的情況。 

變量刪除(variable deletion)。如果某一變量的無效值和缺失值很多,而且該變量對於所研究的問題不是特別重要,則可以考慮將該變量刪除。這種做法減少了供分析用的變量數目,但沒有改變樣本量。 

成對刪除(pairwise deletion)是用一個特殊碼(通常是9、99、999等)代表無效值和缺失值,同時保留數據集中的全部變量和樣本。但是,在具體計算時只採用有完整答案的樣本,因而不同的分析因涉及的變量不同,其有效樣本量也會有所不同。這是一種保守的處理方法,最大限度地保留了數據集中的可用信息。 

採用不同的處理方法可能對分析結果產生影響,尤其是當缺失值的出現並非隨機且變量之間明顯相關時。因此,在調查中應當儘量避免出現無效值和缺失值,保證數據的完整性。

204.關於線性迴歸的描述,以下正確的有: (ACEF)

A. 基本假設包括隨機干擾項是均值爲0,方差爲1的標準正態分佈 

B. 基本假設包括隨機干擾下是均值爲0的同方差正態分佈 

C. 在違背基本假設時,普通最小二乘法估計量不再是最佳線性無偏估計量 

D. 在違背基本假設時,模型不再可以估計 

E. 可以用DW檢驗殘差是否存在序列相關性 

F. 多重共線性會使得參數估計值方差減小

正確答案:(ACEF)

@劉炫320

1、AB一元線性迴歸的基本假設有: 

(1)隨機誤差項是一個期望值或平均值爲0的隨機變量; 

(2)對於解釋變量的所有觀測值,隨機誤差項有相同的方差; 

(3)隨機誤差項彼此不相關; 

(4)解釋變量是確定性變量,不是隨機變量,與隨機誤差項彼此之間相互獨立; 

(5)解釋變量之間不存在精確的(完全的)線性關係,即解釋變量的樣本觀測值矩陣是滿秩矩陣; 

(6)隨機誤差項服從正態分佈 

2、CD 違背基本假設的計量經濟學模型還是可以估計的,只是不能使用普通最小二乘法進行估計。 

當存在異方差時,普通最小二乘法估計存在以下問題: 參數估計值雖然是無偏的,但不是最小方差線性無偏估計。 

3、E杜賓-瓦特森(DW)檢驗,計量經濟,統計分析中常用的一種檢驗序列一階自相關最常用的方法。 

4、F所謂多重共線性(Multicollinearity)是指線性迴歸模型中的解釋變量之間由於存在精確相關關係或高度相關關係而使模型估計失真或難以估計準確。影響 

(1)完全共線性下參數估計量不存在 

(2)近似共線性下OLS估計量非有效 

多重共線性使參數估計值的方差增大,1/(1-r2)爲方差膨脹因子(Variance Inflation Factor, VIF) 

(3)參數估計量經濟含義不合理 

(4)變量的顯著性檢驗失去意義,可能將重要的解釋變量排除在模型之外 

(5)模型的預測功能失效。變大的方差容易使區間預測的“區間”變大,使預測失去意義。 

對於線性迴歸模型,當響應變量服從正態分佈,誤差項滿足高斯–馬爾科夫條件(零均值、等方差、不相關)時,迴歸參數的最小二乘估計是一致最小方差無偏估計。 

當然,該條件只是理想化的假定,爲的是數學上有相應的較爲成熟的結論。其實大多數實際問題都不完全滿足這些理想化的假定。 

線性迴歸模型理論的發展正是在不斷克服理想化條件不被滿足時得到許多新方法。如加權LSE、嶺估計、壓縮估計、BOX_COX變換等一系列段。做實際工作時一定是要超越書本上的理想化條件的。

205.影響聚類算法效果的主要原因有:(ABC) 

 

A. 特徵選取 

B. 模式相似性測度 

C. 分類準則 

D. 已知類別的樣本質量

正確答案:(ABC)

@劉炫320

解析:這道題應該是很簡單的,D之所以不正確,是因爲聚類是對無類別的數據進行聚類,不使用已經標記好的數據。

​206.以下哪個是常見的時間序列算法模型(C)

A. RSI 

B. MACD 

C. ARMA 

D. KDJ

正確答案:(C)

解析: 自迴歸滑動平均模型(ARMA) ,其建模思想可概括爲:逐漸增加模型的階數,擬合較高階模型,直到再增加模型的階數而剩餘殘差方差不再顯著減小爲止。

其他三項都不是一個層次的。 

A. 相對強弱指數 (RSI, Relative Strength Index) 是通過比較一段時期內的平均收盤漲數和平均收盤跌數來分析市場買沽盤的意向和實力 , 從而作出未來市場的走勢 。 

B. 移動平均聚散指標 (MACD, Moving Average Convergence Divergence), 是根據均線的構造原理 , 對股票價格的收盤價進行平滑處理 , 求出算術平均值以後再進行計算 , 是一種趨向類指標 。 

D. 隨機指標 (KDJ) 一般是根據統計學的原理 , 通過一個特定的週期 ( 常爲 9 日 ,9 周等 ) 內出現過的最高價 , 最低價及最後一個計算週期的收盤價及這三者之間的比例關係 , 來計算最後一個計算週期的未成熟隨機值 RSV, 然後根據平滑移動平均線的方法來計算 K 值 , D 值與 J 值 , 並繪成曲線圖來研判股票走勢 。

207.下列不是SVM核函數的是:(B)

A. 多項式核函數 

B. Logistic核函數 

C. 徑向基核函數 

D. Sigmoid核函數

正確答案:(B)

@劉炫320

SVM核函數包括線性核函數、多項式核函數、徑向基核函數、高斯核函數、冪指數核函數、拉普拉斯核函數、ANOVA核函數、二次有理核函數、多元二次核函數、逆多元二次核函數以及Sigmoid核函數。

核函數的定義並不困難,根據泛函的有關理論,只要一種函數 K ( x i , x j ) 滿足Mercer條件,它就對應某一變換空間的內積。對於判斷哪些函數是核函數到目前爲止也取得了重要的突破,得到Mercer定理和以下常用的核函數類型: 

(1)線性核函數 :K ( x , x i ) = x ⋅ x i 

(2)多項式核 :K ( x , x i ) = ( ( x ⋅ x i ) + 1 ) d 

(3)徑向基核(RBF):K ( x , x i ) = exp ( − ∥ x − x i ∥ 2 σ 2 ) 

Gauss徑向基函數則是局部性強的核函數,其外推能力隨着參數 σ 的增大而減弱。多項式形式的核函數具有良好的全局性質。局部性較差。 

(4)傅里葉核 :K ( x , x i ) = 1 − q 2 2 ( 1 − 2 q cos ( x − x i ) + q 2 ) 

(5)樣條核 :K ( x , x i ) = B 2 n + 1 ( x − x i ) 

(6)Sigmoid核函數 :K ( x , x i ) = tanh ( κ ( x , x i ) − δ )

採用Sigmoid函數作爲核函數時,支持向量機實現的就是一種多層感知器神經網絡,應用SVM方法,隱含層節點數目(它確定神經網絡的結構)、隱含層節點對輸入節點的權值都是在設計(訓練)的過程中自動確定的。而且支持向量機的理論基礎決定了它最終求得的是全局最優值而不是局部最小值,也保證了它對於未知樣本的良好泛化能力而不會出現過學習現象。

在選取核函數解決實際問題時,通常採用的方法有: 

一是利用專家的先驗知識預先選定核函數; 

二是採用Cross-Validation方法,即在進行核函數選取時,分別試用不同的核函數,歸納誤差最小的核函數就是最好的核函數.如針對傅立葉核、RBF核,結合信號處理問題中的函數迴歸問題,通過仿真實驗,對比分析了在相同數據條件下,採用傅立葉核的SVM要比採用RBF核的SVM誤差小很多。 

三是採用由Smits等人提出的混合核函數方法,該方法較之前兩者是目前選取核函數的主流方法,也是關於如何構造核函數的又一開創性的工作.將不同的核函數結合起來後會有更好的特性,這是混合核函數方法的基本思想。

208.已知一組數據的協方差矩陣P,下面關於主分量說法錯誤的是( C )

A. 主分量分析的最佳準則是對一組數據進行按一組正交基分解, 在只取相同數量分量的條件下,以均方誤差計算截尾誤差最小 

B. 在經主分量分解後,協方差矩陣成爲對角矩陣 

C. 主分量分析就是K-L變換 

D. 主分量是通過求協方差矩陣的特徵值得到

正確答案:( C )

解析:K-L變換與PCA變換是不同的概念,PCA的變換矩陣是協方差矩陣,K-L變換的變換矩陣可以有很多種(二階矩陣、協方差矩陣、總類內離散度矩陣等等)。當K-L變換矩陣爲協方差矩陣時,等同於PCA。

209.在分類問題中,我們經常會遇到正負樣本數據量不等的情況,比如正樣本爲10w條數據,負樣本只有1w條數據,以下最合適的處理方法是( ACD) 

 

A. 將負樣本重複10次,生成10w樣本量,打亂順序參與分類 

B. 直接進行分類,可以最大限度利用數據 

C. 從10w正樣本中隨機抽取1w參與分類 

D. 將負樣本每個權重設置爲10,正樣本權重爲1,參與訓練過程

正確答案:( ACD) 

解析: 

1.重採樣。 A可視作重採樣的變形。改變數據分佈消除不平衡,可能導致過擬合。 

2.欠採樣。 C的方案 提高少數類的分類性能,可能丟失多數類的重要信息。 

如果1:10算是均勻的話,可以將多數類分割成爲1000份。然後將每一份跟少數類的樣本組合進行訓練得到分類器。而後將這1000個分類器用assemble的方法組合位一個分類器。A選項可以看作此方式,因而相對比較合理。 

另:如果目標是 預測的分佈 跟訓練的分佈一致,那就加大對分佈不一致的懲罰係數。 

3. 權值調整。 D方案也是其中一種方式。 

當然,這只是在數據集上進行相應的處理,在算法上也有相應的處理方法。

210.在統計模式識分類問題中,當先驗概率未知時,可以使用( BC )?

A. 最小損失準則 

B. N-P判決 

C. 最小最大損失準則 

D. 最小誤判概率準則

正確答案:( BC )

@劉炫320

選項 A ,最小損失準則中需要用到先驗概率

選項B ,在貝葉斯決策中,對於先驗概率p(y),分爲已知和未知兩種情況。 

1. p(y)已知,直接使用貝葉斯公式求後驗概率即可; 

2. p(y)未知,可以使用聶曼-皮爾遜決策(N-P決策)來計算決策面。 

聶曼-皮爾遜決策(N-P判決)可以歸結爲找閾值a,即: 

如果p(x|w1)/p(x|w2)>a,則 x屬於w1; 

如果p(x|w1)/p(x|w2)

選項C ,最大最小損失規則主要就是使用解決最小損失規則時先驗概率未知或難以計算的問題的。

​211.解決隱馬模型中預測問題的算法是?(D) 

 

A. 前向算法 

B. 後向算法 

C. Baum-Welch算法 

D. 維特比算法

正確答案:(D)

@劉炫320

A、B:前向、後向算法解決的是一個評估問題,即給定一個模型,求某特定觀測序列的概率,用於評估該序列最匹配的模型。 

C:Baum-Welch算法解決的是一個模型訓練問題,即參數估計,是一種無監督的訓練方法,主要通過EM迭代實現; 

D:維特比算法解決的是給定 一個模型和某個特定的輸出序列,求最可能產生這個輸出的狀態序列。如通過海藻變化(輸出序列)來觀測天氣(狀態序列),是預測問題,通信中的解碼問題。

212.一般,k-NN最近鄰方法在( B )的情況下效果較好。

A. 樣本較多但典型性不好 

B. 樣本較少但典型性好 

C. 樣本呈團狀分佈 

D. 樣本呈鏈狀分佈

正確答案:( B )

解析: 

K近鄰算法主要依靠的是周圍的點,因此如果樣本過多,那肯定是區分不出來的。因此應當選擇B。

樣本呈團狀頗有迷惑性,這裏應該指的是整個樣本都是呈團狀分佈,這樣kNN就發揮不出其求近鄰的優勢了,整體樣本應該具有典型性好,樣本較少,比較適宜。

213.下列方法中,可以用於特徵降維的方法包括(ABCD)

A. 主成分分析PCA 

B. 線性判別分析LDA 

C. 深度學習SparseAutoEncoder 

D. 矩陣奇異值分解SVD 

E. 最小二乘法LeastSquares

正確答案:(ABCD)

解析:降維的3種常見方法ABD,都是線性的。深度學習是降維的方法這個就比較新鮮了,事實上,細細想來,也是降維的一種方法,因爲如果隱藏層中的神經元數目要小於輸入層,那就達到了降維,但如果隱藏層中的神經元如果多餘輸入層,那就不是降維了。

最小二乘法是線性迴歸的一種解決方法,其實也是投影,但是並沒有進行降維。

214.下面哪些是基於核的機器學習算法?( BCD )

A. Expectation Maximization(EM)(最大期望算法) 

B. Radial Basis Function(RBF)(徑向基核函數) 

C. Linear Discrimimate Analysis(LDA)(主成分分析法) 

D. Support Vector Machine(SVM)(支持向量機)

正確答案:( BCD )

解析:徑向基核函數是非常常用的核函數,而主成分分析法的常規方法是線性的,但是當遇到非線性的時候,同樣可以使用核方法使得非線性問題轉化爲線性問題。支持向量機處理非線性的問題的時候,核函數也是非常重要的。

215.試推導樣本空間中任意點x到超平面(w,b)的距離公式。

216.從網上下載或自己編程實現一個卷積神經網絡,並在手寫字符識別數據MNIST上進行試驗測試。

解析詳見:周志華《機器學習》課後習題解答系列(六):Ch5.10 - 卷積神經網絡實驗

217.神經網絡中激活函數的真正意義?一個激活函數需要具有哪些必要的屬性?還有哪些屬是好的屬性但不必要的?

@Hengkai Guo

說說我對一個好的激活函數的理解吧,有些地方可能不太嚴謹,歡迎討論。(部分參考了Activation function。) 

1. 非線性:即導數不是常數。這個條件前面很多答主都提到了,是多層神經網絡的基礎,保證多層網絡不退化成單層線性網絡。這也是激活函數的意義所在。 

2. 幾乎處處可微:可微性保證了在優化中梯度的可計算性。傳統的激活函數如sigmoid等滿足處處可微。對於分段線性函數比如ReLU,只滿足幾乎處處可微(即僅在有限個點處不可微)。對於SGD算法來說,由於幾乎不可能收斂到梯度接近零的位置,有限的不可微點對於優化結果不會有很大影響[1]。 

3. 計算簡單:正如題主所說,非線性函數有很多。極端的說,一個多層神經網絡也可以作爲一個非線性函數,類似於Network In Network[2]中把它當做卷積操作的做法。但激活函數在神經網絡前向的計算次數與神經元的個數成正比,因此簡單的非線性函數自然更適合用作激活函數。這也是ReLU之流比其它使用Exp等操作的激活函數更受歡迎的其中一個原因。 

4. 非飽和性(saturation):飽和指的是在某些區間梯度接近於零(即梯度消失),使得參數無法繼續更新的問題。最經典的例子是Sigmoid,它的導數在x爲比較大的正值和比較小的負值時都會接近於0。更極端的例子是階躍函數,由於它在幾乎所有位置的梯度都爲0,因此處處飽和,無法作爲激活函數。ReLU在x>0時導數恆爲1,因此對於再大的正值也不會飽和。但同時對於x<0,其梯度恆爲0,這時候它也會出現飽和的現象(在這種情況下通常稱爲dying ReLU)。Leaky ReLU[3]和PReLU[4]的提出正是爲了解決這一問題。 

5. 單調性(monotonic):即導數符號不變。這個性質大部分激活函數都有,除了諸如sin、cos等。個人理解,單調性使得在激活函數處的梯度方向不會經常改變,從而讓訓練更容易收斂。 

6. 輸出範圍有限:有限的輸出範圍使得網絡對於一些比較大的輸入也會比較穩定,這也是爲什麼早期的激活函數都以此類函數爲主,如Sigmoid、TanH。但這導致了前面提到的梯度消失問題,而且強行讓每一層的輸出限制到固定範圍會限制其表達能力。因此現在這類函數僅用於某些需要特定輸出範圍的場合,比如概率輸出(此時loss函數中的log操作能夠抵消其梯度消失的影響[1])、LSTM裏的gate函數。 

7. 接近恆等變換(identity):即約等於x。這樣的好處是使得輸出的幅值不會隨着深度的增加而發生顯著的增加,從而使網絡更爲穩定,同時梯度也能夠更容易地回傳。這個與非線性是有點矛盾的,因此激活函數基本只是部分滿足這個條件,比如TanH只在原點附近有線性區(在原點爲0且在原點的導數爲1),而ReLU只在x>0時爲線性。這個性質也讓初始化參數範圍的推導更爲簡單[5][4]。額外提一句,這種恆等變換的性質也被其他一些網絡結構設計所借鑑,比如CNN中的ResNet[6]和RNN中的LSTM。 

8. 參數少:大部分激活函數都是沒有參數的。像PReLU帶單個參數會略微增加網絡的大小。還有一個例外是Maxout[7],儘管本身沒有參數,但在同樣輸出通道數下k路Maxout需要的輸入通道數是其它函數的k倍,這意味着神經元數目也需要變爲k倍;但如果不考慮維持輸出通道數的情況下,該激活函數又能將參數個數減少爲原來的k倍。 

9. 歸一化(normalization):這個是最近纔出來的概念,對應的激活函數是SELU[8],主要思想是使樣本分佈自動歸一化到零均值、單位方差的分佈,從而穩定訓練。在這之前,這種歸一化的思想也被用於網絡結構的設計,比如Batch Normalization[9]。

218.梯度下降法的神經網絡容易收斂到局部最優,爲什麼應用廣泛?

@李振華

知乎答案

219.EM算法、HMM、CRF。

這三個放在一起不是很恰當,但是有互相有關聯,所以就放在這裏一起說了。注意重點關注算法的思想。 

(1)EM算法 

EM算法是用於含有隱變量模型的極大似然估計或者極大後驗估計,有兩步組成:E步,求期望(expectation);M步,求極大(maxmization)。本質上EM算法還是一個迭代算法,通過不斷用上一代參數對隱變量的估計來對當前變量進行計算,直到收斂。 

注意:EM算法是對初值敏感的,而且EM是不斷求解下界的極大化逼近求解對數似然函數的極大化的算法,也就是說EM算法不能保證找到全局最優值。對於EM的導出方法也應該掌握。 

(2)HMM算法 

隱馬爾可夫模型是用於標註問題的生成模型。有幾個參數(π,A,B):初始狀態概率向量π,狀態轉移矩陣A,觀測概率矩陣B。稱爲馬爾科夫模型的三要素。 

馬爾科夫三個基本問題: 

概率計算問題:給定模型和觀測序列,計算模型下觀測序列輸出的概率。–》前向後向算法 

學習問題:已知觀測序列,估計模型參數,即用極大似然估計來估計參數。–》Baum-Welch(也就是EM算法)和極大似然估計。 

預測問題:已知模型和觀測序列,求解對應的狀態序列。–》近似算法(貪心算法)和維比特算法(動態規劃求最優路徑) 

(3)條件隨機場CRF 

給定一組輸入隨機變量的條件下另一組輸出隨機變量的條件概率分佈密度。條件隨機場假設輸出變量構成馬爾科夫隨機場,而我們平時看到的大多是線性鏈條隨機場,也就是由輸入對輸出進行預測的判別模型。求解方法爲極大似然估計或正則化的極大似然估計。 

之所以總把HMM和CRF進行比較,主要是因爲CRF和HMM都利用了圖的知識,但是CRF利用的是馬爾科夫隨機場(無向圖),而HMM的基礎是貝葉斯網絡(有向圖)。而且CRF也有:概率計算問題、學習問題和預測問題。大致計算方法和HMM類似,只不過不需要EM算法進行學習問題。 

(4)HMM和CRF對比 

其根本還是在於基本的理念不同,一個是生成模型,一個是判別模型,這也就導致了求解方式的不同。

220.CNN常用的幾個模型。

221.帶核的SVM爲什麼能分類非線性問題?

核函數的本質是兩個函數的內積,而這個函數在SVM中可以表示成對於輸入值的高維映射。注意核並不是直接對應映射,核只不過是一個內積。

222.常用核函數及核函數的條件。

核函數選擇的時候應該從線性核開始,而且在特徵很多的情況下沒有必要選擇高斯核,應該從簡單到難的選擇模型。我們通常說的核函數指的是正定和函數,其充要條件是對於任意的x屬於X,要求K對應的Gram矩陣要是半正定矩陣。 

RBF核徑向基,這類函數取值依賴於特定點間的距離,所以拉普拉斯核其實也是徑向基核。 

線性核:主要用於線性可分的情況 

多項式核

223.Boosting和Bagging。

(1)隨機森林 

隨機森林改變了決策樹容易過擬合的問題,這主要是由兩個操作所優化的: 

1)Boostrap從袋內有放回的抽取樣本值 

2)每次隨機抽取一定數量的特徵(通常爲sqr(n))。 

分類問題:採用Bagging投票的方式選擇類別頻次最高的 

迴歸問題:直接取每顆樹結果的平均值。

(2)Boosting之AdaBoost 

Boosting的本質實際上是一個加法模型,通過改變訓練樣本權重學習多個分類器並進行一些線性組合。而Adaboost就是加法模型+指數損失函數+前項分佈算法。Adaboost就是從弱分類器出發反覆訓練,在其中不斷調整數據權重或者是概率分佈,同時提高前一輪被弱分類器誤分的樣本的權值。最後用分類器進行投票表決(但是分類器的重要性不同)。 

(3)Boosting之GBDT 

將基分類器變成二叉樹,迴歸用二叉迴歸樹,分類用二叉分類樹。和上面的Adaboost相比,迴歸樹的損失函數爲平方損失,同樣可以用指數損失函數定義分類問題。但是對於一般損失函數怎麼計算呢?GBDT(梯度提升決策樹)是爲了解決一般損失函數的優化問題,方法是用損失函數的負梯度在當前模型的值來模擬迴歸問題中殘差的近似值。 

注:由於GBDT很容易出現過擬合的問題,所以推薦的GBDT深度不要超過6,而隨機森林可以在15以上。 

(4)Xgboost 

這個工具主要有以下幾個特點: 

支持線性分類器 

可以自定義損失函數,並且可以用二階偏導 

加入了正則化項:葉節點數、每個葉節點輸出score的L2-norm 

支持特徵抽樣 

在一定情況下支持並行,只有在建樹的階段纔會用到,每個節點可以並行的尋找分裂特徵。

224.邏輯迴歸相關問題。

(1)公式推導一定要會 

(2)邏輯迴歸的基本概念 

這個最好從廣義線性模型的角度分析,邏輯迴歸是假設y服從Bernoulli分佈。 

(3)L1-norm和L2-norm 

其實稀疏的根本還是在於L0-norm也就是直接統計參數不爲0的個數作爲規則項,但實際上卻不好執行於是引入了L1-norm;而L1norm本質上是假設參數先驗是服從Laplace分佈的,而L2-norm是假設參數先驗爲Gaussian分佈,我們在網上看到的通常用圖像來解答這個問題的原理就在這。 

但是L1-norm的求解比較困難,可以用座標軸下降法或是最小角迴歸法求解。 

(4)LR和SVM對比 

首先,LR和SVM最大的區別在於損失函數的選擇,LR的損失函數爲Log損失(或者說是邏輯損失都可以)、而SVM的損失函數爲hinge loss 

minw,b∑iN[1−yi(w∗xi+b)]+λ||w||2minw,b∑iN[1−yi(w∗xi+b)]+λ||w||2

其次,兩者都是線性模型。 

最後,SVM只考慮支持向量(也就是和分類相關的少數點) 

(5)LR和隨機森林區別 

隨機森林等樹算法都是非線性的,而LR是線性的。LR更側重全局優化,而樹模型主要是局部的優化。 

(6)常用的優化方法 

邏輯迴歸本身是可以用公式求解的,但是因爲需要求逆的複雜度太高,所以才引入了梯度下降算法。 

一階方法:梯度下降、隨機梯度下降、mini 隨機梯度下降降法。隨機梯度下降不但速度上比原始梯度下降要快,局部最優化問題時可以一定程度上抑制局部最優解的發生。 

二階方法:牛頓法、擬牛頓法: 

這裏詳細說一下牛頓法的基本原理和牛頓法的應用方式。牛頓法其實就是通過切線與x軸的交點不斷更新切線的位置,直到達到曲線與x軸的交點得到方程解。在實際應用中我們因爲常常要求解凸優化問題,也就是要求解函數一階導數爲0的位置,而牛頓法恰好可以給這種問題提供解決方法。實際應用中牛頓法首先選擇一個點作爲起始點,並進行一次二階泰勒展開得到導數爲0的點進行一個更新,直到達到要求,這時牛頓法也就成了二階求解問題,比一階方法更快。我們常常看到的x通常爲一個多維向量,這也就引出了Hessian矩陣的概念(就是x的二階導數矩陣)。缺點:牛頓法是定長迭代,沒有步長因子,所以不能保證函數值穩定的下降,嚴重時甚至會失敗。還有就是牛頓法要求函數一定是二階可導的。而且計算Hessian矩陣的逆複雜度很大。 

擬牛頓法: 不用二階偏導而是構造出Hessian矩陣的近似正定對稱矩陣的方法稱爲擬牛頓法。擬牛頓法的思路就是用一個特別的表達形式來模擬Hessian矩陣或者是他的逆使得表達式滿足擬牛頓條件。主要有DFP法(逼近Hession的逆)、BFGS(直接逼近Hession矩陣)、 L-BFGS(可以減少BFGS所需的存儲空間)。

225.用貝葉斯機率說明Dropout的原理。

參考答案

226.爲什麼很多做人臉的Paper會最後加入一個Local Connected Conv?

@許韓

以FaceBook DeepFace 爲例:

DeepFace 先進行了兩次全卷積+一次池化,提取了低層次的邊緣/紋理等特徵。後接了3個Local-Conv層,這裏是用Local-Conv的原因是,人臉在不同的區域存在不同的特徵(眼睛/鼻子/嘴的分佈位置相對固定),當不存在全局的局部特徵分佈時,Local-Conv更適合特徵的提取。

227.什麼事共線性, 跟過擬合有什麼關聯?

@抽象猴

共線性:多變量線性迴歸中,變量之間由於存在高度相關關係而使迴歸估計不準確。 

共線性會造成冗餘,導致過擬合。

解決方法:排除變量的相關性/加入權重正則。

228.爲什麼網絡夠深(Neurons 足夠多)的時候,總是可以避開較差Local Optima?

參見:The Loss Surfaces of Multilayer Networks

229.機器學習中的正負樣本。

在分類問題中,這個問題相對好理解一點,比如人臉識別中的例子,正樣本很好理解,就是人臉的圖片,負樣本的選取就與問題場景相關,具體而言,如果你要進行教室中學生的人臉識別,那麼負樣本就是教室的窗子、牆等等,也就是說,不能是與你要研究的問題毫不相關的亂七八糟的場景圖片,這樣的負樣本並沒有意義。負樣本可以根據背景生成,有時候不需要尋找額外的負樣本。一般3000-10000的正樣本需要5,000,000-100,000,000的負樣本來學習,在互金領域一般在入模前將正負比例通過採樣的方法調整到3:1-5:1。

230.機器學習中,有哪些特徵選擇的工程方法?

數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限而已。

1.計算每一個特徵與響應變量的相關性:工程上常用的手段有計算皮爾遜係數和互信息係數,皮爾遜係數只能衡量線性相關性而互信息係數能夠很好地度量各種相關性,但是計算相對複雜一些,好在很多toolkit裏邊都包含了這個工具(如sklearn的MINE),得到相關性之後就可以排序選擇特徵了; 

2.構建單個特徵的模型,通過模型的準確性爲特徵排序,藉此來選擇特徵; 

3.通過L1正則項來選擇特徵:L1正則方法具有稀疏解的特性,因此天然具備特徵選擇的特性,但是要注意,L1沒有選到的特徵不代表不重要,原因是兩個具有高相關性的特徵可能只保留了一個,如果要確定哪個特徵重要應再通過L2正則方法交叉檢驗*; 

4.訓練能夠對特徵打分的預選模型:RandomForest和Logistic Regression等都能對模型的特徵打分,通過打分獲得相關性後再訓練最終模型; 

5.通過特徵組合後再來選擇特徵:如對用戶id和用戶特徵最組合來獲得較大的特徵集再來選擇特徵,這種做法在推薦系統和廣告系統中比較常見,這也是所謂億級甚至十億級特徵的主要來源,原因是用戶數據比較稀疏,組合特徵能夠同時兼顧全局模型和個性化模型,這個問題有機會可以展開講。 

6.通過深度學習來進行特徵選擇:目前這種手段正在隨着深度學習的流行而成爲一種手段,尤其是在計算機視覺領域,原因是深度學習具有自動學習特徵的能力,這也是深度學習又叫unsupervised feature learning的原因。從深度學習模型中選擇某一神經層的特徵後就可以用來進行最終目標模型的訓練了。

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

A. 作正態分佈概率圖 

B. 作盒形圖 

C. 馬氏距離 

D. 作散點圖

答案:(C)

馬氏距離是基於卡方分佈的,度量多元outlier離羣點的統計方法。更多請詳見: 從K近鄰算法、距離度量談到KD樹、SIFT+BBF算法

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

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

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

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

D. 以上所有

答案:(D) 

A: 對數機率迴歸其實是設計用來解決分類問題的 

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

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

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

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

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

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

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

答案:(C)

234.“過擬合”只在監督學習中出現,在非監督學習中,沒有”過擬合”,這是:(B)

A. 對的 

B. 錯的 

答案:(B)

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

235.對於k折交叉驗證, 以下對k的說法正確的是 :(D)

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

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

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

D. 以上所有

答案:(D)

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

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

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

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

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

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

以下哪些是對的:(D)

A. 1 

B. 2 

C. 2和3 

D. 2, 3和4

答案: (D)

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

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

237.模型的高bias是什麼意思, 我們如何降低它 ?(B)

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

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

C. 增加數據點 

D. B和C 

E. 以上所有

答案: (B)

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

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

A. Outlook 

B. Humidity 

C. Windy 

D. Temperature

答案: (A)

信息增益, 增加平均子集純度。

239.對於信息增益, 決策樹分裂節點, 下面說法正確的是: (C)

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

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

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

A. 1 

B. 2 

C. 2和3 

D. 所有以上

答案: (C)

240.如果SVM模型欠擬合, 以下方法哪些可以改進模型 : (A)

A. 增大懲罰參數C的值 

B. 減小懲罰參數C的值 

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

答案:(A)

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

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

A. g1 > g2 > g3 

B. g1 = g2 = g3 

C. g1 < g2 < g3 

D. g1 >= g2 >= g3 

E. g1 <= g2 <= g3

答案: (C)

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

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

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

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

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

A. 1 

B. 2 

C.1和3 

D. 2和4 

E. 以上都不是

答案: (C)

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

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

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

C. 無法下結論 

D. 以上都不對

答案: (B)

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

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

A. 0% 

B. 100% 

C. 0% 到 100% 

D. 以上都不是

答案: (B)

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

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

A. 增加樹的深度 

B. 增加學習率 (learning rate) 

C. 減少樹的深度 

D. 減少樹的數量

答案: (C)

A.增加樹的深度, 會導致所有節點不斷分裂, 直到葉子節點是純的爲止. 所以, 增加深度, 會延長訓練時間。 

B.決策樹沒有學習率參數可以調。(不像集成學習和其它有步長的學習方法) 

D.決策樹只有一棵樹, 不是隨機森林。

246.對於神經網絡的說法, 下面正確的是 : (A) 

1.增加神經網絡層數, 可能會增加測試數據集的分類錯誤率 

2.減少神經網絡層數, 總是能減小測試數據集的分類錯誤率 

3.增加神經網絡層數, 總是能減小訓練數據集的分類錯誤率

A. 1 

B. 1 和 3 

C. 1 和 2 

D. 2

答案: (A)

深度神經網絡的成功, 已經證明, 增加神經網絡層數, 可以增加模型範化能力, 即訓練數據集和測試數據集都表現得更好. 但更多的層數, 也不一定能保證有更好的表現https://arxiv.org/pdf/1512.03385v1.pdf。所以,不能絕對地說層數多的好壞, 只能選A。

247.假如我們使用非線性可分的SVM目標函數作爲最優化對象, 我們怎麼保證模型線性可分?(C)

A. 設C=1 

B. 設C=0 

C. 設C=無窮大 

D. 以上都不對

答案: (C)

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

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

A. 正確 

B. 錯誤

答案: (A) 

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

249.以下哪些算法, 可以用神經網絡去構造: (B) 

1.KNN 

2.線性迴歸 

3.對數機率迴歸

A. 1和 2 

B. 2 和 3 

C. 1, 2 和 3 

D. 以上都不是

答案: (B) 

1.KNN算法不需要訓練參數, 而所有神經網絡都需要訓練參數, 因此神經網絡幫不上忙 

2.最簡單的神經網絡, 感知器, 其實就是線性迴歸的訓練 

3.我們可以用一層的神經網絡構造對數機率迴歸

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

A. 基因序列數據集 

B. 電影瀏覽數據集 

C. 股票市場數據集 

D. 所有以上

答案: (D) 

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

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

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

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

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

D. B 和 C 

E. A 和 B 

F. 以上所有

答案: (F)

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

1.使用前向特徵選擇方法 

2.使用後向特徵排除方法 

3.我們先把所有特徵都使用, 去訓練一個模型, 得到測試集上的表現. 然後我們去掉一個特徵, 再去訓練, 用交叉驗證看看測試集上的表現. 如果表現比原來還要好, 我們可以去除這個特徵 

4.查看相關性表, 去除相關性最高的一些特徵

A. 1 和 2 

B. 2, 3和4 

C. 1, 2和4 

D. All

答案: (D) 

1.前向特徵選擇方法和後向特徵排除方法是我們特徵選擇的常用方法 

2.如果前向特徵選擇方法和後向特徵排除方法在大數據上不適用, 可以用這裏第三種方法 

3.用相關性的度量去刪除多餘特徵, 也是一個好方法

所以D是正確的。

253.對於隨機森林和GradientBoosting Trees, 下面說法正確的是:(A) 

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是正確的。

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

A. 正確的 

B. 錯誤的

答案: (B) 

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

255.對於PCA說法正確的是 :(A) 

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) 

1)PCA對數據尺度很敏感, 打個比方, 如果單位是從km變爲cm, 這樣的數據尺度對PCA最後的結果可能很有影響(從不怎麼重要的成分變爲很重要的成分) 

2)我們總是應該選擇使得模型有最大variance的主成分 

3)有時在低維度上左圖是需要PCA的降維幫助的

256.對於下圖, 最好的主成分選擇是多少 ?(B)

A. 7 

B. 30 

C. 35 

D. 不確定

答案: (B) 

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

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

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

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

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

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

答案: (B)

258.在有監督學習中, 我們如何使用聚類方法?(B) 

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

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

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

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

A. 2 和 4 

B. 1 和 2 

C. 3 和 4 

D. 1 和 3

答案: (B) 

我們可以爲每個聚類構建不同的模型, 提高預測準確率;“類別id”作爲一個特徵項去訓練, 可以有效地總結了數據特徵。所以B是正確的。

259.以下說法正確的是 :(C) 

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

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

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

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

A. 1 

B. 2 

C. 3 

D. 1 and 3

答案: (C) 

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

260.對應GradientBoosting tree算法, 以下說法正確的是 :(C) 

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

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

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

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

A. 2 和 4 

B. 2 和 3 

C. 1 和 3 

D. 1 和 4

答案: (C) 

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

261.以下哪個圖是KNN算法的訓練邊界 ? (B)

A) B 

B) A 

C) D 

D) C 

E) 都不是

答案:(B) 

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

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

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

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

答案:(B) 

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

263.下面的交叉驗證方法 :(B) 

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)

Bootstrap方法是傳統的隨機抽樣,驗證一次的驗證方法,只需要訓練1個模型,所以時間最少。

留一個測試樣本的交叉驗證,需要n次訓練過程(n是樣本個數),這裏,需要訓練1000個模型。

5折交叉驗證需要訓練5個模型。

重複兩次的5折交叉驗證,需要訓練10個模型。

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

1.多個變量其實有相同的用處 

2.變量對於模型的解釋有多大作用 

3.特徵攜帶的信息 

4.交叉驗證

A. 1 和 4 

B. 1, 2 和 3 

C. 1,3 和 4 

D. 以上所有

答案:(C) 

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

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

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遞增或者不變。

266.對於下面三個模型的訓練情況, 下面說法正確的是 :(C)

1.第一張圖的訓練錯誤與其餘兩張圖相比,是最大的 

2.最後一張圖的訓練效果最好,因爲訓練錯誤最小 

3.第二張圖比第一和第三張圖魯棒性更強,是三個裏面表現最好的模型 

4.第三張圖相對前兩張圖過擬合了 

5.三個圖表現一樣,因爲我們還沒有測試數據集

A. 1 和 3 

B. 1 和 3 

C. 1, 3 和 4 

D. 5

267.對於線性迴歸,我們應該有以下哪些假設?(D) 

1.找到利羣點很重要, 因爲線性迴歸對利羣點很敏感 

2.線性迴歸要求所有變量必須符合正態分佈 

3.線性迴歸假設數據沒有多重線性相關性

A. 1 和 2 

B. 2 和 3 

C. 1,2 和 3 

D. 以上都不是

答案:(D)

利羣點要着重考慮,第一點是對的。

不是必須的,當然如果是正態分佈,訓練效果會更好。

有少量的多重線性相關性是可以的,但是我們要儘量避免。

268.我們注意變量間的相關性。在相關矩陣中搜索相關係數時, 如果我們發現3對變量的相關係數是(Var1 和Var2, Var2和Var3, Var3和Var1)是-0.98, 0.45, 1.23 . 我們可以得出什麼結論?(C) 

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]。

269.如果在一個高度非線性並且複雜的一些變量中“一個樹模型可比一般的迴歸模型效果更好”是(A)

A. 對的 

B. 錯的

答案:(A)

270.對於維度極低的特徵,選擇線性還是非線性分類器?

答案:非線性分類器,低維空間可能很多特徵都跑到一起了,導致線性不可分。 

1.如果特徵的數量很大,跟樣本數量差不多,這時候選用LR或者是Linear Kernel的SVM。 

2.如果特徵的數量比較小,樣本數量一般,不算大也不算小,選用SVM+Gaussian Kernel。 

3.如果特徵的數量比較小,而樣本數量很多,需要手工添加一些特徵變成第一種情況。

271.SVM、LR、決策樹的對比。

模型複雜度:SVM支持核函數,可處理線性非線性問題;LR模型簡單,訓練速度快,適合處理線性問題;決策樹容易過擬合,需要進行剪枝。 

損失函數:SVM hinge loss; LR L2正則化; Adaboost 指數損失。 

數據敏感度:SVM添加容忍度對outlier不敏感,只關心支持向量,且需要先做歸一化; LR對遠點敏感。 

數據量:數據量大就用LR,數據量小且特徵少就用SVM非線性核。

272.什麼是ill-condition病態問題?

訓練完的模型,測試樣本稍作修改就會得到差別很大的結果,就是病態問題,模型對未知數據的預測能力很差,即泛化誤差大。

273.簡述KNN最近鄰分類算法的過程?

1.計算訓練樣本和測試樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等); 

2.對上面所有的距離值進行排序; 

3.選前k個最小距離的樣本; 

4.根據這k個樣本的標籤進行投票,得到最後的分類類別;

274.常用的聚類劃分方式有哪些?列舉代表算法。

1.基於劃分的聚類:K-means,k-medoids,CLARANS。 

2.基於層次的聚類:AGNES(自底向上),DIANA(自上向下)。 

3.基於密度的聚類:DBSACN,OPTICS,BIRCH(CF-Tree),CURE。 

4.基於網格的方法:STING,WaveCluster。 

5.基於模型的聚類:EM,SOM,COBWEB。

275.下面對集成學習模型中的弱學習者描述錯誤的是?(C)

A. 他們經常不會過擬合 

B. 他們通常帶有高偏差,所以其並不能解決複雜學習問題 

C. 他們通常會過擬合

答案:(C) 

弱學習者是問題的特定部分。所以他們通常不會過擬合,這也就意味着弱學習者通常擁有低方差和高偏差。

276.下面哪個/些選項對 K 折交叉驗證的描述是正確的?(D) 

1.增大 K 將導致交叉驗證結果時需要更多的時間 

2.更大的 K 值相比於小 K 值將對交叉驗證結構有更高的信心 

3.如果 K=N,那麼其稱爲留一交叉驗證,其中 N 爲驗證集中的樣本數量

A. 1 和 2 

B. 2 和 3 

C. 1 和 3 

D. 1、2 和 3

答案:(D) 

大 K 值意味着對過高估計真實預期誤差(訓練的折數將更接近於整個驗證集樣本數)擁有更小的偏差和更多的運行時間(並隨着越來越接近極限情況:留一交叉驗證)。我們同樣在選擇 K 值時需要考慮 K 折準確度和方差間的均衡。

277.最出名的降維算法是 PAC 和 t-SNE。將這兩個算法分別應用到數據「X」上,並得到數據集「X_projected_PCA」,「X_projected_tSNE」。下面哪一項對「X_projected_PCA」和「X_projected_tSNE」的描述是正確的?(B)

A. X_projected_PCA 在最近鄰空間能得到解釋 

B. X_projected_tSNE 在最近鄰空間能得到解釋 

C. 兩個都在最近鄰空間能得到解釋 

D. 兩個都不能在最近鄰空間得到解釋

答案:(B) 

t-SNE 算法考慮最近鄰點而減少數據維度。所以在使用 t-SNE 之後,所降的維可以在最近鄰空間得到解釋。但 PCA 不能。

278.給定三個變量 X,Y,Z。(X, Y)、(Y, Z) 和 (X, Z) 的 Pearson 相關性係數分別爲 C1、C2 和 C3。現在 X 的所有值加 2(即 X+2),Y 的全部值減 2(即 Y-2),Z 保持不變。那麼運算之後的 (X, Y)、(Y, Z) 和 (X, Z) 相關性係數分別爲 D1、D2 和 D3。現在試問 D1、D2、D3 和 C1、C2、C3 之間的關係是什麼?(E)

A. D1= C1, D2 < C2, D3 > C3 

B. D1 = C1, D2 > C2, D3 > C3 

C. D1 = C1, D2 > C2, D3 < C3 

D. D1 = C1, D2 < C2, D3 < C3 

E. D1 = C1, D2 = C2, D3 = C3

答案:(E) 

特徵之間的相關性係數不會因爲特徵加或減去一個數而改變。

279.爲了得到和 SVD 一樣的投射(projection),你需要在 PCA 中怎樣做?(A)

A. 將數據轉換成零均值 

B. 將數據轉換成零中位數 

C. 無法做到

答案:(A) 

當數據有一個 0 均值向量時,PCA 有與 SVD 一樣的投射,否則在使用 SVD 之前,你必須將數據均值歸 0。

280.假設我們有一個數據集,在一個深度爲 6 的決策樹的幫助下,它可以使用 100% 的精確度被訓練。現在考慮一下兩點,並基於這兩點選擇正確的選項。(A) 

注意:所有其他超參數是相同的,所有其他因子不受影響。 

1.深度爲 4 時將有高偏差和低方差 

2.深度爲 4 時將有低偏差和低方差

A. 只有 1 

B. 只有 2 

C. 1 和 2 

D. 沒有一個

答案:(A) 

如果在這樣的數據中你擬合深度爲 4 的決策樹,這意味着其更有可能與數據欠擬合。因此,在欠擬合的情況下,你將獲得高偏差和低方差。

281.在 k-均值算法中,以下哪個選項可用於獲得全局最小?(D)

A. 嘗試爲不同的質心(centroid)初始化運行算法 

B. 調整迭代的次數 

C. 找到集羣的最佳數量 

D. 以上所有

答案:(D) 

所有都可以用來調試以找到全局最小。

282.你正在使用帶有 L1 正則化的 logistic 迴歸做二分類,其中 C 是正則化參數,w1 和 w2 是 x1 和 x2 的係數。當你把 C 值從 0 增加至非常大的值時,下面哪個選項是正確的?(B)

A. 第一個 w2 成了 0,接着 w1 也成了 0 

B. 第一個 w1 成了 0,接着 w2 也成了 0 

C. w1 和 w2 同時成了 0 

D. 即使在 C 成爲大值之後,w1 和 w2 都不能成 0

答案:(B) 

通過觀察圖像我們發現,即使只使用 x2,我們也能高效執行分類。因此一開始 w1 將成 0;當正則化參數不斷增加時,w2 也會越來越接近 0。

283.假設你使用 log-loss 函數作爲評估標準。下面這些選項,哪些是對作爲評估標準的 log-loss 的正確解釋。(D)

A.如果一個分類器對不正確的分類很自信,log-loss 會嚴重的批評它。 

B.對一個特別的觀察而言,分類器爲正確的類別分配非常小的概率,然後對 log-loss 的相應分佈會非常大。 

C.log-loss 越低,模型越好 

D.以上都是

答案爲:(D)

284.下面哪個選項中哪一項屬於確定性算法?(A)

A.PCA 

B.K-Means 

C. 以上都不是

答案:(A) 

確定性算法表明在不同運行中,算法輸出並不會改變。如果我們再一次運行算法,PCA 會得出相同的結果,而 K-Means 不會。

285.特徵向量的歸一化方法有哪些?

線性函數轉換,表達式如下: 

y=x−MinValueMaxValue−MinValuey=x−MinValueMaxValue−MinValue

對數函數轉換,表達式如下: 

y=log10(x)y=log10(x)

反餘切函數轉換 ,表達式如下: 

y=arctan(x)∗2πy=arctan(x)∗2π

減去均值,除以方差: 

y=x−meansvariancey=x−meansvariance

286.優化算法及其優缺點?

溫馨提示:在回答面試官的問題的時候,往往將問題往大的方面去回答,這樣不會陷於小的技術上死磕,最後很容易把自己嗑死了。 

1)隨機梯度下降 

優點:可以一定程度上解決局部最優解的問題 

缺點:收斂速度較慢 

2)批量梯度下降 

優點:容易陷入局部最優解 

缺點:收斂速度較快 

3)mini_batch梯度下降 

綜合隨機梯度下降和批量梯度下降的優缺點,提取的一箇中和的方法。 

4)牛頓法 

牛頓法在迭代的時候,需要計算Hessian矩陣,當維度較高的時候,計算 Hessian矩陣比較困難。 

5)擬牛頓法 

擬牛頓法是爲了改進牛頓法在迭代過程中,計算Hessian矩陣而提取的算法,它採用的方式是通過逼近Hessian的方式來進行求解。

287.RF與GBDT之間的區別與聯繫?

1)相同點:都是由多棵樹組成,最終的結果都是由多棵樹一起決定。 

2)不同點:

組成隨機森林的樹可以分類樹也可以是迴歸樹,而GBDT只由迴歸樹組成

組成隨機森林的樹可以並行生成,而GBDT是串行生成

隨機森林的結果是多數表決表決的,而GBDT則是多棵樹累加之和

隨機森林對異常值不敏感,而GBDT對異常值比較敏感

隨機森林是減少模型的方差,而GBDT是減少模型的偏差

隨機森林不需要進行特徵歸一化,而GBDT則需要進行特徵歸一化

288.兩個變量的 Pearson 相關性係數爲零,但這兩個變量的值同樣可以相關。(A)

A. 正確 

B. 錯誤

答案:(A) 

Pearson相關係數只能衡量線性相關性,但無法衡量非線性關係。如y=x^2,x和y有很強的非線性關係。

289.下面哪個/些超參數的增加可能會造成隨機森林數據過擬合?(B)

A. 樹的數量 

B. 樹的深度 

C. 學習速率

答案:(B) 

通常情況下,我們增加樹的深度有可能會造成模型過擬合。學習速率並不是隨機森林的超參數。增加樹的數量可能會造成欠擬合。

290.目標變量在訓練集上的 8 個實際值 [0,0,0,1,1,1,1,1],目標變量的熵是多少?(A)

A. −(58log(58)+38log(38))−(58log(58)+38log(38)) 

B. (58log(58)+38log(38))(58log(58)+38log(38)) 

C. (38log(58)+58log(38))(38log(58)+58log(38)) 

D. (58log(38)−38log(58))(58log(38)−38log(58))

答案:(A)

291.下面有關序列模式挖掘算法的描述,錯誤的是?(C)

A. AprioriAll算法和GSP算法都屬於Apriori類算法,都要產生大量的候選序列 

B. FreeSpan算法和PrefixSpan算法不生成大量的候選序列以及不需要反覆掃描原數據庫 

C. 在時空的執行效率上,FreeSpan比PrefixSpan更優 

D. 和AprioriAll相比,GSP的執行效率比較高

@CS青雀,本題解析來源: 

機器學習:序列模式挖掘算法

292.下列哪個不屬於常用的文本分類的特徵選擇算法?(D) 

A. 卡方檢驗值 

B. 互信息 

C. 信息增益 

D. 主成分分析

答案:(D) 

@CS青雀,本題解析來源: 

常採用特徵選擇方法。常見的六種特徵選擇方法: 

1)DF(Document Frequency) 文檔頻率 

DF:統計特徵詞出現的文檔數量,用來衡量某個特徵詞的重要性 

2)MI(Mutual Information) 互信息法 

互信息法用於衡量特徵詞與文檔類別直接的信息量。 

如果某個特徵詞的頻率很低,那麼互信息得分就會很大,因此互信息法傾向”低頻”的特徵詞。 

相對的詞頻很高的詞,得分就會變低,如果這詞攜帶了很高的信息量,互信息法就會變得低效。 

3)(Information Gain) 信息增益法 

通過某個特徵詞的缺失與存在的兩種情況下,語料中前後信息的增加,衡量某個特徵詞的重要性。 

4)CHI(Chi-square) 卡方檢驗法 

利用了統計學中的”假設檢驗”的基本思想:首先假設特徵詞與類別直接是不相關的 

如果利用CHI分佈計算出的檢驗值偏離閾值越大,那麼更有信心否定原假設,接受原假設的備則假設:特徵詞與類別有着很高的關聯度。 

5)WLLR(Weighted Log Likelihood Ration)加權對數似然 

6)WFO(Weighted Frequency and Odds)加權頻率和可能性

293.類域界面方程法中,不能求線性不可分情況下分類問題近似或精確解的方法是?(D)

A. 僞逆法-徑向基(RBF)神經網絡的訓練算法,就是解決線性不可分的情況 

B. 基於二次準則的H-K算法:最小均方差準則下求得權矢量,二次準則解決非線性問題 

C. 勢函數法-非線性 

D. 感知器算法-線性分類算法

答案:(D)

294.機器學習中做特徵選擇時,可能用到的方法有?(E)

A.卡方 

B. 信息增益 

C. 平均互信息 

D. 期望交叉熵 

E. 以上都有

答案:(E)

295.下列方法中,不可以用於特徵降維的方法包括(E)

A. 主成分分析PCA 

B. 線性判別分析LDA 

C. 深度學習SparseAutoEncoder 

D. 矩陣奇異值分解SVD 

E. 最小二乘法LeastSquares

答案:(E) 

特徵降維方法主要有:PCA,LLE,Isomap 

SVD和PCA類似,也可以看成一種降維方法。 

LDA:線性判別分析,可用於降維。 

AutoEncoder:AutoEncoder的結構與神經網絡的隱含層相同,由輸入L1,輸出 L2組成,中間則是權重連接。Autoencoder通過L2得到輸入的重構L3,最小化L3與L1的差別 進行訓練得到權重。在這樣的權重參數下,得到的L2可以儘可能的保存L1的信息。 

Autoencoder的輸出L2的維度由輸出的神經元個數決定。當輸出維度大於L1時,則需要在訓練目標函數中加入sparse 懲罰項,避免L2直接複製L1(權重全爲1)。所以稱爲sparseAutoencoder( Andrew Ng提出的)。 

結論:SparseAutoencoder大多數情況下都是升維的,所以稱之爲特徵降維的方法不準確。

296.一般,K-NN最近鄰方法在( A)的情況下效果較好。

A.樣本較多但典型性不好 

B.樣本呈團狀分佈 

C.樣本較少但典型性好 

D.樣本呈鏈狀分佈

297.下列哪些方法可以用來對高維數據進行降維(A B C D E F)

A. LASSO 

B. 主成分分析法 

C. 聚類分析 

D. 小波分析法 

E. 線性判別法 

F. 拉普拉斯特徵映射

解析:LASSO通過參數縮減達到降維的目的; 

PCA就不用說了; 

線性鑑別法即LDA通過找到一個空間使得類內距離最小類間距離最大所以可以看做是降維; 

小波分析有一些變換的操作降低其他干擾可以看做是降維; 

拉普拉斯請看機器學習降維算法四:Laplacian Eigenmaps 拉普拉斯特徵映射

298.以下描述錯誤的是(C)

A. SVM是這樣一個分類器,它尋找具有最小邊緣的超平面,因此它也經常被稱爲最小邊緣分類器 

B. 在聚類分析當中,簇內的相似性越大,簇間的差別越大,聚類的效果就越差 

C. 在決策樹中,隨着樹中結點輸變得太大,即使模型的訓練誤差還在繼續降低,但是檢驗誤差開始增大,這是出現了模型擬合不足的原因 

D. 聚類分析可以看作是一種非監督的分類

299.以下說法中正確的是(C)

A. SVM對噪聲(如來自其他分部的噪聲樣本)具備魯棒性 

B. 在adaboost算法中,所有被分錯樣本的權重更新比例相同 

C. boosting和bagging都是組合多個分類器投票的方法,二者都是根據單個分類器的正確率確定其權重 

D. 給定n個數據點,如果其中一半用於訓練,一半用戶測試,則訓練誤差和測試誤差之間的差別會隨着n的增加而減少

300.關於正態分佈,下列說法錯誤的是(C)

A. 正態分佈具有集中性和對稱性 

B. 正態分佈的均值和方差能夠決定正態分佈的位置和形態 

C. 正態分佈的偏度爲0,峯度爲1 

D. 標準正態分佈的均值爲0,方差爲1

301.在以下不同的場景中,使用的分析方法不正確的有 (B)

A. 根據商家最近一年的經營及服務數據,用聚類算法判斷出天貓商家在各自主營類目下所屬的商家層級 

B. 根據商家近幾年的成交數據,用聚類算法擬合出用戶未來一個月可能的消費金額公式 

C. 用關聯規則算法分析出購買了汽車坐墊的買家,是否適合推薦汽車腳墊 

D. 根據用戶最近購買的商品信息,用決策樹算法識別出淘寶買家可能是男還是女

302.什麼是梯度爆炸?

答案:誤差梯度是神經網絡訓練過程中計算的方向和數量,用於以正確的方向和合適的量更新網絡權重。 

在深層網絡或循環神經網絡中,誤差梯度可在更新中累積,變成非常大的梯度,然後導致網絡權重的大幅更新,並因此使網絡變得不穩定。在極端情況下,權重的值變得非常大,以至於溢出,導致 NaN 值。 

網絡層之間的梯度(值大於 1.0)重複相乘導致的指數級增長會產生梯度爆炸。

303.梯度爆炸會引發什麼問題?

答案:在深度多層感知機網絡中,梯度爆炸會引起網絡不穩定,最好的結果是無法從訓練數據中學習,而最壞的結果是出現無法再更新的 NaN 權重值。

梯度爆炸導致學習模型無法從訓練數據中獲得更新(如低損失)。

模型不穩定,導致更新過程中的損失出現顯著變化。

訓練過程中,模型損失變成 NaN。

如果你發現這些問題,那麼你需要仔細查看是否出現梯度爆炸問題。 

以下是一些稍微明顯一點的信號,有助於確認是否出現梯度爆炸問題。

訓練過程中模型梯度快速變大。

訓練過程中模型權重變成 NaN 值。

訓練過程中,每個節點和層的誤差梯度值持續超過 1.0。

305.如何修復梯度爆炸問題?

重新設計網絡模型 

在深度神經網絡中,梯度爆炸可以通過重新設計層數更少的網絡來解決。 

使用更小的批尺寸對網絡訓練也有好處。 

在循環神經網絡中,訓練過程中在更少的先前時間步上進行更新(沿時間的截斷反向傳播,truncated Backpropagation through time)可以緩解梯度爆炸問題。

使用 ReLU 激活函數 

在深度多層感知機神經網絡中,梯度爆炸的發生可能是因爲激活函數,如之前很流行的 Sigmoid 和 Tanh 函數。 

使用 ReLU 激活函數可以減少梯度爆炸。採用 ReLU 激活函數是最適合隱藏層的新實踐。

使用長短期記憶網絡 

在循環神經網絡中,梯度爆炸的發生可能是因爲某種網絡的訓練本身就存在不穩定性,如隨時間的反向傳播本質上將循環網絡轉換成深度多層感知機神經網絡。 

使用長短期記憶(LSTM)單元和相關的門類型神經元結構可以減少梯度爆炸問題。 

採用 LSTM 單元是適合循環神經網絡的序列預測的最新最好實踐。

使用梯度截斷(Gradient Clipping) 

在非常深且批尺寸較大的多層感知機網絡和輸入序列較長的 LSTM 中,仍然有可能出現梯度爆炸。如果梯度爆炸仍然出現,你可以在訓練過程中檢查和限制梯度的大小。這就是梯度截斷。 

處理梯度爆炸有一個簡單有效的解決方案:如果梯度超過閾值,就截斷它們。 

——《Neural Network Methods in Natural Language Processing》,2017. 

具體來說,檢查誤差梯度的值是否超過閾值,如果超過,則截斷梯度,將梯度設置爲閾值。 

梯度截斷可以一定程度上緩解梯度爆炸問題(梯度截斷,即在執行梯度下降步驟之前將梯度設置爲閾值)。 

——《深度學習》,2016. 

在 Keras 深度學習庫中,你可以在訓練之前設置優化器上的 clipnorm 或 clipvalue 參數,來使用梯度截斷。 

默認值爲 clipnorm=1.0 、clipvalue=0.5。

使用權重正則化(Weight Regularization) 

如果梯度爆炸仍然存在,可以嘗試另一種方法,即檢查網絡權重的大小,並懲罰產生較大權重值的損失函數。該過程被稱爲權重正則化,通常使用的是 L1 懲罰項(權重絕對值)或 L2 懲罰項(權重平方)。 

對循環權重使用 L1 或 L2 懲罰項有助於緩解梯度爆炸。 

——On the difficulty of training recurrent neural networks,2013. 

在 Keras 深度學習庫中,你可以通過在層上設置 kernel_regularizer 參數和使用 L1 或 L2 正則化項進行權重正則化。

306. LSTM神經網絡輸入輸出究竟是怎樣的?

答案:@YJango,本題解析來源:LSTM神經網絡輸入輸出究竟是怎樣的?

307.以下關於PMF(概率質量函數),PDF(概率密度函數),CDF(累積分佈函數)描述錯誤的是?(A)

A. PDF描述的是連續型隨機變量在特定取值區間的概率 

B. CDF是PDF在特定區間上的積分 

C. PMF描述的是離散型隨機變量在特定取值點的概率 

D. 有一個分佈的CDF函數H(x),則H(a)等於P(X<=a)

答案:(A) 

概率質量函數 (probability mass function,PMF)是離散隨機變量在各特定取值上的概率。 

概率密度函數(p robability density function,PDF )是對 連續隨機變量 定義的,本身不是概率,只有對連續隨機變量的取值進行積分後纔是概率。 

累積分佈函數(cumulative distribution function,CDF) 能完整描述一個實數隨機變量X的概率分佈,是概率密度函數的積分。對於所有實數x 與pdf相對。

308.線性迴歸的基本假設有哪些?(ABDE)

A. 隨機誤差項是一個期望值爲0的隨機變量; 

B. 對於解釋變量的所有觀測值,隨機誤差項有相同的方差; 

C. 隨機誤差項彼此相關; 

D. 解釋變量是確定性變量不是隨機變量,與隨機誤差項之間相互獨立; 

E. 隨機誤差項服從正態分佈

309.處理類別型特徵時,事先不知道分類變量在測試集中的分佈。要將 one-hot encoding(獨熱碼)應用到類別型特徵中。那麼在訓練集中將獨熱碼應用到分類變量可能要面臨的困難是什麼?(A、B)

A. 分類變量所有的類別沒有全部出現在測試集中 

B. 類別的頻率分佈在訓練集和測試集是不同的 

C. 訓練集和測試集通常會有一樣的分佈

答案:(A、B ) 

如果類別在測試集中出現,但沒有在訓練集中出現,獨熱碼將不能進行類別編碼,這是主要困難。如果訓練集和測試集的頻率分佈不相同,我們需要多加小心。

310.假定你在神經網絡中的隱藏層中使用激活函數 X。在特定神經元給定任意輸入,你會得到輸出「-0.0001」。X 可能是以下哪一個激活函數?(B)

A. ReLU 

B. tanh 

C. SIGMOID 

D. 以上都不是

答案:(B) 

該激活函數可能是 tanh,因爲該函數的取值範圍是 (-1,1)。

311.下面哪些對「類型 1(Type-1)」和「類型 2(Type-2)」錯誤的描述是正確的?(A、C)

A. 類型 1 通常稱之爲假正類,類型 2 通常稱之爲假負類。 

B. 類型 2 通常稱之爲假正類,類型 1 通常稱之爲假負類。 

C. 類型 1 錯誤通常在其是正確的情況下拒絕假設而出現。

答案:(A、C) 

在統計學假設測試中,I 類錯誤即錯誤地拒絕了正確的假設即假正類錯誤,II 類錯誤通常指錯誤地接受了錯誤的假設即假負類錯誤。

312.在下面的圖像中,哪一個是多元共線(multi-collinear)特徵?(D)

A. 圖 1 中的特徵 

B. 圖 2 中的特徵 

C. 圖 3 中的特徵 

D. 圖 1、2 中的特徵 

E. 圖 2、3 中的特徵 

F. 圖 1、3 中的特徵

答案:(D) 

在圖 1 中,特徵之間有高度正相關,圖 2 中特徵有高度負相關。所以這兩個圖的特徵是多元共線特徵。

313.鑑別了多元共線特徵。那麼下一步可能的操作是什麼?(B、C)

A. 移除兩個共線變量 

B. 不移除兩個變量,而是移除一個 

C. 移除相關變量可能會導致信息損失,可以使用帶罰項的迴歸模型(如 ridge 或 lasso regression)。

答案:(B、C) 

因爲移除兩個變量會損失一切信息,所以我們只能移除一個特徵,或者也可以使用正則化算法(如 L1 和 L2)。

314.給線性迴歸模型添加一個不重要的特徵可能會造成?(A)

A. 增加 R-square 

B. 減少 R-square

答案:(A) 

在給特徵空間添加了一個特徵後,不論特徵是重要還是不重要,R-square 通常會增加。

315.假定目標變量的類別非常不平衡,即主要類別佔據了訓練數據的 99%。現在你的模型在測試集上表現爲 99% 的準確度。那麼下面哪一項表述是正確的?(A、C)

A. 準確度並不適合于衡量不平衡類別問題 

B. 準確度適合於衡量不平衡類別問題 

C. 精確率和召回率適合於衡量不平衡類別問題 

D. 精確率和召回率不適合于衡量不平衡類別問題

答案:(A、C)

316.什麼是偏差與方差?

泛化誤差可以分解成偏差的平方加上方差加上噪聲。偏差度量了學習算法的期望預測和真實結果的偏離程度,刻畫了學習算法本身的擬合能力,方差度量了同樣大小的訓練集的變動所導致的學習性能的變化,刻畫了數據擾動所造成的影響,噪聲表達了當前任務上任何學習算法所能達到的期望泛化誤差下界,刻畫了問題本身的難度。偏差和方差一般稱爲bias和variance,一般訓練程度越強,偏差越小,方差越大,泛化誤差一般在中間有一個最小值,如果偏差較大,方差較小,此時一般稱爲欠擬合,而偏差較小,方差較大稱爲過擬合。

317.解決Bias和Variance問題的方法是什麼?

交叉驗證 

High Bias解決方案:Boosting、複雜模型(非線性模型、增加神經網絡中的層)、更多特徵 

High Variance解決方案:agging、簡化模型,降維

318.採用 EM 算法求解的模型有哪些,爲什麼不用牛頓法或梯度下降法?

用EM算法求解的模型一般有GMM或者協同過濾,K-means其實也屬於EM。EM算法一定會收斂,但是可能收斂到局部最優。由於求和的項數將隨着隱變量的數目指數上升,會給梯度計算帶來麻煩。

319.XGBoost怎麼給特徵評分?

在訓練的過程中,通過Gini指數選擇分離點的特徵,一個特徵被選中的次數越多,那麼該特徵評分越高。

320.什麼是OOB?隨機森林中OOB是如何計算的,它有什麼優缺點?

Bagging方法中Bootstrap每次約有1313的樣本不會出現在Bootstrap所採集的樣本集合中,當然也就沒有參加決策樹的建立,把這1313的數據稱爲袋外數據OOB(out of bag),它可以用於取代測試集誤差估計方法。

袋外數據(OOB)誤差的計算方法如下: 

對於已經生成的隨機森林,用袋外數據測試其性能,假設袋外數據總數爲O,用這O個袋外數據作爲輸入,帶進之前已經生成的隨機森林分類器,分類器會給出O個數據相應的分類,因爲這O條數據的類型是已知的,則用正確的分類與隨機森林分類器的結果進行比較,統計隨機森林分類器分類錯誤的數目,設爲X,則袋外數據誤差大小=XOXO;這已經經過證明是無偏估計的,所以在隨機森林算法中不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差的無偏估計。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章