天天看點

機器學習高頻面試題(41道),這可能是頭條最全的了!

作者:AI人工智能知識庫

Q1: What’s the trade-off between bias and variance?

問題1: 什麼是偏差(bias)、方差(variable)之間的均衡?

Bias 是由于你使用的學習算法過度簡單地拟合結果或者錯誤地拟合結果導緻的錯誤。它反映的是模型在樣本上的輸出與真實值之間的誤差,即模型本身的精準度,即算法本身的拟合能力。Bias 可能會導緻模型欠拟合,使其難以具有較高的預測準确性,也很難将你的知識從訓練集推廣到測試集。

Variance 是由于你使用的學習算法過于複雜而産生的錯誤。它反映的是模型每一次輸出結果與模型輸出期望之間的誤差,即模型的穩定性。反應預測的波動情況。Variance 過高會導緻算法對訓練資料的高緯度變化過于敏感,這樣會導緻模型過度拟合資料。進而你的模型會從訓練集裡帶來太多噪音,這會對測試資料有一定的好處。

Bias-Variance 的分解,本質上是通過在基礎資料集中添加偏差、方差和一點由噪聲引起的不可約誤差,來分解算法上的學習誤差。從本質上講,如果你使模型更複雜并添加更多變量,你将會失去一些 Bias 但獲得一些 Variance,這就是我們所說的權衡(tradeoff)。這也是為什麼我們在模組化的過程中,不希望這個模型同時擁有高的偏差和方差。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q2: What is the difference between supervised and unsupervised machine learning?

問題2:監督學習和非監督學習有什麼不同?

監督學習需要train有label的資料。例如,為了進行classification(一項受監督的學習任務),您需要首先标記将用于教育訓練模型的資料,以便将資料分類到标記的組中。相反的,無監督學習不需要明确标記資料。

機器學習高頻面試題(41道),這可能是頭條最全的了!

如果需要擷取到【全套人工智能-機器學習高頻面試題】的話幫忙轉發、轉發、轉發一下然後再關注我私信回複“ 1 ”得到擷取方式吧!

多多關注小編,持續分享程式設計學習幹貨!

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q3: How is KNN different from k-means clustering?

問題3: KNN和 k-means 聚類由什麼不同?

K-Nearest Neighbors是一種監督分類算法,而 k-means聚類是一種無監督的聚類算法。 雖然這些機制起初可能看起來相似,但這實際上意味着為了使K-Nearest Neighbors工作,你需要标記資料,以便将未标記的點分類(是以是最近鄰居部分)。 K均值聚類僅需要一組未标記的點和門檻值:算法将采用未标記的點并逐漸學習如何通過計算不同點之間的距離的平均值将它們聚類成組。

這裡的關鍵差別在于,KNN需要标記點,是以是有監督的學習,而k-means不是,是以是無監督學習。

Q4: Explain how a ROC curve works.

問題4:解釋一下ROC曲線的原理

ROC曲線是真陽率與各種門檻值下的假陽率之間的對比度的圖形表示。 它通常用作代表模型靈敏度(真陽性)與跌落之間的平衡或它将觸發誤報(假陽性)的機率。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q5: Define precision and recall.

問題5:定義精度和召回率

召回(率)也稱為真陽性率:您的模型聲稱的陽性數量與整個資料中的實際陽性數量相比。 精确度也稱為陽性預測值,它衡量的是您的模型聲稱與實際聲稱的陽性數量相比的準确陽性數量。 在您預測在10個蘋果的情況下有10個蘋果和5個橙子的情況下,可以更容易地想到回憶和精确度。 你有完美的召回(實際上有10個蘋果,你預測會有10個),但66.7%的精度,因為在你預測的15個事件中,隻有10個(蘋果)是正确的。

Q6: What is Bayes’ Theorem? How is it useful in a machine learning context?

問題6:什麼是貝葉斯定理?它在機器學習環境中如何有用?

貝葉斯定理描述了當你不能準确知悉一個事物的本質時,你可以依靠與事物特定本質相關的事件出現的多少去判斷其本質屬性的機率。 它給出了已知先驗知識下事件的後驗機率。

在數學上,它表示為條件樣本的真陽性率除以總體的假陽性率和條件的真陽性率之和。假設你在流感測試後有60%的機會真的感染了流感,但是在感染了流感的人中,50%的測試都是錯誤的,總人口隻有5%的機會感染了流感。在做了陽性測試後,你真的有60%的機會患上流感嗎?

貝葉斯定理說不,它說你有一個(0.60.05)(條件樣本的真陽性率)/(0.60.05)(條件樣本的真陽性率)+(0.5*0.95)(人群的假陽性率)= 5.94%的機會感染流感。

機器學習高頻面試題(41道),這可能是頭條最全的了!

貝葉斯理論是機器學習一個分支的幕後操縱大佬,是以在你考慮要準備一個機器學習的面試的時候一定不能忽略這個知識點。

Q7: Why is “Naive” Bayes naive?

問題7:為什麼我們要稱“樸素”貝葉斯?

盡管 Naive Bayes 具有實際應用,特别是在文本挖掘中,但它被認為是“天真的”,因為它假設在實際資料中幾乎不可能看到:條件機率被計算為元件個體機率的純乘積。 這意味着特征的絕對獨立性 – 這種情況在現實生活中可能永遠不會遇到。

正如 Quora 上一些評論者所說的那樣,Naive Bayes 分類器發現你喜歡泡菜和冰淇淋之後,可能會天真地推薦你一個泡菜冰淇淋。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q8: Explain the difference between L1 and L2 regularization.

問題8:L1、L2正則之間有什麼不同?

L2正則,對應的是加入2範數,使得對權重進行衰減,進而達到懲罰損失函數的目的,防止模型過拟合。保留顯著減小損失函數方向上的權重,而對于那些對函數值影響不大的權重使其衰減接近于0。相當于加入一個gaussian prior。

L1正則 對應得失加入1範數,同樣可以防止過拟合。它會産生更稀疏的解,即會使得部分權重變為0,達到特征選擇的效果。相當于加入了一個laplacean prior。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q9: What’s your favorite algorithm, and can you explain it to me in less than a minute?

問題9:你最喜歡的算法是什麼?把它解釋一下。

這種類型的問題測試了你對如何用平衡來傳達複雜和技術上的細微差别的了解,以及快速和有效地總結的能力。確定你有選擇,確定你能簡單有效地解釋不同的算法,使一個五歲的孩子能夠掌握基礎知識!

Q10: What’s the difference between Type I and Type II error?

問題10:第一類誤差和第二類誤差有什麼差別?

第一類誤差指的是假正率,第二類指的是假負率。簡單來說,第一類誤差意味着假設為真的情況下,作出了拒絕原假設的一種錯誤推斷。第二類誤差意味着假設為假的情況下,做出了接受原假設的一種錯誤判斷。

舉個例子:第一類誤差,你誤判一個男的他懷孕了。第二類誤差,你誤判了一位其實已經懷孕的女子沒懷孕。

Q11: What’s a Fourier transform?

問題11:什麼是傅立葉變換?

傅立葉變換是将一般函數分解成對稱函數疊加的一般方法。或者,正如這篇更直覺的教程所說,在一杯冰沙中,我們就是這樣找到配方的。傅立葉變換找到一組循環速度、振幅和相位,以比對任何時間信号。傅立葉變換将信号從時間域轉換為頻率域-這是從音頻信号或其他時間序列(如傳感器資料)中提取特征的一種非常常見的方法。

Q12: What’s the difference between probability and likelihood?

問題12:機率和似然有什麼差別?

機率和似然都是指可能性,但在統計學中,機率和似然有截然不同的用法。機率描述了已知參數時的随機變量的輸出結果;似然則用來描述已知随機變量輸出結果時,未知參數的可能取值。例如,對于“一枚正反對稱的硬币上抛十次”這種事件,我們可以問硬币落地時十次都是正面向上的“機率”是多少;而對于“一枚硬币上抛十次,我們則可以問,這枚硬币正反面對稱的“似然”程度是多少。

機率(密度)表達給定θ下樣本随機向量X=x的可能性,而似然表達了給定樣本X=x下參數θ1(相對于另外的參數θ2)為真實值的可能性。我們總是對随機變量的取值談機率,而在非貝葉斯統計的角度下,參數是一個實數而非随機變量,是以我們一般不談一個參數的機率,而說似然。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q13: What is deep learning, and how does it contrast with other machine learning algorithms?

問題13:什麼是深度學習,它與機器學習算法之間有什麼聯系?

深度學習是與神經網絡有關的機器學習的一個子集:如何使用反向傳播和神經科學中的某些原理來更精确地模組化大量未标記或半結構化資料。從這個意義上說,深度學習是一種無監督的學習算法,它通過使用神經網絡來學習資料的表示。

Q14: What’s the difference between a generative and discriminative model?

問題14:生成模型與判别模型有什麼差別?

生成模型将學習資料類别,而判别模型将簡單地學習不同類别資料之間的差別。 判别模型通常優于分類任務的生成模型。

Q15- What cross-validation technique would you use on a time series dataset?

問題15:交叉檢驗如何用在時間序列資料上?

與标準的k-folds 交叉檢驗不同,資料不是随機分布的,而是具有時序性的。如果模式出現在後期,模型仍然需要選擇先前時間的資料,盡管前期對模式無影響。我們可以如下這麼做:

  • 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]

Q16- How is a decision tree pruned?

問題16:如何對決策樹進行剪枝?

剪枝是在決策樹中,為了降低模型的複雜度,提高決策樹模型的預測精度,去除預測能力較弱的分支後所發生的現象。修剪可以自下而上和自上而下進行,方法包括減少錯誤修剪和成本複雜度修剪。

減少錯誤修剪可能是最簡單的版本:替換每個節點。如果不降低預測精度,則保持修剪。雖然很簡單,但這種啟發式方法實際上非常接近于一種可以最大限度地優化準确性的方法。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q17: Which is more important to you? Model accuracy, or model performance?

問題17:模型的精度和模型的性能哪個對你更重要?

這個問題測試您對機器學習模型性能細微差别的了解!機器學習面試問題往往着眼于細節。有些模型具有更高的準确度,而在預測能力方面表現較差 — 這有什麼意義?

好吧,這一切都與模型的準确性僅僅是模型性能的一個子集有關,在這一點上,有時是一個誤導。例如,如果你想在一個擁有數百萬樣本的海量資料集中檢測欺詐行為,那麼一個更準确的模型很可能會預測,如果隻有極少數的案例是欺詐行為,那麼根本就不會有欺詐行為。然而,對于預測模型來說,這是無用的——一個旨在發現聲稱根本沒有欺詐的欺詐的模型!這樣的問題可以幫助您證明您了解模型的準确性并不是模型性能的全部。

Q18: What’s the F1 score? How would you use it?

問題18:什麼是F1數,怎麼使用它?

F1分數是衡量模型性能的名額。它是模型精度和召回的權重平均值,結果趨向于1是最好的,結果趨向于0是最差的。你可以在分類測試中使用它,而真正的否定并不重要。

Q19: How would you handle an imbalanced dataset?

問題19:如何處理一個不平衡的資料集?

例如,當您有一個分類測試,并且90%的資料都在一個類中時,就會産生一個不平衡的資料集。這就導緻了問題:如果您對其他類别的資料沒有預測能力,那麼90%的精度然而可能會出現偏差!下面是一些克服困難的政策:

  • 1-收集更多資料,甚至資料集中的不平衡。
  • 2-對資料集重新取樣以糾正不平衡。
  • 3-在你的資料集中嘗試一個不同的算法。

這裡重要的是,您對不平衡資料集可能造成的損害以及如何平衡具有敏銳的感覺。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q20: When should you use classification over regression?

問題20:什麼時候你應該使用分類而不是回歸?

分類産生離散值并将資料集轉換為嚴格的類别,而回歸則提供連續的結果,使您能夠更好地區分各個點之間的差異。如果您希望結果反映資料集中資料點對某些明确類别的歸屬性(例如:如果您希望知道某個名稱是男性還是女性,而不僅僅是它們與男性和女性名稱之間的關聯性),則可以使用分類而不是回歸。

Q21: Name an example where ensemble techniques might be useful.

問題21:舉個例子,說明使用內建學習會很有用。

內建學習通過組合一些基學習算法來優化得到更好的預測性能,通常可以防止模型的過拟合使模型更具有魯棒性。

你可以列舉一些內建學習的例子,如bagging、boosting、stacking等,并且了解他們是如何增加模型預測能力的。

Q22: How do you ensure you’re not overfitting with a model?

問題22:你如何確定你的模型沒有過拟合?

過度拟合的訓練資料以及資料攜帶的噪音,對于測試資料會帶來不确定的推測。有如下三種方法避免過拟合:

  • 1. 保持模型盡可能地簡單:通過考量較少的變量和參數來減少方差,達到資料中消除部分噪音的效果。
  • 2. 使用交叉檢驗的手段如:k-folds cross-validation。
  • 3. 使用正則化的技術如:LASSO方法來懲罰模型中可能導緻過拟合的參數。

Q23: What evaluation approaches would you work to gauge the effectiveness of a machine learning model?

問題23:如何評估你的機器學習模型的有效性?

首先你需要将資料分成訓練集和測試集,或者使用給交叉驗證方法分割。然後你需要選擇度量模型表現的metrics,如F1數、準确率、混淆矩陣等。更重要的是,根據實際情況你需要了解模型度量的輕微差别,以便于選擇正确的度量标準。

Q24: How would you evaluate a logistic regression model?

問題24:如何評估一個LR model?

上述問題的一部分。你必須示範對邏輯回歸的典型目标(分類、預測等)的了解,并提供一些示例和用例。

Q25: What’s the “kernel trick” and how is it useful?

問題25:什麼是核技巧,有什麼用處?

核技巧使用核函數,確定在高維空間不需要明确計算點的坐标,而是計算資料的特征空間中的内積。這使其具有一個很有用的屬性:更容易的計算高維空間中點的坐标。許多算法都可以表示稱這樣的内積形式,使用核技巧可以保證低維資料在高維空間中運用算法進行計算。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q26: How do you handle missing or corrupted data in a dataset?

問題26:如何處理資料集中丢失或損壞的資料?

您可以在資料集中找到丢失/損壞的資料,然後删除這些行或列,或者決定用另一個值替換它們。

在pandas中,有兩種非常有用的方法:isNull()和dropna(),這兩種方法将幫助您查找缺少或損壞資料的資料列,并删除這些值。如果要用占位符值(例如0)填充無效值,可以使用fillna()方法。

Q27: Do you have experience with Spark or big data tools for machine learning?

問題27:你是否有使用Spark或大資料工具進行機器學習的經驗?

您需要熟悉不同公司的大資料含義以及他們想要的不同工具。Spark是目前最受歡迎的大資料工具,能夠快速處理海量資料集。老實說,如果你沒有所需工具的經驗,同時看看工作描述,看看什麼工具需要:你會想投資去熟悉它們。

Q28: Pick an algorithm. Write the ****psuedo-code for a parallel implementation.

問題28:選擇一個算法。為并行實作編寫psuedo代碼。

這類問題展示了您并行思考的能力,以及如何在處理大資料的程式設計實作中處理并發性。請看一下僞代碼架構(如peril-L)和可視化工具(如Web序列圖),以幫助您展示編寫反映并行性的代碼的能力。

Q29: What are some differences between a linked list and an array?

問題29:連結清單和數組之間有什麼差別?

數組是有序的對象集合。 連結清單是一系列帶有指針的對象,訓示如何按順序處理它們。 與連結清單不同,數組假定每個元素具有相同的大小。 連結清單可以更容易地有機增長:必須預先定義或重新定義陣列以進行有機增長。 改組連結清單涉及改變哪些點指向哪裡 – 同時,該組數組更複雜并占用更多記憶體。

Q30: Describe a hash table.

問題30:描述哈希表。

哈希表是一種産生關聯數組的資料結構。 通過使用散列函數将鍵映射到某些值。 它們通常用于資料庫索引等任務。

機器學習高頻面試題(41道),這可能是頭條最全的了!

Q31: Which data visualization libraries do you use? What are your thoughts on the best data visualization tools?

問題31:你使用哪些資料可視化庫? 你對最佳資料可視化工具有何看法?

這裡重要的是定義您對如何在工具方面正确可視化資料和個人偏好的看法。 流行的工具包括R的ggplot,Python的seaborn和matplotlib,以及Plot.ly和Tableau等工具。

這些機器學習面試問題涉及如何将您的一般機器學習知識應用于特定公司的要求。 您将被要求建立案例研究,并通過您的機器學習技能擴充您所申請的公司和行業的知識。

Q32: How would you implement a recommendation system for our company’s users?

問題32:您如何為我們公司的使用者實施推薦系統?

許多這種類型的機器學習面試問題将涉及機器學習模型的實施以解決公司的問題。 您必須深入研究公司及其行業,尤其是公司的收入驅動因素,以及公司在其所在行業中所采用的使用者類型。

Q33: How can we use your machine learning skills to generate revenue?

問題33:我們如何利用您的機器學習技能來創造收入?

這是一個棘手的問題。理想的答案将證明您對推動業務發展的因素以及您的技能如何關聯的了解。例如,如果你正在面試音樂流初創公司Spotify,你可以說,你在開發更好的推薦模式方面的技能将增加使用者保留率,從長遠來看這将增加收入。

上面連結的Startup Metrics Slideshare将幫助您準确了解在考慮支出和成長時,哪些績效名額對初創技術公司是重要的。

Q34: What do you think of our current data process?

問題34:你認為我們目前的資料處理過程如何?

這類問題要求你認真傾聽,并以富有建設性和洞察力的方式傳達回報。 你的面試官正在試圖判斷您是否是他們團隊中的重要成員,以及你是否根據公司或行業特定條件,掌握了為什麼某些事情按照公司資料流程的方式設定的細微差别。 他們試圖看看你是否可以成為有見地同行。 随行而動。

這一系列的機器學習面試問題試圖衡量你對機器學習的熱情和興趣。正确的答案将作為你承諾終身學習機器學習的證明。

Q35: What are the last machine learning papers you’ve read?

問題35:你讀過的最後一篇機器學習論文是什麼?

如果你想表現出對機器學習職位的興趣,就必須掌握最新的機器學習科學文獻。這篇深入學習的後代(從Hinton到Bengio再到LeCun)對自然的深入學習的概述可以是一篇很好的參考論文,也可以是一篇深入學習中正在發生的事情的概述,以及你可能想引用的那種論文。

Q36: Do you have research experience in machine learning?

問題36:你在機器學習方面有研究經驗嗎?

與最後一點相關的是,大多數為機器學習職位招聘的組織都會尋找你在該領域的正式經驗。由該領域的先行者共同撰寫或監督的研究論文,可以使你在被雇傭和不被雇傭之間産生差異。確定你已經準備好了一份關于你的研究經驗和論文的總結,如果你不準備的話,還要對你的背景和缺乏正式研究經驗做出解釋。

Q37: What are your favorite use cases of machine learning models?

問題37:你最喜歡的機器學習模型的用例是什麼?

這裡我們拿 Quora 上面的一個文章為例,文章在這裡:https://bit.ly/2MGYyQY

上面的 Quora 文章裡包含一些示例,例如決策樹,它根據智商分數将人們分類為不同的智力層次。確定你心裡有幾個例子,并描述與你産生共鳴的地方。重要的是你要對機器學習的實作方式表現出興趣。

Q38:How would you approach the “Netflix Prize” competition?

問題38:你想以什麼方式赢得“Netflix獎”比賽?

Netflix獎是一項著名的競賽,Netflix提供了 $1,000,000的獎金,以獲得更好的協同過濾算法(collaborative filtering algorithm)。關于這個比賽的最後赢家, BellKor;他們讓這個算法效率提升百分之十,并且給出了多種解法。多了解這些行業相關的 Case 并且和你面試官侃侃而談能夠展現你對于機器學習這個領域的關注

Q39: Where do you usually source datasets?

問題39:您通常在哪裡尋找資料集?

像這樣的機器學習面試問題試圖讓你了解機器學習興趣的核心。 真正熱衷于機器學習的人将會獨自完成側面項目,并且很清楚那些偉大的資料集是什麼。 如果您遺失任何内容,請檢視 Quandl 擷取的經濟和财務資料,以及 Kaggle 的資料集集合,以擷取其他優秀清單。

Q40: How do you think Google is training data for self-driving cars?

問題40:你認為谷歌是如何為自動駕駛汽車提供教育訓練資料的?

像這樣的機器學習面試問題确實測試了你對不同機器學習方法的知識,如果你不知道答案,你的創造力。谷歌目前正在使用 recaptcha 來擷取店面和交通标志上的标簽資料。他們還建立在由Sebastian Thrun在谷歌(Googlex)收集的教育訓練資料的基礎上 — 其中一些資料是由他在沙漠沙丘上駕駛馬車的研究所學生獲得的!

Q41: How would you simulate the approach AlphaGo took to beat Lee Sedol at Go?

問題41:你将如何模拟阿爾法戈在圍棋中****擊敗李世乭的****方法?

在五個系列賽中,阿爾法戈擊敗了圍棋中最優秀的人類選手李思多,這是機器學習和深度學習史上一個真正具有開創性的事件。上面的 Nature 論文描述了這是如何通過“蒙特卡洛樹搜尋(Monte Carlo Tree Search)和深神經網絡(Deep Neural Networks)來實作的,這些神經網絡經過有監督的學習、人類專家遊戲和加強自玩遊戲的學習。”

看完這篇文章,你是不是覺得自己在機器學習的道理上可以走的更順暢了呢

繼續閱讀