機器學習面試200題!(21–40)

来源:CSDN

本篇是機器學習面試200題第二篇,由於篇幅太長,本篇介紹21–40題,感興趣的話請持續關注唷XD

系列篇(1)指路:

21.機器學習中,為何要經常對資料做歸一化?

@zhanlijun

本題解析來源:為什麼一些機器學習模型需要對資料進行歸一化?
http://www.cnblogs.com/LBSer/p/4440590.html

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

詳情參見此影片:深度學習中的歸一化
http://www.julyedu.com/video/play/69/686

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

1、抽象成數學問題

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

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

2、獲取資料

資料決定了機器學習結果的上限,而演算法只是儘可能逼近這個上限。
資料要有代表性,否則必然會過擬合。

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

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

3、特徵預處理與特徵選擇

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

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

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

4、訓練模型與調優

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

5、模型診斷

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

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

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

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

6、模型融合

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

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

7、上線執行

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

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

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

24.new 和 malloc的區別?

知識點連結:new 和 malloc的區別
https://www.cnblogs.com/fly1988happy/archive/2012/04/26/2470542.html

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|,接著分子、分母都除以|Ω|得到:

聯合概率表示兩個事件共同發生的概率。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)表示。

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

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

知識點連結:#include<filename.h> 和 #include”filename.h”有什麼區別
http://blog.csdn.net/u010339647/article/details/77825788

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. 隱馬爾可夫鏈

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按讚我的臉書並私訊「10」,送你十週入門數據分析電子書唷!

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store