1. 程式人生 > >機器學習面試 (海康 多益)

機器學習面試 (海康 多益)

先複製貼上一下,後續更新  海康 1.電話面試:  介紹你做的專案? 特徵選擇方法?  解釋logostic迴歸?  說一下Xgboost? Xgboost和GBDT的區別? 2.杭州面  問專案問的很細,重點看專案?   你覺得你專案中哪部分做的好?   如果再給你一次機會,你會從哪些方面考慮?  Xgboost特點(我用的這個比較多)? 特徵選擇的方法?  其它的就說我自己的專案了,問的很細,有的你沒有做過,不要寫上去   多益 (參考這個基本一樣;面試官很懶幾天的面試都用這個題目) 露的避免方法

百度

一面:

         重點如下:          介紹你的專案          解釋SVM          解釋Xgboost          程序和執行緒區別          程序間通訊          linux檢視cpu狀態          你筆試最後一題,你錯了,你再想想怎麼做

二面:

    不知道有沒有二面??????

機器學習

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

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

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

正則化

正則化是針對過擬合而提出的,以為在求解模型最優的是一般優化最小的經驗風險,現在在該經驗風險上加入模型複雜度這一項(正則化項是模型引數向量的範數),並使用一個rate比率來權衡模型複雜度與以往經驗風險的權重,如果模型複雜度越高,結構化的經驗風險會越大,現在的目標就變為了結構經驗風險的最優化,可以防止模型訓練過度複雜,有效的降低過擬合的風險。奧卡姆剃刀原理,能夠很好的解釋已知資料並且十分簡單才是最好的模型。

過擬合

如果一味的去提高訓練資料的預測能力,所選模型的複雜度往往會很高,這種現象稱為過擬合。所表現的就是模型訓練時候的誤差很小,但在測試的時候誤差很大。

產生的原因

過擬合原因

1. 樣本資料的問題。

樣本數量太少

抽樣方法錯誤,抽出的樣本資料不能有效足夠代表業務邏輯或業務場景。比如樣本符合正態分佈,卻按均分分佈抽樣,或者樣本資料不能代表整體資料的分佈

樣本里的噪音資料干擾過大

2. 模型問題

模型複雜度高 、引數太多

決策樹模型沒有剪枝

權值學習迭代次數足夠多(Overtraining),擬合了訓練資料中的噪聲和訓練樣例中沒有代表性的特徵.

解決方法

1. 樣本資料方面。

增加樣本數量,對樣本進行降維,新增驗證資料

抽樣方法要符合業務場景

清洗噪聲資料

2. 模型或訓練問題

控制模型複雜度,優先選擇簡單的模型,或者用模型融合技術。

利用先驗知識,新增正則項。L1正則更加容易產生稀疏解、L2正則傾向於讓引數w趨向於0.

交叉驗證

不要過度訓練,最優化求解時,收斂之前停止迭代。

決策樹模型沒有剪枝

權值衰

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

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

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

常見的非線性分類器:決策樹、RF、GBDT、多層感知機SVM兩種都有(看線性核還是高斯核)

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

非線性分類器程式設計複雜,但是效果擬合能力強

為什麼LR要使用Sigmod函式?

說到底源於sigmoid,或者說exponentialfamily所具有的最佳性質,即maximum entropy的性質。雖然不清楚歷史上孰先孰後,但這並不妨礙maximum entropy給了logistic regression一個很好的數學解釋。為什麼maximum entropy好呢?entropy翻譯過來就是熵,所以maximum entropy也就是最大熵。熵原本是information theory中的概念,用在概率分佈上可以表示這個分佈中所包含的不確定度,熵越大不確定度越大。所以大家可以想象到,均勻分佈熵最大,因為基本新資料是任何值的概率都均等。而我們現在關心的是,給定某些假設之後,熵最大的分佈。也就是說這個分佈應該在滿足我假設的前提下越均勻越好。比如大家熟知的正態分佈,正是假設已知mean和variance後熵最大的分佈。回過來看logistic regression,這裡假設了什麼呢?首先,我們在建模預測 Y|X,並認為 Y|X 服從bernoulli distribution,所以我們只需要知道 P(Y|X);其次我們需要一個線性模型,所以 P(Y|X) = f(wx)。接下來我們就只需要知道 f 是什麼就行了。而我們可以通過最大熵原則推出的這個 f,就是sigmoid。其實前面也有人劇透了bernoulli的exponential family形式,也即是 1/ (1 + e^-z)

LR與Liner SVM區別

n Linear SVM和LR都是線性分類器

n Linear SVM不直接依賴資料分佈,分類平面不受一類點影響;LR則受所有資料點的影響,如果資料不同類別strongly unbalance一般需要先對資料做balancing。

n Linear SVM依賴資料表達的距離測度,所以需要對資料先做normalization(歸一化);LR不受其影響Linear SVM依賴penalty的係數,實驗中需要做validation

n Linear SVM和LR的performance都會收到outlier的影響,其敏感程度而言,誰更好很難下明確結論。

常見的分類演算法有哪些?

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

最大似然估計提供了一種給定觀察資料來評估模型引數的方法,即:“模型已定,引數未知”。簡單而言,假設我們要統計全國人口的身高,首先假設這個身高服從服從正態分佈,但是該分佈的均值與方差未知。我們沒有人力與物力去統計全國每個人的身高,但是可以通過取樣,獲取部分人的身高,然後通過最大似然估計來獲取上述假設中的正態分佈的均值與方差。最大後驗估計是根據經驗資料獲得對難以觀察的量的點估計。與最大似然估計類似,但是最大的不同時,最大後驗估計的融入了要估計量的先驗分佈在其中。故最大後驗估計可以看做規則化的最大似然估計。

SVM為什麼引入對偶問題?什麼是對偶?

l 對偶問題往往更加容易求解(結合拉格朗日和kkt條件)

可以很自然的引用核函式(拉格朗日表達式裡面有內積,而核函式也是通過內積進行對映的)

l 在優化理論中,目標函式 f(x) 會有多種形式:如果目標函式和約束條件都為變數 x 的線性函式, 稱該問題為線性規劃; 如果目標函式為二次函式, 約束條件為線性函式, 稱該最優化問題為二次規劃; 如果目標函式或者約束條件均為非線性函式, 稱該最優化問題為非線性規劃。每個線性規劃問題都有一個與之對應的對偶問題,對偶問題有非常良好的性質,以下列舉幾個:

對偶問題的對偶是原問題;

無論原始問題是否是凸的,對偶問題都是凸優化問題;

對偶問題可以給出原始問題一個下界;

當滿足一定條件時,原始問題與對偶問題的解是完全等價的

判別式模型和生成式模型

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

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

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

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

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

SVM如何實現,SMO演算法如何實現?

SMO是用於快速求解SVM的。

它選擇凸二次規劃的兩個變數,其他的變數保持不變,然後根據這兩個變數構建一個二次規劃問題,這個二次規劃關於這兩個變數解會更加的接近原始二次規劃的解,通過這樣的子問題劃分可以大大增加整個演算法的計算速度,關於這兩個變數:

其中一個是嚴重違反KKT條件的一個變數

另一個變數是根據自由約束確定,好像是求剩餘變數的最大化來確定的。

如果訓練樣本數量少於特徵數量,怎麼辦?

如果訓練集很小,那麼高偏差/低方差分類器(如樸素貝葉斯分類器)要優於低偏差/高方差分類器(如k近鄰分類器),因為後者容易過擬合。然而,隨著訓練集的增大,低偏差/高方差分類器將開始勝出(它們具有較低的漸近誤差),因為高偏差分類器不足以提供準確的模型。你也可以認為這是生成模型與判別模型的區別。維度高用非線性分類器,維度低用線性分類器。

Xgboost是如何調參的?

XGBoost的引數

  ●General Parameters:

     ○ booster:所使用的模型,gbtree或gblinear

     ○ silent:1則不列印提示資訊,0則列印,預設為0

     ○ nthread:所使用的執行緒數量,預設為最大可用數量

  ●Booster Parameters(gbtree):

     ○ eta:學習率,預設初始化為0.3,經多輪迭代後一般衰減到0.01至0.2

     ○ min_child_weight:每個子節點所需的最小權重和,預設為1

     ○ max_depth:樹的最大深度,預設為6,一般為3至10

     ○ max_leaf_nodes:葉結點最大數量,預設為2^6

     ○ gamma:拆分節點時所需的最小損失衰減,預設為0

     ○ max_delta_step:預設為0

     ○ subsample:每棵樹取樣的樣本數量比例,預設為1,一般取0.5至1

     ○ colsample_bytree:每棵樹取樣的特徵數量比例,預設為1,一般取0.5至1

     ○ colsample_bylevel:預設為1

     ○ lambda:L2正則化項,預設為1

     ○ alpha:L1正則化項,預設為1

     ○ scale_pos_weight:加快收斂速度,預設為1

  ●Learning Task Parameters:

     ○ objective:目標函式,預設為reg:linear,還可取binary:logistic、multi:softmax、multi:softprob

     ○ eval_metric:誤差函式,迴歸預設為rmse,分類預設為error,其他可取值包括rmse、mae、logloss、merror、mlogloss、auc

     ○ seed:隨機數種子,預設為0

解釋一下LDA?

主題模型是一個比較廣的領域。Spark 1.3加入了隱含狄利克雷分佈(LDA),差不多是現今最成功的主題模型。最初被開發用於文字分析和群體遺傳學,LDA之後被不斷拓展,應用到從時間序列分析到圖片分析等問題。首先,我們從文字分析的角度描述LDA。

什麼是主題?主題不是LDA的輸入,所以LDA必須要從純文字中推斷主題。LDA將主題定義為詞的分佈。例如,當我們在一個20個新聞組的文章資料集上執行MLlib的LDA,開始的幾個主題是:

Adaboost、GBDT和 Xgboost的區別?

1.    傳統GBDT以CART作為基分類器,xgboost還支援線性分類器,這個時候xgboost相當於帶L1和L2正則化項的邏輯斯蒂迴歸(分類問題)或者線性迴歸(迴歸問題)。

2.    2傳統GBDT在優化時只用到一階導數資訊,xgboost則對代價函式進行了二階泰勒展開,同時用到了一階和二階導數。順便提一下,xgboost工具支援自定義代價函式,只要函式可一階和二階求導。

3. xgboost在代價函式里加入了正則項,用於控制模型的複雜度。正則項裡包含了樹的葉子節點個數、每個葉子節點上輸出的score的L2模的平方和。從Bias-variancetradeoff角度來講,正則項降低了模型的variance,使學習出來的模型更加簡單,防止過擬合,這也是xgboost優於傳統GBDT的一個特性。

4. Shrinkage(縮減),相當於學習速率(xgboost中的eta)。xgboost在進行完一次迭代後,會將葉子節點的權重乘上該係數,主要是為了削弱每棵樹的影響,讓後面有更大的學習空間。實際應用中,一般把eta設定得小一點,然後迭代次數設定得大一點。(補充:傳統GBDT的實現也有學習速率)

5.  列抽樣(column subsampling)。xgboost借鑑了隨機森林的做法,支援列抽樣,不僅能降低過擬合,還能減少計算,這也是xgboost異於傳統gbdt的一個特性。

6.  對缺失值的處理。對於特徵的值有缺失的樣本,xgboost可以自動學習出它的分裂方向。

7.  xgboost工具支援並行。boosting不是一種序列的結構嗎?怎麼並行的?注意xgboost的並行不是tree粒度的並行,xgboost也是一次迭代完才能進行下一次迭代的(第t次迭代的代價函式裡包含了前面t-1次迭代的預測值)。xgboost的並行是在特徵粒度上的。我們知道,決策樹的學習最耗時的一個步驟就是對特徵的值進行排序(因為要確定最佳分割點),xgboost在訓練之前,預先對資料進行了排序,然後儲存為block結構,後面的迭代中重複地使用這個結構,大大減小計算量。這個block結構也使得並行成為了可能,在進行節點的分裂時,需要計算每個特徵的增益,最終選增益最大的那個特徵去做分裂,那麼各個特徵的增益計算就可以開多執行緒進行。

8. 可並行的近似直方圖演算法。樹節點在進行分裂時,我們需要計算每個特徵的每個分割點對應的增益,即用貪心法列舉所有可能的分割點。當資料無法一次載入記憶體或者在分散式情況下,貪心演算法效率就會變得很低,所以xgboost還提出了一種可並行的近似直方圖演算法,用於高效地生成候選的分割點。

Adaboost和gbdt的區別是adaboost對於每個樣本有一個權重,樣本預估誤差越大,權重越大。gradientboosting則是直接用梯度擬合殘差,沒有樣本權重的概念。

SVM 的推導,特性?多分類怎麼處理?

SVM是最大間隔分類器,幾何間隔和樣本的誤分次數之間存在關係。

從線性可分情況下,原問題,特徵轉換後的dual問題,引入kernel(線性kernel,多項式,高斯),最後是soft margin。

線性:簡單,速度快,但是需要線性可分

多項式:比線性核擬合程度更強,知道具體的維度,但是高次容易出現數值不穩定,引數選擇比較多。

高斯:擬合能力最強,但是要注意過擬合問題。不過只有一個引數需要調整。

多分類問題,一般將二分類推廣到多分類的方式有三種,一對一,一對多,多對多。

一對一:將N個類別兩兩配對,產生N(N-1)/2個二分類任務,測試階段新樣本同時交給所有的分類器,最終結果通過投票產生。

一對多:每一次將一個例作為正例,其他的作為反例,訓練N個分類器,測試時如果只有一個分類器預測為正類,則對應類別為最終結果,如果有多個,則一般選擇置信度最大的。從分類器角度一對一更多,但是每一次都只用了2個類別,因此當類別數很多的時候一對一開銷通常更小(只要訓練複雜度高於O(N)即可得到此結果)。

多對多:若干各類作為正類,若干個類作為反類。注意正反類必須特殊的設計

決策樹的特性?

決策樹基於樹結構進行決策,與人類在面臨問題的時候處理機制十分類似。其特點在於需要選擇一個屬性進行分支,在分支的過程中選擇資訊增益最大的屬性,在劃分中我們希望決策樹的分支節點所包含的樣本屬於同一類別,即節點的純度越來越高。決策樹計算量簡單,可解釋性強,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特徵,但是容易過擬合,需要使用剪枝或者隨機森林。資訊增益是熵減去條件熵,代表資訊不確定性較少的程度,資訊增益越大,說明不確定性降低的越大,因此說明該特徵對分類來說很重要。由於資訊增益準則會對數目較多的屬性有所偏好,因此一般用資訊增益率(c4.5) 其中分母可以看作為屬性自身的熵。取值可能性越多,屬性的熵越大。Cart決策樹使用基尼指數來選擇劃分屬性,直觀的來說,Gini(D)反映了從資料集D中隨機抽取兩個樣本,其類別標記不一致的概率,因此基尼指數越小資料集D的純度越高,一般為了防止過擬合要進行剪枝,有預剪枝和後剪枝,一般用crossvalidation集進行剪枝。連續值和缺失值的處理,對於連續屬性a,將a在D上出現的不同的取值進行排序,基於劃分點t將D分為兩個子集。一般對每一個連續的兩個取值的中點作為劃分點,然後根據資訊增益選擇最大的。與離散屬性不同,若當前節點劃分屬性為連續屬性,該屬性還可以作為其後代的劃分屬性。

SVM、LR、決策樹的對比?

SVM既可以用於分類問題,也可以用於迴歸問題,並且可以通過核函式快速的計算,LR實現簡單,訓練速度非常快,但是模型較為簡單,決策樹容易過擬合,需要進行剪枝等。從優化函式上看,soft margin的SVM用的是hingeloss,而帶L2正則化的LR對應的是cross entropy loss,另外adaboost對應的是exponential loss。所以LR對遠點敏感,但是SVM對outlier不太敏感,因為只關心support vector,SVM可以將特徵對映到無窮維空間,但是LR不可以,一般小資料中SVM比LR更優一點,但是LR可以預測概率,而SVM不可以,SVM依賴於資料測度,需要先做歸一化,LR一般不需要,對於大量的資料LR使用更加廣泛,LR向多分類的擴充套件更加直接,對於類別不平衡SVM一般用權重解決,即目標函式中對正負樣本代價函式不同,LR可以用一般的方法,也可以直接對最後結果調整(通過閾值),一般小資料下樣本維度比較高的時候SVM效果要更優一些。SVM通過對映到高維在做迴歸使用的。

GBDT 和 決策森林的區別?

隨機森林採用的是bagging的思想,bagging又稱為bootstrap aggreagation,通過在訓練樣本集中進行有放回的取樣得到多個取樣集,基於每個取樣集訓練出一個基學習器,再將基學習器結合。隨機森林在對決策樹進行bagging的基礎上,在決策樹的訓練過程中引入了隨機屬性選擇。傳統決策樹在選擇劃分屬性的時候是在當前節點屬性集合中選擇最優屬性,而隨機森林則是對結點先隨機選擇包含k個屬性的子集,再選擇最有屬性,k作為一個引數控制了隨機性的引入程度。

另外,GBDT訓練是基於Boosting思想,每一迭代中根據錯誤更新樣本權重,因此是序列生成的序列化方法,而隨機森林是bagging的思想,因此是並行化方法。

如何判斷函式凸或非凸?

首先定義凸集,如果x,y屬於某個集合C,並且所有的 也屬於c,那麼c為一個凸集,進一步,如果一個函式其定義域是凸集,並且

則該函式為凸函式。上述條件還能推出更一般的結果,

如果函式有二階導數,那麼如果函式二階導數為正,或者對於多元函式,Hessian矩陣半正定則為凸函式。

(也可能引到SVM,或者凸函式區域性最優也是全域性最優的證明,或者上述公式期望情況下的Jessen不等式)

解釋對偶的概念

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

如何進行特徵選擇?

特徵選擇是一個重要的資料預處理過程,主要有兩個原因,首先在現實任務中我們會遇到維數災難的問題(樣本密度非常稀疏),若能從中選擇一部分特徵,那麼這個問題能大大緩解,另外就是去除不相關特徵會降低學習任務的難度,增加模型的泛化能力。冗餘特徵指該特徵包含的資訊可以從其他特徵中推演出來,但是這並不代表該冗餘特徵一定沒有作用,例如在欠擬合的情況下也可以用過加入冗餘特徵,增加簡單模型的複雜度。

在理論上如果沒有任何領域知識作為先驗假設那麼只能遍歷所有可能的子集。但是這顯然是不可能的,因為需要遍歷的數量是組合爆炸的。一般我們分為子集搜尋和子集評價兩個過程,子集搜尋一般採用貪心演算法,每一輪從候選特徵中新增或者刪除,分別成為前向和後先搜尋。或者兩者結合的雙向搜尋。子集評價一般採用資訊增益,對於連續資料往往排序之後選擇中點作為分割點。

常見的特徵選擇方式有過濾式,包裹式和嵌入式,filter,wrapper和embedding。Filter型別先對資料集進行特徵選擇,再訓練學習器。Wrapper直接把最終學習器的效能作為特徵子集的評價準則,一般通過不斷候選子集,然後利用cross-validation過程更新候選特徵,通常計算量比較大。嵌入式特徵選擇將特徵選擇過程和訓練過程融為了一體,在訓練過程中自動進行了特徵選擇,例如L1正則化更易於獲得稀疏解,而L2正則化更不容易過擬合。L1正則化可以通過PGD, 近端梯度下降進行求解。

機器學習模型的評價指標?

分類:召回率、準確率、F值、ROC-AUC和PRC

迴歸:R值

小例子:

假設我們手上有60個正樣本,40個負樣本,我們要找出所有的正樣本,系統查找出50個,其中只有40個是真正的正樣本,計算上述各指標。

       *TP: 將正類預測為正類數 40

       *FN: 將正類預測為負類數 20

       *FP: 將負類預測為正類數 10

       *TN: 將負類預測為負類數 30

準確率(accuracy) = 預測對的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70%

精確率(precision) = TP/(TP+FP) = 80%

召回率(recall) = TP/(TP+FN) = 2/3

為什麼會產生過擬合,有哪些方法可以預防或克服過擬合?

一般在機器學習中,將學習器在訓練集上的誤差稱為訓練誤差或者經驗誤差,在新樣本上的誤差稱為泛化誤差。顯然我們希望得到泛化誤差小的學習器,但是我們事先並不知道新樣本,因此實際上往往努力使經驗誤差最小化。然而,當學習器將訓練樣本學的太好的時候,往往可能把訓練樣本自身的特點當做了潛在樣本具有的一般性質。這樣就會導致泛化效能下降,稱之為過擬合,相反,欠擬合一般指對訓練樣本的一般性質尚未學習好,在訓練集上仍然有較大的誤差。

欠擬合:一般來說欠擬合更容易解決一些,例如增加模型的複雜度,增加決策樹中的分支,增加神經網路中的訓練次數等等。

過擬合:一般認為過擬合是無法徹底避免的,因為機器學習面臨的問題一般是np-hard,但是一個有效的解一定要在多項式內可以工作,所以會犧牲一些泛化能力。過擬合的解決方案一般有增加樣本數量,對樣本進行降維,降低模型複雜度,利用先驗知識(L1,L2正則化),利用cross-validation,early stopping等等。

採用 EM 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?

用EM演算法求解的模型一般有GMM或者協同過濾,k-means其實也屬於EM。EM演算法一定會收斂,但是可能收斂到區域性最優。由於求和的項數將隨著隱變數的數目指數上升,會給梯度計算帶來麻煩。

EM演算法的基本概念和應用場景?

最大期望(EM)演算法是在概率(probabilistic)模型中尋找引數最大似然估計或者最大後驗估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variable)。假設我們估計知道A和B兩個引數,在開始狀態下二者都是未知的,並且知道了A的資訊就可以得到B的資訊,反過來知道了B也就得到了A。可以考慮首先賦予A某種初值,以此得到B的估計值,然後從B的當前值出發,重新估計A的取值,這個過程一直持續到收斂為止。

參考連結:http://www.tuicool.com/articles/Av6NVzy

最大期望經常用在機器學習和計算機視覺的資料聚類領域。

用 EM 演算法推導解釋 Kmeans

機器學習中如何避免區域性最優?

首先改變學習迭代演算法,採用adam之類動態更新的迭代演算法,或者採用啟發式演算法,加入規避區域性最小值的措施。再或者就是多做幾次。

常見聚類演算法比較 

(1) k-means

    優點:簡單,易於理解和實現;時間複雜度低,每輪迭代負載度為O(n*k)

    缺點:需要對均值給出定義;需要指定聚類的數目;一些過大的異常值會帶來很大影響;需要指定初始聚類中心,演算法對初始值敏感;適合球形類簇。

(2) 層次聚類(試圖在不同層次對資料集進行劃分,從而形成樹形的聚類結構。AGNES是一種採用自底向上聚合策略的層次聚類演算法)

    優點:距離和規則的相似度容易定義,限制少;不需要預先指定聚類數目;可以發現類的層次關係;可以聚類成其他形狀

缺點:計算複雜度高;奇異值也能產生很大影響;演算法很可能聚類成鏈狀

(3) 基於密度的聚類

(4) 基於網格的聚類

(5) 基於平方誤差的迭代重分配聚類

(6) 基於約束的聚類

用過哪些聚類演算法,解釋密度聚類演算法

k-means演算法,聚類效能的度量一般分為兩類,一類是聚類結果與某個參考模型比較(外部指標),另外是直接考察聚類結果(內部指標)。後者通常有DB指數和DI,DB指數是對每個類,找出類內平均距離/類間中心距離最大的類,然後計算上述值,並對所有的類求和,越小越好。類似k-means的演算法僅在類中資料構成簇的情況下表現較好,密度聚類演算法從樣本密度的角度考察樣本之間的可連線性,並基於可連線樣本不斷擴充套件聚類蔟得到最終結果。DBSCAN(density-based spatial clustering of applications with noise)是一種著名的密度聚類演算法,基於一組鄰域引數 進行刻畫,包括 鄰域,核心物件(鄰域內至少包含 個物件),密度直達(j由i密度直達,表示j在i的鄰域內,且i是一個核心物件),密度可達(j由i密度可達,存在樣本序列使得每一對都密度直達),密度相連(xi,xj存在k,i,j均有k可達),先找出樣本中所有的核心物件,然後以任一核心物件作為出發點,找出由其密度可達的樣本生成聚類蔟,直到所有核心物件被訪問過為止。

聚類演算法中的距離度量有哪些

聚類演算法中的距離度量一般用閩科夫斯基距離,在p取不同的值下對應不同的距離,例如p=1的時候對應曼哈頓距離,p=2的情況下對應歐式距離,p=inf的情況下變為切比雪夫距離,還有jaccard距離,冪距離(閩科夫斯基的更一般形式),餘弦相似度,加權的距離,馬氏距離(類似加權)作為距離度量需要滿足非負性,同一性,對稱性和直遞性,閩科夫斯基在p>=1的時候滿足讀來那個性質,對於一些離散屬性例如{飛機,火車,輪船}則不能直接在屬性值上計算距離,這些稱為無序屬性,可以用VDM(ValueDiffrence Metrix),屬性u上兩個離散值a,b之間的VDM距離定義為

其中表示在第i個簇中屬性u上a的樣本數,樣本空間中不同屬性的重要性不同的時候可以採用加權距離,一般如果認為所有屬性重要性相同則要對特徵進行歸一化。一般來說距離需要的是相似性度量,距離越大,相似度越小,用於相似性度量的距離未必一定要滿足距離度量的所有性質,例如直遞性。比如人馬和人,人馬和馬的距離較近,然後人和馬的距離可能就很遠。

解釋貝葉斯公式和樸素貝葉斯分類求解方法

貝葉斯公式

最小化分類錯誤的貝葉斯最優分類器等價於最大化後驗概率

基於貝葉斯公式來估計後驗概率的主要困難在於,條件概率 是所有屬性上的聯合概率,難以從有限的訓練樣本直接估計得到。樸素貝葉斯分類器採用了屬性條件獨立性假設,對於已知的類別,假設所有屬性相互獨立。這樣,樸素貝葉斯分類則定義為

如果有足夠多的獨立同分布樣本,那麼 可以根據每個類中的樣本數量直接估計出來。在離散情況下先驗概率可以利用樣本數量估計或者離散情況下根據假設的概率密度函式進行最大似然估計。樸素貝葉斯可以用於同時包含連續變數和離散變數的情況。如果直接基於出現的次數進行估計,會出現一項為0而乘積為0的情況,所以一般會用一些平滑的方法,例如拉普拉斯修正

頻率學派和貝葉斯學派的區別

使用隨機事件的發生的頻率描述概率的方法,就是通常說的古典概型,或者稱為頻率學派。另外有一個更加綜合的觀點就是貝葉斯學派,在貝葉斯學派的觀點下概率表示的是事件的不確定性大小。

    使用概率表示不確定性,雖然不是唯一的選擇,但是是必然的,因為如果想使用比較自然的感覺進行合理的綜合的推斷的話。在模式識別領域,對概率有一個更綜合的瞭解將會非常有幫助。例如在多項式曲線擬合的過程中,對觀察的目標變數使用頻率學派的觀點來理解看起來比較合適。但是我們希望確定最佳模型的引數w的不確定性情況,於是我們可以看見在貝葉斯理論中不僅可以描述引數的不確定性,實際上選擇模型本身也是不確定的

優化方法(隨機梯度下降、擬牛頓法等優化演算法)

兩種演算法都是通過對資料進行引數評估,然後進行調整,找到一組最小化損失函式的引數的方法。
在標準梯度下降中,您將評估每組引數的所有訓練樣本。這類似於為解決這個問題而採取了大而緩慢的步驟。
在隨機梯度下降中,在更新引數集之前,您只需評估1個訓練樣本。這類似於向解決方案邁出的小步驟。

特徵比資料還大 選擇什麼分類器

如果訓練集很小,那麼高偏差/低方差分類器(如樸素貝葉斯分類器)要優於低偏差/高方差分類器(如k近鄰分類器),因為後者容易過擬合。然而,隨著訓練集的增大,低偏差/高方差分類器將開始勝出(它們具有較低的漸近誤差),因為高偏差分類器不足以提供準確的模型。你也可以認為這是生成模型與判別模型的區別。

L1和L2正則的區別,如何選擇L1和L2正則?L1在0處不可導,怎麼處理

他們都是可以防止過擬合,降低模型複雜度

L1是在loss function後面加上模型引數的1範數(也就是|xi|)L0範數的最小化問題在實際應用中是NP難問題,無法實際應用

L2是在loss function後面加上模型引數的2範數(也就是sigma(xi^2)),注意L2範數的定義是sqrt(sigma(xi^2)),在正則項上沒有新增sqrt根號是為了更加容易優化

L1 會產生稀疏的特徵

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

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

L1對應拉普拉斯分佈,L2對應高斯分佈,L1偏向於引數稀疏性,L1不可導可以使用ProximalAlgorithms或者ADMM來解決

隨機森林中的每一顆樹是怎麼學習的,隨機森林學習演算法中CART樹的基尼指數是什麼?

隨機森林由LeoBreiman(2001)提出,它通過自助法(bootstrap)重取樣技術,從原始訓練樣本集N中有放回地重複隨機抽取k個樣本生成新的訓練樣本集合,然後根據自助樣本集生成k個分類樹組成隨機森林,新資料的分類結果按分類樹投票多少形成的分數而定。其實質是對決策樹演算法的一種改進,將多個決策樹合併在一起,每棵樹的建立依賴於一個獨立抽取的樣品,森林中的每棵樹具有相同的分佈,分類誤差取決於每一棵樹的分類能力和它們之間的相關性。特徵選擇採用隨機的方法去分裂每一個節點,然後比較不同情況下產生的誤差。能夠檢測到的內在估計誤差、分類能力和相關性決定選擇特徵的數目。單棵樹的分類能力可能很小,但在隨機產生大量的決策樹後,一個測試樣品可以通過每一棵樹的分類結果經統計後選擇最可能的分類。

為什麼一些機器學習模型需要對資料進行歸一化?

http://blog.csdn.net/xbmatrix/article/details/56695825

歸一化化就是要把你需要處理的資料經過處理後(通過某種演算法)限制在你需要的一定範圍內。

1)歸一化後加快了梯度下降求最優解的速度。等高線變得顯得圓滑,在梯度下降進行求解時能較快的收斂。如果不做歸一化,梯度下降過程容易走之字,很難收斂甚至不能收斂

2)把有量綱表示式變為無量綱表示式, 有可能提高精度。一些分類器需要計算樣本之間的距離(如歐氏距離),例如KNN。如果一個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小的特徵更重要)

3) 邏輯迴歸等模型先驗假設資料服從正態分佈。

歸一化的型別有線性歸一化、標準差歸一化、非線性歸一化

歸一化和標準化的區別?

歸一化

1)把資料變成(0,1)之間的小數

2)把有量綱表示式變成無量綱表達

常見的有線性轉換、對數函式轉換、反餘切函式轉換等

標準化

資料的標準化(normalization)是將資料按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除資料的單位限制,將其轉化為無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。

1 ) 最小-最大規範化(線性變換)

y=((x-MinValue) / (MaxValue-MinValue))(new_MaxValue-new_MinValue)+new_minValue

2)z-score規範化(或零-均值規範化)

y=(x-X的平均值)X的標準差

3)小數定標規範化:通過移動X的小數位置來進行規範化

y= x/10j次方  (其中,j使得Max(|y|) <1的最小整數

4).對數Logistic模式:

新資料=1/(1+e^(-原資料))

5)模糊量化模式

新資料=1/2+1/2sin[派3.1415/(極大值-極小值)

特徵向量的缺失值處理

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

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

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

2) 用均值填充;

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

決策樹的停止條件

直到每個葉子節點都只有一種型別的記錄時停止,(這種方式很容易過擬合)

另一種時當葉子節點的記錄樹小於一定的閾值或者節點的資訊增益小於一定的閾值時停止

SVM、LR、決策樹的對比?

模型複雜度:SVM支援核函式,可處理線性非線性問題;LR模型簡單,訓練速度快,適合處理線性問題;決策樹容易過擬合,需要進行剪枝

損失函式:SVM hinge loss; LR L2正則化; adaboost 指數損失

資料敏感度:SVM新增容忍度對outlier不敏感,只關心支援向量,且需要先做歸一化; LR對遠點敏感

資料量:資料量大就用LR,資料量小且特徵少就用SVM非線性核

GBDT 和隨機森林的區別?

隨機森林採用的是bagging的思想,bagging又稱為bootstrap aggreagation,通過在訓練樣本集中進行有放回的取樣得到多個取樣集,基於每個取樣集訓練出一個基學習器,再將基學習器結合。隨機森林在對決策樹進行bagging的基礎上,在決策樹的訓練過程中引入了隨機屬性選擇。傳統決策樹在選擇劃分屬性的時候是在當前節點屬性集合中選擇最優屬性,而隨機森林則是對結點先隨機選擇包含k個屬性的子集,再選擇最有屬性,k作為一個引數控制了隨機性的引入程度。

另外,GBDT訓練是基於Boosting思想,每一迭代中根據錯誤更新樣本權重,因此是序列生成的序列化方法,而隨機森林是bagging的思想,因此是並行化方法。

監督學習一般使用兩種型別的目標變數

標稱型和數值型

標稱型:標稱型目標變數的結果只在有限目標集中取值,如真與假(標稱型目標變數主要用於分類)

數值型:數值型目標變數則可以從無限的數值集合中取值,如0.100,42.001等 (數值型目標變數主要用於迴歸分析)

為什麼說樸素貝葉斯是高偏差低方差?

它簡單的假設了各個特徵之間是無關的,是一個被嚴重簡化了的模型。所以,對於這樣一個簡單模型,大部分場合都會bias部分大於variance部分,也就是高偏差,低方差

決策樹的父節點和子節點的熵的大小?請解釋原因。

父節點的熵>子節點的熵

最好是在專案/實習的大資料場景裡用過,比如推薦裡用過 CF、LR,分類裡用過 SVM、GBDT;

一般用法是什麼,是不是自己實現的,有什麼比較知名的實現,使用過程中踩過哪些坑;

KMeans怎麼選擇聚類中心?如果存在空塊怎麼辦?

1) 選擇批次距離儘可能遠的K個點

  首先隨機選擇一個點作為第一個初始類簇中心點,然後選擇距離該點最遠的那個點作為第二個初始類簇中心點,然後再選擇距離前兩個點的最近距離最大的點作為第三個初始類簇的中心點,以此類推,直至選出K個初始類簇中心點。

2) 選用層次聚類或者Canopy演算法進行初始聚類,然後利用這些類簇的中心點作為KMeans演算法初始類簇中心點。 常用的層次聚類演算法有BIRCH和ROCK,在此不作介紹

如何確定K-mean中的值?

給定一個合適的類簇指標,比如平均半徑或直徑,只要我們假設的類簇的數目等於或者高於真實的類簇的數目時,該指標上升會很緩慢,而一旦試圖得到少於真實數目的類簇時,該指標會急劇上升。類簇的直徑是指類簇內任意兩點之間的最大距離。類簇的半徑是指類簇內所有點到類簇中心距離的最大值

機器學習常見優化演算法比較


概率論:均勻分佈如何轉化為高斯分佈?

由均勻分佈生成標準正態分佈主要有3種方法:Box–Muller演算法 ,中心極限定理和Kinderman and Monahanmethod。

其它題目

給你公司內部群組的聊天記錄,怎樣區分出主管和員工?

如何評估網站內容的真實性(針對代刷、作弊類)?

深度學習在推薦系統上可能有怎樣的發揮?

路段平均車速反映了路況,在道路上布控採集車輛速度,如何對路況做出合理估計?採集資料中的異常值如何處理?

如何根據語料計算兩個詞詞義的相似度?

在百度貼吧裡釋出 APP 廣告,問推薦策略?

如何判斷自己實現的 LR、Kmeans 演算法是否正確?

100億數字,怎麼統計前100大的?

常見的聚類演算法?

校正R2或者F值是用來評估線性迴歸模型的。那用什麼來評估邏輯迴歸模型?

1.由於邏輯迴歸是用來預測概率的,我們可以用AUC-ROC曲線以及混淆矩陣來確定其效能。

2.此外,在邏輯迴歸中類似於校正R2的指標是AIC。AIC是對模型係數數量懲罰模型的擬合度量。因此,我們更偏愛有最小AIC的模型。

3.空偏差指的是隻有截距項的模型預測的響應。數值越低,模型越好。殘餘偏差表示由新增自變數的模型預測的響應。數值越低,模型越好。

推薦系統:

推薦系統的實現主要分為兩個方面:基於內容的實現和協同濾波的實現。

基於內容的實現:

不同人對不同電影的評分這個例子,可以看做是一個普通的迴歸問題,因此每部電影都需要提前提取出一個特徵向量(即x值),然後針對每個使用者建模,即每個使用者打的分值作為y值,利用這些已有的分值y和電影特徵值x就可以訓練迴歸模型了(最常見的就是線性迴歸)。這樣就可以預測那些使用者沒有評分的電影的分數。(值得注意的是需對每個使用者都建立他自己的迴歸模型)

從另一個角度來看,也可以是先給定每個使用者對某種電影的喜好程度(即權值),然後學出每部電影的特徵,最後採用迴歸來預測那些沒有被評分的電影。

當然還可以是同時優化得到每個使用者對不同型別電影的熱愛程度以及每部電影的特徵。具體可以參考Ng在coursera上的ml教程:

基於協同濾波的實現:

協同濾波(CF)可以看做是一個分類問題,也可以看做是矩陣分解問題。協同濾波主要是基於每個人自己的喜好都類似這一特徵,它不依賴於個人的基本資訊。比如剛剛那個電影評分的例子中,預測那些沒有被評分的電影的分數只依賴於已經打分的那些分數,並不需要去學習那些電影的特徵。

SVD將矩陣分解為三個矩陣的乘積,公式如下所示:

中間的矩陣sigma為對角矩陣,對角元素的值為Data矩陣的奇異值(注意奇異值和特徵值是不同的),且已經從大到小排列好了。即使去掉特徵值小的那些特徵,依然可以很好的重構出原始矩陣。如下圖所示:

其中更深的顏色代表去掉小特徵值重構時的三個矩陣。

果m代表商品的個數,n代表使用者的個數,則U矩陣的每一行代表商品的屬性,現在通過降維U矩陣(取深色部分)後,每一個商品的屬性可以用更低的維度表示(假設為k維)。這樣當新來一個使用者的商品推薦向量X,則可以根據公式X’*U1*inv(S1)得到一個k維的向量,然後在V’中尋找最相似的那一個使用者(相似度測量可用餘弦公式等),根據這個使用者的評分來推薦(主要是推薦新使用者未打分的那些商品)。具體例子可以參考網頁:SVD在推薦系統中的應用。另外關於SVD分解後每個矩陣的實際含義可以參考google吳軍的《數學之美》一書(不過個人感覺吳軍解釋UV兩個矩陣時好像弄反了,不知道大家怎樣認為)。或者參考machine learning in action其中的svd章節。

TF-IDF是什麼?

TF指Term frequecy,代表詞頻,IDF代表inverse document frequency,叫做逆文件頻率,這個演算法可以用來提取文件的關鍵詞,首先一般認為在文章中出現次數較多的詞是關鍵詞,詞頻就代表了這一項,然而有些詞是停用詞,例如的,是,有這種大量出現的詞,首先需要進行過濾,比如過濾之後再統計詞頻出現了中國,蜜蜂,養殖且三個詞的詞頻幾乎一致,但是中國這個詞出現在其他文章的概率比其他兩個詞要高不少,因此我們應該認為後兩個詞更能表現文章的主題,IDF就代表了這樣的資訊,計算該值需要一個語料庫,如果一個詞在語料庫中出現的概率越小,那麼該詞的IDF應該越大,一般來說TF計算公式為(某個詞在文章中出現次數/文章的總詞數),這樣消除長文章中詞出現次數多的影響,IDF計算公式為log(語料庫文章總數/(包含該詞的文章數)+1)。將兩者乘乘起來就得到了詞的TF-IDF。傳統的TF-IDF對詞出現的位置沒有進行考慮,可以針對不同位置賦予不同的權重進行修正,注意這些修正之所以是有效的,正是因為人觀測過了大量的資訊,因此建議了一個先驗估計,人將這個先驗估計融合到了演算法裡面,所以使演算法更加的有效。

文字中的餘弦距離是什麼,有哪些作用?

餘弦距離是兩個向量的距離的一種度量方式,其值在-1~1之間,如果為1表示兩個向量同相,0表示兩個向量正交,-1表示兩個向量反向。使用TF-IDF和餘弦距離可以尋找內容相似的文章,例如首先用TF-IDF找出兩篇文章的關鍵詞,然後每個文章分別取出k個關鍵詞(10-20個),統計這些關鍵詞的詞頻,生成兩篇文章的詞頻向量,然後用餘弦距離計算其相似度。

如何解決類別不平衡問題?

2. 處理不平衡資料集的方法

2.1.1 隨機欠取樣(RandomUnder-Sampling)

2.1.2 隨機過取樣(RandomOver-Sampling)

2.1.3 基於聚類的過取樣(Cluster-BasedOver Sampling)

在這種情況下,K-均值聚類演算法獨立地被用於少數和多數類例項。這是為了識別資料集中的聚類。隨後,每一個聚類都被過取樣以至於相同類的所有聚類有著同樣的例項數量,且所有的類有著相同的大小。

2.1.4 資訊性過取樣:合成少數類過取樣技術(SMOTE)

這一技術可用來避免過擬合——當直接複製少數類例項並將其新增到主資料集時。從少數類中把一個數據子集作為一個例項取走,接著建立相似的新合成的例項。這些合成的例項接著被新增進原來的資料集。新資料集被用作樣本以訓練分類模型。

2.15 改進的合成少數類過取樣技術(MSMOTE)

2.2 演算法整合技術(AlgorithmicEnsemble Techniques)

Bagging boosting

什麼是貝葉斯估計 

new 和 malloc的區別

hash衝突是指什麼?怎麼解決?給兩種方法,寫出過程和優缺點。
是否瞭解線性加權、baggingboostingcascade等模型融合方式

LDA的原理和推導做廣告點選率預測,用哪些資料什麼演算法推薦系統的演算法中最近鄰和矩陣分解各自適用場景使用者流失率預測怎麼做(遊戲公司的資料探勘都喜歡問這個)一個遊戲的設計過程中該收集什麼資料如何從登陸日誌中挖掘儘可能多的資訊

推薦系統的冷啟動問題如何解決

是否瞭解A/B Test以及A/B Test結果的置信度

給你一個有1000列和1百萬行的訓練資料集。這個資料集是基於分類問題的。經理要求你來降低該資料集的維度以減少模型計算時間。你的機器記憶體有限。你會怎麼做?(你可以自由做各種實際操作假設。)

1.由於我們的RAM很小,首先要關閉機器上正在執行的其他程式,包括網頁瀏覽器,以確保大部分記憶體可以使用。

2.我們可以隨機取樣資料集。這意味著,我們可以建立一個較小的資料集,比如有1000個變數和30萬行,然後做計算。

3.為了降低維度,我們可以把數值變數和分類變數分開,同時刪掉相關聯的變數。對於數值變數,我們將使用相關性分析。對於分類變數,我們可以用卡方檢驗。

4.另外,我們還可以使用PCA(主成分分析),並挑選可以解釋在資料集中有最大偏差的成分。

5.利用線上學習演算法,如VowpalWabbit(在Python中可用)是一個可能的選擇。

6.利用StochasticGradientDescent(隨機梯度下降)法建立線性模型也很有幫助。

7.我們也可以用我們對業務的理解來估計各預測變數對響應變數的影響大小。但是,這是一個主觀的方法,如果沒有找出有用的預測變數可能會導致資訊的顯著丟失。

PCA中有必要做旋轉變換嗎?如果有必要,為什麼?如果你沒有旋轉變換那些成分,會發生什麼情況?

旋轉(正交)是必要的,因為它把由主成分捕獲的方差之間的差異最大化。這使得主成分更容易解釋。

但是不要忘記我們做PCA的目的是選擇更少的主成分(與特徵變數個數相較而言),那些選上的主成分能夠解釋資料集中最大方差。通過做旋轉,各主成分的相對位置不發生變化,它只能改變點的實際座標。

如果我們沒有旋轉主成分,PCA的效果會減弱,那樣我們會不得不選擇更多個主成分來解釋資料集裡的方差。

給你一個數據集。這個資料集有缺失值,且這些缺失值分佈在離中值有1個標準偏差的範圍內。百分之多少的資料不會受到影響?為什麼?

這個問題給了你足夠的提示來開始思考!由於資料分佈在中位數附近,讓我們先假設這是一個正態分佈。我們知道,在一個正態分佈中,約有68%的資料位於跟平均數(或眾數、中位數)1個標準差範圍內的,那樣剩下的約32%的資料是不受影響的。因此,約有32%的資料將不受到缺失值的影響。

給你一個癌症檢測的資料集。你已經建好了分類模型,取得了96%的精度。為什麼你還是不滿意你的模型效能?你可以做些什麼呢?

如果你分析過足夠多的資料集,你應該可以判斷出來癌症檢測結果是不平衡資料。在不平衡資料集中,精度不應該被用來作為衡量模型的標準,因為96%(按給定的)可能只有正確預測多數分類,但我們感興趣是那些少數分類(4%),是那些被診斷出癌症的人。

因此,為了評價模型的效能,應該用靈敏度(真陽性率),特異性(真陰性率),F值用來確定這個分類器的“聰明”程度。如果在那4%的資料上表現不好,我們可以採取以下步驟:

1.我們可以使用欠取樣、過取樣或SMOTE讓資料平衡。

2.我們可以通過概率驗證和利用AUC-ROC曲線找到最佳閥值來調整預測閥值。

3.我們可以給分類分配權重,那樣較少的分類獲得較大的權重。

4.我們還可以使用異常檢測。

解釋樸素貝葉斯演算法裡面的先驗概率、似然估計和邊際似然估計?

先驗概率就是因變數(二分法)在資料集中的比例。這是在你沒有任何進一步的資訊的時候,是對分類能做出的最接近的猜測。例如,在一個數據集中,因變數是二進位制的(10)。例如,1(垃圾郵件)的比例為70%和0(非垃圾郵件)的為30%。

因此,我們可以估算出任何新的電子郵件有70%的概率被歸類為垃圾郵件。似然估計是在其他一些變數的給定的情況下,一個觀測值被分類為1的概率。例如,“FREE”這個詞在以前的垃圾郵件使用的概率就是似然估計。邊際似然估計就是,“FREE”這個詞在任何訊息中使用的概率。

花了幾個小時後,現在你急於建一個高精度的模型。結果,你建了5GBMGradient Boosted Models),想著boosting演算法會顯示魔力。不幸的是,沒有一個模型比基準模型表現得更好。最後,你決定將這些模型結合到一起。儘管眾所周知,結合模型通常精度高,但你就很不幸運。你到底錯在哪裡?

據我們所知,組合的學習模型是基於合併弱的學習模型來創造一個強大的學習模型的想法。但是,只有當各模型之間沒有相關性的時候組合起來後才比較強大。由於我們已經試了5個 GBM,但沒有提高精度,表明這些模型是相關的。具有相關性的模型的問題是,所有的模型提供相同的資訊。例如:如果模型1把User1122歸類為 1,模型2和模型3很有可能會做有同樣分類,即使它的實際值應該是0,因此,只有弱相關的模型結合起來才會表現更好。

我知道校正R?或者F值來是用來評估線性迴歸模型的。那用什麼來評估邏輯迴歸模型?

1.由於邏輯迴歸是用來預測概率的,我們可以用AUC-ROC曲線以及混淆矩陣來確定其效能。

2.此外,在邏輯迴歸中類似於校正R?的指標是AICAIC是對模型係數數量懲罰模型的擬合度量。因此,我們更偏愛有最小AIC的模型。

3.空偏差指的是隻有截距項的模型預測的響應。數值越低,模型越好。殘餘偏差表示由新增自變數的模型預測的響應。數值越低,模型越好。

偏差和方差的平衡?

偏差誤差在量化平均水平之上預測值跟實際值相差多遠時有用。高偏差誤差意味著我們的模型表