機器學習面試200題!(1-20)

來源:CSDN

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

刷題,是面試前的必備環節。本文作者總結了往年BAT機器學習面試題,乾貨滿滿,值得收藏!

1.請簡要介紹下SVM。

擴充套件:

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

支援向量機通俗導論(理解SVM的三層境界)
https://www.cnblogs.com/v-July-v/archive/2012/06/01/2539022.html
機器學習之深入理解SVM
http://blog.csdn.net/sinat_35512245/article/details/54984251

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

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

  • 損失函式是用泰勒展式二項逼近,而不是像GBDT裡的就是一階導數
  • 對樹的結構進行了正則化約束,防止模型過度複雜,降低了過擬合的可能性;
  • 節點分裂的方式不同,GBDT是用的基尼係數,XGBoost是經過優化推導後的。

知識點連結:整合學習的總結
https://xijunlee.github.io/2017/06/03/%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/

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

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

6.簡單說說特徵工程。

7.關於LR。

知識點連結:機器學習之Logistic迴歸(邏輯蒂斯迴歸)
http://blog.csdn.net/sinat_35512245/article/details/54881672

8.overfitting怎麼解決?

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有的做不了。

答案來源:機器學習常見面試問題(一)
http://blog.csdn.net/timcompp/article/details/62237986

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

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

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

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

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

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

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

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

14.L1和L2的區別。

Lp範數: 為x向量各個元素絕對值p次方和的1/p次方.
在支援向量機學習過程中,L1範數實際是一種對於成本函式求解最優的過程,因此,L1範數正則化通過向成本函式中新增L1範數,使得學習得到的結果滿足稀疏化,從而方便人類提取特徵。
L1範數可以使權值稀疏,方便特徵提取。
L2範數可以防止過擬合,提升模型的泛化能力。

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

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

知識點連結(答案解析):深度學習崗位面試問題整理筆記
https://zhuanlan.zhihu.com/p/25005808

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

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

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)的最大值。而根據貝葉斯定理,有:

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

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

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

所以,我們比較所有拼寫相近的詞在文字庫中的出現頻率,再從中挑出出現頻率最高的一個,即是使用者最想輸入的那個詞。具體的計算過程及此方法的缺陷請參見How to Write a Spelling Corrector。
http://norvig.com/spell-correct.html

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

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

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