大數(shù)據(jù)文摘基于大數(shù)據(jù)垂直領(lǐng)域50萬(wàn)粉絲的優(yōu)勢(shì)
想要發(fā)起一次眾包的行業(yè)調(diào)研。
我們誠(chéng)摯的邀請(qǐng)您用5分鐘填寫
《大數(shù)據(jù)行業(yè)從業(yè)者調(diào)研報(bào)告》
共同促成整個(gè)大數(shù)據(jù)行業(yè)的一次調(diào)研
大數(shù)據(jù)文摘作品,轉(zhuǎn)載具體要求見(jiàn)文末
選文/校對(duì) | 姚佳靈 翻譯 | 郭姝妤
導(dǎo)讀
想去機(jī)器學(xué)習(xí)初創(chuàng)公司做數(shù)據(jù)科學(xué)家?這些問(wèn)題值得你三思!
機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)被看作是下一次工業(yè)革命的驅(qū)動(dòng)器。這也意味著有許許多多令人激動(dòng)的初創(chuàng)公司正在起步成長(zhǎng)、尋找專業(yè)人士和數(shù)據(jù)科學(xué)家。它們可能是未來(lái)的特斯拉、谷歌。
對(duì)于有職業(yè)抱負(fù)的你來(lái)說(shuō),看好一家好的創(chuàng)業(yè)公司團(tuán)隊(duì)后,如何能夠脫穎而出,進(jìn)入一家靠譜的創(chuàng)業(yè)團(tuán)隊(duì)呢?
想得到這樣的工作并不容易。首先你要強(qiáng)烈認(rèn)同那個(gè)公司的理念、團(tuán)隊(duì)和愿景。同時(shí)你可能會(huì)遇到一些很難的技術(shù)問(wèn)題。而這些問(wèn)題則取決于公司的業(yè)務(wù)。他們是咨詢公司?他們是做機(jī)器學(xué)習(xí)產(chǎn)品的?在準(zhǔn)備面試之前就要了解清楚這些方面的問(wèn)題。
為了幫你為今后的面試做準(zhǔn)備,我準(zhǔn)備了40道面試時(shí)可能碰到的棘手問(wèn)題。如果你能回答和理解這些問(wèn)題,那么放心吧,你能頑強(qiáng)抵抗住面試。
注意:要回答這些問(wèn)題的關(guān)鍵是對(duì)機(jī)器學(xué)習(xí)和相關(guān)統(tǒng)計(jì)概念有具體的實(shí)際理解。
機(jī)器學(xué)習(xí)面試題
問(wèn)1:給你一個(gè)有1000列和1百萬(wàn)行的訓(xùn)練數(shù)據(jù)集。這個(gè)數(shù)據(jù)集是基于分類問(wèn)題的。經(jīng)理要求你來(lái)降低該數(shù)據(jù)集的維度以減少模型計(jì)算時(shí)間。你的機(jī)器內(nèi)存有限。你會(huì)怎么做?(你可以自由做各種實(shí)際操作假設(shè)。)
答:你的面試官應(yīng)該非常了解很難在有限的內(nèi)存上處理高維的數(shù)據(jù)。以下是你可以使用的處理方法:
1.由于我們的RAM很小,首先要關(guān)閉機(jī)器上正在運(yùn)行的其他程序,包括網(wǎng)頁(yè)瀏覽器,以確保大部分內(nèi)存可以使用。
2.我們可以隨機(jī)采樣數(shù)據(jù)集。這意味著,我們可以創(chuàng)建一個(gè)較小的數(shù)據(jù)集,比如有1000個(gè)變量和30萬(wàn)行,然后做計(jì)算。
3.為了降低維度,我們可以把數(shù)值變量和分類變量分開,同時(shí)刪掉相關(guān)聯(lián)的變量。對(duì)于數(shù)值變量,我們將使用相關(guān)性分析。對(duì)于分類變量,我們可以用卡方檢驗(yàn)。
4.另外,我們還可以使用PCA(主成分分析),并挑選可以解釋在數(shù)據(jù)集中有最大偏差的成分。
5.利用在線學(xué)習(xí)算法,如VowpalWabbit(在Python中可用)是一個(gè)可能的選擇。
6.利用Stochastic GradientDescent(隨機(jī)梯度下降)法建立線性模型也很有幫助。
7.我們也可以用我們對(duì)業(yè)務(wù)的理解來(lái)估計(jì)各預(yù)測(cè)變量對(duì)響應(yīng)變量的影響大小。但是,這是一個(gè)主觀的方法,如果沒(méi)有找出有用的預(yù)測(cè)變量可能會(huì)導(dǎo)致信息的顯著丟失。
注意:對(duì)于第4和第5點(diǎn),請(qǐng)務(wù)必閱讀有關(guān)在線學(xué)習(xí)算法和隨機(jī)梯度下降法的內(nèi)容。這些是高階方法。
問(wèn)2:在PCA中有必要做旋轉(zhuǎn)變換嗎?如果有必要,為什么?如果你沒(méi)有旋轉(zhuǎn)變換那些成分,會(huì)發(fā)生什么情況?
答:是的,旋轉(zhuǎn)(正交)是必要的,因?yàn)樗延芍鞒煞植东@的方差之間的差異最大化。這使得主成分更容易解釋。但是不要忘記我們做PCA的目的是選擇更少的主成分(與特征變量個(gè)數(shù)相較而言),那些選上的主成分能夠解釋數(shù)據(jù)集中最大方差。通過(guò)做旋轉(zhuǎn),各主成分的相對(duì)位置不發(fā)生變化,它只能改變點(diǎn)的實(shí)際坐標(biāo)。如果我們沒(méi)有旋轉(zhuǎn)主成分,PCA的效果會(huì)減弱,那樣我們會(huì)不得不選擇更多個(gè)主成分來(lái)解釋數(shù)據(jù)集里的方差。
注意:對(duì)PCA(主成分分析)需要了解更多。
問(wèn)3:給你一個(gè)數(shù)據(jù)集。這個(gè)數(shù)據(jù)集有缺失值,且這些缺失值分布在離中值有1個(gè)標(biāo)準(zhǔn)偏差的范圍內(nèi)。百分之多少的數(shù)據(jù)不會(huì)受到影響?為什么?
答:這個(gè)問(wèn)題給了你足夠的提示來(lái)開始思考!由于數(shù)據(jù)分布在中位數(shù)附近,讓我們先假設(shè)這是一個(gè)正態(tài)分布。我們知道,在一個(gè)正態(tài)分布中,約有68%的數(shù)據(jù)位于跟平均數(shù)(或眾數(shù)、中位數(shù))1個(gè)標(biāo)準(zhǔn)差范圍內(nèi)的,那樣剩下的約32%的數(shù)據(jù)是不受影響的。因此,約有32%的數(shù)據(jù)將不受到缺失值的影響。
問(wèn)4:給你一個(gè)癌癥檢測(cè)的數(shù)據(jù)集。你已經(jīng)建好了分類模型,取得了96%的精度。為什么你還是不滿意你的模型性能?你可以做些什么呢?
答:如果你分析過(guò)足夠多的數(shù)據(jù)集,你應(yīng)該可以判斷出來(lái)癌癥檢測(cè)結(jié)果是不平衡數(shù)據(jù)。在不平衡數(shù)據(jù)集中,精度不應(yīng)該被用來(lái)作為衡量模型的標(biāo)準(zhǔn),因?yàn)?6%(按給定的)可能只有正確預(yù)測(cè)多數(shù)分類,但我們感興趣是那些少數(shù)分類(4%),是那些被診斷出癌癥的人。因此,為了評(píng)價(jià)模型的性能,應(yīng)該用靈敏度(真陽(yáng)性率),特異性(真陰性率),F(xiàn)值用來(lái)確定這個(gè)分類器的“聰明”程度。如果在那4%的數(shù)據(jù)上表現(xiàn)不好,我們可以采取以下步驟:
1.我們可以使用欠采樣、過(guò)采樣或SMOTE讓數(shù)據(jù)平衡。
2.我們可以通過(guò)概率驗(yàn)證和利用AUC-ROC曲線找到最佳閥值來(lái)調(diào)整預(yù)測(cè)閥值。
3.我們可以給分類分配權(quán)重,那樣較少的分類獲得較大的權(quán)重。
4.我們還可以使用異常檢測(cè)。
注意:要更多地了解不平衡分類
問(wèn)5: 為什么樸素貝葉斯如此“樸素”?
答:樸素貝葉斯太‘樸素’了,因?yàn)樗俣ㄋ械奶卣髟跀?shù)據(jù)集中的作用是同樣重要和獨(dú)立的。正如我們所知,這個(gè)假設(shè)在現(xiàn)實(shí)世界中是很不真實(shí)的。
問(wèn)6:解釋樸素貝葉斯算法里面的先驗(yàn)概率、似然估計(jì)和邊際似然估計(jì)?
答:先驗(yàn)概率就是因變量(二分法)在數(shù)據(jù)集中的比例。這是在你沒(méi)有任何進(jìn)一步的信息的時(shí)候,是對(duì)分類能做出的最接近的猜測(cè)。例如,在一個(gè)數(shù)據(jù)集中,因變量是二進(jìn)制的(1和0)。例如,1(垃圾郵件)的比例為70%和0(非垃圾郵件)的為30%。因此,我們可以估算出任何新的電子郵件有70%的概率被歸類為垃圾郵件。似然估計(jì)是在其他一些變量的給定的情況下,一個(gè)觀測(cè)值被分類為1的概率。例如,“FREE”這個(gè)詞在以前的垃圾郵件使用的概率就是似然估計(jì)。邊際似然估計(jì)就是,“FREE”這個(gè)詞在任何消息中使用的概率。
問(wèn)7:你正在一個(gè)時(shí)間序列數(shù)據(jù)集上工作。經(jīng)理要求你建立一個(gè)高精度的模型。你開始用決策樹算法,因?yàn)槟阒浪谒蓄愋蛿?shù)據(jù)上的表現(xiàn)都不錯(cuò)。后來(lái),你嘗試了時(shí)間序列回歸模型,并得到了比決策樹模型更高的精度。這種情況會(huì)發(fā)生嗎?為什么?
答:眾所周知,時(shí)間序列數(shù)據(jù)有線性關(guān)系。另一方面,決策樹算法是已知的檢測(cè)非線性交互最好的算法。為什么決策樹沒(méi)能提供好的預(yù)測(cè)的原因是它不能像回歸模型一樣做到對(duì)線性關(guān)系的那么好的映射。因此,我們知道了如果我們有一個(gè)滿足線性假設(shè)的數(shù)據(jù)集,一個(gè)線性回歸模型能提供強(qiáng)大的預(yù)測(cè)。
問(wèn)8:給你分配了一個(gè)新的項(xiàng)目,是關(guān)于幫助食品配送公司節(jié)省更多的錢。問(wèn)題是,公司的送餐隊(duì)伍沒(méi)辦法準(zhǔn)時(shí)送餐。結(jié)果就是他們的客戶很不高興。最后為了使客戶高興,他們只好以免餐費(fèi)了事。哪個(gè)機(jī)器學(xué)習(xí)算法能拯救他們?
答:你的大腦里可能已經(jīng)開始閃現(xiàn)各種機(jī)器學(xué)習(xí)的算法。但是等等!這樣的提問(wèn)方式只是來(lái)測(cè)試你的機(jī)器學(xué)習(xí)基礎(chǔ)。這不是一個(gè)機(jī)器學(xué)習(xí)的問(wèn)題,而是一個(gè)路徑優(yōu)化問(wèn)題。機(jī)器學(xué)習(xí)問(wèn)題由三樣?xùn)|西組成:
1.模式已經(jīng)存在。
2.不能用數(shù)學(xué)方法解決(指數(shù)方程都不行)。
3.有相關(guān)的數(shù)據(jù)。
通過(guò)判斷以上三個(gè)因素來(lái)決定機(jī)器學(xué)習(xí)是不是個(gè)用來(lái)解決特定問(wèn)題的工具。
問(wèn)9:你意識(shí)到你的模型受到低偏差和高方差問(wèn)題的困擾。應(yīng)該使用哪種算法來(lái)解決問(wèn)題呢?為什么?
答:低偏差意味著模型的預(yù)測(cè)值接近實(shí)際值。換句話說(shuō),該模型有足夠的靈活性,以模仿訓(xùn)練數(shù)據(jù)的分布。貌似很好,但是別忘了,一個(gè)靈活的模型沒(méi)有泛化能力。這意味著,當(dāng)這個(gè)模型用在對(duì)一個(gè)未曾見(jiàn)過(guò)的數(shù)據(jù)集進(jìn)行測(cè)試的時(shí)候,它會(huì)令人很失望。在這種情況下,我們可以使用bagging算法(如隨機(jī)森林),以解決高方差問(wèn)題。bagging算法把數(shù)據(jù)集分成重復(fù)隨機(jī)取樣形成的子集。然后,這些樣本利用單個(gè)學(xué)習(xí)算法生成一組模型。接著,利用投票(分類)或平均(回歸)把模型預(yù)測(cè)結(jié)合在一起。另外,為了應(yīng)對(duì)大方差,我們可以:
1.使用正則化技術(shù),懲罰更高的模型系數(shù),從而降低了模型的復(fù)雜性。
2.使用可變重要性圖表中的前n個(gè)特征。可以用于當(dāng)一個(gè)算法在數(shù)據(jù)集中的所有變量里很難尋找到有意義信號(hào)的時(shí)候。
問(wèn)10:給你一個(gè)數(shù)據(jù)集。該數(shù)據(jù)集包含很多變量,你知道其中一些是高度相關(guān)的。經(jīng)理要求你用PCA。你會(huì)先去掉相關(guān)的變量嗎?為什么?
答:你可能會(huì)說(shuō)不,但是這有可能是不對(duì)的。丟棄相關(guān)變量會(huì)對(duì)PCA有實(shí)質(zhì)性的影響,因?yàn)橛邢嚓P(guān)變量的存在,由特定成分解釋的方差被放大。例如:在一個(gè)數(shù)據(jù)集有3個(gè)變量,其中有2個(gè)是相關(guān)的。如果在該數(shù)據(jù)集上用PCA,第一主成分的方差會(huì)是與其不相關(guān)變量的差異的兩倍。此外,加入相關(guān)的變量使PCA錯(cuò)誤地提高那些變量的重要性,這是有誤導(dǎo)性的。
問(wèn)11:花了幾個(gè)小時(shí)后,現(xiàn)在你急于建一個(gè)高精度的模型。結(jié)果,你建了5 個(gè)GBM (Gradient Boosted Models),想著boosting算法會(huì)顯示魔力。不幸的是,沒(méi)有一個(gè)模型比基準(zhǔn)模型表現(xiàn)得更好。最后,你決定將這些模型結(jié)合到一起。盡管眾所周知,結(jié)合模型通常精度高,但你就很不幸運(yùn)。你到底錯(cuò)在哪里?
答:據(jù)我們所知,組合的學(xué)習(xí)模型是基于合并弱的學(xué)習(xí)模型來(lái)創(chuàng)造一個(gè)強(qiáng)大的學(xué)習(xí)模型的想法。但是,只有當(dāng)各模型之間沒(méi)有相關(guān)性的時(shí)候組合起來(lái)后才比較強(qiáng)大。由于我們已經(jīng)試了5個(gè) GBM,但沒(méi)有提高精度,表明這些模型是相關(guān)的。具有相關(guān)性的模型的問(wèn)題是,所有的模型提供相同的信息。例如:如果模型1把User1122歸類為 1,模型2和模型3很有可能會(huì)做有同樣分類,即使它的實(shí)際值應(yīng)該是0,因此,只有弱相關(guān)的模型結(jié)合起來(lái)才會(huì)表現(xiàn)更好。
問(wèn)12:KNN和KMEANS聚類(kmeans clustering)有什么不同?
答:不要被它們的名字里的“K”誤導(dǎo)。你應(yīng)該知道,這兩種算法之間的根本區(qū)別是,KMEANS本質(zhì)上是無(wú)監(jiān)督學(xué)習(xí)而KNN是監(jiān)督學(xué)習(xí)。KMEANS是聚類算法。KNN是分類(或回歸)算法。 KMEAN算法把一個(gè)數(shù)據(jù)集分割成簇,使得形成的簇是同構(gòu)的,每個(gè)簇里的點(diǎn)相互靠近。該算法試圖維持這些簇之間有足夠的可分離性。由于無(wú)監(jiān)督的性質(zhì),這些簇沒(méi)有任何標(biāo)簽。NN算法嘗試基于其k(可以是任何數(shù)目)個(gè)周圍鄰居來(lái)對(duì)未標(biāo)記的觀察進(jìn)行分類。它也被稱為懶惰學(xué)習(xí)法,因?yàn)樗婕白钚〉哪P陀?xùn)練。因此,它不用訓(xùn)練數(shù)據(jù)對(duì)未看見(jiàn)的數(shù)據(jù)集進(jìn)行泛化。
問(wèn)13:真陽(yáng)性率和召回有什么關(guān)系?寫出方程式。
答:真陽(yáng)性率=召回。是的,它們有相同的公式(TP / TP + FN)。
注意:要了解更多關(guān)于估值矩陣的知識(shí)。
問(wèn)14:你建了一個(gè)多元回歸模型。你的模型R2為并不如你設(shè)想的好。為了改進(jìn),你去掉截距項(xiàng),模型R的平方從0.3變?yōu)?.8。這是否可能?怎樣才能達(dá)到這個(gè)結(jié)果?
答:是的,這有可能。我們需要了解截距項(xiàng)在回歸模型里的意義。截距項(xiàng)顯示模型預(yù)測(cè)沒(méi)有任何自變量,比如平均預(yù)測(cè)。公式R2 = 1 – ∑(y – y′)2/∑(y – ymean)2中的y′是預(yù)測(cè)值。 當(dāng)有截距項(xiàng)時(shí),R2值評(píng)估的是你的模型基于均值模型的表現(xiàn)。在沒(méi)有截距項(xiàng)(ymean)時(shí),當(dāng)分母很大時(shí),該模型就沒(méi)有這樣的估值效果了,∑(y – y′)2/∑(y – ymean)2式的值會(huì)變得比實(shí)際的小,而R2會(huì)比實(shí)際值大。
問(wèn)15:在分析了你的模型后,經(jīng)理告訴你,你的模型有多重共線性。你會(huì)如何驗(yàn)證他說(shuō)的是真的?在不丟失任何信息的情況下,你還能建立一個(gè)更好的模型嗎?
答:要檢查多重共線性,我們可以創(chuàng)建一個(gè)相關(guān)矩陣,用以識(shí)別和除去那些具有75%以上相關(guān)性(決定閾值是主觀的)的變量。此外,我們可以計(jì)算VIF(方差膨脹因子)來(lái)檢查多重共線性的存在。 VIF值<= 4表明沒(méi)有多重共線性,而值=""> = 10意味著嚴(yán)重的多重共線性。此外,我們還可以用容差作為多重共線性的指標(biāo)。但是,刪除相關(guān)的變量可能會(huì)導(dǎo)致信息的丟失。為了留住這些變量,我們可以使用懲罰回歸模型,如Ridge和Lasso回歸。我們還可以在相關(guān)變量里添加一些隨機(jī)噪聲,使得變量變得彼此不同。但是,增加噪音可能會(huì)影響預(yù)測(cè)的準(zhǔn)確度,因此應(yīng)謹(jǐn)慎使用這種方法。=>
注意:多了解關(guān)于回歸的知識(shí)。
問(wèn)16:什么時(shí)候Ridge回歸優(yōu)于Lasso回歸?
答:你可以引用ISLR的作者Hastie和Tibshirani的話,他們斷言在對(duì)少量變量有中等或大尺度的影響的時(shí)候用lasso回歸。在對(duì)多個(gè)變量只有小或中等尺度影響的時(shí)候,使用Ridge回歸。
從概念上講,我們可以說(shuō),Lasso回歸(L1)同時(shí)做變量選擇和參數(shù)收縮,而ridge回歸只做參數(shù)收縮,并最終在模型中包含所有的系數(shù)。在有相關(guān)變量時(shí),ridge回歸可能是首選。此外,ridge回歸在用最小二乘估計(jì)有更高的偏差的情況下效果最好。因此,選擇合適的模型取決于我們的模型的目標(biāo)。
注意:多了解關(guān)于ridge和lasso回歸的相關(guān)知識(shí)。
問(wèn)17:全球平均溫度的上升導(dǎo)致世界各地的海盜數(shù)量減少。這是否意味著海盜的數(shù)量減少引起氣候變化?
答:看完這個(gè)問(wèn)題后,你應(yīng)該知道這是一個(gè)“因果關(guān)系和相關(guān)性”的經(jīng)典案例。我們不能斷定海盜的數(shù)量減少是引起氣候變化的原因,因?yàn)榭赡苡衅渌蛩兀摲蚧祀s因素)影響了這一現(xiàn)象。全球平均溫度和海盜數(shù)量之間有可能有相關(guān)性,但基于這些信息,我們不能說(shuō)因?yàn)槿蚱骄鶜鉁氐纳仙鴮?dǎo)致了海盜的消失。
注意:多了解關(guān)于因果關(guān)系和相關(guān)性的知識(shí)。
問(wèn)18:如何在一個(gè)數(shù)據(jù)集上選擇重要的變量?給出解釋。
答:以下是你可以使用的選擇變量的方法:
1.選擇重要的變量之前除去相關(guān)變量
2.用線性回歸然后基于P值選擇變量
3.使用前向選擇,后向選擇,逐步選擇
4.使用隨機(jī)森林和Xgboost,然后畫出變量重要性圖
5.使用lasso回歸
6.測(cè)量可用的特征集的的信息增益,并相應(yīng)地選擇前n個(gè)特征量。
問(wèn)19:協(xié)方差和相關(guān)性有什么區(qū)別?
答:相關(guān)性是協(xié)方差的標(biāo)準(zhǔn)化格式。協(xié)方差本身很難做比較。例如:如果我們計(jì)算工資($)和年齡(歲)的協(xié)方差,因?yàn)檫@兩個(gè)變量有不同的度量,所以我們會(huì)得到不能做比較的不同的協(xié)方差。為了解決這個(gè)問(wèn)題,我們計(jì)算相關(guān)性來(lái)得到一個(gè)介于-1和1之間的值,就可以忽略它們各自不同的度量。
問(wèn)20:是否有可能捕獲連續(xù)變量和分類變量之間的相關(guān)性?如果可以的話,怎樣做?
答:是的,我們可以用ANCOVA(協(xié)方差分析)技術(shù)來(lái)捕獲連續(xù)型變量和分類變量之間的相關(guān)性。
問(wèn)21:Gradient boosting算法(GBM)和隨機(jī)森林都是基于樹的算法,它們有什么區(qū)別?
答:最根本的區(qū)別是,隨機(jī)森林算法使用bagging技術(shù)做出預(yù)測(cè)。 GBM采用boosting技術(shù)做預(yù)測(cè)。在bagging技術(shù)中,數(shù)據(jù)集用隨機(jī)采樣的方法被劃分成使n個(gè)樣本。然后,使用單一的學(xué)習(xí)算法,在所有樣本上建模。接著利用投票或者求平均來(lái)組合所得到的預(yù)測(cè)。Bagging是平行進(jìn)行的。而boosting是在第一輪的預(yù)測(cè)之后,算法將分類出錯(cuò)的預(yù)測(cè)加高權(quán)重,使得它們可以在后續(xù)一輪中得到校正。這種給予分類出錯(cuò)的預(yù)測(cè)高權(quán)重的順序過(guò)程持續(xù)進(jìn)行,一直到達(dá)到停止標(biāo)準(zhǔn)為止。隨機(jī)森林通過(guò)減少方差(主要方式)提高模型的精度。生成樹之間是不相關(guān)的,以把方差的減少最大化。在另一方面,GBM提高了精度,同時(shí)減少了模型的偏差和方差。
注意:多了解關(guān)于基于樹的建模知識(shí)。
問(wèn)22:運(yùn)行二元分類樹算法很容易,但是你知道一個(gè)樹是如何做分割的嗎,即樹如何決定把哪些變量分到哪個(gè)根節(jié)點(diǎn)和后續(xù)節(jié)點(diǎn)上?
答:分類樹利用基尼系數(shù)與節(jié)點(diǎn)熵來(lái)做決定。簡(jiǎn)而言之,樹算法找到最好的可能特征,它可以將數(shù)據(jù)集分成最純的可能子節(jié)點(diǎn)。樹算法找到可以把數(shù)據(jù)集分成最純凈的可能的子節(jié)點(diǎn)的特征量?;嵯禂?shù)是,如果總體是完全純的,那么我們從總體中隨機(jī)選擇2個(gè)樣本,而這2個(gè)樣本肯定是同一類的而且它們是同類的概率也是1。我們可以用以下方法計(jì)算基尼系數(shù):
1.利用成功和失敗的概率的平方和(p^2+q^2)計(jì)算子節(jié)點(diǎn)的基尼系數(shù)
2.利用該分割的節(jié)點(diǎn)的加權(quán)基尼分?jǐn)?shù)計(jì)算基尼系數(shù)以分割
熵是衡量信息不純的一個(gè)標(biāo)準(zhǔn)(二分類):
這里的p和q是分別在該節(jié)點(diǎn)成功和失敗的概率。當(dāng)一個(gè)節(jié)點(diǎn)是均勻時(shí)熵為零。當(dāng)2個(gè)類同時(shí)以50%對(duì)50%的概率出現(xiàn)在同一個(gè)節(jié)點(diǎn)上的時(shí)候,它是最大值。熵越低越好。
問(wèn)23:你已經(jīng)建了一個(gè)有10000棵樹的隨機(jī)森林模型。在得到0.00的訓(xùn)練誤差后,你非常高興。但是,驗(yàn)證錯(cuò)誤是34.23。到底是怎么回事?你還沒(méi)有訓(xùn)練好你的模型嗎?
答:該模型過(guò)度擬合。訓(xùn)練誤差為0.00意味著分類器已在一定程度上模擬了訓(xùn)練數(shù)據(jù),這樣的分類器是不能用在未看見(jiàn)的數(shù)據(jù)上的。因此,當(dāng)該分類器用于未看見(jiàn)的樣本上時(shí),由于找不到已有的模式,就會(huì)返回的預(yù)測(cè)有很高的錯(cuò)誤率。在隨機(jī)森林算法中,用了多于需求個(gè)數(shù)的樹時(shí),這種情況會(huì)發(fā)生。因此,為了避免這些情況,我們要用交叉驗(yàn)證來(lái)調(diào)整樹的數(shù)量。
問(wèn)24:你有一個(gè)數(shù)據(jù)集,變量個(gè)數(shù)p大于觀察值個(gè)數(shù)n。為什么用OLS是一個(gè)不好的選擇?用什么技術(shù)最好?為什么?
答:在這樣的高維數(shù)據(jù)集中,我們不能用傳統(tǒng)的回歸技術(shù),因?yàn)樗鼈兊募僭O(shè)往往不成立。當(dāng)p>nN,我們不能計(jì)算唯一的最小二乘法系數(shù)估計(jì),方差變成無(wú)窮大,因此OLS無(wú)法在此使用的。為了應(yīng)對(duì)這種情況,我們可以使用懲罰回歸方法,如lasso、LARS、ridge,這些可以縮小系數(shù)以減少方差。準(zhǔn)確地說(shuō),當(dāng)最小二乘估計(jì)具有較高方差的時(shí)候,ridge回歸最有效。
其他方法還包括子集回歸、前向逐步回歸。
問(wèn)25:什么是凸包?(提示:想一想SVM)
答:當(dāng)數(shù)據(jù)是線性可分的,凸包就表示兩個(gè)組數(shù)據(jù)點(diǎn)的外邊界。一旦凸包建立,我們得到的最大間隔超平面(MMH)作為兩個(gè)凸包之間的垂直平分線。 MMH是能夠最大限度地分開兩個(gè)組的線。
問(wèn)26:我們知道,一位有效編碼會(huì)增加數(shù)據(jù)集的維度。但是,標(biāo)簽編碼不會(huì)。為什么?
答:對(duì)于這個(gè)問(wèn)題不要太糾結(jié)。這只是在問(wèn)這兩者之間的區(qū)別。
用一位有效編碼編碼,數(shù)據(jù)集的維度(也即特征)增加是因?yàn)樗鼮榉诸愖兞恐写嬖诘牡拿恳患?jí)都創(chuàng)建了一個(gè)變量。例如:假設(shè)我們有一個(gè)變量“顏色”。這變量有3個(gè)層級(jí),即紅色、藍(lán)色和綠色。對(duì)“顏色”變量進(jìn)行一位有效編碼會(huì)生成含0和1值的Color.Red,Color.Blue和Color.Green 三個(gè)新變量。在標(biāo)簽編碼中,分類變量的層級(jí)編碼為0和1,因此不生成新變量。標(biāo)簽編碼主要是用于二進(jìn)制變量。
問(wèn)27:你會(huì)在時(shí)間序列數(shù)據(jù)集上使用什么交叉驗(yàn)證技術(shù)?是用k倍或LOOCV?
答:都不是。對(duì)于時(shí)間序列問(wèn)題,k倍可能會(huì)很麻煩,因?yàn)榈?年或第5年的一些模式有可能跟第3年的不同,而對(duì)數(shù)據(jù)集的重復(fù)采樣會(huì)將分離這些趨勢(shì),我們可能最終是對(duì)過(guò)去幾年的驗(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]
1,2,3,4,5,6代表的是年份。
問(wèn)28:給你一個(gè)缺失值多于30%的數(shù)據(jù)集?比方說(shuō),在50個(gè)變量中,有8個(gè)變量的缺失值都多于30%。你對(duì)此如何處理?
答:我們可以用下面的方法來(lái)處理:
1.把缺失值分成單獨(dú)的一類,這些缺失值說(shuō)不定會(huì)包含一些趨勢(shì)信息。
2.我們可以毫無(wú)顧忌地刪除它們。
3.或者,我們可以用目標(biāo)變量來(lái)檢查它們的分布,如果發(fā)現(xiàn)任何模式,我們將保留那些缺失值并給它們一個(gè)新的分類,同時(shí)刪除其他缺失值。
問(wèn)29:“買了這個(gè)的客戶,也買了......”亞馬遜的建議是哪種算法的結(jié)果?
答:這種推薦引擎的基本想法來(lái)自于協(xié)同過(guò)濾。
協(xié)同過(guò)濾算法考慮用于推薦項(xiàng)目的“用戶行為”。它們利用的是其他用戶的購(gòu)買行為和針對(duì)商品的交易歷史記錄、評(píng)分、選擇和購(gòu)買信息。針對(duì)商品的其他用戶的行為和偏好用來(lái)推薦項(xiàng)目(商品)給新用戶。在這種情況下,項(xiàng)目(商品)的特征是未知的。
注意:了解更多關(guān)于推薦系統(tǒng)的知識(shí)。
問(wèn)30:你怎么理解第一類和第二類錯(cuò)誤?
答:第一類錯(cuò)誤是當(dāng)原假設(shè)為真時(shí),我們卻拒絕了它,也被稱為“假陽(yáng)性”。第二類錯(cuò)誤是當(dāng)原假設(shè)為是假時(shí),我們接受了它,也被稱為“假陰性”。在混淆矩陣?yán)铮覀兛梢哉f(shuō),當(dāng)我們把一個(gè)值歸為陽(yáng)性(1)但其實(shí)它是陰性(0)時(shí),發(fā)生第一類錯(cuò)誤。而當(dāng)我們把一個(gè)值歸為陰性(0)但其實(shí)它是陽(yáng)性(1)時(shí),發(fā)生了第二類錯(cuò)誤。
問(wèn)31:當(dāng)你在解決一個(gè)分類問(wèn)題時(shí),出于驗(yàn)證的目的,你已經(jīng)將訓(xùn)練集隨機(jī)抽樣地分成訓(xùn)練集和驗(yàn)證集。你對(duì)你的模型能在未看見(jiàn)的數(shù)據(jù)上有好的表現(xiàn)非常有信心,因?yàn)槟愕尿?yàn)證精度高。但是,在得到很差的精度后,你大失所望。什么地方出了錯(cuò)?
答:在做分類問(wèn)題時(shí),我們應(yīng)該使用分層抽樣而不是隨機(jī)抽樣。隨機(jī)抽樣不考慮目標(biāo)類別的比例。相反,分層抽樣有助于保持目標(biāo)變量在所得分布樣本中的分布。
問(wèn)32:你被要求基于R2、校正后的R2和容差對(duì)一個(gè)回歸模型做評(píng)估。你的標(biāo)準(zhǔn)會(huì)是什么?
答:容差(1 / VIF)是多重共線性的指標(biāo)。它是一個(gè)預(yù)測(cè)變量中的方差的百分比指標(biāo),這個(gè)預(yù)測(cè)變量不能由其他預(yù)測(cè)變量來(lái)計(jì)算。容差值越大越好。相對(duì)于R2我們會(huì)用校正R2,因?yàn)橹灰黾幼兞繑?shù)量,不管預(yù)測(cè)精度是否提高,R2都會(huì)變大。但是,如果有一個(gè)附加變量提高了模型的精度,則校正R2會(huì)變大,否則保持不變。很難給校正R2一個(gè)標(biāo)準(zhǔn)閾值,因?yàn)椴煌瑪?shù)據(jù)集會(huì)不同。例如:一個(gè)基因突變數(shù)據(jù)集可能會(huì)得到一個(gè)較低的校正R2但仍提供了相當(dāng)不錯(cuò)的預(yù)測(cè),但相較于股票市場(chǎng),較低的校正R2只能說(shuō)明模型不好。
問(wèn)33:在k-means或kNN,我們是用歐氏距離來(lái)計(jì)算最近的鄰居之間的距離。為什么不用曼哈頓距離?
答:我們不用曼哈頓距離,因?yàn)樗挥?jì)算水平或垂直距離,有維度的限制。另一方面,歐式距離可用于任何空間的距離計(jì)算問(wèn)題。因?yàn)?,?shù)據(jù)點(diǎn)可以存在于任何空間,歐氏距離是更可行的選擇。例如:想象一下國(guó)際象棋棋盤,象或車所做的移動(dòng)是由曼哈頓距離計(jì)算的,因?yàn)樗鼈兪窃诟髯缘乃胶痛怪狈较虻倪\(yùn)動(dòng)。
問(wèn)34:把我當(dāng)成一個(gè)5歲的小孩來(lái)解釋機(jī)器學(xué)習(xí)。
答:很簡(jiǎn)單。機(jī)器學(xué)習(xí)就像嬰兒學(xué)走路。每次他們摔倒,他們就學(xué)到(無(wú)知覺(jué)地)并且明白,他們的腿要伸直,而不能彎著。他們下一次再跌倒,摔疼了,摔哭了。但是,他們學(xué)會(huì)“不要用那種姿勢(shì)站著”。為了避免摔疼,他們更加努力嘗試。為了站穩(wěn),他們還扶著門或墻壁或者任何靠近他們的東西。這同樣也是一個(gè)機(jī)器如何在環(huán)境中學(xué)習(xí)和發(fā)展它的“直覺(jué)”的。
注意:這個(gè)面試問(wèn)題只是想考查你是否有深入淺出地講解復(fù)雜概念的能力。
問(wèn)35:我知道校正R2或者F值來(lái)是用來(lái)評(píng)估線性回歸模型的。那用什么來(lái)評(píng)估邏輯回歸模型?
答:我們可以使用下面的方法:
1.由于邏輯回歸是用來(lái)預(yù)測(cè)概率的,我們可以用AUC-ROC曲線以及混淆矩陣來(lái)確定其性能。
2.此外,在邏輯回歸中類似于校正R2的指標(biāo)是AIC。AIC是對(duì)模型系數(shù)數(shù)量懲罰模型的擬合度量。因此,我們更偏愛(ài)有最小AIC的模型。
3.空偏差指的是只有截距項(xiàng)的模型預(yù)測(cè)的響應(yīng)。數(shù)值越低,模型越好。殘余偏差表示由添加自變量的模型預(yù)測(cè)的響應(yīng)。數(shù)值越低,模型越好。
了解更多關(guān)于邏輯回歸的知識(shí)。
問(wèn)36:考慮到機(jī)器學(xué)習(xí)有這么多算法,給定一個(gè)數(shù)據(jù)集,你如何決定使用哪一個(gè)算法?
答:你應(yīng)該說(shuō),機(jī)器學(xué)習(xí)算法的選擇完全取決于數(shù)據(jù)的類型。如果給定的一個(gè)數(shù)據(jù)集是線性的,線性回歸是最好的選擇。如果數(shù)據(jù)是圖像或者音頻,那么神經(jīng)網(wǎng)絡(luò)可以構(gòu)建一個(gè)穩(wěn)健的模型。如果該數(shù)據(jù)是非線性互相作用的的,可以用boosting或bagging算法。如果業(yè)務(wù)需求是要構(gòu)建一個(gè)可以部署的模型,我們可以用回歸或決策樹模型(容易解釋和說(shuō)明),而不是黑盒算法如SVM,GBM等??傊?,沒(méi)有一個(gè)一勞永逸的算法。我們必須有足夠的細(xì)心,去了解到底要用哪個(gè)算法。
問(wèn)37:你認(rèn)為把分類變量當(dāng)成連續(xù)型變量會(huì)更得到一個(gè)更好的預(yù)測(cè)模型嗎?
回答:為了得到更好的預(yù)測(cè),只有在分類變量在本質(zhì)上是有序的情況下才可以被當(dāng)做連續(xù)型變量來(lái)處理。
問(wèn)38:什么時(shí)候正則化在機(jī)器學(xué)習(xí)中是有必要的?
答:當(dāng)模型過(guò)度擬合或者欠擬合的時(shí)候,正則化是有必要的。這個(gè)技術(shù)引入了一個(gè)成本項(xiàng),用于帶來(lái)目標(biāo)函數(shù)的更多特征。因此,正則化是將許多變量的系數(shù)推向零,由此而降低成本項(xiàng)。這有助于降低模型的復(fù)雜度,使該模型可以在預(yù)測(cè)上(泛化)變得更好。
問(wèn)39:你是怎么理解偏差方差的平衡?
答:從數(shù)學(xué)的角度來(lái)看,任何模型出現(xiàn)的誤差可以分為三個(gè)部分。以下是這三個(gè)部分:
偏差誤差在量化平均水平之上預(yù)測(cè)值跟實(shí)際值相差多遠(yuǎn)時(shí)有用。高偏差誤差意味著我們的模型表現(xiàn)不太好,因?yàn)闆](méi)有抓到重要的趨勢(shì)。而另一方面,方差量化了在同一個(gè)觀察上進(jìn)行的預(yù)測(cè)是如何彼此不同的。高方差模型會(huì)過(guò)度擬合你的訓(xùn)練集,而在訓(xùn)練集以外的數(shù)據(jù)上表現(xiàn)很差。
問(wèn)40:OLS是用于線性回歸。最大似然是用于邏輯回歸。解釋以上描述。
答:OLS和最大似然是使用各自的回歸方法來(lái)逼近未知參數(shù)(系數(shù))值的方法。簡(jiǎn)單地說(shuō),普通最小二乘法(OLS)是線性回歸中使用的方法,它是在實(shí)際值和預(yù)測(cè)值相差最小的情況下而得到這個(gè)參數(shù)的估計(jì)。最大似然性有助于選擇使參數(shù)最可能產(chǎn)生觀測(cè)數(shù)據(jù)的可能性最大化的參數(shù)值。
結(jié)語(yǔ)
看完以上所有的問(wèn)題,真正的價(jià)值在于你能理解它們而且你從中學(xué)到的知識(shí)可以用于理解其他相似的問(wèn)題。如果你對(duì)這些問(wèn)題有疑問(wèn),不要擔(dān)心,現(xiàn)在正是學(xué)習(xí)的時(shí)候而不要急于表現(xiàn)。現(xiàn)在你應(yīng)該專注學(xué)習(xí)這些問(wèn)題。這些問(wèn)題旨在讓你廣泛了解機(jī)器學(xué)習(xí)初創(chuàng)公司提出的問(wèn)題類型。我相信這些問(wèn)題會(huì)讓你感到好奇而讓你去做更深入的主題研究。如果你正在這么計(jì)劃,這是一個(gè)好兆頭。
聯(lián)系客服