XgBoost?
1. 從哪幾個(gè)方面實(shí)現(xiàn)并行化
答:在特征粒度上實(shí)現(xiàn)并行。迭代開(kāi)始前對(duì)所有候選特征進(jìn)行一次預(yù)排序,以column block的結(jié)構(gòu)(feature value-gradient for each example)存儲(chǔ),節(jié)點(diǎn)分裂式可以直接用索引得到梯度信息。
2. 如何確定樹(shù)的顆數(shù),以及單顆樹(shù)的深度
答:xgboost有一個(gè)非常有用的cv函數(shù)可以用于交叉驗(yàn)證并能返回最終的最優(yōu)樹(shù)的數(shù)目
單顆樹(shù)深度可以通過(guò)max_depth或min_child_weight控制
4. 為什么不需要做歸一化處理,什么樣的模型需要?dú)w一化處理
答:XgBoost的基分類器是CART樹(shù),樹(shù)模型是通過(guò)特征值排序后來(lái)尋找最佳分割點(diǎn),而歸一化只起到縮放作用,不影響排序結(jié)果。
一般來(lái)說(shuō),模型求解過(guò)程需要用到梯度下降算法的,輸入都要?dú)w一化,當(dāng)不同維度的特征量綱差距較大時(shí),損失函數(shù)的等高線是橢圓,不利于梯度下降尋找最小點(diǎn),迭代次數(shù)較多。
4. 和GBDT的區(qū)別
答:從代價(jià)函數(shù)的展開(kāi)、特征并行化、控制過(guò)擬合、可選基分類器、缺失值處理等角度來(lái)講
5. 單顆樹(shù)有幾種分裂方式,是如何尋找最優(yōu)切割點(diǎn)的,生成每顆樹(shù)的偽代碼
答:兩種,精確方法和近似方法。精確方法會(huì)遍歷在每個(gè)特征上遍歷所有特征值計(jì)算最優(yōu)分割點(diǎn),近似算法使用分位數(shù)的思想,利用每個(gè)樣本的二階導(dǎo)數(shù)和來(lái)確定分位點(diǎn)。
6. XgBoost各個(gè)參數(shù)(alpha、lambda、gamma)的意義
7. 如何確保特征之前沒(méi)有強(qiáng)共線性,Xgboost能消除特征共線性嗎,為什么能。
答:可以簡(jiǎn)單的從模型的穩(wěn)定性角度來(lái)檢驗(yàn)。
模型建好后 ,可以用不同的測(cè)試樣本驗(yàn)證模型效果,如果評(píng)估指標(biāo)有較大波動(dòng),說(shuō)明不穩(wěn)定;或者做cross_validation,如果重要特征重合度不高,也說(shuō)明不穩(wěn)定。
Xgboost一定程度上可以消除共線性,因?yàn)榇鷥r(jià)函數(shù)里包含了類似Ridge Regression的二階正則項(xiàng),約束了葉節(jié)點(diǎn)權(quán)重值大小,保證權(quán)重方差不會(huì)過(guò)大,并且懲罰稀疏越高,共線性的影響也越小。
LSTM
1. 假設(shè)樣本輸入維度為M,隱藏層有H個(gè)cell,LSTM有多少個(gè)參數(shù)
????LSTM在時(shí)間維度上學(xué)習(xí)的參數(shù)是什么
? ??分別寫出輸入門、輸出門、遺忘門、細(xì)胞狀態(tài)的計(jì)算公式
答:顯式的講,學(xué)習(xí)的是三個(gè)門(sigmoid)流入、流出信息的比例,其實(shí)根據(jù)各個(gè)門及cell_state的計(jì)算公式:
則是由
和
共同決定的:
學(xué)習(xí)的是四個(gè)門控單元中的參數(shù)矩陣,因此每個(gè)細(xì)胞單元中會(huì)有
3. LSTM相對(duì)于RNN有哪些改進(jìn),是怎么改進(jìn)的
答:從梯度消失和梯度爆炸的角度解釋。
5 LSTM的輸入形式是什么樣的
[n_batches, n_steps, n_input]?
神經(jīng)網(wǎng)絡(luò)
1. batch normalization的作用
? ? 每個(gè)batch的的數(shù)據(jù)訓(xùn)練完畢后,參數(shù)就會(huì)更新一次,導(dǎo)致每個(gè)batch數(shù)據(jù)分布也隨之改變,
這樣每次迭代網(wǎng)絡(luò)擬合的都是不同分布的數(shù)據(jù)
? ? 針對(duì)每一batch的樣本,在網(wǎng)絡(luò)的每一層輸入之前增加歸一化操作,將所有批數(shù)據(jù)強(qiáng)制統(tǒng)一在同一分布下,從而增加了模型的泛化能力(不受數(shù)據(jù)分布限制)。但歸一化后的數(shù)據(jù)整體處于激活函數(shù)sigmoid的非飽和區(qū)域,相當(dāng)于線性變換,破壞了之前學(xué)習(xí)到的特征分布,因此又引入了兩個(gè)可學(xué)習(xí)參數(shù)分別表示輸入數(shù)據(jù)的偏差和方差,
,用于恢復(fù)原來(lái)的數(shù)據(jù)分布。
2. dropout為什么能解決過(guò)擬合問(wèn)題
? ? dropout作用于每份小批量數(shù)據(jù)上,每次迭代都已一定的概率p隨機(jī)丟棄一部分神經(jīng)元,相當(dāng)于每次迭代都在訓(xùn)練不同的網(wǎng)絡(luò)。drop可以看成輕量級(jí)bagging集成近似,能夠?qū)崿F(xiàn)指數(shù)級(jí)數(shù)量神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測(cè)試。
????對(duì)于N個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)都有兩種可能(丟棄或加入),由組合的思想,加入了dropout的網(wǎng)絡(luò)可以看成是個(gè)子網(wǎng)絡(luò)的集成。
3. 梯度消失和梯度爆炸的原因
? ? 梯度消失的原因:
? ? 激活函數(shù)選擇sigmoid或tanh時(shí),由于兩者的函數(shù)域分別在[0,1]和[-1,1]之間
? ? 根據(jù)反向傳播推導(dǎo)公式,以及
? ? 可知,當(dāng)神經(jīng)網(wǎng)絡(luò)過(guò)深時(shí),? ??會(huì)趨近于0
? ? 改進(jìn)方法是引入ReLU系激活函數(shù)。
? ? 梯度爆炸的原因:
? ? ?同樣的道理,但不是非常難解的問(wèn)題 ,只需要梯度裁剪或后優(yōu)化算法即可。
4.? ? ? ? ? ? ?
Random Forest
1. RF如何評(píng)估重要特征
Decrease GINI和Decrease accuracy?
后者詳細(xì)方法:
對(duì)于隨機(jī)森林中的一顆決策樹(shù),其訓(xùn)練數(shù)據(jù)集是使用Bagging方法得到的,即套袋法,還有大約1/3的袋外數(shù)據(jù)我們可以用它進(jìn)行特征重要性的度量,假設(shè)針對(duì)某個(gè)特征X,我們利用套袋法建立了一顆決策樹(shù)T,然后用T對(duì)袋外數(shù)據(jù)TOOB進(jìn)行分類檢測(cè),得到其正確分類的個(gè)數(shù)XT,然后對(duì)袋外數(shù)據(jù)的特征X進(jìn)行“隨機(jī)擾亂”,對(duì)特征X的取值賦予隨機(jī)取的新數(shù)值,這時(shí)再用T對(duì)袋外數(shù)據(jù)TOOB'進(jìn)行分類檢測(cè),得到正確分類數(shù)XT',這時(shí)對(duì)于T來(lái)說(shuō),特征X的重要性D=|XT' - XT|,我們對(duì)隨機(jī)森林中共N顆決策樹(shù)做相同操作,可以得到N個(gè)特征X的重要性,取其均值作為X的重要性度量,即D(X) = (D1+D2+......+DN)/N,其中Di =?|XT'i - XTi|(i=1,2,3,....,N)。
2.?
特征工程
1. 特征選擇的目的:
當(dāng)樣本和特征的比例小于一定閾值時(shí),需要減少特征數(shù)量、降維,使模型泛化能力更強(qiáng),減少過(guò)擬合;另外就是加強(qiáng)對(duì)特征和特征值的理解
2. 特征選擇的方法:
Filter:從卡方檢驗(yàn)(離散變量)、互信息、相關(guān)性(連續(xù)變量)、熵、方差等角度去選擇,一般都是在特征值和Label之間計(jì)算。
Wrapper:通過(guò)評(píng)價(jià)指標(biāo)(AUC等)的來(lái)決定是否加入一個(gè)變量子集,不推薦,工程量大
Embedding:利用樹(shù)模型或L1正則、LR權(quán)重向量選擇重要特征
除了以上三種方法,還可以從樣本子集(訓(xùn)練集和測(cè)試集)穩(wěn)定性等角度考慮。
3. 數(shù)據(jù)預(yù)處理從哪幾個(gè)方面進(jìn)行
? ? ① 缺失值填充
? ? ? ? 首先,如果缺失值太多的話,傾向于直接去掉該特征。
? ? ? ? 對(duì)于連續(xù)值:可以用均值、中位數(shù)、最大最小值等,對(duì)于離散值:一般用眾數(shù)
? ? ② 歸一化、標(biāo)準(zhǔn)化(參數(shù)優(yōu)化過(guò)程使用隨機(jī)梯度下降方法的模型)
? ? ③ 二值化、連續(xù)特征離散化(對(duì)于線性回歸、LR、決策樹(shù)這種模型來(lái)講)
?4.?特征比數(shù)據(jù)量還大時(shí),選擇什么樣的分類器?
? ? 線性分類器,特征維度高意味著樣本在特征空間中分布比較稀疏,容易找到線性決策邊界?
5.?給你一個(gè)有1000列和1百萬(wàn)行的訓(xùn)練數(shù)據(jù)集。這個(gè)數(shù)據(jù)集是基于分類問(wèn)題的。
? ? 分別從樣本、特征、模型復(fù)雜度的角度去考慮。盡量選擇線性模型。?
建模相關(guān)
1. AUC的物理意義
AUC反應(yīng)的是分類器對(duì)樣本的排序能力。根據(jù)這個(gè)解釋,如果我們完全隨機(jī)的對(duì)樣本分類,那么AUC應(yīng)該接近0.5。另外值得注意的是,AUC對(duì)樣本類別是否均衡并不敏感,這也是不均衡樣本通常用AUC評(píng)價(jià)分類器性能的一個(gè)原因。
2.?你會(huì)在時(shí)間序列數(shù)據(jù)集上使用什么交叉驗(yàn)證技術(shù)?是用k倍或LOOCV?
都不能用,這兩種方法會(huì)破壞時(shí)間趨勢(shì),用過(guò)去幾年的數(shù)據(jù)驗(yàn)證模型顯然是不對(duì)的,可以采用如下所示的5倍正向鏈接策略:
fold 1 : training [1], test [2]
fold 2 : training [1 2], test [3]
fold 3 : training [1 2 3], test [4]
fold 4 : training [1 2 3 4], test [5]
fold 5 : training [1 2 3 4 5], test [6]
3.?