1舀锨、數(shù)據(jù)量比較大的時候坎匿,svm和lr哪個更快?
svm適用于相對稀疏的數(shù)據(jù)拧额,所以xgb的效果比svm要好碑诉。面試官也說嗯,確實樹模型適用于稠密數(shù)據(jù)侥锦。
lr快
smo算法每次選一對乘子優(yōu)化,固定其他乘子快毛,是一個二次規(guī)劃問題,選擇乘子也是啟發(fā)式算法屯掖,這一步也導(dǎo)致了整個凸優(yōu)化的svm尋解過程了變成了近凸優(yōu)化贴铜,在乘子的選擇上由于初始不知道那些是支持向量瀑晒,所以乘子不好選擇(啟發(fā)式方法選的是違背kkt條件最大的一對點),實際上你還得去訓(xùn)練那些非支持向量的數(shù)據(jù)轩褐,速度提不起來玖详。
svm用都用了蟋座,不給整個核函數(shù)嗎?這又是一步較為耗時的操作秒拔。
lr就不同了飒硅,同樣是凸優(yōu)化的模型三娩,lr只有一個線性組合和sigmoid妹懒,梯度下降時眨唬,每個樣本訓(xùn)練復(fù)雜度也就和樣本特征維數(shù)有關(guān),復(fù)雜度是線性的瓦宜。最為關(guān)鍵的是岭妖,lr可以做到樣本的并行和w求解的并行。矩陣運算是可以拆解的假夺,AB看作A對B的行操作已卷,也可以看作B對A的列操作,這樣矩陣的運算就可以分解為獨立的向量操作柿扣,輕松實現(xiàn)并行化未状。另外析桥,lr也可以對數(shù)據(jù)進行切分后并行化操作,但主要應(yīng)該還是梯度下降的并行埋虹,lr的實際訓(xùn)練速度要比看起來快很多搔课。
2.lr為什么不用mse
https://blog.csdn.net/liuweiyuxiang/article/details/100812623
lr用mse時求導(dǎo)會出現(xiàn)sigmoid的導(dǎo)數(shù)截亦,可能導(dǎo)致模型收斂很慢崩瓤;使用logloss的時候,不會出現(xiàn)sigmoid的導(dǎo)數(shù)
3.梯度角度解釋l1
l1梯度向0跑境输,右邊-1左邊+1颖系,兩邊都朝著0收斂嘁扼,但是l1梯度絕對值一直是1,所以容易收斂到0不動蒋院,l2越靠近0梯度絕對值越小,容易到0附近不動姑丑。
14 ID3\C4.5等基本樹 是二叉樹還是多叉樹 被切過的特征還會再切嗎
離散特征(離散數(shù)量>2)是多叉分類栅哀,連續(xù)是二叉分裂称龙,連續(xù)可以在切鲫尊,離散不可以(當(dāng)時回答的是可以再切,被提示后意識到不可再切咳蔚,說了自己的matlab實現(xiàn)搔驼,先做集合舌涨,遍歷特征,保存最大的信息增益位置温技,然后對特征切分荒揣,切分后把這個特征從集合中刪掉焊刹,所以離散特征切完就不在切了虐块,還好反應(yīng)過來了嘉蕾,連續(xù)性特征可以再切错忱,詳情可以去看看別人的ID3樹和其他樹的源代碼)
15 BN是什么挂据?BN論文對BN抑制過擬合的解釋:
1儿普、預(yù)白化眉孩,訓(xùn)練快,sigmoid兩端飽和梯度小巴柿,BN可以縮放到線性區(qū)2广恢、分布學(xué)習(xí)呀潭,NN深了之后每一層分布都會偏移蜗侈,BN壓縮分布使得各層分布趨近于一致3、BN可以看做一定程度的數(shù)據(jù)擴充枷颊,數(shù)據(jù)做了抖動處理该面。注意BN的訓(xùn)練過程要記得隔缀,當(dāng)前批次歸一化,預(yù)測的時候是全部數(shù)據(jù)界赔,而且BN層有兩個超參數(shù)要優(yōu)化)
在訓(xùn)練中淮悼,BN的使用使得一個mini-batch中的所有樣本都被關(guān)聯(lián)在了一起揽思,因此網(wǎng)絡(luò)不會從某一個訓(xùn)練樣本中生成確定的結(jié)果钉汗。
這句話什么意思呢鲤屡?意思就是同樣一個樣本的輸出不再僅僅取決于樣本本身酒来,也取決于跟這個樣本屬于同一個mini-batch的其它樣本役首。同一個樣本跟不同的樣本組成一個mini-batch显拜,它們的輸出是不同的(僅限于訓(xùn)練階段,在inference階段是沒有這種情況的)矮固。我把這個理解成一種數(shù)據(jù)增強:同樣一個樣本在超平面上被拉扯档址,每次拉扯的方向的大小均有不同邻梆。不同于數(shù)據(jù)增強的是浦妄,這種拉扯是貫穿數(shù)據(jù)流過神經(jīng)網(wǎng)絡(luò)的整個過程的剂娄,意味著神經(jīng)網(wǎng)絡(luò)每一層的輸入都被數(shù)據(jù)增強處理了。
16 GBDT和RF哪個深
RF深和二。說了boost和bagging的思想耳胎。boost使用低方差學(xué)習(xí)器去擬合偏差怕午,所以XBG和LGB有樹深的參數(shù)設(shè)置诗轻,RF是擬合方差揭北,對樣本切對特征切,構(gòu)造多樣性樣本集合恨樟,每棵樹甚至不剪枝劝术。
17 XGB特征重要性程度是怎么判斷的养晋?
gain 增益 意味著相應(yīng)的特征對通過對模型中的每個樹采取每個特征的貢獻而計算出的模型的相對貢獻。與其他特征相比逊抡,此度量值的較高值意味著它對于生成預(yù)測更為重要冒嫡。
cover覆蓋度量 指的是與此功能相關(guān)的觀測的相對數(shù)量四苇。例如月腋,如果您有100個觀察值,4個特征和3棵樹辜窑,并且假設(shè)特征1分別用于決策樹1穆碎,樹2和樹3中10個职恳,5個和2個觀察值的葉結(jié)點;那么該度量將計算此功能的覆蓋范圍為10+5+2 = 17個觀測值放钦。這將針對所有決策樹結(jié)點進行計算操禀,并將17個結(jié)點占總的百分比表示所有功能的覆蓋指標(biāo)。
freq 頻率(頻率) 是表示特定特征在模型樹中發(fā)生的相對次數(shù)的百分比斤寂。
18 XGB很容易理解它的回歸和二分類遍搞,如何理解多分類呢?
談笑中度過钩杰,一開始回答的label encode 讲弄,用onehot+softmax,但是每棵樹如何是擬合softmax前一步呢翎冲。這個我確實不知道抗悍,面試官提示我說三分類缴渊,構(gòu)造100棵樹還是300棵,我就意識到了蝌借,回答原以為是100棵指蚁。
面試官說構(gòu)造三百棵樹凝化,擬合三分類搓劫,再softmax。
(onehot之后勤揩,輸入標(biāo)簽是一個向量陨亡,對向量中每一個預(yù)測點集成一群樹)
19 造等概率1-10,分析調(diào)用1-7的次數(shù)期望
7進制聪舒,調(diào)用兩次產(chǎn)生0-48,然后截掉40和40以上的再//4+1
`def` `rand7()`
`def` `rand10():`
`x ``=` `7``*``(rand7()``-``1``)``+``rand7()``-``1`
`while` `x>``=``40``:`
`x ``=` `7``*``(rand7()``-``1``)``+``rand7()``-``1`
`return` `1``+``x``/``/``4`
期望不好算止吁,是個數(shù)等比列求和燎悍,然后我就口算的近似值2.5n
20 如何衡量用戶對搜索結(jié)果的滿意程度谈山?**
TCP連接計時奏路,根據(jù)場景過濾計時噪聲,比如視頻場景用視頻長度的百分位計時斜脂,秒退的有效性等等帚戳。
如何解決新搜索結(jié)果的推送儡首?
新搜索結(jié)果肯定歷史推送為0蔬胯,沒有任何參考笔宿,但我們不知道他質(zhì)量怎么樣。于是把他隨機推送一小部分用戶涝动,在推廣醋粟。再推廣時注意刷點擊率現(xiàn)象米愿,過濾一下。
21 BN较鼓、Dropout
(Dropout可以作為訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的一種trick供選擇博烂。在每個訓(xùn)練批次中漱竖,通過忽略一半的特征檢測器(讓一半的隱層節(jié)點值為0馍惹,當(dāng)然這個“一半”是超參數(shù)万矾,自己設(shè)),可以明顯地減少過擬合現(xiàn)象舆绎。這種方式可以減少特征檢測器(隱層節(jié)點)間的相互作用吕朵,檢測器相互作用是指某些檢測器依賴其他檢測器才能發(fā)揮作用努溃。
Dropout說的簡單一點就是:我們在前向傳播的時候阻问,讓某個神經(jīng)元的激活值以一定的概率p停止工作称近,這樣可以使模型泛化性更強刨秆,因為它不會太依賴某些局部的特征衡未。
其實就是個Bagging策略家凯,構(gòu)造子網(wǎng)組合绊诲。
Dropout為什么預(yù)防過擬合掂之?
從bagging的角度答的竭鞍,NN是偏差小方差大的學(xué)習(xí)器偎快,適合用bagging晒夹,構(gòu)造子網(wǎng)絡(luò)在預(yù)測的時候組合姊氓,相當(dāng)于構(gòu)造了學(xué)習(xí)的多樣性翔横,實現(xiàn)了bagging禾唁。
22 為什么不用先用LR呀
用LR做做二分類荡短,做做stack還挺好的丐枉,但LR總感覺表達能力不夠,特征比較粗的話效果可能一般掘托。
(后來覺得LR還挺厲害的瘦锹,詳情可以見總結(jié)的一些基礎(chǔ)機器學(xué)習(xí)知識那里,LR可解釋性闪盔、速度都很快弯院,還是凸優(yōu)化泪掀,用來衡量特征做得好不好還是可以的)
23 連續(xù)性特征也能交叉啊為什么不交叉**
離散化就是數(shù)據(jù)分桶听绳,我這里按百分位分桶,百分位分桶比較均勻族淮,百分位是數(shù)據(jù)排序的百分位辫红,而不是區(qū)間的百分位凭涂。
連續(xù)性特征交叉,連續(xù)性特征映射成離散特征后贴妻,可以和連續(xù)性特征一起送到嵌入層里切油。
25 L1、L2不同名惩?L1為什么能稀疏澎胡?
從數(shù)學(xué)分布講了,一個是拉普拉斯分布 一個是高斯分布娩鹉;講了圖解為什么L1能稀疏攻谁,一個圈一個菱形,容易交在軸上弯予。工程上講了戚宦,L1的近似求導(dǎo),區(qū)間內(nèi)0區(qū)間外優(yōu)化锈嫩。然后L2是直接求導(dǎo)比較簡單受楼。
26 哪些學(xué)習(xí)器是凸優(yōu)的呀?
LR sigmoid logloss 凸優(yōu) 呼寸。線性回歸艳汽,最小二乘凸優(yōu)。SVM凸優(yōu)对雪。NN肯定不凸優(yōu)河狐,因為往往收斂到鞍點。PCA無數(shù)學(xué)解瑟捣,但是利用特征值去做反而得到最優(yōu)解馋艺。
(注意sigmoid+平方損失不是凸優(yōu)化)
27 特征重要性怎么做,例如特征組合和刪除
特征組合用onehot蝶柿、交叉丈钙、EMBEDING。組合的話要看實際分布交汤,講了自己構(gòu)造過的一個和標(biāo)簽有線性關(guān)系的組合雏赦,說自己用的是遍歷的方法,用兩兩數(shù)學(xué)關(guān)系構(gòu)造新特征芙扎,看和標(biāo)簽的線性關(guān)系星岗。
28 這個Embedding映射了隱向量,你覺得是CNN交叉好呢 還是隱向量好呢
我的回答偏向于場景戒洼,編碼領(lǐng)域內(nèi)的一個特點:只有局部相關(guān)俏橘,時不變。所以用CNN圈浇,做全局相關(guān)的Embedding反而不好寥掐。推薦里面特征離散化后稀疏靴寂,而且特征間本身可能具有高階交互信息,所以映射成隱向量效果會較好召耘,如果是推薦百炬,我建議用隱向量而不是CNN,其實這是由場景決定的污它,是數(shù)據(jù)的特點決定選用什么學(xué)習(xí)器剖踊,使用什么網(wǎng)絡(luò)。(我還介紹了圖像為什么ResNet更好衫贬,但是編碼里我的兩層極限調(diào)參網(wǎng)絡(luò)性能超過了殘差網(wǎng)絡(luò)德澈,其實都是場景決定的)
33 視頻二分類,算精準(zhǔn)率固惯,召回率梆造,準(zhǔn)確率。**
[準(zhǔn)確率(accuracy)葬毫,精確率(Precision)澳窑,召回率(Recall)和綜合評價指標(biāo)(F1-Measure)
召回率太重要了,因為這種我們可以虛警但是不能漏警(猜猜檢測的啥)供常,所以精確率不高可以接受。
如何提高精準(zhǔn)率呢鸡捐?
調(diào)分類閾值+大栈暇,但是召回率降低就回退。
如果不改動現(xiàn)有模型呢箍镜?
我說一般我會用二分類trick源祈,但是這種不知道在二分類行不行,應(yīng)該不行吧色迂,不如人工查香缺。
面試官反饋說人工肯定要查的,(我已經(jīng)意識到自己的上一句話不妥了歇僧,但是現(xiàn)在是對方的回合)图张,面試官說了人工查的重要性和必要性,然后說這一步提高精準(zhǔn)率就是為了減少人力诈悍,然人從大量分類錯的樣本解放出來祸轮,可以用二分類,對分錯的樣本和負(fù)樣本再二分類侥钳。我表示同意适袜,說這個Trick不錯。面試說舷夺,對啊苦酱,不就是個Trick么售貌。
36 svm的為什么要 轉(zhuǎn)化為對偶問題求解
主要是降低問題的復(fù)雜度,設(shè)想f(x,y)有兩個變量疫萤,拉個朗日函數(shù)L=f(x,y)-p*h(x,y)有三個變量颂跨,你求偏導(dǎo)數(shù)要之后,要求解一個三元(可能是高次)方程给僵,問題比較復(fù)雜毫捣,轉(zhuǎn)化為對偶問題后,你只需要求解一個二元方程帝际,和一個一元方程蔓同,使復(fù)雜問題簡單化。
svm的目標(biāo)函數(shù)是求解一個凸優(yōu)化問題蹲诀,在凸優(yōu)化中斑粱,kkt點,局部極小點脯爪,全局極小點三者等價
核函數(shù)怎么選
核技巧我們知道则北,其目的是希望通過將輸入空間內(nèi)線性不可分的數(shù)據(jù)映射到一個高緯的特征空間內(nèi)使得數(shù)據(jù)在特征空間內(nèi)是可分的
線性核,主要用于線性可分的情況
多項式核函數(shù)可以實現(xiàn)將低維的輸入空間映射到高緯的特征空間痕慢,但是多項式核函數(shù)的參數(shù)多尚揣,當(dāng)多項式的階數(shù)比較高的時候,核矩陣的元素值將趨于無窮大或者無窮小掖举,計算復(fù)雜度會大到無法計算快骗。
高斯徑向基函數(shù)是一種局部性強的核函數(shù),其可以將一個樣本映射到一個更高維的空間內(nèi)塔次,該核函數(shù)是應(yīng)用最廣的一個方篮,無論大樣本還是小樣本都有比較好的性能,而且其相對于多項式核函數(shù)參數(shù)要少励负,因此大多數(shù)情況下在不知道用什么核函數(shù)的時候藕溅,優(yōu)先使用高斯核函數(shù)。
在選用核函數(shù)的時候继榆,如果我們對我們的數(shù)據(jù)有一定的先驗知識巾表,就利用先驗來選擇符合數(shù)據(jù)分布的核函數(shù);如果不知道的話裕照,通常使用交叉驗證的方法攒发,來試用不同的核函數(shù),誤差最下的即為效果最好的核函數(shù)晋南,或者也可以將多個核函數(shù)結(jié)合起來惠猿,形成混合核函數(shù)。在吳恩達的課上,也曾經(jīng)給出過一系列的選擇核函數(shù)的方法:
如果特征的數(shù)量大到和樣本數(shù)量差不多偶妖,則選用LR或者線性核的SVM姜凄;
如果特征的數(shù)量小,樣本的數(shù)量正常趾访,則選用SVM+高斯核函數(shù)态秧;
如果特征的數(shù)量小,而樣本的數(shù)量很大扼鞋,則需要手工添加一些特征從而變成第一種情況
核函數(shù)映射到高維空間申鱼,那么計算量會不會顯著增大?
不會云头,核心計算還是在低維空間算內(nèi)積
SVM跟AdaBoost有什么聯(lián)系
都是分類
SVM僅取決于支持向量捐友,那么AdaBoost呢佃延?AdaBoost更關(guān)注之前被分錯的樣本慢哈,所以它們的共同點在于都不是一視同仁的看待所有樣本。
PCA推導(dǎo)
SVD 主要作用
A=UΣV^T F范數(shù)下的最優(yōu)近似
特征選擇方法
特征是否發(fā)散:如果一個特征不發(fā)散煞烫,例如方差接近于0昏滴,也就是說樣本在這個特征上基本上沒有差異猴鲫,這個特征對于樣本的區(qū)分并沒有什么用。
方差選擇法
使用方差選擇法谣殊,先要計算各個特征的方差拂共,然后根據(jù)閾值,選擇方差大于閾值的特征
相關(guān)系數(shù)法
使用相關(guān)系數(shù)法姻几,先要計算各個特征對目標(biāo)值的相關(guān)系數(shù)以及相關(guān)系數(shù)person相關(guān)系數(shù)
卡方檢驗
經(jīng)典的卡方檢驗是檢驗定性自變量對定性因變量的相關(guān)性匣缘,這個統(tǒng)計量的含義簡而言之就是自變量對因變量的相關(guān)性
互信息法
經(jīng)典的互信息也是評價定性自變量對定性因變量的相關(guān)性的
樹模型輸出特征重要性
特征共線性問題
產(chǎn)生原因:
(1)沒有足夠多的樣本數(shù)據(jù)
(2)選取的樣本之間本身就客觀存在共線性關(guān)系
(3)其他因素導(dǎo)致:數(shù)據(jù)采集所采用的方法,模型的設(shè)定鲜棠,一個過度決定的模型
LR共線性:
LR模型中特征的共線性不會影響模型的最優(yōu)解,但是會影響系數(shù)的穩(wěn)定性培慌。
所以LR模型中特征的共線性不會影響模型的最優(yōu)解豁陆,但是會使得系數(shù)不穩(wěn)定,從而解釋性變差吵护。
為什么要刪除共線性特征
- 提高模型的可解釋性
- 提高模型的訓(xùn)練速度
特征權(quán)重的絕對值可以用來衡量特征的重要性嗎
不一定盒音,首先特征可能沒有歸一化,系數(shù)收到量級的影響馅而,(1米=1cm * 100)
其次祥诽,特征間可能存在共線性,導(dǎo)致特征系數(shù)不穩(wěn)定瓮恭,可解釋性差雄坪。
為什么特征離散化
下面答案有些不是LR進行離散化特有的原因,而是離散化本身比較general的原因
離散特征可以one-hot, 而稀疏向量內(nèi)積運算速度快屯蹦,結(jié)果易存儲
離散后數(shù)據(jù)魯棒性強维哈,不會因為數(shù)據(jù)發(fā)生一點小的變動而表現(xiàn)出完全不同的性質(zhì)绳姨,使模型更穩(wěn)定
離散后可以進行特征交叉,引入非線性特征
增強模型的表達能力阔挠,離散化后飘庄,原來的一個特征變成N個特征,加大了模型的擬合能力
特征離散后相當(dāng)于簡化了特征购撼,一定程度上減輕了過擬合
最小二乘法
最小二乘使所有點到曲線的方差最小.利用最小二乘對掃描線上的所有數(shù)據(jù)點進行擬合,得到一條樣條曲線,然后逐點計算每一個點Pi到樣條曲線的歐拉距離ei(即點到曲線的最短距離),ε是距離的閾值跪削,事先給定,如果ei≥ε迂求,則將該點判斷為噪點.
該方法最重要的事先擬合樣條曲線碾盐。
確定曲線類型的方法:根據(jù)已知數(shù)據(jù)點類型初步確定曲線類型,經(jīng)驗觀察初步嘗試擬合函數(shù)類型.
曲線類型選擇:直線锁摔,二次曲線廓旬,三次曲線,對數(shù)函數(shù)擬合谐腰,冪函數(shù)擬合孕豹,直至方差最小。
直線:f(X1) = aX1 + b;
二次曲線:f(X1) = aX12 + bX1 + c;
對數(shù)函數(shù):f(X1) = a + b log(X1);
冪函數(shù): f(X1) = aX1b
生成式與判別式
生成式模型學(xué)習(xí)到的是數(shù)據(jù)的聯(lián)合概率分布P(X, Y)十气,進而根據(jù)聯(lián)合概率分布與邊緣分布的關(guān)系求出條件概率分布.樸素貝葉斯法励背、隱馬爾科夫模型、混合高斯模型
判別式模型是根據(jù)數(shù)據(jù)直接學(xué)習(xí)出一個決策函數(shù)f(X)或是一個條件概率分布P(Y/X)砸西。判別方法關(guān)心的是對給定的輸入X叶眉,應(yīng)該預(yù)測什么樣的輸出Y。
典型的判別式模型:
KNN芹枷,感知機衅疙,決策樹,邏輯回歸鸳慈,最大熵模型饱溢,SVM,提升方法走芋,條件隨機場绩郎,神經(jīng)網(wǎng)絡(luò)
KNN算法模型的復(fù)雜度主要是體現(xiàn)在哪兒?什么情況下會造成過擬合翁逞?
k臨近算法的模型復(fù)雜度體現(xiàn)在k值上肋杖;k值較小容易造成過擬合,k值較大容易造成欠擬合挖函。
KNN時間復(fù)雜度O(N*k)k為特征數(shù)目
時間復(fù)雜度優(yōu)化状植,使用kdtree,KD樹的特性適合使用歐氏距離。
KDTree
基本思想是浅萧,若A點距離B點非常遠(yuǎn)逐沙,B點距離C點非常近, 可知A點與C點很遙遠(yuǎn)洼畅,不需要明確計算它們的距離吩案。 通過這樣的方式,近鄰搜索的計算成本可以降低為O[DNlog(N)]或更低帝簇。 這是對于暴力搜索在大樣本數(shù)N中表現(xiàn)的顯著改善徘郭。KD 樹的構(gòu)造非常快丧肴,對于低維度 (D<20) 近鄰搜索也非巢腥啵快, 當(dāng)D增長到很大時,效率變低: 這就是所謂的 “維度災(zāi)難” 的一種體現(xiàn)芋浮。
KD 樹是一個二叉樹結(jié)構(gòu)抱环,它沿著數(shù)據(jù)軸遞歸地劃分參數(shù)空間,將其劃分為嵌入數(shù)據(jù)點的嵌套的各向異性區(qū)域纸巷。 KD 樹的構(gòu)造非痴虿荩快:因為只需沿數(shù)據(jù)軸執(zhí)行分區(qū), 無需計算D-dimensional 距離。 一旦構(gòu)建完成, 查詢點的最近鄰距離計算復(fù)雜度僅為O[log(N)]瘤旨。 雖然 KD 樹的方法對于低維度 (D<20) 近鄰搜索非程萜。快, 當(dāng)D增長到很大時, 效率變低。
KNN做回歸
取平均值存哲,中位數(shù)因宇,最大值
SVM和神經(jīng)網(wǎng)絡(luò)
線性SVM的計算部分和一個單層神經(jīng)網(wǎng)絡(luò)一樣,就是一個矩陣乘積
處理非線性數(shù)據(jù)祟偷,SVM和神經(jīng)網(wǎng)絡(luò)走了兩條不同的道路:神經(jīng)網(wǎng)絡(luò)通過多個隱層的方法來實現(xiàn)非線性的函數(shù)察滑,有一些理論支持(比如說帶隱層的神經(jīng)網(wǎng)絡(luò)可以模擬任何函數(shù)),但是目前而言還不是非常完備修肠;SVM則采用了kernel trick的方法杭棵,這個在理論上面比較完備(RKHS,簡單地說就是一個泛函的線性空間)氛赐。兩者各有好壞,神經(jīng)網(wǎng)絡(luò)最近的好處是網(wǎng)絡(luò)設(shè)計可以很靈活先舷,但是老被人說跳大神艰管;SVM的理論的確漂亮,但是kernel設(shè)計不是那么容易
SVM會過擬合嗎
由于SVM是一個凸優(yōu)化問題蒋川,所以求得的解一定是全局最優(yōu)而不是局部最優(yōu)牲芋。
在完全線性可分的數(shù)據(jù)集下,支持向量機沒有過擬合問題,因為它的解是唯一的缸浦。而在非線性可分的情況下夕冲,雖然SVM的目標(biāo)函數(shù)自帶正則項,但是由于允許誤分類的存在引入了核函數(shù)裂逐,SVM仍會有過擬合的問題:
實際中應(yīng)用的SVM模型都是核函數(shù)+軟間隔的支持向量機歹鱼,那么,有以下原因?qū)е耂VM過擬合:
1)選擇的核函數(shù)過于powerful
2)要求的間隔過大卜高,即在軟間隔支持向量機中C的參數(shù)過大時弥姻,表示比較重視間隔,堅持要數(shù)據(jù)完全分離掺涛,當(dāng)C趨于無窮大時庭敦,相當(dāng)于硬間隔SVM
- 異常點(通過松弛變量的svm可以解決這個)
L1L2為什么可以防止過擬合
給參數(shù)先驗分布降低模型能力
L2正則引入高斯先驗,會讓w變小
L1正則引入拉普拉斯先驗薪缆,拉普拉斯先驗使參數(shù)為0的可能性極大秧廉。當(dāng)w為正時,更新后的w變小拣帽。當(dāng)w為負(fù)時疼电,更新后的w變大——因此它的效果就是讓w往0靠,使網(wǎng)絡(luò)中的權(quán)重盡可能為0
MSE 交叉熵公式
用一些特征判斷用戶會不會點擊某商品诞外,用cart好還是c4.5好
考慮到類別不平衡和連續(xù)值的特征澜沟,用cart會比較好
LR和SVM區(qū)別
同:
第一,LR和SVM都是分類算法峡谊。
第二茫虽,如果不考慮核函數(shù),LR和SVM都是線性分類算法既们,也就是說他們的分類決策面都是線性的濒析。
第三,LR和SVM都是監(jiān)督學(xué)習(xí)算法啥纸。
第四号杏,LR和SVM都是判別模型。
異:
LR是參數(shù)模型斯棒,SVM是非參數(shù)模型
第一盾致,本質(zhì)上是其loss function不同
交叉熵?fù)p失和hinge損失
不同的loss function代表了不同的假設(shè)前提,也就代表了不同的分類原理荣暮,也就代表了一切MハА!穗酥!簡單來說护赊,?邏輯回歸極大似然估計的方法估計出參數(shù)的值惠遏;支持向量機?基于幾何間隔最大化原理
第二,支持向量機只考慮局部的邊界線附近的點骏啰,而邏輯回歸考慮全局(遠(yuǎn)離的點對邊界線的確定也起作用)节吮。
影響SVM決策面的樣本點只有少數(shù)的結(jié)構(gòu)支持向量,當(dāng)在支持向量外添加或減少任何樣本點對分類決策面沒有任何影響判耕;而在LR中透绩,每個樣本點都會影響決策面的結(jié)果。線性SVM不直接依賴于數(shù)據(jù)分布祈秕,分類平面不受一類點影響渺贤;LR則受所有數(shù)據(jù)點的影響,如果數(shù)據(jù)不同類別strongly unbalance请毛,一般需要先對數(shù)據(jù)做balancing志鞍。?
第三,在解決非線性問題時方仿,支持向量機采用核函數(shù)的機制固棚,而LR通常不采用核函數(shù)的方法。
?這個問題理解起來非常簡單仙蚜。分類模型的結(jié)果就是計算決策面此洲,模型訓(xùn)練的過程就是決策面的計算過程。在計算決策面時委粉,SVM算法里只有少數(shù)幾個代表支持向量的樣本參與了計算呜师,也就是只有少數(shù)幾個樣本需要參與核計算(即kernal machine解的系數(shù)是稀疏的)。然而贾节,LR算法里汁汗,每個樣本點都必須參與決策面的計算過程,也就是說栗涂,假設(shè)我們在LR里也運用核函數(shù)的原理知牌,那么每個樣本點都必須參與核計算,這帶來的計算復(fù)雜度是相當(dāng)高的斤程。所以角寸,在具體應(yīng)用時,LR很少運用核函數(shù)機制忿墅。?
第四扁藕,?線性SVM依賴數(shù)據(jù)表達的距離測度,所以需要對數(shù)據(jù)先做normalization疚脐,LR不受其影響亿柑。
第五,SVM的損失函數(shù)就自帶正則A敛堋i涎睢!(損失函數(shù)中的1/2||w||^2項)照卦,這就是為什么SVM是結(jié)構(gòu)風(fēng)險最小化算法的原因J浇谩!役耕!而LR必須另外在損失函數(shù)上添加正則項2勺!瞬痘!**
以前一直不理解為什么SVM叫做結(jié)構(gòu)風(fēng)險最小化算法故慈,所謂結(jié)構(gòu)風(fēng)險最小化,意思就是在訓(xùn)練誤差和模型復(fù)雜度之間尋求平衡框全,防止過擬合察绷,從而達到真實誤差的最小化。未達到結(jié)構(gòu)風(fēng)險最小化的目的津辩,最常用的方法就是添加正則項拆撼。
什么時候用svm
如果特征的數(shù)量大到和樣本數(shù)量差不多,則選用LR或者線性核的SVM喘沿;
如果特征的數(shù)量小闸度,樣本的數(shù)量正常,則選用SVM+高斯核函數(shù)蚜印;
如果特征的數(shù)量小莺禁,而樣本的數(shù)量很大,則需要手工添加一些特征從而變成第一種情況
stacking和blending區(qū)別
stacking是一種分層模型集成框架窄赋。以兩層為例哟冬,第一層由多個基學(xué)習(xí)器組成,其輸入為原始訓(xùn)練集寝凌,第二層的模型則是以第一層基學(xué)習(xí)器的輸出作為特征加入訓(xùn)練集進行再訓(xùn)練柒傻,從而得到完整的stacking模型。
以5折劃分為例较木,我們將原始訓(xùn)練集分為5折红符,分別記為fold1、fold2伐债、fold3预侯、fold4和fold5。此時我們使用fold2-fold5的數(shù)據(jù)來訓(xùn)練基模型1峰锁,并對fold1進行預(yù)測萎馅,該預(yù)測值即作為基模型1對fold1生成的元特征;同樣地虹蒋,使用fold1糜芳、fold3-fold5的數(shù)據(jù)來訓(xùn)練基模型1飒货,并對fold2進行預(yù)測,該預(yù)測值即作為基模型1對fold2生成的元特征峭竣;以此類推塘辅,得到基模型1對整個原始訓(xùn)練集生成的元特征。同樣地皆撩,對其他基模型也采用相同的方法生成元特征扣墩,從而構(gòu)成用于第二層模型(下記為元模型,meta model)訓(xùn)練的完整元特征集扛吞。對于測試集呻惕,我們可以在每次基模型訓(xùn)練好時預(yù)測,再將預(yù)測值做均值處理滥比;也可以將基模型擬合全部的訓(xùn)練集之后再對測試集進行預(yù)測亚脆。
需要注意的是,在生成第二層特征的時候守呜,各個基模型要采用相同的Kfold型酥,這樣得到的元特征的每一折(對應(yīng)于之前的K折劃分)都將不會泄露進該折數(shù)據(jù)的目標(biāo)值信息 ,從而盡可能的降低過擬合的風(fēng)險查乒。雖然如此弥喉,實際上我們得到的元特征還是存在一定程度上的信息泄露,比如我們在預(yù)測第二折的時候玛迄,是利用了第一折的目標(biāo)值信息用于訓(xùn)練基模型的由境,也就是說第一折的目標(biāo)值信息雜糅在對第二折進行預(yù)測的基模型里。但是蓖议,實踐中虏杰,這種程度的信息泄露所造成的過擬合程度很小。
Blending與Stacking大致相同勒虾,只是Blending的主要區(qū)別在于訓(xùn)練集不是通過K-Fold的CV策略來獲得預(yù)測值從而生成第二階段模型的特征纺阔,而是建立一個Holdout集,例如10%的訓(xùn)練數(shù)據(jù)修然,第二階段的stacker模型就基于第一階段模型對這10%訓(xùn)練數(shù)據(jù)的預(yù)測值進行擬合笛钝。說白了,就是把Stacking流程中的K-Fold CV 改成 HoldOut CV愕宋。
Blending的優(yōu)點在于:
1.比stacking簡單(因為不用進行k次的交叉驗證來獲得stacker feature)
2.避開了一個信息泄露問題:generlizers和stacker使用了不一樣的數(shù)據(jù)集
為什么有的模型需要歸一化玻靡,有的不需要?
1)歸一化后加快了梯度下降求最優(yōu)解的速度中贝;
2)歸一化有可能提高精度囤捻。
概率模型(樹形模型)不需要歸一化,因為它們不關(guān)心變量的值邻寿,而是關(guān)心變量的分布和變量之間的條件概率蝎土,如決策樹视哑、RF。而像Adaboost誊涯、SVM黎炉、LR(帶正則項)、Knn醋拧、KMeans之類的最優(yōu)化問題就需要歸一化〉淼基于距離的都需要歸一化
常見損失函數(shù)
1 01損失
2 絕對值損失
3 平方損失
4 對數(shù)損失 經(jīng)典的對數(shù)損失函數(shù)包括entropy和softmax
5 指數(shù)損失
6 合頁損失 主要用在svm中
常見優(yōu)化算法
SGD BGD moumentum adgrad adam
recall precision
precision:表征分類器的分類效果(查準(zhǔn)效果)
recall:表征某個類的召回(查全)效果
f1值:即用來衡量precision和recall的值丹壕,它是這個兩個值的調(diào)和均值 f1=p*r/(p+r)
xgboost為什么用泰勒展開,是有放回選擇特征嗎
實際上使用二階泰勒展開是為了xgboost能夠【自定義loss function】薇溃,任何損失函數(shù)只要二階可導(dǎo)即能【復(fù)用】陳大佬所做的關(guān)于最小二乘法的任何推導(dǎo)
XGBoost利用梯度優(yōu)化模型算法, 樣本是不放回的菌赖,想象一個樣本連續(xù)重復(fù)抽出,梯度來回踏步,這顯然不利于收斂沐序。
貝葉斯公式琉用,實際如何計算,如何解決精度問題策幼。
降維有哪些(LDA和PCA)邑时,說一下PCA的原理,PCA和LDA的區(qū)別
PCA為非監(jiān)督降維特姐,LDA為有監(jiān)督降維
PCA希望投影后的數(shù)據(jù)方差盡可能的大(最大可分性)晶丘,因為其假設(shè)方差越多,則所包含的信息越多唐含;而LDA則希望投影后相同類別的組內(nèi)方差小浅浮,而組間方差大。LDA能合理運用標(biāo)簽信息捷枯,使得投影后的維度具有判別性滚秩,不同類別的數(shù)據(jù)盡可能的分開。
支撐向量越多越好還是越少越好
比如在二維特征空間淮捆,一般需要3個支持向量確定分割面
結(jié)論:在n維特征中郁油,線性svm一般會產(chǎn)生n+1個支持向量
可認(rèn)為,如果訓(xùn)練出來的svm有d+1個支持向量争剿,則使用核會將數(shù)據(jù)映射到d維空間已艰,使其線性可分。
更高的維度意味著更高的復(fù)雜度蚕苇,所以支持向量越多意味模型越復(fù)雜哩掺,有過擬合風(fēng)險。
性能一致的情況下涩笤,更少的支持向量可能是更好的嚼吞,但是不絕對盒件,可以做cross validation驗證
基學(xué)習(xí)器,為什么gbdt用的是樹舱禽,我提到了CART樹炒刁,面試官問可以用別的樹嗎,這個我不知道……還有g(shù)bdt可以用線性的基學(xué)習(xí)器嗎誊稚?為什么xgboost可以用線性的基學(xué)習(xí)器翔始?
GBDT不能用線性的,關(guān)鍵點在于沒有L1里伯、L2正則項城瞎,可以與lasso回歸與嶺回歸結(jié)合。xgboost可以疾瓮,因為它是有正則項的脖镀。
傳統(tǒng)GBDT以CART作為基分類器,xgboost還支持線性分類器狼电,這個時候xgboost相當(dāng)于帶L1和L2正則化項的邏輯斯蒂回歸(分類問題)或者線性回歸(回歸問題)
樹模型做回歸
決策樹每個葉節(jié)點依照訓(xùn)練數(shù)據(jù)表現(xiàn)的概率傾向決定了其最終的預(yù)測類別蜒灰;而回歸樹的葉節(jié)點卻是一個個具體的值,從預(yù)測值連續(xù)這個意義上嚴(yán)格來講肩碟,回歸樹不能稱為回歸算法强窖。因為回歸樹的葉節(jié)點返回的是一團訓(xùn)練數(shù)據(jù)的均值,而不是具體的連續(xù)的值削祈。
kd樹
embedding好處
降低維度減少計算
特征交叉提升表達能力
在 embedding 空間中查找最近鄰毕骡,這可以很好的用于根據(jù)用戶的興趣來進行推薦。
作為監(jiān)督性學(xué)習(xí)任務(wù)的輸入岩瘦。
用于可視化不同離散變量之間的關(guān)系未巫。
為什么用embedding不用onehot
在深度神經(jīng)網(wǎng)絡(luò)中你如果直接接入 onehot,那么你需要訓(xùn)練的參數(shù)維度也是爆炸式增長
onehot稀疏启昧,可能會導(dǎo)致梯度消失
決策樹回歸和分類不同
分類樹:id3叙凡,c4.5,cart
回歸樹用平方誤差和最小密末。遍歷所有特征的所有取值握爷,找到某個特征的某個取值,使得預(yù)測誤差的平方和最小严里。這其實并不容易新啼,所以很多的算法采取的是貪心算法。由于目標(biāo)函數(shù)是凸函數(shù)刹碾,可以采用關(guān)于梯度的算法燥撞,以此來提高效率,當(dāng)然這也損失了精確度。
激活函數(shù)比較
RF的屬性采樣時有放回還是不放回
樣本屬性的隨機無放回的抽樣
lightgbm對缺失值的處理方法物舒;
lightGBM通過默認(rèn)方式處理缺失值色洞,可以通過設(shè)置use_missing = false 來使其無效。
lightGBM通過默認(rèn)的方式用NA(NaN)去表示缺失值冠胯,可以通過設(shè)置zero_as_missing = true 將其變?yōu)?
kmeans的K值確定方法
https://www.biaodianfu.com/k-means-choose-k.html
給定一個矩陣火诸,在矩陣中選取一行,求取某一行某個數(shù)附近的5個數(shù)的值荠察,需要用哪種數(shù)據(jù)結(jié)構(gòu)
KD樹
KD樹的實現(xiàn)描述
依次取各個坐標(biāo)軸置蜀,循環(huán)取,作為切分平面
取數(shù)據(jù)的中點作為切分點
logistic為什么用sigmoid函數(shù)
伯努利分布屬于指數(shù)分布族悉盆,滿足廣義線性模型盾碗,推出sigmoid函數(shù)
https://blog.csdn.net/baidu_15238925/article/details/81291247
貝葉斯公式的先驗和后驗概率
P(y|x)是后驗概率,一般是我們求解的目標(biāo)舀瓢。
P(x|y)是條件概率,又叫似然概率耗美,一般是通過歷史數(shù)據(jù)統(tǒng)計得到京髓。一般不把它叫做先驗概率,但從定義上也符合先驗定義商架。
P(y) 是先驗概率堰怨,一般都是人主觀給出的。貝葉斯中的先驗概率一般特指它蛇摸。
P(x)其實也是先驗概率备图,只是在貝葉斯的很多應(yīng)用中不重要(因為只要最大后驗不求絕對值),需要時往往用全概率公式計算得到赶袄。
ID3算法復(fù)雜度揽涮,怎么優(yōu)化
m樣本個數(shù),n特征數(shù)目饿肺,p特征取值
復(fù)雜度mnp
決策樹怎么處理缺失值
gbdt中為什么有時候用梯度來代替殘差計算
殘差是loss為mse時求導(dǎo)的特殊情況蒋困,都是基于梯度的,只不過均方差求導(dǎo)之后變殘差了敬辣。也可以直接最小化這個loss雪标,但是梯度可以讓我們最小化更多更復(fù)雜的loss
對于特征值缺失的情況,用lr和rf來預(yù)測缺失值溉跃,哪種方法更好
9.svm smo算法講解一下村刨、
DBSCAN的計算原理,如何確定噪聲點
xgboost怎么處理缺失值
xgboost可以自動學(xué)習(xí)出缺失值特征分裂的方向撰茎,初始的時候給了一個默認(rèn)的分裂方向