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