備戰AI求職季 | 100道機器學習面試題(下)

七月線上實驗室發表於2019-03-22

640?wx_fmt=png


導讀:備戰AI求職季,小編給大家了準備了100道關於機器學習方面的面試題,上週給大家整理了前50道「備戰AI求職季 | 100道機器學習面試題(上)」。今天,繼續更新後面50題,希望能助大家一臂之力,都能斬獲高薪offer。(PS:有些題目解析較長,簡單寫了幾行,解析未完的題目後面有註明在官網題庫對應的機器學習類目下第幾題)


51、請問怎麼處理特徵向量的缺失值


解析:

一方面,缺失值較多.直接將該特徵捨棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。  


另一方面缺失值較少,其餘的特徵缺失值都在10%以內,我們可以採取很多的方式來處理: 

1) 把NaN直接作為一個特徵,假設用0表示; 

2) 用均值填充; 

3) 用隨機森林等演算法預測填充。



52、SVM、LR、決策樹的對比。


解析:

模型複雜度:SVM支援核函式,可處理線性非線性問題;LR模型簡單,訓練速度快,適合處理線性問題;決策樹容易過擬合,需要進行剪枝 

損失函式:SVM hinge loss; LR L2正則化; adaboost 指數損失 

資料敏感度:SVM新增容忍度對outlier不敏感,只關心支援向量,且需要先做歸一化; LR對遠點敏感 

資料量:資料量大就用LR,資料量小且特徵少就用SVM非線性核



53、什麼是ill-condition病態問題?


解析:

訓練完的模型,測試樣本稍作修改就會得到差別很大的結果,就是病態問題,模型對未知資料的預測能力很差,即泛化誤差大。



54、簡述KNN最近鄰分類演算法的過程?


解析:

1. 計算測試樣本和訓練樣本中每個樣本點的距離(常見的距離度量有歐式距離,馬氏距離等); 

2. 對上面所有的距離值進行排序; 

3. 選前 k 個最小距離的樣本; 

4. 根據這 k 個樣本的標籤進行投票,得到最後的分類類別;



55、常用的聚類劃分方式有哪些?列舉代表演算法。


解析:

1. 基於劃分的聚類:K-means,k-medoids,CLARANS。 

2. 基於層次的聚類:AGNES(自底向上),DIANA(自上向下)。 

3. 基於密度的聚類:DBSACN,OPTICS,BIRCH(CF-Tree),CURE。 

4. 基於網格的方法:STING,WaveCluster。 

5. 基於模型的聚類:EM,SOM,COBWEB。



56、什麼是偏差與方差?


解析:

泛化誤差可以分解成偏差的平方加上方差加上噪聲。偏差度量了學習演算法的期望預測和真實結果的偏離程度,刻畫了學習演算法本身的擬合能力,方差度量了同樣大小的訓練集的變動所導致的學習效能的變化,刻畫了資料擾動所造成的影響,噪聲表達了當前任務上任何學習演算法所能達到的期望泛化誤差下界,刻畫了問題本身的難度。偏差和方差一般稱為bias和variance,一般訓練程度越強,偏差越小,方差越大,泛化誤差一般在中間有一個最小值,如果偏差較大,方差較小,此時一般稱為欠擬合,而偏差較小,方差較大稱為過擬合。 


偏差:

640?wx_fmt=gif640?wx_fmt=png

方差:

640?wx_fmt=gif640?wx_fmt=png



57、採用 EM 演算法求解的模型有哪些,為什麼不用牛頓法或梯度下降法?


解析:

用EM演算法求解的模型一般有GMM或者協同過濾,k-means其實也屬於EM。EM演算法一定會收斂,但是可能收斂到區域性最優。由於求和的項數將隨著隱變數的數目指數上升,會給梯度計算帶來麻煩。



58、xgboost怎麼給特徵評分?


解析:

在訓練的過程中,通過Gini指數選擇分離點的特徵,一個特徵被選中的次數越多,那麼該特徵評分越高。 


[python] # feature importance   

print(model.feature_importances_)   

# plot  pyplot.bar(range(len(model.feature_importances_)), model.feature_importances_)   

pyplot.show()  ==========   

# plot feature importance   

plot_importance(model)   

pyplot.show()



59、什麼是OOB?隨機森林中OOB是如何計算的,它有什麼優缺點?


解析:

bagging方法中Bootstrap每次約有1/3的樣本不會出現在Bootstrap所採集的樣本集合中,當然也就沒有參加決策樹的建立,把這1/3的資料稱為袋外資料oob(out of bag),它可以用於取代測試集誤差估計方法。  


袋外資料(oob)誤差的計算方法如下: 

對於已經生成的隨機森林,用袋外資料測試其效能,假設袋外資料總數為O,用這O個袋外資料作為輸入,帶進之前已經生成的隨機森林分類器,分類器會給出O個資料相應的分類,因為這O條資料的型別是已知的,則用正確的分類與隨機森林分類器的結果進行比較,統計隨機森林分類器分類錯誤的數目,設為X,則袋外資料誤差大小=X/O;這已經經過證明是無偏估計的,所以在隨機森林演算法中不需要再進行交叉驗證或者單獨的測試集來獲取測試集誤差的無偏估計。



60、推導樸素貝葉斯分類 P(c|d),文件 d(由若干 word 組成),求該文件屬於類別 c 的概率, 並說明公式中哪些概率可以利用訓練集計算得到


解析:

根據貝葉斯公式P(c|d)=(P(c)P(d|c)/P(d))  


這裡,分母P(d)不必計算,因為對於每個類都是相等的。 分子中,P(c)是每個類別的先驗概率,可以從訓練集直接統計,P(d|c)根據獨立性假設,可以寫成如下 P(d|c)=¥P(wi|c)(¥符號表示對d中每個詞i在c類下概率的連乘),P(wi|c)也可以從訓練集直接統計得到。 至此,對未知類別的d進行分類時,類別為c=argmaxP(c)¥P(wi|c)。



61、請寫出你對VC維的理解和認識


解析:

VC維是模型的複雜程度,模型假設空間越大,VC維越高。某種程度上說,VC維給機器學習可學性提供了理論支撐。


1.測試集合的loss是否和訓練集合的loss接近?VC維越小,理論越接近,越不容易overfitting。

2.訓練集合的loss是否足夠小?VC維越大,loss理論越小,越不容易underfitting。  


我們對模型新增的正則項可以對模型複雜度(VC維)進行控制,平衡這兩個部分。


62、kmeans聚類中,如何確定k的大小


解析:

這是一個老生常談的經典問題,面試中也經常問。


K-均值聚類演算法首先會隨機確定k箇中心位置,然後將各個資料項分配給最臨近的中心點。待分配完成之後,聚類中心就會移到分配給該聚類的所有節點的平均位置處,然後整個分配過程重新開始。這一過程會一直重複下去,直到分配過程不再產出變化為止。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(92題),或七月線上APP → 題庫 → 面試大題 → 機器學習(92題)



63、請用Python實現下線性迴歸,並思考下更高效的實現方式


解析:

在數學中,線性規劃 (Linear Programming,簡稱LP) 問題是目標函式和約束條件都是線性的最優化問題。 


線性規劃是最優化問題中的重要領域之一。很多運籌學中的實際問題都可以用線性規劃來表述。線性規劃的某些特殊情況,例如網路流、多商品流量等問題,都被認為非常重要,並有大量對其演算法的專門研究。很多其他種類的最優化問題演算法都可以分拆成線性規劃子問題,然後求得解。 


在歷史上,由線性規劃引申出的很多概念,啟發了最優化理論的核心概念,諸如“對偶”、“分解”、“凸性”的重要性及其一般化等。同樣的,在微觀經濟學和商業管理領域,線性規劃被大量應用於解決收入極大化或生產過程的成本極小化之類的問題。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(93題),或七月線上APP → 題庫 → 面試大題 → 機器學習(93題)



64、給你一個有1000列和1百萬行的訓練資料集。這個資料集是基於分類問題的。 經理要求你來降低該資料集的維度以減少模型計算時間。你的機器記憶體有限。你會怎麼做?(你可以自由做各種實際操作假設)


解析:

答:你的面試官應該非常瞭解很難在有限的記憶體上處理高維的資料。以下是你可以使用的處理方法: 


1.由於我們的RAM很小,首先要關閉機器上正在執行的其他程式,包括網頁瀏覽器,以確保大部分記憶體可以使用。

2.我們可以隨機取樣資料集。這意味著,我們可以建立一個較小的資料集,比如有1000個變數和30萬行,然後做計算。

3.為了降低維度,我們可以把數值變數和分類變數分開,同時刪掉相關聯的變數。對於數值變數,我們將使用相關性分析。對於分類變數,我們可以用卡方檢驗。

4.另外,我們還可以使用PCA(主成分分析),並挑選可以解釋在資料集中有最大偏差的成分。

5.利用線上學習演算法,如VowpalWabbit(在Python中可用)是一個可能的選擇。 

6.利用Stochastic GradientDescent(隨機梯度下降)法建立線性模型也很有幫助。

7.我們也可以用我們對業務的理解來估計各預測變數對響應變數的影響大小。但是,這是一個主觀的方法,如果沒有找出有用的預測變數可能會導致資訊的顯著丟失。 


注意:對於第4和第5點,請務必閱讀有關線上學習演算法和隨機梯度下降法的內容。這些是高階方法。



65、問2:在PCA中有必要做旋轉變換嗎? 如果有必要,為什麼?如果你沒有旋轉變換那些成分,會發生什麼情況?


解析:

答:是的,旋轉(正交)是必要的,因為它把由主成分捕獲的方差之間的差異最大化。這使得主成分更容易解釋。但是不要忘記我們做PCA的目的是選擇更少的主成分(與特徵變數個數相較而言),那些選上的主成分能夠解釋資料集中最大方差。 


通過做旋轉,各主成分的相對位置不發生變化,它只能改變點的實際座標。如果我們沒有旋轉主成分,PCA的效果會減弱,那樣我們會不得不選擇更多個主成分來解釋資料集裡的方差。


注意:對PCA(主成分分析)需要了解更多。



66、給你一個資料集,這個資料集有缺失值,且這些缺失值分佈在離中值有1個標準偏差的範圍內。百分之多少的資料不會受到影響?為什麼?


解析:

答:這個問題給了你足夠的提示來開始思考!由於資料分佈在中位數附近,讓我們先假設這是一個正態分佈。 


我們知道,在一個正態分佈中,約有68%的資料位於跟平均數(或眾數、中位數)1個標準差範圍內的,那樣剩下的約32%的資料是不受影響的。 


因此,約有32%的資料將不受到缺失值的影響。



67、給你一個癌症檢測的資料集。你已經建好了分類模型,取得了96%的精度。為什麼你還是不滿意你的模型效能?你可以做些什麼呢?


解析:

答:如果你分析過足夠多的資料集,你應該可以判斷出來癌症檢測結果是不平衡資料。在不平衡資料集中,精度不應該被用來作為衡量模型的標準,因為96%(按給定的)可能只有正確預測多數分類,但我們感興趣是那些少數分類(4%),是那些被診斷出癌症的人。  


因此,為了評價模型的效能,應該用靈敏度(真陽性率),特異性(真陰性率),F值用來確定這個分類器的“聰明”程度。如果在那4%的資料上表現不好,我們可以採取以下步驟: 


1.我們可以使用欠取樣、過取樣或SMOTE讓資料平衡。

2.我們可以通過概率驗證和利用AUC-ROC曲線找到最佳閥值來調整預測閥值。 

3.我們可以給分類分配權重,那樣較少的分類獲得較大的權重。 

4.我們還可以使用異常檢測。 


 注意:要更多地瞭解不平衡分類



68、解釋樸素貝葉斯演算法裡面的先驗概率、似然估計和邊際似然估計?


解析:

先驗概率就是因變數(二分法)在資料集中的比例。這是在你沒有任何進一步的資訊的時候,是對分類能做出的最接近的猜測。 

例如,在一個資料集中,因變數是二進位制的(1和0)。例如,1(垃圾郵件)的比例為70%和0(非垃圾郵件)的為30%。因此,我們可以估算出任何新的電子郵件有70%的概率被歸類為垃圾郵件。  


似然估計是在其他一些變數的給定的情況下,一個觀測值被分類為1的概率。例如,“FREE”這個詞在以前的垃圾郵件使用的概率就是似然估計。邊際似然估計就是,“FREE”這個詞在任何訊息中使用的概率



69、你正在一個時間序列資料集上工作。經理要求你建立一個高精度的模型。你開始用決策樹演算法,因為你知道它在所有型別資料上的表現都不錯。 後來,你嘗試了時間序列迴歸模型,並得到了比決策樹模型更高的精度。 這種情況會發生嗎?為什麼?


解析:

眾所周知,時間序列資料有線性關係。另一方面,決策樹演算法是已知的檢測非線性互動最好的演算法。 


為什麼決策樹沒能提供好的預測的原因是它不能像迴歸模型一樣做到對線性關係的那麼好的對映。 


因此,我們知道了如果我們有一個滿足線性假設的資料集,一個線性迴歸模型能提供強大的預測。


70、給你分配了一個新的專案,是關於幫助食品配送公司節省更多的錢。問題是,公司的送餐隊伍沒辦法準時送餐。結果就是他們的客戶很不高興。 最後為了使客戶高興,他們只好以免餐費了事。哪個機器學習演算法能拯救他們?


解析:

你的大腦裡可能已經開始閃現各種機器學習的演算法。但是等等!這樣的提問方式只是來測試你的機器學習基礎。這不是一個機器學習的問題,而是一個路徑優化問題。 


機器學習問題由三樣東西組成: 

1.模式已經存在。 

2.不能用數學方法解決(指數方程都不行)。

3.有相關的資料。



71、你意識到你的模型受到低偏差和高方差問題的困擾。應該使用哪種演算法來解決問題呢?為什麼?


解析:

低偏差意味著模型的預測值接近實際值。換句話說,該模型有足夠的靈活性,以模仿訓練資料的分佈。貌似很好,但是別忘了,一個靈活的模型沒有泛化能力。這意味著,當這個模型用在對一個未曾見過的資料集進行測試的時候,它會令人很失望。 


在這種情況下,我們可以使用bagging演算法(如隨機森林),以解決高方差問題。bagging演算法把資料集分成重複隨機取樣形成的子集。然後,這些樣本利用單個學習演算法生成一組模型。接著,利用投票(分類)或平均(迴歸)把模型預測結合在一起。 


另外,為了應對大方差,我們可以: 

1.使用正則化技術,懲罰更高的模型係數,從而降低了模型的複雜性。 

2.使用可變重要性圖表中的前n個特徵。可以用於當一個演算法在資料集中的所有變數裡很難尋找到有意義訊號的時候。



72、給你一個資料集。該資料集包含很多變數,你知道其中一些是高度相關的。 經理要求你用PCA。你會先去掉相關的變數嗎?為什麼?


解析:

答:你可能會說不,但是這有可能是不對的。丟棄相關變數會對PCA有實質性的影響,因為有相關變數的存在,由特定成分解釋的方差被放大。

例如:在一個資料集有3個變數,其中有2個是相關的。如果在該資料集上用PCA,第一主成分的方差會是與其不相關變數的差異的兩倍。此外,加入相關的變數使PCA錯誤地提高那些變數的重要性,這是有誤導性的。



73、花了幾個小時後,現在你急於建一個高精度的模型。結果,你建了5 個GBM (Gradient Boosted Models),想著boosting演算法會顯示魔力。 不幸的是,沒有一個模型比基準模型表現得更好。最後,你決定將這些模型結合到一起。 儘管眾所周知,結合模型通常精度高,但你就很不幸運。你到底錯在哪裡?


解析:

答:據我們所知,組合的學習模型是基於合併弱的學習模型來創造一個強大的學習模型的想法。但是,只有當各模型之間沒有相關性的時候組合起來後才比較強大。由於我們已經試了5個 GBM,但沒有提高精度,表明這些模型是相關的。 


具有相關性的模型的問題是,所有的模型提供相同的資訊。例如:如果模型1把User1122歸類為 1,模型2和模型3很有可能會做有同樣分類,即使它的實際值應該是0,因此,只有弱相關的模型結合起來才會表現更好。



74、KNN和KMEANS聚類(kmeans clustering)有什麼不同?


解析:

答:不要被它們的名字裡的“K”誤導。 


你應該知道,這兩種演算法之間的根本區別是,KMEANS本質上是無監督學習而KNN是監督學習。KMEANS是聚類演算法。KNN是分類(或迴歸)演算法。 


KMEAN演算法把一個資料集分割成簇,使得形成的簇是同構的,每個簇裡的點相互靠近。該演算法試圖維持這些簇之間有足夠的可分離性。由於無監督的性質,這些簇沒有任何標籤。NN演算法嘗試基於其k(可以是任何數目)個周圍鄰居來對未標記的觀察進行分類。它也被稱為懶惰學習法,因為它涉及最小的模型訓練。因此,它不用訓練資料對未看見的資料集進行泛化。



75、真陽性率和召回有什麼關係?寫出方程式。


解析:

答:真陽性率=召回。是的,它們有相同的公式(TP / TP + FN)。 注意:要了解更多關於估值矩陣的知識。



76、你建了一個多元迴歸模型。你的模型R2為並不如你設想的好。為了改進,你去掉截距項,模型R的平方從0.3變為0.8。 這是否可能?怎樣才能達到這個結果?


解析:

答:是的,這有可能。我們需要了解截距項在迴歸模型裡的意義。截距項顯示模型預測沒有任何自變數,比如平均預測。公式R² = 1 – ∑(y – y´)²/∑(y – ymean)²中的y´是預測值。 


當有截距項時,R²值評估的是你的模型基於均值模型的表現。在沒有截距項(ymean)時,當分母很大時,該模型就沒有這樣的估值效果了,∑(y – y´)²/∑(y – ymean)²式的值會變得比實際的小,而R2會比實際值大。



77、在分析了你的模型後,經理告訴你,你的模型有多重共線性。 你會如何驗證他說的是真的?在不丟失任何資訊的情況下,你還能建立一個更好的模型嗎?


解析:

答:要檢查多重共線性,我們可以建立一個相關矩陣,用以識別和除去那些具有75%以上相關性(決定閾值是主觀的)的變數。此外,我們可以計算VIF(方差膨脹因子)來檢查多重共線性的存在。 


VIF值<= 4表明沒有多重共線性,而值> = 10意味著嚴重的多重共線性。 


此外,我們還可以用容差作為多重共線性的指標。但是,刪除相關的變數可能會導致資訊的丟失。為了留住這些變數,我們可以使用懲罰迴歸模型,如Ridge和Lasso迴歸。  


我們還可以在相關變數裡新增一些隨機噪聲,使得變數變得彼此不同。但是,增加噪音可能會影響預測的準確度,因此應謹慎使用這種方法。



78、什麼時候Ridge迴歸優於Lasso迴歸?


解析:

答:你可以引用ISLR的作者Hastie和Tibshirani的話,他們斷言在對少量變數有中等或大尺度的影響的時候用lasso迴歸。在對多個變數只有小或中等尺度影響的時候,使用Ridge迴歸。  


從概念上講,我們可以說,Lasso迴歸(L1)同時做變數選擇和引數收縮,而ridge迴歸只做引數收縮,並最終在模型中包含所有的係數。在有相關變數時,ridge迴歸可能是首選。此外,ridge迴歸在用最小二乘估計有更高的偏差的情況下效果最好。因此,選擇合適的模型取決於我們的模型的目標。



79、全球平均溫度的上升導致世界各地的海盜數量減少。這是否意味著海盜的數量減少引起氣候變化?


解析:

答:看完這個問題後,你應該知道這是一個“因果關係和相關性”的經典案例。我們不能斷定海盜的數量減少是引起氣候變化的原因,因為可能有其他因素(潛伏或混雜因素)影響了這一現象。全球平均溫度和海盜數量之間有可能有相關性,但基於這些資訊,我們不能說因為全球平均氣溫的上升而導致了海盜的消失。 


 注意:多瞭解關於因果關係和相關性的知識。



80、如何在一個資料集上選擇重要的變數?給出解釋。


解析:

答:以下是你可以使用的選擇變數的方法: 

1.選擇重要的變數之前除去相關變數 

2.用線性迴歸然後基於P值選擇變數 

3.使用前向選擇,後向選擇,逐步選擇 

4.使用隨機森林和Xgboost,然後畫出變數重要性圖 

5.使用lasso迴歸 

6.測量可用的特徵集的的資訊增益,並相應地選擇前n個特徵量。



81、是否有可能捕獲連續變數和分類變數之間的相關性?如果可以的話,怎樣做?


解析:

是的,我們可以用ANCOVA(協方差分析)技術來捕獲連續型變數和分類變數之間的相關性。



82、Gradient boosting演算法(GBM)和隨機森林都是基於樹的演算法,它們有什麼區別?


解析:

答:最根本的區別是,隨機森林演算法使用bagging技術做出預測。 GBM採用boosting技術做預測。在bagging技術中,資料集用隨機取樣的方法被劃分成使n個樣本。然後,使用單一的學習演算法,在所有樣本上建模。接著利用投票或者求平均來組合所得到的預測。 


Bagging是平行進行的。而boosting是在第一輪的預測之後,演算法將分類出錯的預測加高權重,使得它們可以在後續一輪中得到校正。這種給予分類出錯的預測高權重的順序過程持續進行,一直到達到停止標準為止。隨機森林通過減少方差(主要方式)提高模型的精度。生成樹之間是不相關的,以把方差的減少最大化。在另一方面,GBM提高了精度,同時減少了模型的偏差和方差。 


 注意:多瞭解關於基於樹的建模知識。



83、執行二元分類樹演算法很容易,但是你知道一個樹是如何做分割的嗎,即樹如何決定把哪些變數分到哪個根節點和後續節點上?


解析:

答:分類樹利用基尼係數與節點熵來做決定。簡而言之,樹演算法找到最好的可能特徵,它可以將資料集分成最純的可能子節點。樹演算法找到可以把資料集分成最純淨的可能的子節點的特徵量。基尼係數是,如果總體是完全純的,那麼我們從總體中隨機選擇2個樣本,而這2個樣本肯定是同一類的而且它們是同類的概率也是1。我們可以用以下方法計算基尼係數:


1.利用成功和失敗的概率的平方和(p^2+q^2)計運算元節點的基尼係數 

2.利用該分割的節點的加權基尼分數計算基尼係數以分割  


熵是衡量資訊不純的一個標準(二分類):

640?wx_fmt=gif640?wx_fmt=png

這裡的p和q是分別在該節點成功和失敗的概率。當一個節點是均勻時熵為零。當2個類同時以50%對50%的概率出現在同一個節點上的時候,它是最大值。熵越低越好。



84、你已經建了一個有10000棵樹的隨機森林模型。在得到0.00的訓練誤差後,你非常高興。但是,驗證錯誤是34.23。到底是怎麼回事?你還沒有訓練好你的模型嗎?


解析:

答:該模型過度擬合。訓練誤差為0.00意味著分類器已在一定程度上模擬了訓練資料,這樣的分類器是不能用在未看見的資料上的。 


因此,當該分類器用於未看見的樣本上時,由於找不到已有的模式,就會返回的預測有很高的錯誤率。在隨機森林演算法中,用了多於需求個數的樹時,這種情況會發生。因此,為了避免這些情況,我們要用交叉驗證來調整樹的數量。



85、你有一個資料集,變數個數p大於觀察值個數n。為什麼用OLS是一個不好的選擇?用什麼技術最好?為什麼?


解析:

答:在這樣的高維資料集中,我們不能用傳統的迴歸技術,因為它們的假設往往不成立。當p>nN,我們不能計算唯一的最小二乘法系數估計,方差變成無窮大,因此OLS無法在此使用的。  


為了應對這種情況,我們可以使用懲罰迴歸方法,如lasso、LARS、ridge,這些可以縮小系數以減少方差。準確地說,當最小二乘估計具有較高方差的時候,ridge迴歸最有效。 


 其他方法還包括子集迴歸、前向逐步迴歸。

640?wx_fmt=gif640?wx_fmt=png


86、什麼是凸包?(提示:想一想SVM) 其他方法還包括子集迴歸、前向逐步迴歸。


解析:

答:當資料是線性可分的,凸包就表示兩個組資料點的外邊界。 


一旦凸包建立,我們得到的最大間隔超平面(MMH)作為兩個凸包之間的垂直平分線。 MMH是能夠最大限度地分開兩個組的線。



87、我們知道,一位有效編碼會增加資料集的維度。但是,標籤編碼不會。為什麼?


解析:

答:對於這個問題不要太糾結。這只是在問這兩者之間的區別。 


用一位有效編碼編碼,資料集的維度(也即特徵)增加是因為它為分類變數中存在的的每一級都建立了一個變數。例如:假設我們有一個變數“顏色”。這變數有3個層級,即紅色、藍色和綠色。 


對“顏色”變數進行一位有效編碼會生成含0和1值的Color.Red,Color.Blue和Color.Green 三個新變數。在標籤編碼中,分類變數的層級編碼為0和1,因此不生成新變數。標籤編碼主要是用於二進位制變數。



88、你會在時間序列資料集上使用什麼交叉驗證技術?是用k倍或LOOCV?


解析:

答:都不是。對於時間序列問題,k倍可能會很麻煩,因為第4年或第5年的一些模式有可能跟第3年的不同,而對資料集的重複取樣會將分離這些趨勢,我們可能最終是對過去幾年的驗證,這就不對了。 


相反,我們可以採用如下所示的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代表的是年份。



89、給你一個缺失值多於30%的資料集?比方說,在50個變數中,有8個變數的缺失值都多於30%。你對此如何處理?


解析:

答:我們可以用下面的方法來處理: 


1.把缺失值分成單獨的一類,這些缺失值說不定會包含一些趨勢資訊。 

2.我們可以毫無顧忌地刪除它們。 

3.或者,我們可以用目標變數來檢查它們的分佈,如果發現任何模式,我們將保留那些缺失值並給它們一個新的分類,同時刪除其他缺失值。



90、買了這個的客戶,也買了......”亞馬遜的建議是哪種演算法的結果?


解析:

答:這種推薦引擎的基本想法來自於協同過濾。 


協同過濾演算法考慮用於推薦專案的“使用者行為”。它們利用的是其他使用者的購買行為和針對商品的交易歷史記錄、評分、選擇和購買資訊。針對商品的其他使用者的行為和偏好用來推薦專案(商品)給新使用者。在這種情況下,專案(商品)的特徵是未知的。 


 注意:瞭解更多關於推薦系統的知識。



91、你怎麼理解第一類和第二類錯誤?


解析:

答:第一類錯誤是當原假設為真時,我們卻拒絕了它,也被稱為“假陽性”。第二類錯誤是當原假設為是假時,我們接受了它,也被稱為“假陰性”。 


在混淆矩陣裡,我們可以說,當我們把一個值歸為陽性(1)但其實它是陰性(0)時,發生第一類錯誤。而當我們把一個值歸為陰性(0)但其實它是陽性(1)時,發生了第二類錯誤。



92、當你在解決一個分類問題時,出於驗證的目的,你已經將訓練集隨機抽樣地分成訓練集和驗證集。你對你的模型能在未看見的資料上有好的表現非常有信心,因為你的驗證精度高。但是,在得到很差的精度後,你大失所望。什麼地方出了錯?


解析:

答:在做分類問題時,我們應該使用分層抽樣而不是隨機抽樣。隨機抽樣不考慮目標類別的比例。相反,分層抽樣有助於保持目標變數在所得分佈樣本中的分佈。



93、請簡單闡述下決策樹、迴歸、SVM、神經網路等演算法各自的優缺點?


正則化演算法(Regularization Algorithms) 

整合演算法(Ensemble Algorithms)


策樹演算法(Decision Tree Algorithm) 

迴歸(Regression) 

人工神經網路(Artificial Neural Network) 

深度學習(Deep Learning) 

支援向量機(Support Vector Machine) 

降維演算法(Dimensionality Reduction Algorithms) 


聚類演算法(Clustering Algorithms) 

基於例項的演算法(Instance-based Algorithms) 

貝葉斯演算法(Bayesian Algorithms) 

關聯規則學習演算法(Association Rule Learning Algorithms) 

圖模型(Graphical Models)


解析:

一、正則化演算法(Regularization Algorithms)

640?wx_fmt=gif640?wx_fmt=png

它是另一種方法(通常是迴歸方法)的擴充,這種方法會基於模型複雜性對其進行懲罰,它喜歡相對簡單能夠更好的泛化的模型。 

例子: 嶺迴歸(Ridge Regression) 最小絕對收縮與選擇運算元(LASSO) GLASSO 彈性網路(Elastic Net)

最小角迴歸(Least-Angle Regression)

  

優點: 其懲罰會減少過擬合 總會有解決方法 

缺點: 懲罰會造成欠擬合 很難校準


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(124題),或七月線上APP → 題庫 → 面試大題 → 機器學習(124題)



94、在應用機器學習演算法之前糾正和清理資料的步驟是什麼?


解析:

1.將資料匯入  


2.看資料:重點看後設資料,即對欄位解釋、資料來源等資訊;匯入資料後,提取部分資料進行檢視 


3.缺失值清洗 

- 根據需要對缺失值進行處理,可以刪除資料或填充資料 

- 重新取數:如果某些非常重要的欄位缺失,需要和負責採集資料的人溝通,是否可以再獲得 


4.資料格式清洗:統一資料的時間、日期、全半形等顯示格式  


5.邏輯錯誤的資料 

- 重複的資料 

- 不合理的值 


6.不一致錯誤的處理:指對矛盾內容的修正,最常見的如身份證號和出生年月日不對應 不同業務中資料清洗的任務略有不同,比如資料有不同來源的話,資料格式清洗和不一致錯誤的處理就尤為突出。資料預處理是資料類崗位工作內容中重要的部分。



95、什麼是K-means聚類演算法?


解析:

本題解析作者:JerryLead 

來源:https://www.cnblogs.com/jerrylead/    


K-means也是聚類演算法中最簡單的一種了,但是裡面包含的思想卻是不一般。最早我使用並實現這個演算法是在學習韓爺爺那本資料探勘的書中,那本書比較注重應用。看了Andrew Ng的這個講義後才有些明白K-means後面包含的EM思想。     


聚類屬於無監督學習,以往的迴歸、樸素貝葉斯、SVM等都是有類別標籤y的,也就是說樣例中已經給出了樣例的分類。而聚類的樣本中卻沒有給定y,只有特徵x,比如假設宇宙中的星星可以表示成三維空間中的點集。聚類的目的是找到每個樣本x潛在的類別y,並將同類別y的樣本x放在一起。比如上面的星星,聚類後結果是一個個星團,星團裡面的點相互距離比較近,星團間的星星距離就比較遠了。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(126題),或七月線上APP → 題庫 → 面試大題 → 機器學習(126題)



96、請詳細說說文字特徵提取


解析:

很多機器學習問題涉及自然語言處理(NLP),必然要處理文字資訊。文字必須轉換成可以量化的特徵向量。下面我們就來介紹最常用的文字表示方法:詞庫模型(Bag-of-words model)。 


詞庫表示法 

詞庫模型是文字模型化的最常用方法。對於一個文件(document),忽略其詞序和語法,句法,將其僅僅看做是一個詞集合,或者說是詞的一個組合,文件中每個詞的出現都是獨立的,不依賴於其他詞是否出現,或者說當這篇文章的作者在任意一個位置選擇一個詞彙都不受前面句子的影響而獨立選擇的。詞庫模型可以看成是獨熱編碼的一種擴充套件,它為每個單詞設值一個特徵值。詞庫模型依據是用類似單詞的文章意思也差不多。詞庫模型可以通過有限的編碼資訊實現有效的文件分類和檢索。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(128題),或七月線上APP → 題庫 → 面試大題 → 機器學習(128題)




97、請詳細說說影象特徵提取


解析:

計算機視覺是一門研究如何使機器“看”的科學,讓計算機學會處理和理解影象。這門學問有時需要藉助機器學習。 


本節介紹一些機器學習在計算機視覺領域應用的基礎技術。通過畫素值提取特徵數字影象通常是一張光柵圖或畫素圖,將顏色對映到網格座標裡。一張圖片可以看成是一個每個元素都是顏色值的矩陣。表示影象基本特徵就是將矩陣每行連起來變成一個行向量。 


光學文字識別(Optical character recognition,OCR)是機器學習的經典問題。下面我們用這個技術來識別手寫數字。 


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(129題),或七月線上APP → 題庫 → 面試大題 → 機器學習(129題)



98、瞭解xgboost麼,請詳細說說它的原理


解析:

前言 xgboost一直在競賽江湖裡被傳為神器,比如時不時某個kaggle/天池比賽中,某人用xgboost於千軍萬馬中斬獲冠軍。  


而我們的機器學習課程裡也必講xgboost,如寒所說:“RF和GBDT是工業界大愛的模型,Xgboost 是大殺器包裹,Kaggle各種Top排行榜曾一度呈現Xgboost一統江湖的局面,另外某次滴滴比賽第一名的改進也少不了Xgboost的功勞”。  


此外,公司七月線上從2016年上半年起,就開始組織學員參加各種比賽,以在實際競賽專案中成長(畢竟,搞AI不可能沒實戰,而參加比賽歷經資料處理、特徵選擇、模型調優、程式碼調參,是一個極好的真刀真槍的實戰機會,對能力的提升和找/換工作的幫助都非常大)。 


AI大潮之下,今年特別多從傳統IT轉行轉崗轉型AI的朋友,很多朋友都諮詢如何轉行AI,我一般都會著重強調學習AI或找/換AI的四大金剛:課程 + 題庫 + OJ + kaggle/天池。包括集訓營的畢業考核更會融合kaggle或天池比賽。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(130題),或七月線上APP → 題庫 → 面試大題 → 機器學習(130題)



99、請詳細說說梯度提升樹(GBDT)的原理


解析:

本文是小編我能找到的對GBDT最通俗的介紹了。 


GBDT主要由三個概念組成:Regression Decistion Tree(即DT),Gradient Boosting(即GB),Shrinkage (演算法的一個重要演進分枝,目前大部分原始碼都按該版本實現)。搞定這三個概念後就能明白GBDT是如何工作的,要繼續理解它如何用於搜尋排序則需要額外理解RankNet概念,之後便功德圓滿。下文將逐個碎片介紹,最終把整張圖拼出來。 


一、 DT:迴歸樹 Regression Decision Tree 提起決策樹(DT, Decision Tree) 絕大部分人首先想到的就是C4.5分類決策樹。但如果一開始就把GBDT中的樹想成分類樹,那就是一條歪路走到黑,一路各種坑,最終摔得都要咯血了還是一頭霧水。但,這說的就是LZ自己啊有木有。咳嗯,所以說千萬不要以為GBDT是很多棵分類樹。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(131題),或七月線上APP → 題庫 → 面試大題 → 機器學習(131題)


100、請說說Adaboost 演算法的原理與推導

解析:

本題解析來源於July在CSDN上的Adaboost筆記《Adaboost 演算法的原理與推導》:https://blog.csdn.net/v_july_v/article/details/40718799 

 

0 引言    

一直想寫Adaboost來著,但遲遲未能動筆。其演算法思想雖然簡單:聽取多人意見,最後綜合決策,但一般書上對其演算法的流程描述實在是過於晦澀。昨日11月1日下午,在我組織的機器學習班 第8次課上講決策樹與Adaboost,其中,Adaboost講得酣暢淋漓,講完後,我知道,可以寫本篇部落格了。    


無心囉嗦,本文結合機器學習班決策樹與Adaboost 的PPT,跟鄒講Adaboost指數損失函式推導的PPT(第85~第98頁)、以及李航的《統計學習方法》等參考資料寫就,可以定義為一篇課程筆記、讀書筆記或學習心得,有何問題或意見,歡迎於本文評論下隨時不吝指出,thanks。


本題完整解析:七月線上官網 → 面試題庫 → 面試大題 → 機器學習(132題),或七月線上APP → 題庫 → 面試大題 → 機器學習(132題)


題目來源:七月線上官網(www.julyedu.com)——面試題庫——面試大題——機器學習,或是下載七月線上APP線上刷題。


以上就是整理的100道機器學習面試題,如果還不夠,上七月線上APP,將近4000道題的等你來刷 


最後,祝願大家都能找到心儀的工作,拿到高薪offer ~



640?wx_fmt=png



640?wx_fmt=gif


今日學習推薦


機器學習集訓營第八期

火熱報名中


2019年4月15日開課


前50人特惠價:14399 


報名加送18VIP[包2018全年線上課程和全年GPU]


且兩人及兩人以上組團還能各減500元

有意的親們抓緊時間嘍


諮詢/報名/組團可新增微信客服

julyedukefu_02


掃描下方二維碼

免費試聽

640?wx_fmt=png

長按識別二維碼


640?wx_fmt=gif


640?wx_fmt=gif

勵志!充滿乾貨的AI面經:純電力員工如何成功轉行NLP並薪資翻倍

備戰AI求職季 | 100道機器學習面試題(上)

一文詳解:什麼是B樹?

機器學習中的數學基礎(微積分和概率統計)

一文詳解機器學習中最好用的提升方法:Boosting 與 AdaBoost

34個最優秀好用的Python開源框架

【實戰分享】電影推薦系統專案實戰應用

萬字長文概述NLP中的深度學習技術


諮詢,檢視課程,請點選“閱讀原文

「 在看的,麻煩點一下再走~ 」


相關文章