2021年6月底,明略科技算法崗7道面試題分享
文 | 七月在線
編 | 小七

目錄
FIGHTING
問題1:熵,交叉熵的概念
問題2:邏輯回歸損失函數(shù),并推導(dǎo)梯度下降公式
問題3:歸一化和標(biāo)準(zhǔn)化區(qū)別
問題4:knn算法的思想
問題5:knn的k設(shè)置的過大會(huì)有什么問題
問題6:gbdt和bagging的區(qū)別,樣本權(quán)重為什么會(huì)改變?
問題7:梯度下降的思想

問題1:熵,交叉熵的概念
判斷一個(gè)數(shù)是否是7的倍數(shù)可以直接用取余的方法,判斷一個(gè)數(shù)中是否含有數(shù)字7,這里提供兩種方法:一種是將數(shù)字轉(zhuǎn)換成字符串,用 in 進(jìn)行判斷;另一種是將數(shù)字轉(zhuǎn)換成字符串,用 find 方法,如果不包含會(huì)返回 -1。
在信息論和概率統(tǒng)計(jì)中,嫡是表示隨機(jī)變量不確定的度量,隨機(jī)邊量×的嫡定義如下:
嫡只依賴于X的分布,與X的取值無關(guān)。
條件嫡H(YIX)表示在已知隨機(jī)變量×的條件下隨機(jī)變量Y的不確定性,H(Y|IX)定義為在給定條件X下,Y的條件概率分布的嫡對(duì)X的數(shù)學(xué)期望:
問題2:邏輯回歸損失函數(shù),并推導(dǎo)梯度下降公式
邏輯回歸損失函數(shù)及梯度推導(dǎo)公式如下:
求導(dǎo):
問題3:歸一化和標(biāo)準(zhǔn)化區(qū)別
歸一化公式:
標(biāo)準(zhǔn)化公式:
歸一化和標(biāo)準(zhǔn)化的區(qū)別:歸一化是將樣本的特征值轉(zhuǎn)換到同一量綱下把數(shù)據(jù)映射到[0,1]或者[-1,1]區(qū)間內(nèi),僅由變量的極值決定,因區(qū)間放縮法是歸一化的一種。標(biāo)準(zhǔn)化是依照特征矩陣的列處理數(shù)據(jù),其通過求z-score的方法,轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布,和整體樣本分布相關(guān),每個(gè)樣本點(diǎn)都能對(duì)標(biāo)準(zhǔn)化產(chǎn)生影響。它們的相同點(diǎn)在于都能取消由于量綱不同引起的誤差﹔都是一種線性變換,都是對(duì)向量X按照比例壓縮再進(jìn)行平移。
問題4:knn算法的思想
在訓(xùn)練集中數(shù)據(jù)和標(biāo)簽已知的情況下,輸入測(cè)試數(shù)據(jù),將測(cè)試數(shù)據(jù)的特征與訓(xùn)練集中對(duì)應(yīng)的特征進(jìn)行相互比較,找到訓(xùn)練集中與之最為相似的前K個(gè)數(shù)據(jù),則該測(cè)試數(shù)據(jù)對(duì)應(yīng)的類別就是K個(gè)數(shù)據(jù)中出現(xiàn)次數(shù)最多的那個(gè)分類,其算法的描述為:
1)計(jì)算測(cè)試數(shù)據(jù)與各個(gè)訓(xùn)練數(shù)據(jù)之間的距離;
2)按照距離的遞增關(guān)系進(jìn)行排序;
3)選取距離最小的K個(gè)點(diǎn);
4)確定前K個(gè)點(diǎn)所在類別的出現(xiàn)頻率;
5)返回前K個(gè)點(diǎn)中出現(xiàn)頻率最高的類別作為測(cè)試數(shù)據(jù)的預(yù)測(cè)分類。
問題5:knn的k設(shè)置的過大會(huì)有什么問題
KNN中的K值選取對(duì)K近鄰算法的結(jié)果會(huì)產(chǎn)生重大影響。如果選擇較小的K值,就相當(dāng)于用較小的領(lǐng)域中的訓(xùn)練實(shí)例進(jìn)行預(yù)測(cè),“學(xué)習(xí)”近似誤差(近似誤差:可以理解為對(duì)現(xiàn)有訓(xùn)練集的訓(xùn)練誤差)會(huì)減小,只有與輸入實(shí)例較近或相似的訓(xùn)練實(shí)例才會(huì)對(duì)預(yù)測(cè)結(jié)果起作用,與此同時(shí)帶來的問題是“學(xué)習(xí)”的估計(jì)誤差會(huì)增大,換句話說,K值的減小就意味著整體模型變得復(fù)雜,容易發(fā)生過擬合;
如果選擇較大的K值,就相當(dāng)于用較大領(lǐng)域中的訓(xùn)練實(shí)例進(jìn)行預(yù)測(cè),其優(yōu)點(diǎn)是可以減少學(xué)習(xí)的估計(jì)誤差,但缺點(diǎn)是學(xué)習(xí)的近似誤差會(huì)增大。這時(shí)候,與輸入實(shí)例較遠(yuǎn)(不相似的)訓(xùn)練實(shí)例也會(huì)對(duì)預(yù)測(cè)器作用,使預(yù)測(cè)發(fā)生錯(cuò)誤,且K值的增大就意味著整體的模型變得簡單。
在實(shí)際應(yīng)用中,K值一般取一個(gè)比較小的數(shù)值,例如采用交叉驗(yàn)證法來選擇最優(yōu)的K值。經(jīng)驗(yàn)規(guī)則:k一般低于訓(xùn)練樣本數(shù)的平方根。
問題6:gbdt和bagging的區(qū)別,樣本權(quán)重為什么會(huì)改變?
gbdt是基于Boosting的算法。
Bagging和Boosting的區(qū)別:
1)樣本選擇上:
Bagging:訓(xùn)練集是在原始集中有放回選取的,從原始集中選出的各輪訓(xùn)練集之間是獨(dú)立的。
Boosting:每一輪的訓(xùn)練集不變,只是訓(xùn)練集中每個(gè)樣例在分類器中的權(quán)重發(fā)生變化。而權(quán)值是根據(jù)上一輪的分類結(jié)果進(jìn)行調(diào)整。
2)樣例權(quán)重:
Bagging:使用均勻取樣,每個(gè)樣例的權(quán)重相等
Boosting:根據(jù)錯(cuò)誤率不斷調(diào)整樣例的權(quán)值,錯(cuò)誤率越大則權(quán)重越大。
3)預(yù)測(cè)函數(shù):
Bagging:所有預(yù)測(cè)函數(shù)的權(quán)重相等。
Boosting:每個(gè)弱分類器都有相應(yīng)的權(quán)重,對(duì)于分類誤差小的分類器會(huì)有更大的權(quán)重。
4)并行計(jì)算:
Bagging:各個(gè)預(yù)測(cè)函數(shù)可以并行生成
Boosting:各個(gè)預(yù)測(cè)函數(shù)只能順序生成,因?yàn)楹笠粋€(gè)模型參數(shù)需要前一輪模型的結(jié)果。
Boosting中樣本權(quán)重發(fā)生改變的原因:
通過提高那些在前一輪被弱分類器分錯(cuò)樣例的權(quán)值,減小前一輪分對(duì)樣例的權(quán)值,來使得分類器對(duì)誤分的數(shù)據(jù)有較好的效果。
問題7:梯度下降的思想
梯度下降是一種非常通用的優(yōu)化算法,能夠?yàn)榇蠓秶膯栴}找到最優(yōu)解。梯度下降的中心思想就是迭代地調(diào)整參數(shù)從而使損失函數(shù)最小化。
假設(shè)你迷失在山上的迷霧中,你能感覺到的只有你腳下路面的坡度??焖俚竭_(dá)山腳的一個(gè)策略就是沿著最陡的方向下坡,這就是梯度下降的做法。即通過測(cè)量參數(shù)向量日相關(guān)的損失函數(shù)的局部梯度,并不斷沿著降低梯度的方向調(diào)整,直到梯度降為0,達(dá)到最小值。
梯度下降公式如下︰
對(duì)應(yīng)到每個(gè)權(quán)重公式為:
— 推薦閱讀 — NLP ( 自然語言處理 )
CV(計(jì)算機(jī)視覺)
推薦
最新大廠面試題
AI開源項(xiàng)目論文
yolov4 火災(zāi)檢測(cè),煙霧檢測(cè)等5大開源項(xiàng)目...










