機器學習常見面試題整理

文章目錄
  1. 1. 有監督學習和無監督學習的區別
  2. 2. 正則化
  3. 3. 過擬合
    1. 3.1. 產生的緣由
    2. 3.2. 解決方法
  4. 4. 泛化能力
  5. 5. 生成模型和判別模型
  6. 6. 線性分類器與非線性分類器的區別以及優劣
    1. 6.1. 特徵比數據量還大時,選擇什麼樣的分類器?
    2. 6.2. 對於維度很高的特徵,你是選擇線性仍是非線性分類器?
    3. 6.3. 對於維度極低的特徵,你是選擇線性仍是非線性分類器?
  7. 7. ill-condition病態問題
  8. 8. L1和L2正則的區別,如何選擇L1和L2正則
  9. 9. 特徵向量的歸一化方法
  10. 10. 特徵向量的異常值處理
  11. 11. 越小的參數說明模型越簡單
  12. 12. svm中rbf核函數與高斯和函數的比較
  13. 13. KMeans初始類簇中心點的選取
    1. 13.1. 選擇批次距離儘量遠的K個點
    2. 13.2. 選用層次聚類或者Canopy算法進行初始聚類
  14. 14. ROC、AUC
    1. 14.1. ROC曲線
    2. 14.2. AUC
    3. 14.3. 爲何要使用ROC和AUC
  15. 15. 測試集和訓練集的區別
  16. 16. 優化Kmeans
  17. 17. 數據挖掘和機器學習的區別
  18. 18. 備註

有監督學習和無監督學習的區別

  • 有監督學習:對具備標記的訓練樣本進行學習,以儘量對訓練樣本集外的數據進行分類預測。(LR,SVM,BP,RF,GBRT)
  • 無監督學習:對未標記的樣本進行訓練學習,比發現這些樣本中的結構知識。(KMeans,DL)

正則化

正則化是針對過擬合而提出的,覺得在求解模型最優的是通常優化最小的經驗風險,如今在該經驗風險上加入模型複雜度這一項(正則化項是模型參數向量的範數),並使用一個rate比率來權衡模型複雜度與以往經驗風險的權重,若是模型複雜度越高,結構化的經驗風險會越大,如今的目標就變爲告終構經驗風險的最優化,能夠防止模型訓練過分複雜,有效的下降過擬合的風險。面試

奧卡姆剃刀原理,可以很好的解釋已知數據而且十分簡單纔是最好的模型。算法

過擬合

若是一味的去提升訓練數據的預測能力,所選模型的複雜度每每會很高,這種現象稱爲過擬合。所表現的就是模型訓練時候的偏差很小,但在測試的時候偏差很大。編程

產生的緣由

  1. 由於參數太多,會致使咱們的模型複雜度上升,容易過擬合
  2. 權值學習迭代次數足夠多(Overtraining),擬合了訓練數據中的噪聲和訓練樣例中沒有表明性的特徵.

解決方法

  1. 交叉驗證法
  2. 減小特徵
  3. 正則化
  4. 權值衰減
  5. 驗證數據

泛化能力

泛化能力是指模型對未知數據的預測能力網絡

生成模型和判別模型

  1. 生成模型:由數據學習聯合機率分佈P(X,Y),而後求出條件機率分佈P(Y|X)做爲預測的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。(樸素貝葉斯)
    生成模型能夠還原聯合機率分佈p(X,Y),而且有較快的學習收斂速度,還能夠用於隱變量的學習
  2. 判別模型:由數據直接學習決策函數Y=f(X)或者條件機率分佈P(Y|X)做爲預測的模型,即判別模型。(k近鄰、決策樹)
    直接面對預測,每每準確率較高,直接對數據在各類程度上的抽象,因此能夠簡化模型

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

若是模型是參數的線性函數,而且存在線性分類面,那麼就是線性分類器,不然不是。
常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性迴歸
常見的非線性分類器:決策樹、RF、GBDT、多層感知機機器學習

SVM兩種都有(看線性核仍是高斯核)函數

  • 線性分類器速度快、編程方便,可是可能擬合效果不會很好
  • 非線性分類器編程複雜,可是效果擬合能力強

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

線性分類器,由於維度高的時候,數據通常在維度空間裏面會比較稀疏,頗有可能線性可分工具

對於維度很高的特徵,你是選擇線性仍是非線性分類器?

理由同上學習

對於維度極低的特徵,你是選擇線性仍是非線性分類器?

非線性分類器,由於低維空間可能不少特徵都跑到一塊兒了,致使線性不可分測試

ill-condition病態問題

訓練完的模型測試樣本稍做修改就會獲得差異很大的結果,就是病態問題(這簡直是不能用啊)

L1和L2正則的區別,如何選擇L1和L2正則

他們都是能夠防止過擬合,下降模型複雜度

  • L1是在loss function後面加上 模型參數的1範數(也就是|xi|)
  • L2是在loss function後面加上 模型參數的2範數(也就是sigma(xi^2)),注意L2範數的定義是sqrt(sigma(xi^2)),在正則項上沒有添加sqrt根號是爲了更加容易優化

  • L1 會產生稀疏的特徵

  • L2 會產生更多地特徵可是都會接近於0

L1會趨向於產生少許的特徵,而其餘的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。L1在特徵選擇時候很是有用,而L2就只是一種規則化而已。

特徵向量的歸一化方法

  1. 線性函數轉換,表達式以下:y=(x-MinValue)/(MaxValue-MinValue)
  2. 對數函數轉換,表達式以下:y=log10 (x)
  3. 反餘切函數轉換 ,表達式以下:y=arctan(x)*2/PI
  4. 減去均值,乘以方差:y=(x-means)/ variance

特徵向量的異常值處理

  1. 用均值或者其餘統計量代替

越小的參數說明模型越簡單

過擬合的,擬合會通過曲面的每一個點,也就是說在較小的區間裏面可能會有較大的曲率,這裏的導數就是很大,線性模型裏面的權值就是導數,因此越小的參數說明模型越簡單。

追加:這個其實能夠看VC維相關的東西感受更加合適

svm中rbf核函數與高斯和函數的比較

高斯核函數好像是RBF核的一種

KMeans初始類簇中心點的選取

選擇批次距離儘量遠的K個點

首先隨機選取一個點做爲初始點,而後選擇距離與該點最遠的那個點做爲中心點,再選擇距離與前兩個點最遠的店做爲第三個中心店,以此類推,直至選取大k個

選用層次聚類或者Canopy算法進行初始聚類

ROC、AUC

ROC和AUC一般是用來評價一個二值分類器的好壞

ROC曲線

曲線座標上:

  • X軸是FPR(表示假陽率-預測結果爲positive,可是實際結果爲negitive,FP/(N))
  • Y軸式TPR(表示真陽率-預測結果爲positive,並且的確真實結果也爲positive的,TP/P)

那麼平面的上點(X,Y):

  • (0,1)表示全部的positive的樣本都預測出來了,分類效果最好
  • (0,0)表示預測的結果所有爲negitive
  • (1,0)表示預測的錯過所有分錯了,分類效果最差
  • (1,1)表示預測的結果所有爲positive

    針對落在x=y上點,表示是採用隨機猜想出來的結果

ROC曲線創建
通常默認預測完成以後會有一個機率輸出p,這個機率越高,表示它對positive的機率越大。
如今假設咱們有一個threshold,若是p>threshold,那麼該預測結果爲positive,不然爲negitive,按照這個思路,咱們多設置幾個threshold,那麼咱們就能夠獲得多組positive和negitive的結果了,也就是咱們能夠獲得多組FPR和TPR值了
將這些(FPR,TPR)點投射到座標上再用線鏈接起來就是ROC曲線了

當threshold取1和0時,分別獲得的就是(0,0)和(1,1)這兩個點。(threshold=1,預測的樣本所有爲負樣本,threshold=0,預測的樣本所有爲正樣本)

AUC

AUC(Area Under Curve)被定義爲ROC曲線下的面積,顯然這個面積不會大於1(通常狀況下ROC會在x=y的上方,因此0.5<AUC<1).

AUC越大說明分類效果越好

爲何要使用ROC和AUC

由於當測試集中的正負樣本發生變化時,ROC曲線能基本保持不變,可是precision和recall可能就會有較大的波動。
http://www.douban.com/note/284051363/?type=like

測試集和訓練集的區別

訓練集用於創建模型,測試集評估模型的預測等能力

優化Kmeans

使用kd樹或者ball tree(這個樹不懂)
將全部的觀測實例構建成一顆kd樹,以前每一個聚類中心都是須要和每一個觀測點作依次距離計算,如今這些聚類中心根據kd樹只須要計算附近的一個局部區域便可

數據挖掘和機器學習的區別

機器學習是數據挖掘的一個重要工具,可是數據挖掘不只僅只有機器學習這一類方法,還有其餘不少非機器學習的方法,好比圖挖掘,頻繁項挖掘等。感受數據挖掘是從目的而言的,可是機器學習是從方法而言的。

備註

題目主要來源於網絡,答案主要來源於網絡或者《統計學習方法》,還有本身一小部分的總結,若是錯誤之處敬請指出
若是想要了解關於常見模型的東東能夠看這篇機器學習常見算法我的總結(面試用)文章

相關文章
相關標籤/搜索