機器學習面試題集(個人疑惑的題)

找工作一直在找機器學習的崗位,最近在博客上看到一些面試題,做了一下,對自己不懂的地方做了一些總結:

1. 假設X公司的員工收入分佈中位數爲$35,000,25%和75%比例處的數值爲$21,000 和$53,000。收入$1會被認爲是異常值嗎?

答案:需要更多信息

解析:異常值是指樣本中的個別值明顯偏離其餘觀測值,也叫離羣值。目前人們對異常值的判別與剔除主要採用物理判別法和統計判別法兩種方法。所謂物理判別法就是根據人們對客觀事物已有的認識,判別由於外界干擾、人爲誤差等原因造成實測數據值偏離正常結果,在實驗過程中隨時判斷,隨時剔除。統計判別法是給定一個置信概率,並確定一個置信限,凡超過此限的誤差,就認爲它不屬於隨機誤差範圍,將其視爲異常值剔除。當物理識別不易判斷時,一般採用統計識別法。該題中,所給的信息量過少,無法肯定一定是異常值。

2.我們可以通過一種叫“正規方程”的分析方法來計算線性迴歸的相關係數,下列關於“正規方程”哪一項是正確的?

  1.我們不必選擇學習比率 (ok) 

  2.當特徵值數量很大時會很慢 (ok) 

  3.不需要迭代 (ok) 

註釋:正規方程可替代梯度下降來計算相關係數

答案:C  因爲殘差之和總爲零

4.在簡單線性迴歸模型中(單自變量),如果改變輸入變量1單元,輸出變量會變化多少?

答案:斜率值 [簡單線性迴歸公式爲Y=a+bx,如果給x增加1,y就變成了a+b(x+1),即y增加了b]

5.下列哪一種迴歸方法的相關係數沒有閉式解?

答案:Lasso迴歸沒有閉式解,Lasso不允許閉式解,L1-penalty使解爲非線性的,所以需要近似解


 

6.

預測值與殘差之間不應該存在任何函數關係,若存在函數關係,表明模型擬合的效果並不很好。對應在圖中,若橫座標是預測值,縱座標是殘差,殘差應表現爲與預測值無關的隨機分佈。但是,圖 3 中殘差與預測值呈二次函數關係,表明該模型並不理想

7.假設有如下一組輸入並輸出一個實數的數據,則線性迴歸(Y = bX+c)的留一法交叉驗證均方誤差爲?

8.線性迴歸和邏輯迴歸中,關於損失函數對權重係數的偏導數,下列說法正確的是?

線性迴歸和邏輯迴歸對權重係數的偏導數都相同。

線性迴歸的損失函數爲:

邏輯迴歸的損失函數爲:

線性迴歸輸出值Z經過sigmoid函數就是邏輯迴歸輸出值,結合上述損失函數表達式可知,邏輯迴歸的損失函數對Z求偏導數與線性迴歸的損失函數對Z求偏導數是一樣的,且兩者的Z=(權重向量和特徵向量的內積),故線性迴歸和邏輯迴歸中,關於損失函數對權重係數的偏導數是一樣的。

9.下列哪種方法被用於預測因變量? 1.線性迴歸  2.邏輯迴歸 

答案:邏輯迴歸 [邏輯迴歸的輸出是因變量Y取值的概率,用於分類問題,而不是對因變量的取值進行預測,而線性迴歸的輸出是模型對因變量Y的取值進行預測和估計]

10.Y的預期值是關於變量X(X1,X2….Xn)的線性函數,迴歸線定義爲Y = β0 + β1 X1 + β2 X2……+ βn Xn,下列陳述哪項正確? 1.如果Xi的變化量爲 Xi,其它爲常量,則Y的變化量爲βi Xi,常量βi可以爲正數或負數 (ok)

2. βi 的值都是一樣的,除非是其它X的βi (ok)

3.X對Y預期值的總影響爲每個分影響之和 提示:特徵值間相互獨立,互不干擾 (ok)

11.假設對數據提供一個邏輯迴歸模型,得到訓練精度X和測試精度Y。在數據中加入新的特徵值,則下列哪一項是正確的?

提示:其餘參數是一樣的

A. 訓練精度總是下降  【向模型中加入更多特徵值會提高訓練精度,低偏差;如果特徵值是顯著的,測試精度會上升。】

12.以下哪一種方法最適合在n(n>1)維空間中做異常點檢測 [馬氏距離]

解釋:馬氏距離是是一種有效的計算兩個未知樣本集的相似度的多元計量方法,以卡方分佈爲基礎,表示數據的協方差距離。與歐氏距離不同的是它考慮到各種特性之間的聯繫(例如:一條關於身高的信息會帶來一條關於體重的信息,因爲兩者是關聯的)。因此馬氏距離常用於多元異常值檢測。

13.

一般來說,平均輪廓係數越高,聚類的質量也相對較好。在這道題中,對於研究區域的網格單元,最優聚類數應該是2,這時平均輪廓係數的值最高。但是,聚類結果(k=2)的 SSE 值太大了。當 k=6 時,SEE 的值會低很多,但此時平均輪廓係數的值非常高,僅僅比 k=2 時的值低一點。因此,k=6 是最佳的選擇。

14. 在進行聚類分析之前,給出少於所需數據的數據點,下面哪種方法最適合用於數據清理? 1 限制和增加變量 2 去除異常值

答案:1 [在數據點相對較少的時候,不推薦去除異常值,在一些情況下,對變量進行剔除或增加更合適]

15.決策樹算法可以用於數據分析中的聚類分析,本質上是一種分類算法

16.答案:【1,2,3】

電影推薦系統是以下哪些的應用實例:
1 分類
2 聚類
3 強化學習
4 迴歸

解釋:一般來說,電影推薦系統會基於用戶過往的活動和資料,將用戶聚集在有限數量的相似組中。然後,從根本上來說,對同一集羣的用戶進行相似的推薦。 在某些情況下,電影推薦系統也可以歸爲分類問題,將最適當的某類電影分配給特定用戶組的用戶。與此同時,電影推薦系統也可以視爲增強學習問題,即通過先前的推薦來改進以後的電影推薦。

17. 一個SVM存在欠擬合問題,下面怎麼做能提高模型的性能:A

A.增大懲罰參數C

B.減小懲罰參數C

C.減小核函數係數(gamma值)

解釋:C >0稱爲懲罰參數,是調和二者的係數,C值大時對誤差分類的懲罰增大,

當C越大,趨近無窮的時候,表示不允許分類誤差的存在,margin越小,容易過擬合。

C值小時對誤差分類的懲罰減小,當C趨於0時,表示我們不再關注分類是否正確,只要求margin越大,容易欠擬合。

18.頻率派和貝葉斯派的區別,說法正確的是 :貝葉斯學派考慮先驗概率

19.以下對樸素貝葉斯算法說法錯誤的是:D

A.適合多分類任務

B.對於大訓練數據集運行速度快

C.屬於生成模型

D.特徵有缺失值時無法計算

解釋:樸素貝葉斯對數據的訓練和分類也僅僅是特徵概率的數學運算而已,就算缺失了某個特徵,頂多不用計數而已,還是可以計算的

20.關於極大似然估計mle,有:

 1) MLE並不總是存在的

 2) 如果MLE存在,而其可能不特異

21.異方差性是線性迴歸有變化的誤差項;迴歸分析中的殘差有:殘差的平均值總是爲零

22.在導出線性迴歸參數時,有以下四種假設:

1) y與x的真實關係是線性的

2)模型誤差是統計獨立的

3)誤差通常服從一個平均值爲零,標準差是恆定的分佈

4)x非隨機的,無錯的

23.在擬合一個線性迴歸時:

1) 數據量越大,越容易過擬合

2) 假設區間越小,模型複雜度越小,越容易欠擬合

24.在lasso迴歸中,大的特徵值 => 小相關係數 =>  更少lasso penalty  =>  更有可能被保留

lasso迴歸使用特徵值子集進行選擇(使得權重爲零,刪除一些特徵。但ridge僅僅只是讓其趨近於0)

25.可用來評價迴歸模型的指標:R方,調整R方,F統計量,RMSE/MSE/MAE

26.若已判定有多元線性特徵時,若移除兩個變量會損失一切信息,則可以採取下列方法其中一種即可

1) 只移除一個特徵

2) 不移除,但是用正則化算法

補充:共線性是指多變量線性迴歸中,變量之間由於存在高精度相關關係而是估計結果不準確,會造成特徵冗餘,容易過擬合

solution:排除變量的相關性/加入正則項

27.在現有數據集和模型上,新加入一個特徵,訓練精確度一定上升或不變

28.邏輯迴歸不需要對輸入數據做標準化處理,因爲LR將各維度特徵的線性組合進行了非線性處理。即用sigmoid將其壓縮到(0,1)區間,避免了某些特徵佔主導位置。

29.欠擬合狀態是正則化項懲罰程度最高的

30.泛化誤差指模型對未知數據的預測能力

31.

32.關於線性迴歸:

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

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

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

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

33.邏輯迴歸爲什麼要對特徵進行離散化?

在工業界,很少直接將連續值作爲邏輯迴歸模型的特徵輸入,而是將連續特徵離散爲一系列0、1特徵後將其喂入LR模型中,有優點:

1) 離散特徵的增加和減少都很容易,易於模型迭代

2) 稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展

3)離散後的特徵對異常數據有很強的魯棒性,例如對於年齡的劃分:年齡大於30的劃分爲1,則某一樣本的年齡200,即爲1.

4)LR屬於廣義線性模型,表達能力受限;單變量離散爲N個後,每個變量都有單獨的權重,相當於爲模型引入了非線性,能夠提升模型表達能力,加大擬合。

5)離散後可進行特徵交叉,由M+N個變量變爲M*N個變量,進一步引入了非線性,提升表達能力。

6)特徵離散後,model會更穩定

7)特徵離散後,起到了簡化LR的作用,降低了模型過擬合的風險。

正如有人曾說:model使用離散特徵還是連續特徵,實質上是一個“海量離散特徵+簡單模型”同“少量連續特徵+複雜模型”的權衡。即:離散化線性模型——>折騰特徵(現已比較成熟);連續化深度模型————>(發展蓬勃)

34.在大數據集上使用邏輯迴歸模型,爲減少訓練時間並且獲得相近精度,可以:增加學習率(減少時間)+減少迭代次數(獲得相近精度)

35.L1和L2正則化分別服從什麼分佈?區別?

L1正則化:常用作特徵選擇,使得特徵會等於0,L1正則化服從拉普拉斯分佈, f(x|u,b) = \frac{1}{2b}\times e^{-\frac{|x-u|}{b}}

L2正則化:常用於優化泛化性能,降低過擬合,使得特徵會趨於零,L2正則化服從高斯分佈,f(x) = \frac{1}{\sigma \times \sqrt{2\pi}}\times e^{-\frac{(x-u)^{2}}{2\sigma^{2}}}

貝葉斯的應用疑惑:

1.經常在網上搜索東西的朋友知道,當你不小心輸入一個不存在的單詞時,搜索引擎會提示你是不是要輸入某一個正確的單詞,比如當你在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)=\frac{P(w|c)P(c)}{P(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高(相差兩個字母)。值得一提的是,一般把這種問題稱爲“編輯距離”,參見程序員編程藝術第二十八~二十九章:最大連續乘積子串、字符串編輯距離。

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

2. 請大致對比下plsa和LDA的區別。機器學習 ML模型 中等

3.在使用Naive Bayes分類時,不小心將訓練數據的兩個維度搞重複了,則會有如下:

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

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

基礎知識應用疑惑:

1.  機器學習項目的一個完整的流程:

step1 抽象成數學問題
明確問題是進行機器學習的第一步。機器學習的訓練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。
這裏的抽象成數學問題,指的我們明確我們可以獲得什麼樣的數據,目標是一個分類還是迴歸或者是聚類的問題,如果都不是的話,如果劃歸爲其中的某類問題。
step2 獲取數據
數據決定了機器學習結果的上限,而算法只是儘可能逼近這個上限。
數據要有代表性,否則必然會過擬合。
而且對於分類問題,數據偏斜不能過於嚴重,不同類別的數據數量不要有數個數量級的差距。
而且還要對數據的量級有一個評估,多少個樣本,多少個特徵,可以估算出其對內存的消耗程度,判斷訓練過程中內存是否能夠放得下。如果放不下就得考慮改進算法或者使用一些降維的技巧了。如果數據量實在太大,那就要考慮分佈式了。
step3 特徵預處理與特徵選擇
良好的數據要能夠提取出良好的特徵才能真正發揮效力。
特徵預處理、數據清洗是很關鍵的步驟,往往能夠使得算法的效果和性能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,數據挖掘過程中很多時間就花在它們上面。這些工作簡單可複製,收益穩定可預期,是機器學習的基礎必備步驟。
篩選出顯著特徵、摒棄非顯著特徵,需要機器學習工程師反覆理解業務。這對很多結果有決定性的影響。特徵選擇好了,非常簡單的算法也能得出良好、穩定的結果。這需要運用特徵有效性分析的相關技術,如相關係數、卡方檢驗、平均互信息、條件熵、後驗概率、邏輯迴歸權重等方法。
step4 訓練模型與調優
直到這一步纔用到我們上面說的算法進行訓練。現在很多算法都能夠封裝成黑盒供人使用。但是真正考驗水平的是調整這些算法的(超)參數,使得結果變得更加優良。這需要我們對算法的原理有深入的理解。理解越深入,就越能發現問題的癥結,提出良好的調優方案。
step5 模型診斷
如何確定模型調優的方向與思路呢?這就需要對模型進行診斷的技術。
過擬合、欠擬合 判斷是模型診斷中至關重要的一步。常見的方法如交叉驗證,繪製學習曲線等。過擬合的基本調優思路是增加數據量,降低模型複雜度。欠擬合的基本調優思路是提高特徵數量和質量,增加模型複雜度。
誤差分析 也是機器學習至關重要的步驟。通過觀察誤差樣本,全面分析誤差產生誤差的原因:是參數的問題還是算法選擇的問題,是特徵的問題還是數據本身的問題……
診斷後的模型需要進行調優,調優後的新模型需要重新進行診斷,這是一個反覆迭代不斷逼近的過程,需要不斷地嘗試, 進而達到最優狀態。
step6 模型融合
一般來說,模型融合後都能使得效果有一定提升。而且效果很好。
工程上,主要提升算法準確度的方法是分別在模型的前端(特徵清洗和預處理,不同的採樣模式)與後端(模型融合)上下功夫。因爲他們比較標準可複製,效果比較穩定。而直接調參的工作不會很多,畢竟大量數據訓練起來太慢了,而且效果難以保證。
step7 上線運行
這一部分內容主要跟工程實現的相關性比較大。工程上是結果導向,模型在線上運行的效果直接決定模型的成敗。 不單純包括其準確程度、誤差等情況,還包括其運行的速度(時間複雜度)、資源消耗程度(空間複雜度)、穩定性是否可接受。
這些工作流程主要是工程實踐上總結出的一些經驗。並不是每個項目都包含完整的一個流程。這裏的部分只是一個指導性的說明,只有大家自己多實踐,多積累項目經驗,纔會有自己更深刻的認識。
2.  機器學習算法是否需要進行歸一化處理?那些需要?

概率模型不需要進行歸一化處理,因爲他們不關心變量的值,而僅僅關心變量的分佈和變量之間的條件概率。例如決策樹、RF不需要(樹形結果的數值縮放,不影響分裂點的位置)(樹形模型不是利用梯度下降進行優化);而AdaBoost,SVM,LR,KMeans之類的最優化問題需要進行歸一化處理。

3.線性分類器和非線性分類器的區別和優勢?

線性分類器:輸入和參數的關係是線性的,例如:LR、Bayes、單層感知機、線性迴歸、SVM(線性核)

非線性分類器:輸入和參數的關係是非線性的,例如:決策樹、RF、GBDT、多層感知機、SVM(非線性核函數)

4.協方差和相關性的區別?

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

6.紅黑樹的5個性質:【紅黑樹是一棵二叉查找樹:左小右大; 並且無鍵值相等的結點】

* 每個結點要麼是紅的要麼是黑的。  
*  根結點是黑的。  
*  每個葉結點(葉結點即指樹尾端NIL指針或NULL結點)都是黑的。  
*  如果一個結點是紅的,那麼它的兩個兒子都是黑的。  
*  對於任意結點而言,其到葉結點樹尾端NIL指針的每條路徑都包含相同數目的黑結點。 
正是紅黑樹的這5條性質,使一棵n個結點的紅黑樹始終保持了logn的高度

7.梯度下降和牛頓法:誰是下降最快的方向?

* 梯度下降並不是下降最快的方向,其只是目標函數在當前的點的切平面上下降最快的方向。在practical implementation中,牛頓方向(考慮海森矩陣)才一般被認爲是下降最快的方向,可以達到superlinear的收斂速度。梯度下降類的算法的收斂速度一般是linear甚至sublinear的(在某些帶複雜約束的問題)【牛頓方向最快,超線性收斂速度,梯度下降是線性收斂或者次線性收斂】

梯度下降決定方向,而步長決定行走的距離【每要走一步都根據上一步所在的位置選擇當前最陡峭最快下山的方向走下一步】,GD容易陷入局部最小。延伸:SGD  BGD  Mini-Batch GD

* 牛頓法:【二次收斂速度】

牛頓和梯度下降的比較:

1) 牛頓法二階收斂,梯度下降是一階收斂

2)牛頓法用一個二次曲面去擬合當前你所在的局部曲面,而梯度下降則用一個平面去擬合當前曲面。

牛頓法的優點:

1)二階收斂速度,收斂速度快

2)一種迭代算法,每步都需要求解目標函數中的hessian矩陣的逆矩陣,計算複雜

8.python語言:

python語言是一種解釋性語言,PHP和Ruby也是。;python動態類型的(即在聲明變量時,不需要指定變量類型)

面嚮對象語言,所有允許定義類並且可以繼承和組合;python應用場景戶:web應用開發,數據科學,AI

* python如何執行內存管理:

1)對象的引用計數機制

2)垃圾回收機制

3)內存池機制

9.常用的損失函數的類型及含義:

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

  

10.hashmap 與hashtable的區別:

HashMap基於Hashtable實現,不同之處在於HashMap是非同步的,並且允許null,即null value和null key,Hashtable則不允許null。

hashmap/hashset等凡是帶有hash字眼的均基於hashtable實現,沒帶hash字眼的如set/map均是基於紅黑樹實現,前者無序,後者有序。

11.PCA:

1) 在經PCA分解之後,數據的協方差矩陣成爲對角矩陣

2)PCA分析是通過求協方差矩陣的特徵值得到

3)KL變換與PCA是不同的概念,PCA的變換矩陣是協方差矩陣;而KL變換的變換矩陣可以有很多種(二階矩陣,協方差矩陣等);當KL變換的變換矩陣爲協方差矩陣時,該KL變換就是PCA。

12. 如何進行特徵選擇?

1) 去除方差較少的特徵

2) 正則化

3) 數據預處理:缺失值、異常值、離散化、亞編碼、二值化、歸一化、利用pearson等相關係數,去除高度相關的特徵列

4)特徵工程中特徵選擇(過濾式  包裹式  嵌入式)

5)降維:PCA + LDA

13.爲什麼在神經網絡中引入非線性激活函數:
1)對於NN而言,若僅僅在線性激活函數下,多層網絡與一層網絡相當

2)非線性變換是深度學習的有效原因之一

14.常用的激活函數:sigmoid函數  tanh 函數  RELU函數

Sigmoid激活函數:

f(z) = \frac{1}{1+e^{-z}} \\ f^{'}(z) = f(z)(1-f(z))

 Tanh激活函數:

f(z) = \frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}\\ f^{'}(z) = 1-f^{2}(z)

ReLu激活函數:

f(z) = max(z,0)\\ f^{'}(z) = 1 /0

15深度學習的調參技巧:

1)參數初始化:均勻分佈初始化/normal初始化/SVD初始化

2)數據預處理:Z-Score

3)訓練技巧:BN +梯度裁剪 + dropout+ Adam/Adadelta + data shuffle

4)Ensemble:同樣的參數,不同的初始化方式;不同參數,cross-validation,選取best幾組;不同模型,線性融合

16.在人工神經網絡中爲什麼ReLu要好過於tanh和sigmoid function?

1)採用sigmoid等函數,算激活函數時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法和指數運算,計算量相對大,而採用Relu激活函數,整個過程的計算量節省很多。

2)對於深層網絡,sigmoid函數反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨於0,這種情況會造成信息丟失),這種現象稱爲飽和,從而無法完成深層網絡的訓練。而ReLU就不會有飽和傾向,不會有特別小的梯度出現。

3)Relu會使一部分神經元的輸出爲0,這樣就造成了網絡的稀疏性,並且減少了參數的相互依存關係,緩解了過擬合問題的發生【BN可用於緩解梯度消失/爆炸】

17.LSTM中爲什麼存在兩種sigmoid和Relu激活函數?

LSTM中sigmoid和tanh函數的目標不同,sigmoid函數用在各種gate上,產生了0~1的值,而Tanh用在了狀態和輸出上,是對數據的處理。

18.數據不平衡怎麼處理?

* 採樣:重採樣或者欠採樣,使得大致平衡

* 數據生成:利用已知樣本生成新樣本

* 進行數據的加權:參考AdaBoost

* 改變評價標準:用AUC/ROC來評價

* 採用Bagging/Boosting/ensemble等集成學習方法 【備註:Bagging與dropout有着類似的防止過擬合的效果】

19.卷積函數並未給NN引入非線性,但ReLu可以給NN引入非線性

20.激活函數的屬性:

1)非線性

2)幾乎處處可微;例如Relu不滿足處處可微,但滿足幾乎處處可微

3)非飽和性:飽和性是指其在某些區間梯度接近於0(梯度消失),使得參數無法更新

4)計算簡單

5)單調性:即導數符合不變。這使得在激活函數處的梯度方向不會經常改變,從而讓訓練更容易收斂

6)輸出範圍有限

7)接近恆等變換

8)參數少

9)歸一化:主要思想是使樣分佈自動歸一化到零均值。單方差的分佈,從而穩定訓練。

21.I類錯誤指的是假正類錯誤;II類錯誤值的是假負類錯誤

22.對類別變量進行label encoding時,應該考慮

1)分類變量的所有類別在訓練集中出現的,是否在測試集中出現?

2)類別的頻率分佈在訓練集和測試集上是否相同?

23.全局最小也屬於局部最小

24.對數損失不可能取到負值

25.ACC準確度不能用於衡量類別不平衡的問題;而P R  ROC AUC 等指標可以進行衡量

26.在一個n維空間中,最好的檢測outlier的方法是馬氏距離;

馬氏距離是基於卡方分佈的,度量多元outlier離羣點的方法

馬氏距離是在n維空間中兩個點的真實距離,馬氏距離表示數據的協方差距離

*歐氏距離的特點:平移不變性,旋轉不變性

* 馬氏距離的特點:平移不變性,旋轉不變性、尺度不變性、不受量綱影響、考慮了模式分佈。

26.PCA與SVD 

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

PCA本質是對於一個以矩陣爲參數的分佈進行似然估計,而SVD是矩陣近似的有效手段。

27.PCA與AE進行降維的區別:

PCA提取的是數據分佈方差比較大的方向,而AE的中間層可以提取預測/重建能力的特徵。

28.PCA

在PCA前規範數據(零均值化); 應該選擇使得模型有最大variance的主成分;  可以使用PCA在低緯度上進行數據可視化。

29.相關係數[參考之前博客中的三大統計相關係數]

相關係數屬於[-1,1],一般而言,大於0.7或者小於等於-0.7就屬於強相關的。

30.關於PCA 與t-SNE應用於X,得到X_Projected_PCA, X_Projected_t_SNE得到:X_Projected_t_SNE在最近鄰空間能得到解釋(因爲t_sne算法考慮最近鄰點而減少數據維度)

31.三個變量X Y Z,(X,Y),(Y,Z),(X,Z)相關係數爲C1,C2,C3;然後X=X+2,Y=Y-2,(X,Y),(Y,Z),(X,Z)相關係數爲D1,D2,D3

三者的相關係數的關係是:C1=D1,C2=D2,C3=D3

32.t_SNE是學習非參數映射。SNE(隨機鄰域嵌入)將數據點之間的高維歐式距離轉換爲表示相似度的條件概率。t_SNE重點解決了兩個問題:

1)SNE不對稱的問題(用聯合概率分佈代替條件概率分佈)  【t_SNE是對稱的】

2)不同類別之間簇的擁擠問題(引入t分佈)

33.t_SNE是非線性的,PCA是線性的。t_SNE可調的參數:維度數量;平穩測量有效數量的鄰居;最大迭代數

但是當數據量級巨大時,t_SNE無法產生更好的效果

LDA旨在最大化類間距離,最小化類內距離。但是當若有辨識性的信息不是平均值,而是數據方差時,LDA會失敗。

34.LDA和PCA的關係:

* LDA  PCA均是線性的

* LDA有監督學習,PCA是無監督學習

* PCA是最大化數據方差,LDA最大化類間距離+最小化類內距離

* LDA明確嘗試對數據類別之間的差異進行建模,而PCA沒有(儘量保留了數據的原始信息)

LDA的M維特徵,可以產生一個M-1判別向量。

35.梯度消失和梯度爆炸會因層數越深而越明顯,其是由於網絡太深,網絡權值更新不穩定造成的。本事是梯度反向傳播中的連乘效應。洛必達法則。

聚類函數相關:

1.影響聚類算法的效果的主要因素有:分類準則+特徵選取+模式相似性測度

2.影響k-means的主要因素是:模式相似性測度+初始類中心的選取

3.較好的k-means初始中心的選取方法:先選擇一箇中心點,然後再按照最遠距離逐一進行選擇

4.常用的聚類算法劃分方式:

* 基於劃分的聚類:k-means,k-medoids,clarans

* 基於層次的聚類:AGNES(自下而上),DIANA(自上而下)

* 基於密度的聚類:DBSCAN,OPTICS,BIRCH,CURE

* 基於網格的方法:STING,Wave cluster

* 基於模型的聚類:EM  SOM  COBWEB

5.樣本輸入順序、模式相似性測度、初始類中心的選取會對k-means產生影響,而聚類準則不會產生影響。一般的聚類準則是相似的數據被歸爲一類,不太容易發生改變。模式相似性測度例如馬氏距離或者歐式距離

6.在k-means算法中,以下均適用於獲得全局最小:

1)嘗試爲不同的質心初始化運行算法

2)調整迭代次數

3)找到集羣的最佳數量(交叉驗證)

決策樹、隨機森林(Bagging)、GBDT、XGBoost等(Boosting)集成學習算法:

1.如何解決RF中的缺失值?

*方法1:對於訓練集中同一class下的數據,若是分類變量缺失,則用衆數補上,如果是連續變量,則用中位數填補

*方法2:

2. 觀察增益gain, alpha和gamma越大,增益越小?機器學習 ML基礎 中

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

結果:gama越大gain越小;lamda越大, gain可能小也可能大

3.Bagging和Boosting的區別:

* 1)採樣方式不同:Bagging均勻採樣,Boosting根據錯誤率採樣

*2)Bagging各個預測函數五權重,而Boosting是有權重的

*3)Bagging各個預測函數可並行生成,而Boosting的各個預測函數必須串行生成

4.根據中心極限定理,train error和test error之間的差必然會減少。

5.Boostrap是有放回的從N個樣本中抽樣n個樣本

6.集成學習中的弱學習器通常不會過擬合,即意味着其擁有低方差和高偏差

SVM EM HMM CRF

1.EM算法:僅有觀測序列,無狀態序列時來學習模型參數,即HMM中的學習算法:Baum-Welch算法

2.viterbi算法:非參數估計方法,例如:HMM中預測問題的維特比算法

3.前向後向算法:HMM中概率計算的方法

4.極大似然估計:當觀測序列和對應的狀態序列都存在時的監督學習算法,用作估計參數。

5.下列哪個不屬於CRF模型對於HMM和MEMM模型的優勢( ) 機器學習 ML模型 中
A.特徵靈活
B.速度快
C.可容納較多上下文信息
D.全局最優
正確答案:B
解析: HMM(一個模型,兩個假設,三個計算) - MEMM(打破觀測獨立假設) - CRF(無向概率圖,全局最優,打破齊次馬爾科夫假設)
CRF 的優點:特徵靈活,可以容納較多的上下文信息,能夠做到全局最優      CRF的缺點:速度慢
CRF沒有HMM那樣嚴格的獨立性假設條件,因而可以容納任意的上下文信息。特徵設計靈活(與ME一樣) —與HMM比較
由於CRF計算全局最優輸出節點的條件概率,它還克服了最大熵馬爾可夫模型標記偏置(Label-bias)的缺點。 ­—與MEMM比較
CRF是在給定需要標記的觀察序列的條件下,使用維特比算法,計算整個標記序列的聯合概率分佈,而不是在給定當前狀態條件下,定義下一個狀態的狀態分佈。—與ME比較
6.SVM對噪聲不敏感,是魯棒的

7.SVM常用的核函數:線性核  多項式核   徑向基核函數  高斯核函數 sigmoid核函數

核函數的選擇:

1)首先利用專家的先驗知識預先選定核函數

2)利用cross_validation,在進行核函數選取時,分別嘗試不同的核函數,歸納最小誤差的核函數

3)利用由smits等提出的混合核函數方法

8.基於核的機器學習算法:

* radial basis function(RBF, 徑向基核函數)

* linear discriminate analysis (LDA, 線性判別分析)

* support vector machine (SVM,支持向量機)

9.集成學習的單個模型之間具有低相關性

10.GBDT:

* 當增加最小樣本分裂個數時,可以防止過擬合

* 當減少訓練單個學習器的樣本個數時,可以降低vaeiance

11.正態分佈:

* 具有集中性和對稱性

*均值、方差可以決定正態分佈的位置和形態

*標準正態分佈的偏度爲0,峯度爲1.期望爲0,方差爲1.【判斷異常的3\sigma原則】

12.一般而言,移除支持向量,決策邊界會發生改變;移非支持向量,決策邊界不會發生改變。但有時具體實例時,仍然需要根據實例進行具體分析

13.下列哪一項關於模型能力秒速正確的是(A)

A.隱藏層層數增加,模型能力增加(但如果一直無限增加,可能會造成過擬合)

B.dropout比例增加,model capacity增加

C.學習率增加,model capacity增加

D.都不正確

14.當NN神經網絡的權重非隨機化賦值,而是全部均設爲0.則神經網絡可以進行訓練,但是所有的神經元最後都會變成識別同樣的東西。

15.多個變量高度相關時,稱爲多元共線性

16.K折交叉驗證中的K:K越大,bias越小,訓練時間越長;在選擇K時,要最小化數據集之間的方差。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章