機器學習(ML)是我們世界的未來,在未來的幾年中,幾乎每種產品都將包含ML組件,ML預計將從2020年的$ 7.3B增長到2024年的$ 30.6B,對ML技能的需求遍及整個行業,
機器學習面試是一個嚴格的程序,在此程序中,應聘者會評估其基本概念知識以及對ML系統,實際應用和特定產品需求的理解,
如果您正在尋找機器學習的職業,那么了解面試的期望至關重要,因此,為幫助您準備,我收集了40個機器學習面試問題,我們將以一些基礎知識開始,然后轉到高級問題,
今天我們將回顧:
- 機器學習面試概述
- 公司特定流程
- 初學者問題(10)
- 中級問題(15)
- 進階問題(10)
- 產品特定問題(5)
機器學習面試概述
機器學習面試問題是成為資料科學家,機器學習工程師或資料工程師不可或缺的一部分,根據公司的不同,機器學習工程師的職位描述標題可能會有所不同,您期望看到諸如機器學習工程師,資料科學家,AI工程師等標題,
雇用機器學習職位的公司進行面試,以評估各個領域的個人能力,ML面試問題往往屬于這四個類別之一,
- 演算法和機器學習理論:演算法如何比較,如何準確測量
- 編程技巧:通常是Python或特定領域的語言
- 對機器學習的興趣:行業趨勢和您對未來ML組件的愿景
- 行業或產品特定問題:如何掌握通用機器學習知識并將其應用于特定產品
ML面試問題現在主要集中在系統設計上,在ML系統設計面試部分,開放式ML問題,有望建立端到端的機器學習系統,常見的示例是推薦系統,視覺理解系統和搜索排名系統,
公司特定流程
在進入前40個機器學習面試問題之前,讓我們首先看一下頂級公司在面試重點上的不同之處,
Google ML面試
Google ML面試通常稱為機器學習工程師面試,著重強調演算法,機器學習和Python的技能,
一些常見的問題包括梯度下降,正則化/歸一化方法和嵌入,
面試程序將是通用的,而不是專注于一個特定的團隊或專案,通過面試后,他們會給你分配到適合的技能的團隊,
Amazon ML訪談
稱為機器學習工程師面試的亞馬遜機器學習采訪主要集中于電子商務機器學習工具,云計算和AI推薦系統,
預計Amazon ML工程師將構建ML系統并使用深度學習模型,資料科學家彌合了技術和業務方面之間由資料驅動的差距,研究科學家接受了更高水平的教育,并致力于改善ASR,NLU和TTS功能??,
ML訪談的技術部分側重于ML模型,偏差方差折衷和過度擬合,
Facebook ML面試
Facebook ML面試包括通用演算法問題,ML設計和系統設計,你需要使用新聞提要排名演算法和本地搜索排名,Facebook尋找尋求了解端到端ML系統組件(包括部署)的工程師,
你可能會遇到的一些常見的采訪標題是研究科學家,資料科學采訪或機器學習工程師,與亞馬遜一樣,他們對通才知識的關注點和需求也略有不同,
Twitter ML訪談
Twitter的資料科學家角色包括分別針對不同團隊量身定制的資料和研究科學家角色,
面試的技術部分測驗您對ML理論(包括SQL和Python)的應用和直覺,Twitter尋找統計資訊,實驗模型,產品直覺和系統設計方面的知識,
初學者問題(10)
現在,讓我們深入了解ML面試的前40個問題,這些問題分為初學者,中級,高級和產品特定問題,
1.偏差和方差之間的權衡是什么?
偏差(模型擬合資料的程度)是指由于ML演算法中的假設不正確或過于簡單而導致的誤差,這會導致過度擬合,
方差(模型基于輸入的變化量)指的是由于ML演算法的復雜性而導致的錯誤,從而對訓練資料的高水平變化和過度擬合產生了敏感性,
換句話說,簡單的模型是穩定的(低方差)但有很大的偏差,復雜的模型容易過擬合,但表達了模型的真實性(低偏差),誤差的最佳減少需要權衡偏差和方差,以避免高方差和高偏差,
2.解釋有監督和無監督機器學習之間的區別,
監督學習需要訓練標記的資料,換句話說,監督學習使用了基本事實,這意味著我們對輸出和樣本已有知識,這里的目標是學習一個近似輸入和輸出之間關系的函式,
另一方面,無監督學習不使用標記的輸出,此處的目標是推斷資料集中的自然結構,
3.監督學習和非監督學習最常用的演算法是什么?
4.解釋KNN和k-means聚類之間的區別,
主要區別在于,KNN需要標記點(分類演算法,監督學習),而k-means則不需要(聚類演算法,無監督學習),
若要使用K最近鄰居,請使用要分類為未標記點的標記資料,K均值聚類采用未標記的點,并學習如何使用點之間距離的平均值對它們進行分組,
5.什么是貝葉斯定理?我們為什么用它?
貝葉斯定理是我們在知道其他概率時如何找到概率的方法,換句話說,它提供了先驗知識事件的后驗概率,該定理是計算條件概率的原則方法,
在ML中,貝葉斯定理用于將模型擬合到訓練資料集的概率框架中,并用于建立分類預測建模問題(即,樸素貝葉斯,貝葉斯最優分類器),
6.什么是樸素貝葉斯分類器?我們為什么要使用它們?
樸素貝葉斯分類器是
分類演算法的集合,這些分類器是具有共同原理的一系列演算法,樸素貝葉斯分類器假設某個功能的存在或不影響其他功能的存在或不存在,
換句話說,我們稱其為“天真”,因為它假定所有資料集特征都同等重要且獨立,
樸素貝葉斯分類器用于分類,當獨立性的假設成立時,與其他復雜的預測變數相比,它們更易于實作并產生更好的結果,它們用于垃圾郵件過濾,文本分析和推薦系統,
7.解釋型別I和型別II錯誤之間的區別,
型別I錯誤為假陽性(聲稱沒有發生某事),型別II錯誤為假陰性(聲稱實際上沒有發生任何事),
8.判別模型和生成模型之間有什么區別?
判別模型學習不同類別的資料之間的區別,生成模型學習資料類別, 區分模型通常在分類任務上表現更好,
9.什么是引數模型?提供一個例子,
引數模型具有有限數量的引數,您只需要知道模型的引數即可進行資料預測,常見示例如下:線性SVM,線性回歸和邏輯回歸,
非引數模型具有無限數量的引數以提供靈活性,對于資料預測,您需要模型的引數和觀測資料的狀態,常見示例如下:k最近鄰,決策樹和主題模型,
10.解釋陣列和鏈表之間的區別,
陣列是物件的有序集合,由于整個陣列都存盤在連續的記憶體塊中,因此假定每個元素的大小都相同,陣列的大小在宣告時指定,以后不能更改,
陣列的搜索選項是線性搜索和二進制搜索(如果已排序),
鏈表是一系列帶有指標的物件,不同的元素存盤在不同的存盤位置,并且可以在需要時添加或洗掉資料項,
鏈接串列的唯一搜索選項是線性,
其他初學者問題可能包括:
哪個更重要:模型性能或準確性?為什么?F1分數是多少?如何使用?什么是維度詛咒?什么時候應該使用分類而不是回歸?解釋深度學習,它與其他技術有何不同?解釋可能性和概率之間的差異,
中級問題(15)
這些中間問題從上面吸收了ML的基本理論,并以更為嚴格的方式加以應用,
1.您將為時間序列資料集選擇哪種交叉驗證技術?
時間序列不是隨機分布的,而是按時間順序排列的,您想使用正向鏈接之類的方法,以便可以在查看將來的資料之前基于過去的資料進行建模,例如:
- 折疊1:訓練[1],測驗[2]
- 折疊2:訓練[1 2],測驗[3]
- 折疊3:訓練[1 2 3],測驗[4]
- 第四折:訓練[1 2 3 4],測驗[5]
- 第五折:訓練[1 2 3 4 5],測驗[6]
2.如何根據訓練集大小選擇分類器?
對于小的訓練集,具有高偏差和低方差模型的模型更好,因為它不太可能過擬合,一個例子是樸素貝葉斯,
對于大型訓練集,具有低偏差和高方差模型的模型更好,因為它表示更復雜的關系,一個例子是邏輯回歸,
3.解釋ROC曲線和AUC,
ROC曲線是在所有閾值下分類模型的性能的圖形表示,它有兩個閾值:真陽性率和假陽性率,
簡單來說,AUC(ROC曲線下方的面積)就是ROC曲線下方的面積,AUC測量ROC曲線下從(0,0)到(1,1)的二維區域,它用作評估二進制分類模型的性能指標,
4.解釋LDA的無監督學習,
潛在狄利克雷分配(LDA)是主題建模的常用方法,它是一個生成模型,用于將檔案表示為主題的組合,每個主題都有自己的概率分布,
LDA旨在將高維空間的特征投影到低維空間,這有助于避免維數的詛咒,
5.如何確保您不會過度擬合模型?
我們可以使用三種方法來防止過度擬合:
- 使用交叉驗證技術(例如k折交叉驗證)
- 保持模型簡單(即減少變數)以減少方差
- 使用正則化技術(例如LASSO)來懲罰可能導致過度擬合的模型引數
6.在SQL中,主鍵和外鍵有何關系?
SQL是ML中使用的最流行的資料格式之一,因此您需要證明自己具有處理SQL資料庫的能力,
外鍵允許您在相應表的主鍵上匹配和聯接表,
如果您遇到此問題,請回答基本概念,并說明如何設定SQL表并對其進行查詢,
7.您將使用哪些評估方法來評估ML模型的有效性?
首先,您將資料集分為訓練集和測驗集,您也可以使用交叉驗證技術來分割資料集,然后,您將選擇并實施性能指標,例如,您可以使用混淆矩陣,F1得分和準確性,
您將要解釋如何基于不同的引數來度量模型的細微差別,脫穎而出的受訪者將進一步提出類似這樣的問題,
8.說明如何處理資料集中的丟失或損壞的資料,
您需要標識查找資料并洗掉行/列,或將其替換為其他值,
熊貓提供了執行此操作的有用方法:isnull()和dropna(),這些使您可以識別并洗掉損壞的資料,該fillna()方法可用于使用占位符填充無效值,
9.解釋如何開發資料管道,
資料管道使我們能夠采用資料科學模型并對其進行自動化或擴展,常見的資料管道工具是Apache Airflow,并且使用Google Cloud,Azure和AWS托管它們,
對于這樣的問題,您想解釋所需的步驟并討論您在構建資料管道方面的實際經驗,
對于Google Cloud主機,基本步驟如下:
- 登錄到Google Cloud Platform
- 創建一個計算實體
- 從GitHub中提取教程內容
- 使用AirFlow概述管道
- 使用Docker設定虛擬主機
- 開發一個Docker容器
- 打開Airflow UI并運行ML管道
- 運行已部署的Web應用
10.如何解決模型中的高方差?
如果模型具有低方差和高偏差,我們使用裝袋演算法,該演算法使用隨機抽樣將資料集劃分為子集,我們使用這些樣本通過單個學習演算法生成一組模型,
此外,我們可以使用正則化技術,其中較高的模型系數會受到懲罰,以降低總體復雜度,
11.什么是超引數?它們與模型引數有何不同?
模型引數是模型內部的變數,引數值是根據訓練資料估算的,
超引數是模型外部的變數,該值無法從資料中估算出來,通常用于估算模型引數,
12.你正在處理資料集,如何選擇重要變數?
- 在選擇重要變數之前,請先洗掉相關變數
- 使用隨機森林和繪圖變數重要性圖表
- 使用套索回歸
- 使用線性回歸以基于p值選擇變數
- 使用前向選擇,逐步選擇和向后選擇
13.如何選擇用于資料集的演算法?
選擇ML演算法取決于所討論的資料型別,選擇演算法和構建模型也需要業務需求,因此,在回答此問題時,請解釋您需要更多資訊,
例如,如果資料以線性方式組織,則線性回歸將是一個很好的演算法,或者,如果資料由非線性互動組成,則最好采用裝袋或增強演算法,或者,如果您正在處理影像,那么神經網路將是最佳選擇,
在5分鐘內閱讀有關資料科學的前10大ML演算法的更多資訊
14.使用神經網路的優點和缺點是什么?
15.拆分決策樹的默認方法是什么?
默認方法是基尼系數,它是特定節點的雜質的量度,從本質上講,它計算被錯誤分類的特定功能的概率,當元素通過單個類鏈接時,我們稱其為“純”,
您也可以使用隨機森林,但首選基尼系數,因為它不占用大量計算,并且不涉及對數函式,
其他中間問題可能包括:
什么是Box-Cox轉換?水龍頭問題解釋決策樹的優缺點,使用反向傳播技術時爆炸梯度問題是什么?什么是混淆矩陣?你為什么需要它?
進階問題(10)
這些高級問題將您的知識應用于特定的ML組件,并在基礎上擴展以考慮實際應用,這些技能通常需要編碼,而不僅僅是理論,
1.您將獲得一個資料集,該資料集的缺失值沿與中位數1個標準差的范圍擴展,百分之幾的資料將不受影響?
資料分布在中位數上,因此我們可以假設我們正在使用正態分布,這意味著大約68%的資料與平均值存在1個標準差,因此,大約32%的資料不受影響,
2.有人告訴你,你的回歸模型正在遭受多重共線性,如何驗證這是正確的并建立更好的模型?
您應該創建一個相關矩陣,以識別和洗掉相關度高于75%的變數,請記住,此處的閾值是主觀的,
您還可以計算VIF(方差膨脹因子)以檢查是否存在多重共線性,VIF值大于或等于4表示沒有多重共線性,小于或等于10的值表明存在嚴重的多重共線性問題,
您不能只洗掉變數,所以應該使用懲罰回歸模型或在相關變數中添加隨機噪聲,但是這種方法不太理想,
通過高層次的思維來獲得機器學習面試機會,
該互動式課程可幫助您建立ML系統設計技能,并介紹大型高科技公司中一些最常見的面試問題,到最后,您將能夠精通機器學習面試,并深刻理解系統的能力,
摸索機器學習面試
3.為什么XGBoost的性能優于SVM?
XGBoos是使用許多樹的集成方法,這意味著它會隨著自身的重復而提高,
SVM是線性分隔符,因此,如果我們的資料不是線性可分離的,那么SVM需要一個內核來使資料達到可以分離的狀態,這可能會限制我們,因為每個給定的資料集都沒有完美的內核,
4.建立具有10,000棵樹的隨機森林模型,訓練錯誤為0.00,但驗證錯誤為34.23,解釋出了什么問題,
您的模型可能過擬合,訓練誤差為0.00意味著分類器模仿了訓練資料模式,這意味著它們不適用于我們看不見的資料,從而回傳更高的錯誤,
當使用隨機森林時,如果我們使用大量樹木,則會發生這種情況,
5.解釋構建ML模型的階段,
這在很大程度上取決于手頭的模型,因此您可以提出澄清的問題,但通常,程序如下:
- 了解業務模型和最終目標
- 收集資料采集
- 進行資料清理
- 基本探索性資料分析
- 使用機器學習演算法開發模型
- 使用未知資料集檢查準確性
6.以下混淆矩陣的召回率,特異性和精確度是多少?
- TP /真正肯定:案例是肯定的,并且被預測為肯定
- TN /真陰性:案件為陰性,預計為陰性
- FN /假陰性:案件為陽性,但預計為陰性
- FP /誤報:案例為否定,但預計為肯定
- 召回率= 20%
- 特異性= 30%
- 精度= 22%
說明:
召回率= TP /(TP + FN)= 10/50 = 0.2 = 20%
特異性= TN /(TN + FP)= 15/50 = 0.3 = 30%
精度= TP /(TP + FP)= 10/45 = 0.2 = 22%
7.對于NLP,使用編碼器-解碼器模型的主要目的是什么?
我們使用編碼器-解碼器模型基于輸入序列生成輸出序列,
使編碼器-解碼器模型如此強大的原因在于,解碼器將編碼器的最終狀態用作其初始狀態,這使解碼器可以訪問編碼器從輸入序列中提取的資訊,
8.對于使用TensorFlow進行深度學習,需要哪個值作為評估的輸入EstimatorSpec?
損耗指標是必需的,在使用TensorFlow執行模型時,我們使用EstimatorSpec物件來組織訓練,評估和預測,
EstimatorSpec使用一個必需的引數(稱為mode)初始化該物件,該模式可以采用以下三個值之一:
- tf.estimator.ModeKeys.TRAIN
- tf.estimator.ModeKeys.EVAL
- tf.estimator.ModeKeys.PREDICT
EstimatorSpec根據模式的不同,初始化所需的關鍵字引數也會有所不同,
9.使用scikit-learn時,是否確實需要在特征值變化很大時調整特征值?
是,大多數機器學習演算法都使用歐幾里得距離作為度量標準來測量兩個資料點之間的距離,如果值的范圍相差很大,則不同功能部件中相同更改的結果將非常不同,
10.你的資料集有50個變數,但是8個變數的缺失值高于30%,如何解決這個問題?
您可以采用三種一般方法:
- 只是洗掉它們(不理想)
- 為缺失值分配唯一的類別,以查看是否有趨勢生成此問題
- 檢查目標變數的分布,如果找到了模式,請保留缺少的值,將其分配給新類別,然后洗掉其他類別,
其他高級問題可能包括:
您必須基于R2,調整后的R2和公差評估回歸模型,您的標準是什么?對于k均值或kNN,為什么我們使用歐幾里得距離而不是曼哈頓距離?解釋正常軟裕度SVM和帶有線性核的SVM之間的區別,
產品特定問題(5)
公司希望看到您可以將ML概念應用于他們的實際產品和團隊,您可能會想到有關公司基于ML的產品的問題,甚至可能需要自行設計它們,
1.如何為我們的用戶實施推薦系統?
像這樣的許多ML面試問題都涉及為組織的特定問題實施模型,為了很好地回答這個問題,您需要提前研究公司,了解有關收入驅動因素和用戶群的資訊,
重要:使用類似這樣的問題來演示您的系統設計技能!您需要草擬具有需求,指標,培訓資料生成和排名的解決方案,
使用Netflix的推薦系統,對機器學習面試進行Grokking詳細討論了這個問題,
建立推薦系統的一般步驟如下:
- 通過提問來設定問題
- 了解規模和延遲要求
- 定義在線和離線測驗的指標
- 討論系統架構(資料如何流動)
- 討論訓練資料的產生
- 輪廓特征工程(涉及哪些參與者)
- 討論模型訓練和演算法
- 建議部署后如何擴展和改進(即您可以預測的問題)
2.您認為我們業務中最有價值的資料是什么?
這將測驗您對商業/行業的了解,它還測驗您如何將資料與業務成果相關聯并將其應用于特定公司的需求,您需要研究組織的業務模型,請務必先提出問題,然后再進一步澄清問題,
一些一般的答案可能是:
- 機器學習團隊理解的質量資料對于擴展和做出正確的預測很有用
- 告訴我們客戶需求的資料對于所有業務決策至關重要
- 更好的資料管理可以增加他們的年收入
- 對公司最有價值的資料型別是客戶資料,IT資料和內部財務資料
3.如何構建廣告預測系統的廣告選擇程序?
廣告選擇組件的主要目標是縮小與給定查詢相關的廣告集,在基于搜索的系統中,廣告選擇組件負責根據用戶和查詢背景關系從廣告資料庫中檢索最相關的廣告,
在基于Feed的系統中,廣告選擇組件將更多地根據用戶興趣而不是搜索字詞來選擇排名前k位的相關廣告,
這是此問題的一般解決方案,假設我們使用基于渠道的方法進行建模,在以下三個階段中合理安排廣告選擇程序:
- 階段1:根據選擇標準針對給定的查詢和用戶背景關系快速選擇廣告
- 第2階段:根據簡單快速的演算法對這些選定的廣告進行排名,以對廣告進行修剪,
- 第3階段:將機器學習模型應用于經過裁剪的廣告,以選擇排名靠前的廣告,
4.基于提要的系統有哪些體系結構組件?
同樣,這個問題在很大程度上取決于所討論的組織,首先,您需要詢問有關系統的澄清問題,以確保滿足所有需求,您可以用假說說話,以留出誤差的余地,
我將使用Twitter的feed系統對其進行解釋,以使您了解如何解決此類問題,它將包括:
- 推文選擇:將用戶的推文池轉發給排名組件
- 訓練資料生成:正面和負面的訓練示例
- 排名:用于預測參與的可能性
5.如何看待GPT-3?認為我們如何使用它?
這個問題可以衡量您在該行業的投資,并確定如何應用新技術,GPT-3是一種新的語言生成模型,可以生成類似于人類的文本,
有關GPT-3的觀點很多,因此請閱讀有關如何將其用于展示下一代批判性思維的文章,查看OpenAI對CPT-3的前20種用法,
一些一般的答案可能是:
- 改善聊天機器人和客戶服務自動化
- 使用NLP改善搜索引擎
- 作業培訓和持續學習演示
- 改善JSX代碼
- 簡化UI / UX設計
其他問題可能包括:
為我們公司設計一個廣告預測系統,搜索排名的指標是什么?您如何看待我們當前的資料流程?描述您在機器學習中的研究經驗,用SQL撰寫查詢,以衡量瞬間與新聞提要之間被查看的廣告數量,您認為量子計算將如何影響該組織的ML?我們當前的哪些產品可以從ML組件中受益?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232951.html
標籤:其他
