到這我們已經分享第三期Python機器學習方向的面試題了,是不是感覺前兩期的面試題非常有用呢?最后一期20道題送給大家。
1.人工智能與機器學習的區別?
基于經驗數據的特性而設計和開發的算法被稱為機器學習。而人工智能不但包括機器學習,還包括諸如知識表示,自然語言處理,規劃,機器人技術等其它方法。
2.在機器學習中分類器指的是什么?
在機器學習中,分類器是指輸入離散或連續特征值的向量,并輸出單個離散值或者類型的系統。
3.樸素貝葉斯方法的優勢是什么?
樸素貝葉斯分類器將會比判別模型,譬如邏輯回歸收斂得更快,因此你只需要更少的訓練數據。其主要缺點是它學習不了特征間的交互關系。
4.在哪些領域使用模式識別技術?
模式識別被應用在:計算機視覺、語言識別、統計、數據挖掘、非正式檢索、生物信息學。
5.什么是遺傳編程?
遺傳編程的機器學習中兩種常用的方法之一。該模型是基于測試,并在一系列的結果當中,獲取最佳選擇。
6.在機器學習中歸納邏輯程序設計是指什么?
歸納邏輯程序設計(ILP)是利用邏輯程序設計表達的背景知識和實例,它是機器學習的一個分支。
7.在機器學習中,模型的選擇是指?
在不同的數學模型中,選擇用于描述相同的數據集的模型的過程被稱為模型選擇。模型選擇吧被應用于統計,機器學習和數據挖掘的等相關領域。
8.什么是支持向量機?
支持向量機是一種監督學習算法,適用于分類和回歸分析。
9.關系評價技術的組成部分是什么?
關系評價技術的重要組成部分如下:數據采集、地面實況采集、交叉驗證技術、查詢類型、評分標準、顯著性檢驗。
10.你會在時間序列數據集上使用什么交叉驗證技術?是用k倍或LOOCV?
都不是。對于時間序列問題,k倍可能會很麻煩,因為第4年或第5年的一些模式有可能跟第3年的不同,而對數據集的重復采樣會將分離這些趨勢,而我們最終可能只是需要對過去幾年的進行驗證,這就不能用這種方法了。相反,我們可以采用如下所示的5倍正向鏈接策略:
11.給你一個有1000列和1百萬行的訓練數據集,這個數據集是基于分類問題的。經理要求你來降低該數據集的維度以減少模型計算時間,但你的機器內存有限。你會怎么做?(你可以自由做各種實際操作假設。)
你的面試官應該非常了解很難在有限的內存上處理高維的數據。以下是你可以使用的處理方法:
1.由于我們的RAM很小,首先要關閉機器上正在運行的其他程序,包括網頁瀏覽器等,以確保大部分內存可以使用。
2.我們可以隨機采樣數據集。這意味著,我們可以創建一個較小的數據集,比如有1000個變量和30萬行,然后做計算。
3.為了降低維度,我們可以把數值變量和分類變量分開,同時刪掉相關聯的變量。對于數值變量,我們將使用相關性分析;對于分類變量,我們可以用卡方檢驗。
4.另外,我們還可以使用PCA(主成分分析),并挑選可以解釋在數據集中有最大偏差的成分。
5.利用在線學習算法,如VowpalWabbit(在Python中可用)是一個不錯的選擇。
6.利用Stochastic GradientDescent(隨機梯度下降法)建立線性模型也很有幫助。
7.我們也可以用我們對業務的理解來估計各預測變量對響應變量的影響的大小。但是,這是一個主觀的方法,如果沒有找出有用的預測變量可能會導致信息的顯著丟失。
12.全球平均溫度的上升導致世界各地的海盜數量減少。這是否意味著海盜的數量減少引起氣候變化?
不能夠這樣說。這是一個“因果關系和相關性”的經典案例。全球平均溫度和海盜數量之間有可能有相關性,但基于這些信息,我們不能說因為全球平均氣溫的上升而導致了海盜的消失。我們不能斷定海盜的數量減少是引起氣候變化的原因,因為可能有其他因素(潛伏或混雜因素)影響了這一現象。
13.給你一個數據集,這個數據集有缺失值,且這些缺失值分布在離中值有1個標準偏差的范圍內。百分之多少的數據不會受到影響?為什么?
約有32%的數據將不受缺失值的影響。因為,由于數據分布在中位數附近,讓我們先假設這是一個正態分布。我們知道,在一個正態分布中,約有68%的數據位于跟平均數(或眾數、中位數)1個標準差范圍內,那么剩下的約32%的數據是不受影響的。因此,約有32%的數據將不受缺失值的影響。
14.你意識到你的模型受到低偏差和高方差問題的困擾。那么,應該使用哪種算法來解決問題呢?為什么?
可以使用bagging算法(如隨機森林)。因為,低偏差意味著模型的預測值接近實際值,換句話說,該模型有足夠的靈活性,以模仿訓練數據的分布。這樣貌似很好,但是別忘了,一個靈活的模型沒有泛化能力,意味著當這個模型用在對一個未曾見過的數據集進行測試的時候,它會令人很失望。在這種情況下,我們可以使用bagging算法(如隨機森林),以解決高方差問題。bagging算法把數據集分成重復隨機取樣形成的子集。然后,這些樣本利用單個學習算法生成一組模型。接著,利用投票(分類)或平均(回歸)把模型預測結合在一起。另外,為了應對大方差,我們可以:
1.使用正則化技術,懲罰更高的模型系數,從而降低了模型的復雜性。
2.使用可變重要性圖表中的前n個特征。可以用于當一個算法在數據集中的所有變量里很難尋找到有意義信號的時候。
15.Gradient boosting算法(GBM)和隨機森林都是基于樹的算法,它們有什么區別?
最根本的區別是,隨機森林算法使用bagging技術做出預測;而GBM是采用boosting技術做預測的。在bagging技術中,數據集用隨機采樣的方法被劃分成n個樣本。然后,使用單一的學習算法,在所有樣本上建模。接著利用投票或者求平均來組合所得到的預測。bagging是平行進行的,而boosting是在第一輪的預測之后,算法將分類出錯的預測加高權重,使得它們可以在后續一輪中得到校正。這種給予分類出錯的預測高權重的順序過程持續進行,一直到達到停止標準為止。隨機森林通過減少方差(主要方式)提高模型的精度。生成樹之間是不相關的,以把方差的減少最大化。在另一方面,GBM提高了精度,同時減少了模型的偏差和方差。
16.“買了這個的客戶,也買了......”亞馬遜的建議是哪種算法的結果?
這種推薦引擎的基本想法來自于協同過濾。協同過濾算法考慮用于推薦項目的“用戶行為”。它們利用的是其他用戶的購買行為和針對商品的交易歷史記錄、評分、選擇和購買信息。針對商品的其他用戶的行為和偏好用來推薦項目(商品)給新用戶。在這種情況下,項目(商品)的特征是未知的。
17.在k-means或kNN,我們是用歐氏距離來計算最近的鄰居之間的距離。為什么不用曼哈頓距離?
我們不用曼哈頓距離,因為它只計算水平或垂直距離,有維度的限制。另一方面,歐氏距離可用于任何空間的距離計算問題。因為,數據點可以存在于任何空間,歐氏距離是更可行的選擇。例如:想象一下國際象棋棋盤,象或車所做的移動是由曼哈頓距離計算的,因為它們是在各自的水平和垂直方向做的運動。
18.我知道校正R2或者F值是用來評估線性回歸模型的。那用什么來評估邏輯回歸模型?
我們可以使用下面的方法:
1.由于邏輯回歸是用來預測概率的,我們可以用AUC-ROC曲線以及混淆矩陣來確定其性能。
2.此外,在邏輯回歸中類似于校正R2的指標是AIC。AIC是對模型系數數量懲罰模型的擬合度量。因此,我們更偏愛有最小AIC的模型。
3.空偏差指的是只有截距項的模型預測的響應。數值越低,模型越好。殘余偏差表示由添加自變量的模型預測的響應。數值越低,模型越好。
19.為什么樸素貝葉斯如此“樸素”?
因為它假定所有的特征在數據集中的作用是同樣重要和獨立的。正如我們所知,這個假設在現實世界中是很不真實的,因此,說樸素貝葉斯真的很“樸素”。
20.花了幾個小時后,現在你急于建一個高精度的模型。結果,你建了5 個GBM(Gradient Boosted Models),想著boosting算法會展現“魔力”。不幸的是,沒有一個模型比基準模型表現得更好。最后,你決定將這些模型結合到一起。盡管眾所周知,結合模型通常精度高,但你就很不幸運。你到底錯在哪里?
據我們所知,組合的學習模型是基于合并弱的學習模型來創造一個強大的學習模型的想法。但是,只有當各模型之間沒有相關性的時候組合起來后才比較強大。由于我們已經試了5個GBM也沒有提高精度,表明這些模型是相關的。具有相關性的模型的問題是,所有的模型提供相同的信息。例如:如果模型1把User1122歸類為1,模型2和模型3很有可能會做同樣的分類。
以上就是這一期的20道機器學習面試題了,同學們如果對Python開發培訓感興趣的話不妨來跟我們的在線老師了解一下,還能免費領取學習資料,還等什么?