21.EM算法知道嗎(廣聯(lián)達(dá))
參考答案
EM算法解決問題的思路是使用啟發(fā)式的迭代方法,既然我們無法直接求出模型分布參數(shù),那么我們可以先猜想隱含參數(shù)(EM?算法的E步),接著基于觀察數(shù)據(jù)和猜測的隱含參數(shù)一起來極大化對數(shù)似然,求解我們的模型參數(shù)(EM算法的M步)。由于我們之前的隱含參數(shù)是猜測的,所以此時得到的模型參數(shù)一般還不是我們想要的結(jié)果。我們基于當(dāng)前得到的模型參數(shù),繼續(xù)猜測隱含參數(shù)(EM算法的E步),然后繼續(xù)極大化對數(shù)似然,求解我們的模型參數(shù)(EM算法的M步)。以此類推,不斷的迭代下去,直到模型分布參數(shù)基本無變化,算法收斂,找到合適的模型參數(shù)。
==EM算法說到底就是啟發(fā)式的迭代算法,既然無法直接求到模型的參數(shù),那就先猜測隱含的參數(shù),根據(jù)這個猜測的參數(shù)來得出結(jié)果,然后用最大化對數(shù)似然來求目標(biāo)參數(shù)。(4.21
例如:
先設(shè)定男生和女生的身高分布參數(shù)(初始值),例如男生的身高分布為N(p=172=52),女生的身高分布為N(2=162,吃=52),當(dāng)然了,剛開始肯定沒那么準(zhǔn);然后計算出每個人更可能屬于第一個還是第二個正態(tài)分布中的(例如,這個人的身高是180那很明顯,他極大可能屬于男生),這個是屬于Expectation 一步。
我們已經(jīng)大概地按上面的方法將這200個人分為男生和女生兩部分,我們就可以根據(jù)之前說的極大似然估計分別對男生和女生的身高分布參數(shù)進(jìn)行估計,這步稱為 Maximization。
然后,當(dāng)我們更新這兩個分布的時候,每一個學(xué)生屬于女生還是男生的概率又變了,那么我們就再需要調(diào)整E步。
如此往復(fù),直到參數(shù)基本不再發(fā)生變化或滿足結(jié)束條件為止。
答案解析
這道題考驗EM算法,EM的意思是“Expectation
Maximization"。只要將EM算法的大致流程描述清楚即可
22.評價指標(biāo)(廣聯(lián)達(dá))
參考答案
1、混淆矩陣
混淆矩陣是監(jiān)督學(xué)習(xí)中的一種可視化工具,主要用于比較分類結(jié)果和實例的真實信息。矩陣中的每一行代表實例的預(yù)測類別,每一列代表實例的真實類別。
真正(True Positive , TP):被模型預(yù)測為正的正樣本。
假正(False Positive , FP):被模型預(yù)測為正的負(fù)樣本。
假負(fù)(False Negative , FN):被模型預(yù)測為負(fù)的正樣本。
真負(fù)(True Negative , TN):被模型預(yù)測為負(fù)的負(fù)樣本。
真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被預(yù)測為正的正樣本數(shù) /正樣本實際數(shù)。
假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被預(yù)測為正的負(fù)樣本數(shù) /負(fù)樣本實際數(shù)。
假負(fù)率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被預(yù)測為負(fù)的正樣本數(shù) /正樣本實際數(shù)。
真負(fù)率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被預(yù)測為負(fù)的負(fù)樣本數(shù) /負(fù)樣本實際數(shù)/2
2、準(zhǔn)確率(Accuracy)
準(zhǔn)確率是最常用的分類性能指標(biāo)。
Accuracy = (TP+TN)/(TP+FN+FP+TN)
即正確預(yù)測的正反例數(shù)/總數(shù)
3、精確率(Precision)
精確率容易和準(zhǔn)確率被混為一談。其實,精確率只是針對預(yù)測正確的正樣本而不是所有預(yù)測正確的樣本。表現(xiàn)為預(yù)測出是正的里面有多少真正是正的。可理解為查準(zhǔn)率。
Precision = TP/(TP+FP)
即正確預(yù)測的正例數(shù)/預(yù)測正例總數(shù)
4、召回率(Recall)
召回率表現(xiàn)出在實際正樣本中,分類器能預(yù)測出多少。與真正率相等,可理解為查全率。
Recall = TP/(TP+FN),即正確預(yù)測的正例數(shù) /實際正例總數(shù)
5、F1 score
F值是精確率和召回率的調(diào)和值,更接近于兩個數(shù)較小的那個,所以精確率和召回率接近時,F(xiàn)值最大。很多推薦系統(tǒng)的評測指標(biāo)就是用F值的。
2/F1 = 1/Precision + 1/Recall
6、AUC
AUC(Area Under Curve)被定義為ROC曲線下的面積(ROC的積分),通常大于0.5小于1。隨機挑選一個正樣本以及一個負(fù)樣本,分類器判定正樣本的值高于負(fù)樣本的概率就是 AUC 值。AUC值(面積)越大的分類器,性能越好
答案解析
這道題主要考察機器學(xué)習(xí)的評價指標(biāo),需要將機器學(xué)習(xí)的常見指標(biāo)描述出來。
23.表示距離的指標(biāo)有哪些?(廣聯(lián)達(dá))
參考答案
1.歐氏距離,最常見的兩點之間或多點之間的距離表示法,又稱之為歐幾里得度量,它定義于歐幾里得空間中,如點 x = (x1,...,xn) 和 y = (y1,...,yn) 之間的距離為:

2. 曼哈頓距離,我們可以定義曼哈頓距離的正式意義為L1-距離或城市區(qū)塊距離,也就是在歐幾里得空間的固定直角坐標(biāo)系上兩點所形成的線段對軸產(chǎn)生的投影的距離總和。例如在平面上,坐標(biāo)(x1,y1)的點P1與坐標(biāo)(x2, y2)的點P2的曼哈頓距離為

要注意的是,曼哈頓距離依賴座標(biāo)系統(tǒng)的轉(zhuǎn)度,而非系統(tǒng)在座標(biāo)軸上的平移或映射。
3. 切比雪夫距離,若二個向量或二個點p 、and q,其座標(biāo)分別為及,則兩者之間的切比雪夫距離定義如下:

4. 標(biāo)準(zhǔn)化歐氏距離 (Standardized Euclidean distance
),標(biāo)準(zhǔn)化歐氏距離是針對簡單歐氏距離的缺點而作的一種改進(jìn)方案。標(biāo)準(zhǔn)歐氏距離的思路:既然數(shù)據(jù)各維分量的分布不一樣,那先將各個分量都“標(biāo)準(zhǔn)化”到均值、方差相等。
5. 漢明距離(Hamming distance),兩個等長字符串s1與s2之間的漢明距離定義為將其中一個變?yōu)榱硗庖粋€所需要作的最小替換次數(shù)。例如字符串“1111”與“1001”之間的漢明距離為2。應(yīng)用:信息編碼(為了增強容錯性,應(yīng)使得編碼間的最小漢明距離盡可能大)。
6. 夾角余弦(Cosine) ,幾何中夾角余弦可用來衡量兩個向量方向的差異,機器學(xué)習(xí)中借用這一概念來衡量樣本向量之間的差異。
24. ROC的了解情況,怎么畫ROC(猿輔導(dǎo))
參考答案
邏輯回歸里面,對于正負(fù)例的界定,通常會設(shè)一個閾值,大于閾值的為正類,小于閾值為負(fù)類。如果我們減小這個閥值,更多的樣本會被識別為正類,提高正類的識別率,但同時也會使得更多的負(fù)類被錯誤識別為正類。為了直觀表示這一現(xiàn)象,引入ROC。根據(jù)分類結(jié)果計算得到ROC空間中相應(yīng)的點,連接這些點就形成ROC curve,橫坐標(biāo)為False Positive Rate(FPR假正率),縱坐標(biāo)為True Positive Rate(TPR真正率)。一般情況下,這個曲線都應(yīng)該處于(0,0)和(1,1)連線的上方。
ROC曲線中的四個點和一條線: 點(0,1):即FPR=0, TPR=1,意味著FN=0且FP=0,將所有的樣本都正確分類。 點(1,0):即FPR=1,TPR=0,最差分類器,避開了所有正確答案。 點(0,0):即FPR=TPR=0,F(xiàn)P=TP=0,分類器把每個實例都預(yù)測為負(fù)類。 點(1,1):分類器把每個實例都預(yù)測為正類。 總之:ROC曲線越接近左上角,該分類器的性能越好。而且一般來說,如果ROC是光滑的,那么基本可以判斷沒有太大的overfitting
答案解析
==先說一下背景,在邏輯回歸里面,對正負(fù)樣本的界定通常會設(shè)定一個閾值,大于閾值的為正,小于閾值的為負(fù)。如果我們減小這個閾值,更多的樣本就會被識別為正類,這會提高正類的識別率,但是同時也會讓更多的負(fù)類被錯判為正。
為了更加直觀的表示這個現(xiàn)象,引入了ROC曲線。ROC曲線主要就是4個點和1條線。4個點分別是(0,0)樣本全部劃分為負(fù)類
(0,1)樣本全部判斷正確
(1,0)樣本全部判斷錯誤
(1,1)樣本全部劃分為正類
總之,曲線越靠近左上方越好,曲線只要夠光滑就代表沒有太大過擬合的現(xiàn)象。(4.21
這道題主要是考察ROC的基礎(chǔ)知識,需要能夠描述ROC的計算方式和如何畫出曲線
25.有很多維度的特征怎么來篩選?有什么方法?具體講一個例子來(拼多多)
參考答案
1.Filter方法(過濾式):對每一維特征打分,即給每一維的特征賦予權(quán)重,這樣的權(quán)重就代表著該特征的重要性,然后依據(jù)權(quán)重排序。
2.Wrapper方法(包裹式):將子集的選擇看作是一個搜索尋優(yōu)問題,生成不同的組合,對組合進(jìn)行評價,再與其他的組合進(jìn)行比較。
3. Embedded方法(嵌入式):在模型既定的情況下學(xué)習(xí)出對提高模型準(zhǔn)確性最好的特征。也就是在確定模型的過程中,挑選出那些對模型的訓(xùn)練有重要意義的特征。
具體的例子:嶺回歸,在線性回歸過程加入了L2正則項。
==這里說的是高維數(shù)據(jù),不是說特征數(shù)量很多
答案解析
高維數(shù)據(jù)中的特征篩選方法
機器學(xué)習(xí)與數(shù)據(jù)挖掘-7
31.決策樹模型用到的xgboost(騰訊)
參考答案
首先,介紹背景(包括項目背景+所用數(shù)據(jù)集特征+預(yù)設(shè)目標(biāo))。隨后根據(jù)這個數(shù)據(jù)集的特征再結(jié)合xgb的優(yōu)勢,所以才用xgb(為什么要用xgb)。最后說明用了之后的效果,是否達(dá)成了預(yù)設(shè)目標(biāo)/達(dá)成了其他的目標(biāo)。
答案解析
需要結(jié)合簡歷上的項目來介紹,包括為什么要用以及用了之后的效果。
32.xgboost的特性(騰訊)
參考答案
梯度下降,利用損失函數(shù)的二階導(dǎo)數(shù)作為學(xué)習(xí)目標(biāo),采用牛頓法進(jìn)行優(yōu)化。
正則項,利用L2正則來防止過擬合。
樹節(jié)點分裂方法,不是簡單地按照樣本個數(shù)進(jìn)行分位,而是以二階導(dǎo)數(shù)值作為權(quán)重。
shrinkage(收縮)方法,相當(dāng)于學(xué)習(xí)系數(shù)eta。對每顆子樹都要乘上該系數(shù),防止過擬合。
==這里是一個比較簡化精髓的一個回答。XGB的特性就是梯度下降,利用損失函數(shù)的二階導(dǎo)數(shù)作為學(xué)習(xí)目標(biāo),采用牛頓法作為優(yōu)化,加入L2正則來防止過擬合。(4.21
33.為什么選擇xgboost而不是其他(騰訊)
參考答案
介紹項目背景(主要是數(shù)據(jù)集特征),再說明xgb的優(yōu)點(符合你的項目背景和數(shù)據(jù)集特征的優(yōu)點),實在沒有符合項目背景的優(yōu)點可以直接介紹xgb與其他集成學(xué)習(xí)優(yōu)勢的地方(利用了損失函數(shù)的二階導(dǎo)數(shù),L2正則,缺失值處理等)來說明自己了解這個算法的優(yōu)點。
34.xgboost的優(yōu)點(騰訊)
參考答案
1.利用了損失函數(shù)的二階導(dǎo)數(shù),使得最終值逼近真實值。
2.out-of-core, cache-aware優(yōu)化內(nèi)存等方法來加速計算。
3.利用L2正則來防止過擬合。
4.shrinkage(收縮)方法,相當(dāng)于學(xué)習(xí)系數(shù)eta。對每顆子樹都要乘上該系數(shù),防止過擬合。
5.缺失值處理:通過枚舉所有缺失值在當(dāng)前節(jié)點是進(jìn)入左子樹,還是進(jìn)入右子樹更優(yōu)來決定一個處理缺失值默認(rèn)的方向。
6.支持并行處理,提高了處理速度。
答案解析
選3-4個即可
35.xgboost常用的調(diào)參參數(shù)有哪些(騰訊)
參考答案
1.max_depth:樹的最大深度。這個值也是用來避免過擬合的。max_depth越大,模型會學(xué)到更具體更局部的樣本。 需要使用CV函數(shù)來進(jìn)行調(diào)優(yōu)。
2.eta:學(xué)習(xí)率。 通過減少每一步的權(quán)重,可以提高模型的魯棒性。
3.n_estimator: 這是生成的最大樹的數(shù)目,也是最大的迭代次數(shù)。
4.objective:定義需要被最小化的損失函數(shù)。
5.booster:選擇每次迭代的模型
36.研究生項目的面部識別模型,問了我GBM是什么,優(yōu)缺點;還問了SVM/GBM/XGBoost的共同點和比較;最后問了XGBoost比較GBDT的區(qū)別。(招聯(lián)金融)
參考答案
GBM算法是先根據(jù)初始模型計算偽殘差,之后建立一個基學(xué)習(xí)器來解釋偽殘差,該基學(xué)習(xí)器是在梯度方向上減少殘差。再將基學(xué)習(xí)器乘上權(quán)重系數(shù)(學(xué)習(xí)速率)和原來的模型進(jìn)行線性組合形成新的模型。這樣反復(fù)迭代就可以找到一個使損失函數(shù)的期望達(dá)到最小的模型。
==根據(jù)初始模型來計算偽殘差,然后建立一個基學(xué)習(xí)器來解釋偽殘差
優(yōu)點:
1.繼承了單一決策樹的優(yōu)點,又摒棄了它的缺點;
2.能處理缺失數(shù)據(jù);
3.對于噪聲數(shù)據(jù)不敏感;
4.能擬合復(fù)雜的非線性關(guān)系;
5.精確度較高;
6.通過控制迭代次數(shù)能控制過度擬合;
7.計算速度快,性能較優(yōu)。
缺點:
1.順序計算;
2.可能會出現(xiàn)過擬合現(xiàn)象;
3.設(shè)置參數(shù)較多;
4.抗干擾能力不強。
GBM/XGBoost的共同點和比較
相同點:
1.都是采用集成學(xué)習(xí)boosting的思想。
2.都可以在特征上并行處理。
不同點:
1.XGBoost 使用的是近似算法,先對特征值進(jìn)行預(yù)排序,然后根據(jù)二階梯度進(jìn)行分桶,能夠更精確的找到數(shù)據(jù)分隔點,但是復(fù)雜度較高。LightGBM使用的是 histogram?算法,只需要將數(shù)據(jù)分割成不同的段即可,不需要進(jìn)行預(yù)先的排序。占用的內(nèi)存更低,數(shù)據(jù)分割的復(fù)雜度更低。
2.決策樹生長策略,XGBoost 采用的是 Level-wise 的樹生長策略,LightGBM 采用的是 leaf-wise 的生長策略,以最大信息增益為導(dǎo)向。后者進(jìn)度更高,容易過擬合,所以要控制最大深度。
3.并行策略對比,XGBoost 的并行主要集中在特征并行上,而 LightGBM 的并行策略分特征并行,數(shù)據(jù)并行以及投票并行。
XGBoost比較GBDT的區(qū)別:
1.GBDT無顯式正則化;
2.GBDT僅使用了目標(biāo)函數(shù)一階泰勒展開,而XGBoost使用了二階的泰勒展開值,加快收斂速度;
3.XGBoost加入了列采樣;
4.XGBoost對缺失值的處理;
5.XGBoost通過預(yù)排序的方法來實現(xiàn)特征并行,提高模型訓(xùn)練效率;
6.XGBoost支持分布式計算。
參考答案
SVM是在特征空間上找到最佳的分離超平面,使得訓(xùn)練集上的正負(fù)樣本間隔最大。是用來解決二分類問題的有監(jiān)督學(xué)習(xí)算法,在引入核方法后也可以解決非線性問題。
==簡單精髓的回答一下即可,SVM是在特征空間中找到最佳的分離超平面,使訓(xùn)練集上的正負(fù)樣本間隔最大,用來解決有監(jiān)督分類問題,引入核方法后可以解決非線性問題。(4.21