50經(jīng)典面試題 | 附參考答案
點擊上方“AI算法與圖像處理”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達
來源:計算機視覺研究院專欄
作者:Edison_G

有興趣的同學(xué)請學(xué)會面試答題!祝大家都可以拿到心儀的Offer!
2、哪些機器學(xué)習(xí)算法不需要做歸一化處理?
在實際應(yīng)用中,需要歸一化的模型:
1.基于距離計算的模型:KNN。
2.通過梯度下降法求解的模型:線性回歸、邏輯回歸、支持向量機、神經(jīng)網(wǎng)絡(luò)。
但樹形模型不需要歸一化,因為它們不關(guān)心變量的值,而是關(guān)心變量的分布和變量之間的條件概率,如決策樹、隨機森林(Random Forest)。
3、樹形結(jié)構(gòu)為什么不需要歸一化?
因為數(shù)值縮放不影響分裂點位置,對樹模型的結(jié)構(gòu)不造成影響。
按照特征值進行排序的,排序的順序不變,那么所屬的分支以及分裂點就不會有不同。而且,樹模型是不能進行梯度下降的,因為構(gòu)建樹模型(回歸樹)尋找最優(yōu)點時是通過尋找最優(yōu)分裂點完成的,因此樹模型是階躍的,階躍點是不可導(dǎo)的,并且求導(dǎo)沒意義,也就不需要歸一化。
4、在k-means或kNN,我們常用歐氏距離來計算最近的鄰居之間的距離,有時也用曼哈頓距離,請對比下這兩種距離的差別
歐氏距離,最常見的兩點之間或多點之間的距離表示法,又稱之為歐幾里得度量,它定義于歐幾里得空間中。
5、數(shù)據(jù)歸一化(或者標(biāo)準(zhǔn)化,注意歸一化和標(biāo)準(zhǔn)化不同)的原因
能不歸一化最好不歸一化,之所以進行數(shù)據(jù)歸一化是因為各維度的量綱不相同。而且需要看情況進行歸一化。
有些模型在各維度進行了不均勻的伸縮后,最優(yōu)解與原來不等價(如SVM)需要歸一化。
有些模型伸縮有與原來等價,如:LR則不用歸一化,但是實際中往往通過迭代求解模型參數(shù),如果目標(biāo)函數(shù)太扁(想象一下很扁的高斯模型)迭代算法會發(fā)生不收斂的情況,所以最好進行數(shù)據(jù)歸一化。
6、請簡要說說一個完整機器學(xué)習(xí)項目的流程
抽象成數(shù)學(xué)問題
明確問題是進行機器學(xué)習(xí)的第一步。機器學(xué)習(xí)的訓(xùn)練過程通常都是一件非常耗時的事情,胡亂嘗試時間成本是非常高的。
這里的抽象成數(shù)學(xué)問題,指的我們明確我們可以獲得什么樣的數(shù)據(jù),目標(biāo)是一個分類還是回歸或者是聚類的問題,如果都不是的話,如果劃歸為其中的某類問題。
獲取數(shù)據(jù)
數(shù)據(jù)決定了機器學(xué)習(xí)結(jié)果的上限,而算法只是盡可能逼近這個上限。
數(shù)據(jù)要有代表性,否則必然會過擬合。
而且對于分類問題,數(shù)據(jù)偏斜不能過于嚴重,不同類別的數(shù)據(jù)數(shù)量不要有數(shù)個數(shù)量級的差距。
而且還要對數(shù)據(jù)的量級有一個評估,多少個樣本,多少個特征,可以估算出其對內(nèi)存的消耗程度,判斷訓(xùn)練過程中內(nèi)存是否能夠放得下。如果放不下就得考慮改進算法或者使用一些降維的技巧了。如果數(shù)據(jù)量實在太大,那就要考慮分布式了。
特征預(yù)處理與特征選擇
良好的數(shù)據(jù)要能夠提取出良好的特征才能真正發(fā)揮效力。
7、邏輯斯蒂回歸為什么要對特征進行離散化
① 非線性!非線性!非線性!邏輯回歸屬于廣義線性模型,表達能力受限;單變量離散化為N個后,每個變量有單獨的權(quán)重,相當(dāng)于為模型引入了非線性,能夠提升模型表達能力,加大擬合;離散特征的增加和減少都很容易,易于模型的快速迭代;?
② 速度快!速度快!速度快!稀疏向量內(nèi)積乘法運算速度快,計算結(jié)果方便存儲,容易擴展;?
③ 魯棒性!魯棒性!魯棒性!離散化后的特征對異常數(shù)據(jù)有很強的魯棒性:比如一個特征是年齡>30是1,否則0。如果特征沒有離散化,一個異常數(shù)據(jù)“年齡300歲”會給模型造成很大的干擾;?
④ 方便交叉與特征組合:離散化后可以進行特征交叉,由M+N個變量變?yōu)镸*N個變量,進一步引入非線性,提升表達能力;?
⑤ 穩(wěn)定性:特征離散化后,模型會更穩(wěn)定,比如如果對用戶年齡離散化,20-30作為一個區(qū)間,不會因為一個用戶年齡長了一歲就變成一個完全不同的人。當(dāng)然處于區(qū)間相鄰處的樣本會剛好相反,所以怎么劃分區(qū)間是門學(xué)問;?
⑥ 簡化模型:特征離散化以后,起到了簡化了邏輯回歸模型的作用,降低了模型過擬合的風(fēng)險。
8、簡單介紹下LR
把LR從頭到腳都給講一遍。建模,現(xiàn)場數(shù)學(xué)推導(dǎo),每種解法的原理,正則化,LR和maxent模型啥關(guān)系。有不少會背答案的人,問邏輯細節(jié)就糊涂了。
原理都會? 那就問工程,并行化怎么做,有幾種并行化方式,讀過哪些開源的實現(xiàn)。還會,那就準(zhǔn)備收了吧,順便逼問LR模型發(fā)展歷史。
9、overfitting怎么解決
區(qū)別:?
1、LR是參數(shù)模型,svm是非參數(shù)模型,linear和rbf則是針對數(shù)據(jù)線性可分和不可分的區(qū)別;
2、從目標(biāo)函數(shù)來看,區(qū)別在于邏輯回歸采用的是logistical loss,SVM采用的是hinge loss,這兩個損失函數(shù)的目的都是增加對分類影響較大的數(shù)據(jù)點的權(quán)重,減少與分類關(guān)系較小的數(shù)據(jù)點的權(quán)重。?
3、SVM的處理方法是只考慮support vectors,也就是和分類最相關(guān)的少數(shù)點,去學(xué)習(xí)分類器。而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權(quán)重,相對提升了與分類最相關(guān)的數(shù)據(jù)點的權(quán)重。?
熵的概念最早起源于物理學(xué),用于度量一個熱力學(xué)系統(tǒng)的無序程度。在信息論里面,熵是對不確定性的測量。
經(jīng)常在機器學(xué)習(xí)中的優(yōu)化問題中看到一個算法,即梯度下降法,那到底什么是梯度下降法呢?
維基百科給出的定義是梯度下降法(Gradient descent)是一個一階最優(yōu)化算法,通常也稱為最速下降法。要使用梯度下降法找到一個函數(shù)的局部極小值,必須向函數(shù)上當(dāng)前點對應(yīng)梯度(或者是近似梯度)的反方向的規(guī)定步長距離點進行迭代搜索。如果相反地向梯度正方向迭代進行搜索,則會接近函數(shù)的局部極大值點;這個過程則被稱為梯度上升法。
牛頓法是一種在實數(shù)域和復(fù)數(shù)域上近似求解方程的方法。方法使用函數(shù)f (x)的泰勒級數(shù)的前面幾項來尋找方程f (x) = 0的根。牛頓法最大的特點就在于它的收斂速度很快。
大寫字母X表示隨機變量,小寫字母x表示隨機變量X的某個具體的取值;
P(X)表示隨機變量X的概率分布,P(X,Y)表示隨機變量X、Y的聯(lián)合概率分布,P(Y|X)表示已知隨機變量X的情況下隨機變量Y的條件概率分布;
p(X = x)表示隨機變量X取某個具體值的概率,簡記為p(x);
p(X = x, Y = y) 表示聯(lián)合概率,簡記為p(x,y),p(Y = y|X = x)表示條件概率,簡記為p(y|x),且有:p(x,y) = p(x) * p(y|x)。
15、說說你知道的核函數(shù)

16、什么是擬牛頓法(Quasi-Newton Methods)?
空間復(fù)雜度:O((m+K)n),其中,K為簇的數(shù)目,m為記錄數(shù)(也可認為是樣本數(shù)),n為維數(shù)
18、請說說隨機梯度下降法的問題和挑戰(zhàn)?

共軛梯度法是介于梯度下降法(最速下降法)與牛頓法之間的一個方法,它僅需利用一階導(dǎo)數(shù)信息,但克服了梯度下降法收斂慢的缺點,又避免了牛頓法需要存儲和計算Hessian矩陣并求逆的缺點,共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優(yōu)化最有效的算法之一。在各種優(yōu)化算法中,共軛梯度法是非常重要的一種。其優(yōu)點是所需存儲量小,具有逐步收斂性,穩(wěn)定性高,而且不需要任何外來參數(shù)。
20、對所有優(yōu)化問題來說, 有沒有可能找到比現(xiàn)在已知算法更好的算法?
沒有免費的午餐定理:
對于訓(xùn)練樣本(黑點),不同的算法A/B在不同的測試樣本(白點)中有不同的表現(xiàn),這表示:對于一個學(xué)習(xí)算法A,若它在某些問題上比學(xué)習(xí)算法 B更好,則必然存在一些問題,在那里B比A好。
也就是說:對于所有問題,無論學(xué)習(xí)算法A多聰明,學(xué)習(xí)算法 B多笨拙,它們的期望性能相同。
但是:沒有免費午餐定理假設(shè)所有問題出現(xiàn)幾率相同,實際應(yīng)用中,不同的場景,會有不同的問題分布,所以,在優(yōu)化算法時,針對具體問題進行分析,是算法優(yōu)化的核心所在。
21、什么是最大熵
熵是隨機變量不確定性的度量,不確定性越大,熵值越大;若隨機變量退化成定值,熵為0。如果沒有外界干擾,隨機變量總是趨向于無序,在經(jīng)過足夠時間的穩(wěn)定演化,它應(yīng)該能夠達到的最大程度的熵。?
為了準(zhǔn)確的估計隨機變量的狀態(tài),我們一般習(xí)慣性最大化熵,認為在所有可能的概率模型(分布)的集合中,熵最大的模型是最好的模型。換言之,在已知部分知識的前提下,關(guān)于未知分布最合理的推斷就是符合已知知識最不確定或最隨機的推斷,其原則是承認已知事物(知識),且對未知事物不做任何假設(shè),沒有任何偏見
23、簡單說下有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的區(qū)別
無監(jiān)督學(xué)習(xí):對未標(biāo)記的樣本進行訓(xùn)練學(xué)習(xí),比發(fā)現(xiàn)這些樣本中的結(jié)構(gòu)知識。(KMeans,PCA)
24、請問(決策樹、Random Forest、Boosting、Adaboot)GBDT和XGBoost的區(qū)別是什么?
集成學(xué)習(xí)的集成對象是學(xué)習(xí)器. Bagging和Boosting屬于集成學(xué)習(xí)的兩類方法. Bagging方法有放回地采樣同數(shù)量樣本訓(xùn)練每個學(xué)習(xí)器, 然后再一起集成(簡單投票); Boosting方法使用全部樣本(可調(diào)權(quán)重)依次訓(xùn)練每個學(xué)習(xí)器, 迭代集成(平滑加權(quán)).
決策樹屬于最常用的學(xué)習(xí)器, 其學(xué)習(xí)過程是從根建立樹, 也就是如何決策葉子節(jié)點分裂. ID3/C4.5決策樹用信息熵計算最優(yōu)分裂, CART決策樹用基尼指數(shù)計算最優(yōu)分裂, xgboost決策樹使用二階泰勒展開系數(shù)計算最優(yōu)分裂。
25、機器學(xué)習(xí)中的正則化到底是什么意思?
經(jīng)常在各種文章或資料中看到正則化,比如說,一般的目標(biāo)函數(shù)都包含下面兩項

其中,誤差/損失函數(shù)鼓勵我們的模型盡量去擬合訓(xùn)練數(shù)據(jù),使得最后的模型會有比較少的 bias。而正則化項則鼓勵更加簡單的模型。因為當(dāng)模型簡單之后,有限數(shù)據(jù)擬合出來結(jié)果的隨機性比較小,不容易過擬合,使得最后模型的預(yù)測更加穩(wěn)定。
但一直沒有一篇好的文章理清到底什么是正則化?
說到正則化,得先從過擬合問題開始談起。
26、說說常見的損失函數(shù)?
對于給定的輸入X,由f(X)給出相應(yīng)的輸出Y,這個輸出的預(yù)測值f(X)與真實值Y可能一致也可能不一致(要知道,有時損失或誤差是不可避免的),用一個損失函數(shù)來度量預(yù)測錯誤的程度。損失函數(shù)記為L(Y, f(X)),用來估量你模型的預(yù)測值f(x)與真實值Y的不一致程度。
27、為什么xgboost要用泰勒展開,優(yōu)勢在哪里?
xgboost使用了一階和二階偏導(dǎo), 二階導(dǎo)數(shù)有利于梯度下降的更快更準(zhǔn). 使用泰勒展開取得函數(shù)做自變量的二階導(dǎo)數(shù)形式, 可以在不選定損失函數(shù)具體形式的情況下, 僅僅依靠輸入數(shù)據(jù)的值就可以進行葉子分裂優(yōu)化計算, 本質(zhì)上也就把損失函數(shù)的選取和模型算法優(yōu)化/參數(shù)選擇分開了. 這種去耦合增加了xgboost的適用性, 使得它按需選取損失函數(shù), 可以用于分類, 也可以用于回歸。
28、協(xié)方差和相關(guān)性有什么區(qū)別?
相關(guān)性是協(xié)方差的標(biāo)準(zhǔn)化格式。協(xié)方差本身很難做比較。例如:如果我們計算工資($)和年齡(歲)的協(xié)方差,因為這兩個變量有不同的度量,所以我們會得到不能做比較的不同的協(xié)方差。
29、xgboost如何尋找最優(yōu)特征?是有放回還是無放回的呢?
xgboost在訓(xùn)練的過程中給出各個特征的增益評分,最大增益的特征會被選出來作為分裂依據(jù), 從而記憶了每個特征對在模型訓(xùn)練時的重要性 -- 從根到葉子中間節(jié)點涉及某特征的次數(shù)作為該特征重要性排序。
30、談?wù)勁袆e式模型和生成式模型?
判別方法:由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù) Y = f(X),或者由條件分布概率 P(Y|X)作為預(yù)測模型,即判別模型。
生成方法:由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率密度分布函數(shù) P(X,Y),然后求出條件概率分布P(Y|X)作為預(yù)測的模型,即生成模型。
由生成模型可以得到判別模型,但由判別模型得不到生成模型。
常見的判別模型有:K近鄰、SVM、決策樹、感知機、線性判別分析(LDA)、線性回歸、傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)、邏輯斯蒂回歸、boosting、條件隨機場
常見的生成模型有:樸素貝葉斯、隱馬爾可夫模型、高斯混合模型、文檔主題生成模型(LDA)、限制玻爾茲曼機
31、線性分類器與非線性分類器的區(qū)別以及優(yōu)劣
線性和非線性是針對,模型參數(shù)和輸入特征來講的;比如輸入x,模型y=ax+ax^2那么就是非線性模型,如果輸入是x和X^2則模型是線性的。
線性分類器可解釋性好,計算復(fù)雜度較低,不足之處是模型的擬合效果相對弱些。
非線性分類器效果擬合能力較強,不足之處是數(shù)據(jù)量不足容易過擬合、計算復(fù)雜度高、可解釋性不好。
常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性回歸
常見的非線性分類器:決策樹、RF、GBDT、多層感知機
SVM兩種都有(看線性核還是高斯核)
32、L1和L2的區(qū)別
L1范數(shù)(L1 norm)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規(guī)則算子”(Lasso regularization)。?
比如 向量A=[1,-1,3], 那么A的L1范數(shù)為 |1|+|-1|+|3|.
簡單總結(jié)一下就是:?
L1范數(shù): 為x向量各個元素絕對值之和。?
L2范數(shù): 為x向量各個元素平方和的1/2次方,L2范數(shù)又稱Euclidean范數(shù)或者Frobenius范數(shù)?
Lp范數(shù): 為x向量各個元素絕對值p次方和的1/p次方
33、L1和L2正則先驗分別服從什么分布
面試中遇到的,L1和L2正則先驗分別服從什么分布,L1是拉普拉斯分布,L2是高斯分布。
34、簡單介紹下logistics回歸?
比如在實際工作中,我們可能會遇到如下問題:
預(yù)測一個用戶是否點擊特定的商品
判斷用戶的性別
預(yù)測用戶是否會購買給定的品類
判斷一條評論是正面的還是負面的
這些都可以看做是分類問題,更準(zhǔn)確地,都可以看做是二分類問題。要解決這些問題,通常會用到一些已有的分類算法,比如邏輯回歸,或者支持向量機。它們都屬于有監(jiān)督的學(xué)習(xí),因此在使用這些算法之前,必須要先收集一批標(biāo)注好的數(shù)據(jù)作為訓(xùn)練集。有些標(biāo)注可以從log中拿到(用戶的點擊,購買),有些可以從用戶填寫的信息中獲得(性別),也有一些可能需要人工標(biāo)注(評論情感極性)。
35、說一下Adaboost,權(quán)值更新公式。當(dāng)弱分類器是Gm時,每個樣本的的權(quán)重是w1,w2...,請寫出最終的決策公式。
給定一個訓(xùn)練數(shù)據(jù)集T={(x1,y1), (x2,y2)…(xN,yN)}
36、經(jīng)常在網(wǎng)上搜索東西的朋友知道,當(dāng)你不小心輸入一個不存在的單詞時,搜索引擎會提示你是不是要輸入某一個正確的單詞,比如當(dāng)你在Google中輸入“Julw”時,系統(tǒng)會猜測你的意圖:是不是要搜索“July”

用戶輸入一個單詞時,可能拼寫正確,也可能拼寫錯誤。如果把拼寫正確的情況記做c(代表correct),拼寫錯誤的情況記做w(代表wrong),那么"拼寫檢查"要做的事情就是:在發(fā)生w的情況下,試圖推斷出c。換言之:已知w,然后在若干個備選方案中,找出可能性最大的那個c
37、為什么樸素貝葉斯如此“樸素”?
樸素貝葉斯模型(Naive Bayesian Model)的樸素(Naive)的含義是"很簡單很天真"地假設(shè)樣本特征彼此獨立. 這個假設(shè)現(xiàn)實中基本上不存在, 但特征相關(guān)性很小的實際情況還是很多的, 所以這個模型仍然能夠工作得很好。
38、請大致對比下plsa和LDA的區(qū)別

39、請詳細說說EM算法
到底什么是EM算法呢?Wikipedia給的解釋是:
最大期望算法(Expectation-maximization algorithm,又譯為期望最大化算法),是在概率模型中尋找參數(shù)最大似然估計或者最大后驗估計的算法,其中概率模型依賴于無法觀測的隱性變量。
40、KNN中的K如何選取的?
關(guān)于什么是KNN,可以查看此文:《從K近鄰算法、距離度量談到KD樹、SIFT+BBF算法》(鏈接:blog.csdn.net/v_july_v/)。KNN中的K值選取對K近鄰算法的結(jié)果會產(chǎn)生重大影響。如李航博士的一書「統(tǒng)計學(xué)習(xí)方法」上所說:如果選擇較小的K值,就相當(dāng)于用較小的領(lǐng)域中的訓(xùn)練實例進行預(yù)測,“學(xué)習(xí)”近似誤差會減小,只有與輸入實例較近或相似的訓(xùn)練實例才會對預(yù)測結(jié)果起作用,與此同時帶來的問題是“學(xué)習(xí)”的估計誤差會增大,換句話說,K值的減小就意味著整體模型變得復(fù)雜,容易發(fā)生過擬合;
如果選擇較大的K值,就相當(dāng)于用較大領(lǐng)域中的訓(xùn)練實例進行預(yù)測,其優(yōu)點是可以減少學(xué)習(xí)的估計誤差,但缺點是學(xué)習(xí)的近似誤差會增大。這時候,與輸入實例較遠(不相似的)訓(xùn)練實例也會對預(yù)測器作用,使預(yù)測發(fā)生錯誤,且K值的增大就意味著整體的模型變得簡單。
K=N,則完全不足取,因為此時無論輸入實例是什么,都只是簡單的預(yù)測它屬于在訓(xùn)練實例中最多的累,模型過于簡單,忽略了訓(xùn)練實例中大量有用信息。
在實際應(yīng)用中,K值一般取一個比較小的數(shù)值,例如采用交叉驗證法(簡單來說,就是一部分樣本做訓(xùn)練集,一部分做測試集)來選擇最優(yōu)的K值。
41、防止過擬合的方法
過擬合的原因是算法的學(xué)習(xí)能力過強;一些假設(shè)條件(如樣本獨立同分布)可能是不成立的;訓(xùn)練樣本過少不能對整個空間進行分布估計。?
處理方法:
1 早停止:如在訓(xùn)練中多次迭代后發(fā)現(xiàn)模型性能沒有顯著提高就停止訓(xùn)練
2 數(shù)據(jù)集擴增:原有數(shù)據(jù)增加、原有數(shù)據(jù)加隨機噪聲、重采樣
3 正則化,正則化可以限制模型的復(fù)雜度
4 交叉驗證
5 特征選擇/特征降維
6 創(chuàng)建一個驗證集是最基本的防止過擬合的方法。我們最終訓(xùn)練得到的模型目標(biāo)是要在驗證集上面有好的表現(xiàn),而不訓(xùn)練集。
42、機器學(xué)習(xí)中,為何要經(jīng)常對數(shù)據(jù)做歸一化
機器學(xué)習(xí)模型被互聯(lián)網(wǎng)行業(yè)廣泛應(yīng)用,如排序(參見:排序?qū)W習(xí)實踐cnblogs.com/LBSer/p/443)、推薦、反作弊、定位(參見:基于樸素貝葉斯的定位算法cnblogs.com/LBSer/p/402)等。
一般做機器學(xué)習(xí)應(yīng)用的時候大部分時間是花費在特征處理上,其中很關(guān)鍵的一步就是對特征數(shù)據(jù)進行歸一化。
為什么要歸一化呢?很多同學(xué)并未搞清楚,維基百科給出的解釋:1)歸一化后加快了梯度下降求最優(yōu)解的速度;2)歸一化有可能提高精度。
43、什么最小二乘法?
我們口頭中經(jīng)常說:一般來說,平均來說。如平均來說,不吸煙的健康優(yōu)于吸煙者,之所以要加“平均”二字,是因為凡事皆有例外,總存在某個特別的人他吸煙但由于經(jīng)常鍛煉所以他的健康狀況可能會優(yōu)于他身邊不吸煙的朋友。而最小二乘法的一個最簡單的例子便是算術(shù)平均。
最小二乘法(又稱最小平方法)是一種數(shù)學(xué)優(yōu)化技術(shù)。它通過最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配。利用最小二乘法可以簡便地求得未知的數(shù)據(jù),并使得這些求得的數(shù)據(jù)與實際數(shù)據(jù)之間誤差的平方和為最小。
44、梯度下降法找到的一定是下降最快的方向么?
梯度下降法并不一定是全局下降最快的方向,它只是目標(biāo)函數(shù)在當(dāng)前的點的切平面(當(dāng)然高維問題不能叫平面)上下降最快的方向。在practical implementation中,牛頓方向(考慮海森矩陣)才一般被認為是下降最快的方向,可以達到superlinear的收斂速度。梯度下降類的算法的收斂速度一般是linear甚至sublinear的(在某些帶復(fù)雜約束的問題)。
45、簡單說說貝葉斯定理的

46、怎么理解決策樹、xgboost能處理缺失值?而有的模型(svm)對缺失值比較敏感。
本題解析來源:zhihu.com/question/5823
首先從兩個角度解釋你的困惑:
工具包自動處理數(shù)據(jù)缺失不代表具體的算法可以處理缺失項
對于有缺失的數(shù)據(jù):以決策樹為原型的模型優(yōu)于依賴距離度量的模型
回答中也會介紹樹模型,如隨機森林(Random Forest)和xgboost如何處理缺失值。文章最后總結(jié)了在有缺失值時選擇模型的小建議。
47、請舉例說明什么是標(biāo)準(zhǔn)化、歸一化
一、標(biāo)準(zhǔn)化(standardization)
簡單來說,標(biāo)準(zhǔn)化是依照特征矩陣的列處理數(shù)據(jù),其通過求z-score的方法,將樣本的特征值轉(zhuǎn)換到同一量綱下。
公式一般為:(X-mean)/std,其中mean是平均值,std是方差。
從公式我們可以看出,標(biāo)準(zhǔn)化操作(standardization)是將數(shù)據(jù)按其屬性(按列)減去平均值,然后再除以方差。
這個過程從幾何上理解就是,先將坐標(biāo)軸零軸平移到均值這條線上,然后再進行一個縮放,涉及到的就是平移和縮放兩個動作。這樣處理以后的結(jié)果就是,對于每個屬性(每列)來說,所有數(shù)據(jù)都聚集在0附近,方差為1。計算時對每個屬性/每列分別進行。
48、隨機森林如何處理缺失值?
眾所周知,機器學(xué)習(xí)中處理缺失值的方法有很多,然而,由題目“隨機森林如何處理缺失值”可知,問題關(guān)鍵在于隨機森林如何處理,所以先簡要介紹下隨機森林吧。
隨機森林是由很多個決策樹組成的,首先要建立Bootstrap數(shù)據(jù)集,即從原始的數(shù)據(jù)中有放回地隨機選取一些,作為新的數(shù)據(jù)集,新數(shù)據(jù)集中會存在重復(fù)的數(shù)據(jù),然后對每個數(shù)據(jù)集構(gòu)造一個決策樹,但是不是直接用所有的特征來建造決策樹,而是對于每一步,都從中隨機的選擇一些特征,來構(gòu)造決策樹,這樣我們就構(gòu)建了多個決策樹,組成隨機森林,把數(shù)據(jù)輸入各個決策樹中,看一看每個決策樹的判斷結(jié)果,統(tǒng)計一下所有決策樹的預(yù)測結(jié)果,Bagging整合結(jié)果,得到最終輸出。
那么,隨機森林中如何處理缺失值呢?根據(jù)隨機森林創(chuàng)建和訓(xùn)練的特點,隨機森林對缺失值的處理還是比較特殊的。
49、隨機森林如何評估特征重要性?
衡量變量重要性的方法有兩種,Decrease GINI 和 Decrease Accuracy:
1) Decrease GINI:?
對于分類問題(將某個樣本劃分到某一類),也就是離散變量問題,CART使用Gini值作為評判標(biāo)準(zhǔn)。定義為Gini=1-∑(P(i)*P(i)),P(i)為當(dāng)前節(jié)點上數(shù)據(jù)集中第i類樣本的比例。例如:分為2類,當(dāng)前節(jié)點上有100個樣本,屬于第一類的樣本有70個,屬于第二類的樣本有30個,則Gini=1-0.7×07-0.3×03=0.42,可以看出,類別分布越平均,Gini值越大,類分布越不均勻,Gini值越小。在尋找最佳的分類特征和閾值時,評判標(biāo)準(zhǔn)為:argmax(Gini-GiniLeft-GiniRight),即尋找最佳的特征f和閾值th,使得當(dāng)前節(jié)點的Gini值減去左子節(jié)點的Gini和右子節(jié)點的Gini值最大。
對于回歸問題,相對更加簡單,直接使用argmax(Var-VarLeft-VarRight)作為評判標(biāo)準(zhǔn),即當(dāng)前節(jié)點訓(xùn)練集的方差Var減去減去左子節(jié)點的方差VarLeft和右子節(jié)點的方差VarRight值最大。
2) Decrease Accuracy:
對于一棵樹Tb(x),我們用OOB樣本可以得到測試誤差1;然后隨機改變OOB樣本的第j列:保持其他列不變,對第j列進行隨機的上下置換,得到誤差2。至此,我們可以用誤差1-誤差2來刻畫變量j的重要性。基本思想就是,如果一個變量j足夠重要,那么改變它會極大的增加測試誤差;反之,如果改變它測試誤差沒有增大,則說明該變量不是那么的重要。
50、請說說Kmeans的優(yōu)化?
解析一
k-means:在大數(shù)據(jù)的條件下,會耗費大量的時間和內(nèi)存。?
優(yōu)化k-means的建議:?
1、減少聚類的數(shù)目K。因為,每個樣本都要跟類中心計算距離。?
2、減少樣本的特征維度。比如說,通過PCA等進行降維。?
3、考察其他的聚類算法,通過選取toy數(shù)據(jù),去測試不同聚類算法的性能。?
4、hadoop集群,K-means算法是很容易進行并行計算的。
/End.
下載1:OpenCV黑魔法
在「AI算法與圖像處理」公眾號后臺回復(fù):OpenCV黑魔法,即可下載小編精心編寫整理的計算機視覺趣味實戰(zhàn)教程
下載2 CVPR2020 在「AI算法與圖像處理」公眾號后臺回復(fù):CVPR2020,即可下載1467篇CVPR?2020論文 個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱
覺得有趣就點亮在看吧


