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