一 面試題概述
面試的時候,面試官會結合你的回答和你的簡歷來詢問你,所以在寫簡歷的時候,簡歷上所寫的所有內容在寫的時候必須自己反問一下自己,這個知識點懂不懂。
面試其實是一個溝通技巧的考量,在面試的時候要“靈活”;
在有一些問題上,如果不會,那么直接說不會就可以;但是在一些比較關鍵的問題上,如果這個算法不會,最好可以稍微的提一下相關的算法,靈活回答。
機器學習/人工智能相關崗位在招聘人員的時候,主要考量的指標有以下幾個方面:
①算法的思維能力
②基本的算法原理
③編程能力
④數據結構能力(擴展了解)
二 機器學習面試題(問法)
1.請介紹一下你熟悉的機器學習模型或算法?
2.請介紹**算法或模型原理?(一般都是簡歷上的)
3.請描述一下**算法和**算法有什么區別?(一般是簡歷上或者面試過程中問到的算法內容)
4.這些算法模型你是不是都使用過?都用于那些應用場景?
5.在**應用場景中,你使用**算法的時候,遇到了那些問題?最終是如何解決的?
6.在**應用場景中,你們為什么不使用**算法?
7.你覺得在**應用場景中,使用**算法效果如何?
三 機器學習面試題
1.? 什么是機器學習過擬合?
所謂過擬合,就是指模型在訓練集上的效果很好,在測試集上的預測效果很差.
2.? 如何避免過擬合問題?
? ? 1. 重采樣bootstrap
? ? 2. L1,l2正則化
? ? 3. 決策樹的剪枝操作
? ? 4.? 交叉驗證
3.什么是機器學習的欠擬合?
? ? ? ? 所謂欠擬合就是模型復雜度低或者數據集太小,對模型數據的擬合程度不高,因此模型在訓練集上的效果就不好.
4. 如何避免欠擬合問題?
? ? 1.增加樣本的數量
? ? 2.增加樣本特征的個數
? ? 3.可以進行特征維度擴展
5.什么是交叉驗證?交叉驗證的作用是什么?
? ? ? ? 交叉驗證就是將原始數據集(dataset)劃分為兩個部分.一部分為訓練集用來訓練模型,另外一部分作為測試集測試模型效果.
作用:? 1)交叉驗證是用來評估模型在新的數據集上的預測效果,也可以一定程度上減小模型的過擬合
? ? ? ? ? ? 2)還可以從有限的數據中獲取盡可能多的有效信息。
交叉驗證主要有以下幾種方法:
? ? ①留出法.簡單地將原始數據集劃分為訓練集,驗證集,測試集三個部分.
? ? ②k折交叉驗證.(一般取5折交叉驗證或者10折交叉驗證)
? ? ③留一法.(只留一個樣本作為數據的測試集,其余作為訓練集)---只適用于較少的數據集
? ? ④ Bootstrap方法.(會引入樣本偏差)
6.有監督算法和無監督算法有什么區別?
? ? ? 根據算法模型中有標簽的稱為有監督算法,反之則稱為無監督算法.
7常見的距離度量公式有那些?
? ? 1)Minkowski(閔可夫斯基距離)
? ? --- P=1:曼哈頓距離(城市距離)
? ? ---P=2:歐式距離
? ? ---P無窮:切比雪夫距離
? ? 2) 夾角余弦相似度
? ? 3) KL距離(相對熵)
? ? 4) 杰卡德相似度系數(集合)
? ? 5) Pearson相關系數ρ(距離=? 1-ρ)
8.文本數據處理的方式有哪些,以及這些處理方式有什么區別
? ? ? ? 處理方式有:
? ? 1) 詞袋法(BOW/TF)\詞集法(SOW)
? ? ---不考慮文本的語法和語序,只考慮單詞存在的次數(BOW/TF)或者是否存在(SOW)
? ? 2) TF-IDF
? ? ---既考慮文本的詞頻,也考慮文件的逆文檔頻率(基本思想是:單詞的重要性與單詞在文檔中出現的次數成正比,與單詞在語料庫中出現的次數成反比)
? ? 3) HashTF-IDF(不計算詞頻,計算單詞進行Hash后的Hash值的數量)
? ? 4) 啞編碼(OneHotEncoder)
? ? 5) Word2Vec (通過對文檔中的所有單詞進行分析->>獲得單詞之間的關聯程度->>進而形成詞向量矩陣)
9.什么是最小二乘法?
? ? ? ? 最小二乘的核心思想---通過最小化誤差的平方和,使得擬合對象無限接近目標對象.
10.常見的優化算法有那些,以及這些優化算法有那些優缺點;
? ? 1)梯度下降法(Gradient Descent)
? ? ---BGD--->每一步迭代都需要遍歷所有的樣本數據,消耗時間長,但是一定能得到最優解.
? ? ---SGD--->迭代速度快,得到局部最優解(凸函數時得到全局最優解)
? ? ---MBGD--->小批量梯度下降法
? ? 2)牛頓法和擬牛頓法
? ? 牛頓法--->牛頓法是二階收斂,收斂速度快; 牛頓法是一種迭代算法,每一步都需要求解目標函數的Hessian矩陣的逆矩陣,計算比較復雜。
? ? 擬牛頓法--->改善牛頓法每次需要求解復雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的復雜度.
? ? 3)共軛梯度法(Conjugate Gradient)
? ? 共軛梯度法是介于最速下降法與牛頓法之間的一個方法,它僅需利用一階導數信息,但克服了最速下降法收斂慢的缺點,又避免了牛頓法需要存儲和計算Hesse矩陣并求逆的缺點。其優點是所需存儲量小,具有步收斂性,穩定性高,而且不需要任何外來參數。
? ? 4) 啟發式的方法
? ? 啟發式優化方法種類繁多,包括經典的模擬退火方法、遺傳算法、蟻群算法以及粒子群算法等。
多目標優化算法(NSGAII算法、MOEA/D算法以及人工免疫算法)
? ? 5)解決約束的方法---拉格朗日乘子法
11. 請描述一下拉格朗日乘子法和KKT條件;
? ? ? ? 拉格朗日乘子法就是一種將具有約束條件的目標函數轉化為沒有約束的目標函數的方法.對于不等式約束條件,要求不等式f(x)<=0.
? ? ? ? KKT條件:要求α*f(x)=0, f(x)<=0; α>=0并且要求各參數的導數為0
12.如何避免數據不平衡?
? ? ? ? 1)bootstrap(重采樣)--->上采樣和下采樣
? ? ? ? 2)數據合成-->利用已有樣本生成更多樣本
? ? ? ? 3)加權
? ? ? ? 4)看成一分類或者異常檢測的問題
? ? ? ? 正負樣本都非常之少-->數據合成的方式
? ? ? ? 負樣本足夠多,正樣本非常之少且比例及其懸殊-->一分類方法
? ? ? ? 正負樣本都足夠多且比例不是特別懸殊-->采樣或者加權的方法。
13.算法的誤差一般是由那幾個方面引起的?
? ? ? ? 1)因模型無法表示基本數據的復雜度而造成的偏差(bias).---欠擬合
? ? ? ? 2)因模型過度擬合訓練集數據而造成的方差(variance).---過擬合
14.在數據處理過程中,對于缺失特征的樣本如何進行處理?
? ? ? ? 根據樣本缺失的實際情況,我們一般運用:
? ? ? ? 1)均值,中值,最大最小值等來填充數據
? ? ? ? 2)根據經驗值補全數據
? ? ? ? 3)通過相關計算得到缺失值
? ? ? ? 4)樣本數量足夠,則可以直接刪除有缺失值的樣本
15.連續性數據分區轉換為離散數據有什么優點?
? ? ? ? 1)離散特征的增加和減少都很容易,易于模型的快速迭代
? ? ? ? 2)離散化后的特征對異常數據具有很強的魯棒性
? ? ? ? 3)離散化后可以進行特征交叉,相當于引入非線性,提升模型的表達能力
? ? ? ? 4)降低了模型過擬合的風險
16.啞編碼的作用是什么?
? ? ? ? 啞編碼是一種將字符串類型的特征轉化為數值型的方法.
17.決策樹的常用算法有那些,這些算法有什么區別?
? ? ? ? 常用的有:ID3,C4.5,CART三種算法
區別:1) 純度量化指標不同.ID3-->信息增益,C4.5-->信息增益率,CART-->基尼系數
? ? ? ? 2) 數據處理能力不同. ID3-->離散數據,C4.5,CART--->連續數據離散化,剪枝操作
? ? ? ? 3)要求的樹的類型不同.ID3和C4.5可以是多叉樹,CART只能是二叉樹.
18.決策樹的數據split原理或者流程;
? ? ? ? 1)將所有樣本看做一個節點
? ? ? ? 2)根據純度量化指標.計算每一個特征的’純度’,根據最不’純’的特征進行數據劃分
? ? ? ? 3)重復上述步驟,知道每一個葉子節點都足夠的’純’或者達到停止條件
19.決策樹算法中如何避免過擬合和欠擬合;
? ? ? ? 過擬合:選擇能夠反映業務邏輯的訓練集去產生決策樹;剪枝操作(前置剪枝和后置剪枝); K折交叉驗證
? ? ? ? 欠擬合:增加樹的深度,RF
20.回歸決策樹算法和分類決策樹算法有什么區別與聯系?
? ? ? ? 回歸決策樹解決的是回歸的問題.分類決策樹解決的是分類的問題.他們在決策樹的構建上是一樣的(最優劃分).回歸決策樹是計算預測點所在的葉子節點的均值或者加權平均值得到回歸結果.分類是通過多數投票或者加權的多數投票得到分類結果.
? ? ? ? 度量指標不同:回歸決策樹是MAE,MSE 分類決策樹是:信息熵、基尼系數、錯誤率
21.數據標準化、數據歸一化、區間縮放法有什么作用以及各個方法之間有什么區別
? ? ? ? 數據標準化是將數據集轉化為服從標準正態分布的數據.(常用于離散程度較高的數據)
? ? ? ? 數據歸一化是將每個樣本的向量轉化為單位向量(矩陣的行操作)
? ? ? ? 區間縮放法是對于分布較大的數據集,通過等比縮放的方法縮放到feature_range=(0,1).
22.特征選擇的目標是什么?
? ? ? ? 選擇離散程度高且與目標的相關性強的特征
23.常用的特征選擇方式有那些?
? ? ? ? ①過濾法
? ? ? ? 過濾法,按照發散性或者相關性對各個特征進行評分,設定閾值或者待選擇閾值的個數,從而選擇特征;常用方法包括方差選擇法、相關系數法、卡方檢驗、互信息法等
? ? ? ? ②包裝法
? ? ? ? 包裝法,根據目標函數(通常是預測效果評分),每次選擇若干特征或者排除若干特征;常用方法主要是遞歸特征消除法。
? ? ? ? ③嵌入法
? ? ? ? 嵌入法,先使用某些機器學習的算法和模型進行訓練,得到各個特征的權重系數,根據系數從大到小選擇特征;常用方法主要是基于懲罰項的特征選擇法.
24.降維的作用是什么?
? ? ? ? ①降維可以緩解維度災難問題
? ? ? ? ②降維可以在壓縮數據的同時讓信息損失最小化
? ? ? ? ③理解幾百個維度的數據結構很困難,兩三個維度的數據通過可視化更容易理解
25.常見的降維方式有那些?
? ? ? ? L1懲罰模型,PCA(主成分分析法)和LDA(線性判別分析法)
? ? ? ? PCA-->無監督的降維(無類別信息)-->選擇方差大的方向投影,方差越大所含的信息量越大,信息損失越少.可用于特征提取和特征選擇。
? ? ? ? LDA-->有監督的降維(有類別信息)-->選擇投影后的類別內的方差小,類別間的方差較大.
26. PCA降維的原理是什么?
? ? ? ? 通過線性變換將樣本數據從高維投影到低維,并且投影后的數據具有最大的方差,進而完成降維的工作.
27. LDA線性判別分析降維的原理是什么?
? ? ? ? LDA一種有監督的降維算法,它是將高維數據投影到低維上,并且要求投影后的數據具有較好的分類.(也就是說同一類的數據要去盡量的投影到同一個簇中去)
28.機器學習中模型參數和超參的區別?超參給定的方式有那些?
? ? ? ? 模型參數是模型內部的配置變量,可以用數據估計模型參數的值;
? ? ? ? 模型超參是模型外部的配置,必須手動設置參數的值。
? ? ? ? 模型超參可以通過網格交叉驗證來取值,也可以通過經驗選定.
29.常用的機器學習工具有那些?
? ? ? ? Python,Numpy,pandas,matplotlib,scikit-learn……
30. SVD矩陣分解在機器學習中有那些作用?
? ? ? ? LSA(潛在語義分析),PCA降維……
31.請推導Logistic算法并說明該算法的目標函數是什么?
? ? ? ? Sigmoid函數,MLE,? ? ? ? ? ? ? ? ? 似然函數L(θ)
32.請描述SVM的原理
? ? ? ? SVM就是找到一個超平面,使得距離這個超平面最近的點(支持向量)距離超平面最遠.
33. SVM中為什么采用間隔最大化?
? ? ? ? 間隔最大化可以使得樣本的置信度上升,分類器更健壯.
? ? ? ? 當訓練數據線性可分時,存在無窮個分離超平面可以將兩類數據正確分開。
感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。
線性可分支持向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知實例的泛化能力最強。
然后應該借此闡述,幾何間隔,函數間隔,及從函數間隔—>求解最小化1/2 ||w||^2 時的w和b。即線性可分支持向量機學習算法—最大間隔法的由來。
34.請推導線性可分SVM算法
極大極小值問題的求解,并需要滿足KKT條件.
首先求解w,b,帶入目標函數中得到:
這就要用到SMO方法求解.
35. 請描述軟間隔線性可分SVM算法的原理以及應用場景
? ? ? ? 對于一些不滿足函數間隔大于1的樣本點,我們在線性可分的基礎上加入了松弛因子ξ和懲罰項系數C.
? ? ? ? C越大,對誤分類的懲罰越大(越不允許分錯);當C無限大時就是線性可分問題.
36.請描述SVM如何解決非線性可分的問題37.核函數有什么作用?常見的核函數有那些?
? ? ? ? 低維映射到高維-----核函數(rbf,linear,poly)----在低維度計算,得到高維分類的效果.
? ? ? ? 常見的核函數有:高斯核函數、多項式核函數
38. SVM如何處理多分類問題?
? ? ? ? ovo或者ovr
39. Logistic回歸和SVM算法有什么區別和聯系?
? ? ? ? 相同點:
? ? ? ? 1)Logistic回歸和SVM都是分類算法.
? ? ? ? 2)如果不考慮使用核函數,LR和SVM都是線性分類模型,也就是說它們的分類決策面是線性的。
? ? ? ? 3)都是有監督學習的算法
? ? ? ? 4) LR和SVM都是判別模型。
? ? ? ? 不同點:
? ? ? ? 1)損失函數不同
? ? ? ? LR基于概率理論,通過極大似然估計方法估計出參數的值,然后計算分類概率,取概率較大的作為分類結果。SVM基于幾何間隔最大化,把最大幾何間隔面作為最優分類面。
? ? ? ? 2)SVM只考慮分類面附近的局部的點,即支持向量,LR則考慮所有的點,與分類面距離較遠的點對結果也起作用,雖然作用較小。
? ? ? ? 3)在解決非線性分類問題時,SVM采用核函數,而LR通常不采用核函數。
? ? ? ? 4)SVM不具有伸縮不變性,LR則具有伸縮不變性。
? ? ? ? 5)Logistic回歸是通過sigmoid函數來進行分類的,類別分為{0,1}.
? ? ? ? SVM是通過sign函數來進行分類的,類別分為{+1,-1}.
40. Logistic回歸和Linear線性回歸有什么區別和聯系?
41. 如何評價算法模型的效果?
? ? ? ? 分類算法評價:準確率(Accuracy),精確率(Precision),召回率(Recall),F1值,ROC曲線(AUC值)
? ? ? ? 回歸算法評價: MAE,MSE,可解釋方差的回歸評分函數(explained_variance_score)
42.分類算法的評估指標有那些?
? ? ? ? 準確率(Accuracy),精確率(Precision),召回率(Recall),F1值,ROC曲線(AUC值)
43.混淆矩陣的作用?(模型效果評價)
44. 召回率、精確率、準確率、F1指標的作用以及區別?
? ? ? ? 召回率(Recall)-->預測正確的真正例/全部真正例
? ? ? ? 精確率(Precision)-->預測正確的真正例/被預測為真正例的所有樣本數
? ? ? ? 準確率(Accuracy)-->預測正確的正負樣本數/樣本總數
? ? ? ? F1值--> 2/(1/Precision +1/Recall)-->精確率和召回率的調和平均值
45. ROC和AUC的作用?
? ? ? ? TPR(TruePositive Rate): TP/(TP+FN),實際就是Recall
? ? ? ? FPR:FP/(FP+TN),錯誤接收率,誤報率,即負樣本被識別為正樣本的概率.
? ? ? ? ROC曲線就是以FPR為橫軸,TPR為縱軸,繪制出的一條曲線.AUC為ROC曲線下方的面積.
? ? ? ? ROC曲線是評價分類模型效果的常用方法.AUC的值越大,表示模型效果越好.
46.回歸算法的評估指標有那些?
? ? ? ? MAE,MSE, R2
47. MSE、MAE、R2指標的作用和區別?
? ? ? ? MSE--->均方差.
? ? ? ? MAE--->平均絕對誤差.
? ? ? ? R2--->分母理解為原始數據的離散程度,分子為預測數據和原始數據的誤差,二者相除可以消除原始數據離散程度的影響.
48. 損失函數和目標函數的區別?
? ? ? ? 損失函數(代價函數)-->損失函數越小,就代表模型擬合的越好。
? ? ? ? 目標函數-->把要最大化或者最小化的函數(模型迭代時的迭代方向,往目標函數最小化的方向迭代)稱為目標函數.有正則項的必定是目標函數.
49. 在機器學習中,模型的選擇指的是?如何進行模型選擇?
? ? ? ? 模型選擇就是算法模型及模型參數的選擇.(就是說選擇什么算法)
? ? ? ? 如何進行模型選擇--->交叉驗證,選擇效果好的模型.
50.在機器學習中,模型效果不好的時候,如何調試學習算法模型?
? ? ? ? 1)獲取更多的數據量
? ? ? ? 2)特征減少(降維)或者特征增加(是否刪除了很重要的特征)==》特征工程
? ? ? ? 3)模型參數的調節(超參)
? ? ? ? 4) 模型融合(提升算法)
51.請描述隨機森林(Random Forest)的原理
? ? ? ? RF是Bagging算法的一種變種算法.
? ? ? ? 1)通過對數據集進行Bootstrap(重采樣),獲取m個樣本.
? ? ? ? 2)對這m個樣本并進行特征隨機選擇,再訓練出m棵決策樹模型.
? ? ? ? 3)根據這m棵決策樹,運用投票表決或者加權投票表決的方式進行分類,運用平均值或者加權平均進行回歸.
52.請描述RF和GBDT之間的相同點和不同點
? ? ? ? RF和GBDT相同點:
? ? ? ? 1)都是使用決策樹作為基模型.
? ? ? ? 2)都是集成算法的一種
? ? ? ? 3)都是由多棵樹組成, 最終的結果都是由多棵樹一起決定
RF和GBDT不同點:
1、組成隨機森林的樹可以是分類樹,也可以是回歸樹;而GBDT只由回歸樹組成
2、組成隨機森林的樹可以并行生成;而GBDT只能是串行生成(強融合)
3、對于最終的輸出結果而言,隨機森林采用多數投票等;而GBDT則是將所有結果累加或者加權累加起來
4、隨機森林對異常值不敏感,GBDT對異常值非常敏感
5、隨機森林對訓練集一視同仁,GBDT是基于權值的弱分類器的集成
6、隨機森林是通過減少模型方差提高性能,GBDT是通過減少模型偏差提高性能
53. XGBoost的作用是什么
? ? 0.0
54.在XGBoost中,構建樹的時候使用那些優化的方式
? ? 0.0
55.集成學習的原理/作用是什么?
? ? ? ? 原理:’博采眾長’
作用:根據一定的結合策略,將多個弱學習器組成一個強學習器.
56. RF、GBDT在特征選擇中的作用是什么?
? ? ? ? 在進行特征選擇時,我們可以使用RF、GBDT首先對模型進行訓練,得到feature_importance參數值,再給定的閾值就可以進行特征選擇(選擇那些重要性高的特征).
? ? ? ? 做特征的擴展。