服務(wù)熱線
0530-5837666
明天要找助理教授面試了,緊張的一批~為避免自己墮入時(shí)間黑洞,記錄下自己的學(xué)習(xí)軌跡嗚嗚嗚┭┮﹏┭┮
參考資料:https://www.dataapplab.com/machine-learning-interview-questions/https://blog.csdn.net/v_july_v/article/details/78121924
1: 什么是偏差(bias)、方差(variable)之間的均衡?
Bias反映的是模型在樣本上的輸出與真實(shí)值之間的誤差,即算法本身的擬合能力。Bias 可能會(huì)導(dǎo)致模型欠擬合,使其難以具有較高的預(yù)測(cè)準(zhǔn)確性。
Bias-Variance 的分解,本質(zhì)上是通過(guò)在基礎(chǔ)數(shù)據(jù)集中添加偏差、方差和一點(diǎn)由噪聲引起的不可約誤差,來(lái)分解算法上的學(xué)習(xí)誤差。從本質(zhì)上講,如果你使模型更復(fù)雜并添加更多變量,你將會(huì)失去一些 Bias 但獲得一些 Variance,這就是我們所說(shuō)的權(quán)衡(tradeoff)。
2:監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)有什么不同?
監(jiān)督學(xué)習(xí)需要train有l(wèi)abel的數(shù)據(jù),無(wú)監(jiān)督學(xué)習(xí)不需要明確標(biāo)記數(shù)據(jù)。
3: KNN和 k-means 聚類由什么不同?
KNN需要標(biāo)記點(diǎn),因此是有監(jiān)督的學(xué)習(xí),而k-means不是,因此是無(wú)監(jiān)督學(xué)習(xí)。 K均值聚類僅需要一組未標(biāo)記的點(diǎn)和閾值:算法將采用未標(biāo)記的點(diǎn)并逐漸學(xué)習(xí)如何通過(guò)計(jì)算不同點(diǎn)之間的距離的平均值將它們聚類成組。
(插播:
4:解釋一下ROC曲線的原理
ROC曲線是真陽(yáng)率與各種閾值下的假陽(yáng)率之間的對(duì)比度的圖形表示。 它通常用作代表模型靈敏度(真陽(yáng)性)與跌落之間的平衡或它將觸發(fā)誤報(bào)(假陽(yáng)性)的概率。
5:機(jī)器學(xué)習(xí)項(xiàng)目實(shí)戰(zhàn)流程
參考資料:
6:什么是貝葉斯定理?它在機(jī)器學(xué)習(xí)環(huán)境中如何有用?
貝葉斯定理的歷時(shí)詮釋: 根據(jù)一種數(shù)據(jù)D(Data)的內(nèi)容變化更新概率H(Hypothsis)的方法
我們需要做兩件事情:1. 算出各種不同猜測(cè)的可能性大小。2. 算出最靠譜的猜測(cè)是什么。第一個(gè)就是計(jì)算特定猜測(cè)的后驗(yàn)概率,對(duì)于連續(xù)的猜測(cè)空間則是計(jì)算猜測(cè)的概率密度函數(shù)。第二個(gè)則是所謂的模型比較,模型比較如果不考慮先驗(yàn)概率的話就是最大似然方法。
樸素貝葉斯是一種機(jī)器學(xué)習(xí)的思想,而不是一個(gè)簡(jiǎn)單的直接套用的公式。而且在用樸素貝葉斯方式進(jìn)行分類機(jī)器學(xué)習(xí)時(shí)還經(jīng)常需要使用其他一些輔助的建模手段。樸素貝葉斯在生產(chǎn)生活中作為機(jī)器學(xué)習(xí)手段的場(chǎng)景確實(shí)非常多,是一種使用很廣泛的方式。
7:為什么我們要稱樸素貝葉斯?
盡管 Naive Bayes 具有實(shí)際應(yīng)用,特別是在文本挖掘中,但它被認(rèn)為是天真的,因?yàn)樗僭O(shè)特征的絕對(duì)獨(dú)立性 – 這種情況在現(xiàn)實(shí)生活中可能永遠(yuǎn)不會(huì)遇到。
8:L1、L2正則之間有什么不同?
L2正則保留顯著減小損失函數(shù)方向上的權(quán)重,而對(duì)于那些對(duì)函數(shù)值影響不大的權(quán)重使其衰減接近于0。相當(dāng)于加入一個(gè)gaussian prior。
L1正則會(huì)產(chǎn)生更稀疏的解,即會(huì)使得部分權(quán)重變?yōu)?,達(dá)到特征選擇的效果。相當(dāng)于加入了一個(gè)laplacean prior。
L2 Norm對(duì)大數(shù)的懲罰比小數(shù)大。實(shí)際應(yīng)用過(guò)程中,L1 nrom幾乎沒(méi)有比L2 norm表現(xiàn)好的時(shí)候,優(yōu)先使用L2 norm是比較好的選擇。
9:你最喜歡的算法是什么?把它解釋一下。
10:第一類誤差和第二類誤差有什么區(qū)別?
第一類誤差指的是假正率,第二類指的是假負(fù)率。舉個(gè)例子:第一類誤差,你誤判一個(gè)男的他懷孕了。第二類誤差,你誤判了一位其實(shí)已經(jīng)懷孕的女子沒(méi)懷孕。
11:什么是傅立葉變換?
傅立葉變換是將一般函數(shù)分解成對(duì)稱函數(shù)疊加的一般方法。傅立葉變換找到一組循環(huán)速度、振幅和相位,以匹配任何時(shí)間信號(hào)。傅立葉變換將信號(hào)從時(shí)間域轉(zhuǎn)換為頻率域-這是從音頻信號(hào)或其他時(shí)間序列(如傳感器數(shù)據(jù))中提取特征的一種非常常見(jiàn)的方法。
12:概率和似然有什么區(qū)別?
概率描述了已知參數(shù)時(shí)的隨機(jī)變量的輸出結(jié)果;似然則用來(lái)描述已知隨機(jī)變量輸出結(jié)果時(shí),未知參數(shù)的可能取值。例如,對(duì)于一枚正反對(duì)稱的硬幣上拋十次這種事件,我們可以問(wèn)硬幣落地時(shí)十次都是正面向上的概率是多少;而對(duì)于一枚硬幣上拋十次,我們則可以問(wèn),這枚硬幣正反面對(duì)稱的似然程度是多少。
概率(密度)表達(dá)給定θ下樣本隨機(jī)向量X=x的可能性,而似然表達(dá)了給定樣本X=x下參數(shù)θ1(相對(duì)于另外的參數(shù)θ2)為真實(shí)值的可能性。我們總是對(duì)隨機(jī)變量的取值談概率,而在非貝葉斯統(tǒng)計(jì)的角度下,參數(shù)是一個(gè)實(shí)數(shù)而非隨機(jī)變量,所以我們一般不談一個(gè)參數(shù)的概率,而說(shuō)似然。
13:什么是深度學(xué)習(xí),它與機(jī)器學(xué)習(xí)算法之間有什么聯(lián)系?
深度學(xué)習(xí)是與神經(jīng)網(wǎng)絡(luò)有關(guān)的機(jī)器學(xué)習(xí)的一個(gè)子集:如何使用反向傳播和神經(jīng)科學(xué)中的某些原理來(lái)更精確地建模大量未標(biāo)記或半結(jié)構(gòu)化數(shù)據(jù)。從這個(gè)意義上說(shuō),深度學(xué)習(xí)是一種無(wú)監(jiān)督的學(xué)習(xí)算法,它通過(guò)使用神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)數(shù)據(jù)的表示。
14:生成模型與判別模型有什么區(qū)別?
15:交叉檢驗(yàn)如何用在時(shí)間序列數(shù)據(jù)上?
與標(biāo)準(zhǔn)的k-folds 交叉檢驗(yàn)不同,數(shù)據(jù)不是隨機(jī)分布的,而是具有時(shí)序性的。如果模式出現(xiàn)在后期,模型仍然需要選擇先前時(shí)間的數(shù)據(jù),盡管前期對(duì)模式無(wú)影響。我們可以如下這么做:
fold1:training[1], test[2]
fold2:training[1 2], test[3]
fold3:training[1 2 3], test[4]
fold4:training[1 2 3 4], test[5]
fold5:training[1 2 3 4 5], test[6]
16:如何對(duì)決策樹進(jìn)行剪枝?
剪枝是在決策樹中,為了降低模型的復(fù)雜度,提高決策樹模型的預(yù)測(cè)精度,去除預(yù)測(cè)能力較弱的分支后所發(fā)生的現(xiàn)象,可以自下而上和自上而下進(jìn)行,方法包括減少錯(cuò)誤修剪和成本復(fù)雜度修剪。
減少錯(cuò)誤修剪可以:替換每個(gè)節(jié)點(diǎn)。如果不降低預(yù)測(cè)精度,則保持修剪。雖然很簡(jiǎn)單,但這種啟發(fā)式方法實(shí)際上非常接近于一種可以最大限度地優(yōu)化準(zhǔn)確性的方法。
17:模型的精度和模型的性能哪個(gè)對(duì)你更重要?
這一切都與模型的準(zhǔn)確性僅僅是模型性能的一個(gè)子集有關(guān)(因?yàn)檫€有召回率等等),在這一點(diǎn)上,有時(shí)是一個(gè)誤導(dǎo)。例如,如果你想在一個(gè)擁有數(shù)百萬(wàn)樣本的海量數(shù)據(jù)集中檢測(cè)欺詐行為,那么一個(gè)更準(zhǔn)確的模型很可能會(huì)預(yù)測(cè),如果只有極少數(shù)的案例是欺詐行為,那么根本就不會(huì)有欺詐行為。然而,對(duì)于預(yù)測(cè)模型來(lái)說(shuō),這是無(wú)用的——一個(gè)旨在發(fā)現(xiàn)聲稱根本沒(méi)有欺詐的欺詐的模型!這樣的問(wèn)題可以幫助您證明您理解模型的準(zhǔn)確性并不是模型性能的全部。
18:什么是F1數(shù),怎么使用它?
F1分?jǐn)?shù)是衡量模型性能的指標(biāo)。它是模型精度和召回的加權(quán)平均值,結(jié)果趨向于1是最好的,結(jié)果趨向于0是最差的。你可以在分類測(cè)試中使用它,而真正的否定并不重要。
19:如何處理一個(gè)不平衡的數(shù)據(jù)集?
① 從數(shù)據(jù)的角度出發(fā),主要方法為采樣,分為欠采樣和過(guò)采樣以及對(duì)應(yīng)的一些改進(jìn)方法。
② 從算法的角度出發(fā),考慮不同誤分類情況代價(jià)的差異性對(duì)算法進(jìn)行優(yōu)化,主要是基于代價(jià)敏感學(xué)習(xí)算法(Cost-Sensitive Learning),代表的算法有adacost。
另外可以將不平衡數(shù)據(jù)集的問(wèn)題考慮為一分類(One Class Learning)或者異常檢測(cè)(Novelty Detection)問(wèn)題,代表的算法有One-class SVM。
從數(shù)據(jù)角度出發(fā)的不平衡數(shù)據(jù)集的處理方法對(duì)應(yīng)的python庫(kù)(imblearn)
不平衡數(shù)據(jù)的學(xué)習(xí)即需要在分布不均勻的數(shù)據(jù)集中學(xué)習(xí)到有用的信息。
原文鏈接:https://blog.csdn.net/asialee_bird/article/details/83714612
20:激活函數(shù)的作用。常用激活函數(shù)的優(yōu)缺點(diǎn)比較?
激活函數(shù)是用來(lái)加入非線性因素的,提高神經(jīng)網(wǎng)絡(luò)對(duì)模型的表達(dá)能力,解決線性模型所不能解決的問(wèn)題。(深層神經(jīng)網(wǎng)絡(luò)表達(dá)能力就更加強(qiáng)大(不再是輸入的線性組合,而是幾乎可以逼近任意函數(shù))。)
常用激活函數(shù)的優(yōu)缺點(diǎn):https://blog.csdn.net/tyhj_sf/article/details/79932893
21:舉個(gè)例子,說(shuō)明使用集成學(xué)習(xí)會(huì)很有用。
集成學(xué)習(xí)通過(guò)組合一些基學(xué)習(xí)算法來(lái)優(yōu)化得到更好的預(yù)測(cè)性能,通??梢苑乐鼓P偷倪^(guò)擬合使模型更具有魯棒性。
(一些集成學(xué)習(xí)的例子,如bagging、boosting、stacking等,了解他們是如何增加模型預(yù)測(cè)能力的。)
22:避免過(guò)擬合
1. 保持模型盡可能地簡(jiǎn)單:通過(guò)考量較少的變量和參數(shù)來(lái)減少方差,達(dá)到數(shù)據(jù)中消除部分噪音的效果。
2. 使用交叉檢驗(yàn)的手段如:k-folds cross-validation。
3. 使用正則化的技術(shù)如:LASSO方法來(lái)懲罰模型中可能導(dǎo)致過(guò)擬合的參數(shù)。
23:如何評(píng)估你的機(jī)器學(xué)習(xí)模型的有效性?
首先你需要將數(shù)據(jù)分成訓(xùn)練集和測(cè)試集,或者使用給交叉驗(yàn)證方法分割。然后你需要選擇度量模型表現(xiàn)的metrics,如F1數(shù)、準(zhǔn)確率、混淆矩陣等。更重要的是,根據(jù)實(shí)際情況你需要理解模型度量的輕微差別,以便于選擇正確的度量標(biāo)準(zhǔn)。
24:如何評(píng)估一個(gè)LR model?
1.混淆矩陣 Confusion Matrix
1.1 準(zhǔn)確率vs 錯(cuò)誤率: accuracy = (TP+TN)/total error tate = (FP+FN)/total1.2 召回率(覆蓋率,正確預(yù)測(cè)的正樣本/實(shí)際正樣本) recall (sensitivity) = TP/AP1.3 負(fù)例覆蓋率 specificity = TN/AN
2.ROC 和 AUC(AUC, Area Under the ROC Curve)橫軸 (1- specificity) = 1 - TN/AN = FP/AP縱軸 recall (sensitivity) = TP/AP最佳篩查界值(cut-off值)的確定,一般選擇似然比最大的閾值
3.Lift(提升)和Gain(增益) K-S圖基尼系數(shù)
25:什么是核技巧,有什么用處?
核技巧使用核函數(shù),確保在高維空間不需要明確計(jì)算點(diǎn)的坐標(biāo),而是計(jì)算數(shù)據(jù)特征空間中的內(nèi)積。這使其具有一個(gè)很有用的屬性:更容易的計(jì)算高維空間中點(diǎn)的坐標(biāo)。許多算法都可以表示稱這樣的內(nèi)積形式,使用核技巧可以保證低維數(shù)據(jù)在高維空間中運(yùn)用算法進(jìn)行計(jì)算。
26:如何處理數(shù)據(jù)集中丟失或損壞的數(shù)據(jù)?
您可以在數(shù)據(jù)集中找到丟失/損壞的數(shù)據(jù),然后刪除這些行或列,或者決定用另一個(gè)值替換它們。在pandas中,有兩種非常有用的方法:isNull()和dropna(),這兩種方法將幫助您查找缺少或損壞數(shù)據(jù)的數(shù)據(jù)列,并刪除這些值。如果要用占位符值(例如0)填充無(wú)效值,可以使用fillna()方法。
27:簡(jiǎn)述反向傳播的過(guò)程?
做一個(gè)前饋運(yùn)算;將模型輸出與期望輸出進(jìn)行比較;計(jì)算誤差;向后運(yùn)行前饋運(yùn)算(反向傳播),將誤差分散到每個(gè)權(quán)重;以此來(lái)更新權(quán)重,得到一個(gè)更好的模型;持續(xù)這些步驟知道得到一個(gè)滿意的模型。
28:選擇一個(gè)算法。為并行實(shí)現(xiàn)編寫psuedo代碼。
這類問(wèn)題展示了您并行思考的能力,以及如何在處理大數(shù)據(jù)的編程實(shí)現(xiàn)中處理并發(fā)性。請(qǐng)看一下偽代碼框架(如peril-L)和可視化工具(如Web序列圖),以幫助您展示編寫反映并行性的代碼的能力。
29:鏈表和數(shù)組之間有什么區(qū)別?
數(shù)組是有序的對(duì)象集合。 鏈表是一系列帶有指針的對(duì)象,指示如何按順序處理它們。 與鏈表不同,數(shù)組假定每個(gè)元素具有相同的大小。 鏈表可以更容易地有機(jī)增長(zhǎng):必須預(yù)先定義或重新定義陣列以進(jìn)行有機(jī)增長(zhǎng)。 改組鏈接列表涉及改變哪些點(diǎn)指向哪里 – 同時(shí),改組數(shù)組更復(fù)雜并占用更多內(nèi)存。
30:描述哈希表。
哈希表是一種產(chǎn)生關(guān)聯(lián)數(shù)組的數(shù)據(jù)結(jié)構(gòu)。 通過(guò)使用散列函數(shù)將鍵映射到某些值。 它們通常用于數(shù)據(jù)庫(kù)索引等任務(wù)。
31:你使用哪些數(shù)據(jù)可視化庫(kù)? 你對(duì)最佳數(shù)據(jù)可視化工具有何看法?
這里重要的是定義您對(duì)如何在工具方面正確可視化數(shù)據(jù)和個(gè)人偏好的看法。 流行的工具包括R的ggplot,Python的seaborn和matplotlib,以及http://Plot.ly和Tableau等工具。
32、33、34、35、36、37:略
39:您通常在哪里尋找數(shù)據(jù)集?
像這樣的機(jī)器學(xué)習(xí)面試問(wèn)題試圖讓你了解機(jī)器學(xué)習(xí)興趣的核心。 真正熱衷于機(jī)器學(xué)習(xí)的人將會(huì)獨(dú)自完成側(cè)面項(xiàng)目,并且很清楚那些偉大的數(shù)據(jù)集是什么。 如果您遺失任何內(nèi)容,請(qǐng)查看 Quandl 獲取的經(jīng)濟(jì)和財(cái)務(wù)數(shù)據(jù),以及 Kaggle 的數(shù)據(jù)集集合,以獲取其他優(yōu)秀列表。
40:你認(rèn)為谷歌是如何為自動(dòng)駕駛汽車提供培訓(xùn)數(shù)據(jù)的?
像這樣的機(jī)器學(xué)習(xí)面試問(wèn)題確實(shí)測(cè)試了你對(duì)不同機(jī)器學(xué)習(xí)方法的知識(shí),如果你不知道答案,你的創(chuàng)造力。谷歌目前正在使用 recaptcha 來(lái)獲取店面和交通標(biāo)志上的標(biāo)簽數(shù)據(jù)。他們還建立在由Sebastian Thrun在谷歌(Googlex)收集的培訓(xùn)數(shù)據(jù)的基礎(chǔ)上 — 其中一些數(shù)據(jù)是由他在沙漠沙丘上駕駛馬車的研究生獲得的!
41:你將如何模擬阿爾法戈在圍棋中擊敗李世乭的方法?
在五個(gè)系列賽中,阿爾法戈擊敗了圍棋中最優(yōu)秀的人類選手之一李世石,這是機(jī)器學(xué)習(xí)和深度學(xué)習(xí)史上一個(gè)真正具有開創(chuàng)性的事件。上面的 Nature 論文描述了這是如何通過(guò)蒙特卡洛樹搜索(Monte Carlo Tree Search)和深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks)來(lái)實(shí)現(xiàn)的,這些神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)有監(jiān)督的學(xué)習(xí)、人類專家游戲和加強(qiáng)自玩游戲的學(xué)習(xí)。
42.請(qǐng)簡(jiǎn)要介紹下SVM
支持向量機(jī)SVM是一個(gè)面向數(shù)據(jù)的分類算法,它的目標(biāo)是為確定一個(gè)分類超平面,從而將不同的數(shù)據(jù)分隔開。支持向量機(jī)通俗導(dǎo)論
43.說(shuō)說(shuō)你知道的核函數(shù)
線性核
這實(shí)際上就是原始空間中的內(nèi)積。這個(gè)核存在的主要目的是使得映射后空間中的問(wèn)題和映射前空間中的問(wèn)題兩者在形式上統(tǒng)一起來(lái)了(意思是說(shuō),咱們有的時(shí)候,寫代碼,或?qū)懝降臅r(shí)候,只要寫個(gè)模板或通用表達(dá)式,然后再代入不同的核,便可以了,于此,便在形式上統(tǒng)一了起來(lái),不用再分別寫一個(gè)線性的,和一個(gè)非線性的)。
44.KNN中的K如何選取的?
如果選擇較小的K值,就相當(dāng)于用較小的領(lǐng)域中的訓(xùn)練實(shí)例進(jìn)行預(yù)測(cè),學(xué)習(xí)近似誤差會(huì)減小,只有與輸入實(shí)例較近或相似的訓(xùn)練實(shí)例才會(huì)對(duì)預(yù)測(cè)結(jié)果起作用,與此同時(shí)帶來(lái)的問(wèn)題是學(xué)習(xí)的估計(jì)誤差會(huì)增大,換句話說(shuō),K值的減小就意味著整體模型變得復(fù)雜,容易發(fā)生過(guò)擬合;
如果選擇較大的K值,就相當(dāng)于用較大領(lǐng)域中的訓(xùn)練實(shí)例進(jìn)行預(yù)測(cè),其優(yōu)點(diǎn)是可以減少學(xué)習(xí)的估計(jì)誤差,但缺點(diǎn)是學(xué)習(xí)的近似誤差會(huì)增大。這時(shí)候,與輸入實(shí)例較遠(yuǎn)(不相似的)訓(xùn)練實(shí)例也會(huì)對(duì)預(yù)測(cè)器作用,使預(yù)測(cè)發(fā)生錯(cuò)誤,且K值的增大就意味著整體的模型變得簡(jiǎn)單。
K=N,則完全不足取,因?yàn)榇藭r(shí)無(wú)論輸入實(shí)例是什么,都只是簡(jiǎn)單的預(yù)測(cè)它屬于在訓(xùn)練實(shí)例中最多的累,模型過(guò)于簡(jiǎn)單,忽略了訓(xùn)練實(shí)例中大量有用信息。
在實(shí)際應(yīng)用中,K值一般取一個(gè)比較小的數(shù)值,例如采用交叉驗(yàn)證法來(lái)選擇最優(yōu)的K值。
45.機(jī)器學(xué)習(xí)中,為何要經(jīng)常對(duì)數(shù)據(jù)做歸一化。
1)歸一化后加快了梯度下降求最優(yōu)解的速度;
2)歸一化有可能提高精度。
一些分類器需要計(jì)算樣本之間的距離(如歐氏距離),例如KNN。如果一個(gè)特征值域范圍非常大,那么距離計(jì)算就主要取決于這個(gè)特征,從而與實(shí)際情況相悖(比如這時(shí)實(shí)際情況是值域范圍小的特征更重要)。
1)線性歸一化
這種歸一化方法比較適用在數(shù)值比較集中的情況。這種方法有個(gè)缺陷,如果max和min不穩(wěn)定,很容易使得歸一化結(jié)果不穩(wěn)定,使得后續(xù)使用效果也不穩(wěn)定。實(shí)際使用中可以用經(jīng)驗(yàn)常量值來(lái)替代max和min。
2)標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化
3)非線性歸一化
經(jīng)常用在數(shù)據(jù)分化比較大的場(chǎng)景,有些數(shù)值很大,有些很小。通過(guò)一些數(shù)學(xué)函數(shù),將原始值進(jìn)行映射。該方法包括 log、指數(shù),正切等。需要根據(jù)數(shù)據(jù)分布的情況,決定非線性函數(shù)的曲線,比如log(V, 2)還是log(V, 10)等。
Copyright ? 2020-2023 山東行知科教儀器設(shè)備有限公司 版權(quán)所有 ?備案號(hào):魯ICP備16020776號(hào)-2
地址:高新區(qū)萬(wàn)福辦事處吳拐行政村 電話:0530-5837666 郵箱:[email protected]
關(guān)注我們