ML面試題
-
特征工程的意義和作用
- 特征工程可以將樣本數據處理成更為適合訓練模型時模型更容易找尋出數據規則的數據集,且適當的特征工程可以提升最終模型處理分類或者回歸的精度。
-
使用過哪些不同形式的特征工程
- 1.特征值化(文本特征抽取,字典特征抽取,onehot編碼,分詞工具)
- 2.特征預處理(數據的無量綱化,包括歸一化和標准化)
- 3.特征選擇(PCA降維,方差過濾,WOE&IV編碼,決策樹,探索性分析)
- 4.樣本類別分布不均衡處理(欠抽樣,過抽樣)
-
什么是交叉驗證,其作用是什么?
- 交叉驗證是可以將訓練模型的數據集拆分成測試集和訓練集兩部分,然后使用交叉選擇的方式可以多次使用不同的訓練集訓練模型和使用不同的測試集測試模型,返回一個模型在整組數據集中的一個綜合評判結果。其比單次對模型進行訓練和測試返回的判定結果更加具有代表性。
-
簡述線性回歸模型的回歸原理
- 線性回歸就是在找尋特征數據和標簽數據之間存在的某種線性關系,且可以使用w這個權重系數來表示這種關系。並且線性回歸模型是一種迭代算法,通過不斷的迭代最終可以獲得在較小損失下的權重系數w。
-
線性回歸是如何求解最小誤差的?
- 通過最小二乘或者梯度下降
-
回歸模型的評價指標有哪些
- MSE,MAE:用來衡量模型有沒有預測到真實的或者接近真實的結果
- r2:表示模型對數據的擬合程度
- 一般是綜合使用MSE+r2來表示模型的評判結果,MSE越小且r2越大則模型越優
- Adjusted R-Square:
- 可以抵消變量個數和樣本數量對R2的影響
-
線性回歸的損失函數如何表示?
- 真實值和預測值之間的差異平方的累和在開根號,叫做殘差平方和或者誤差平方和
-
是不是損失函數返回的損失值越小越好呢?
- 不一定,損失越小則表示模型越有可能出現過擬合。如果損失小且模型在測試集上表現的也不錯則模型的是ok的,否則需要通過正則化(L1和L2正則化)的方式適當增大模型損失。
-
L0,L1和L2范式:
- L0是指向量中非0的元素的個數。
- L1是指向量中各個元素絕對值之和。
- L2是指向量各元素的平方和然后求平方根
-
簡述什么是過擬合和欠擬合?
- 簡單說過擬合是說模型過多的依賴或者過細的學習到了訓練集的數據,反之則是欠擬合。如果模型在訓練集表現的比較好在測試集表現不好則表示模型出現了過擬合,在訓練集和測試集表現的都不好則出現了欠擬合。
- 過擬合一般可以適當的減少特征的數量,或者通過L1或者L2正則化的方式縮減不重要特征的權重,來處理過擬合的操作,比如嶺回歸和Loss回歸。
- 欠擬合一般可以給數據集增加高次項特征來處理
-
簡述什么是多項式回歸?
- 就是通過PolynomialFeatures給原始數據集增加一些高次項特征,使得回歸曲線彎曲來處理欠擬合的現象。多項式回歸其實就是線性回歸只不過是給數據集增加了一些高次項特征而已。
-
接觸過哪些主要的概率模型
- 朴素貝葉斯中的高斯模型和多項式模型,邏輯回歸模型
-
簡述TPR和FPR的計算原理
- 真正例率TPR = TP / (TP + FN)
- 偽反例率FPR = FP / (FP + TN)
-
簡述分類模型的評價指標有哪些
- Accuracy = (TP+TN)/(TP+FN+FP+TN)
- Recal = TP/(TP+FN)
- Precision = TP/(TP+FP)
- f1-score
- auc
-
什么是roc
- roc只的是計算以TPR和FPR為x和y軸中auc曲線下的面積,該面積越大越好,roc只可以作用在二分類的場景中
-
闡述sigmod函數的作用
- Sigmoid函數是一個S型的函數,可以將線性回歸的預測結果(任意實數)映射到0-1之間(不可為0或者1),返回的結果可以被視為分類的概率。
-
邏輯回歸為何可以返回分類的概率?
- 因為sigmod可以將線性回歸返回的結果映射到0-1之間,返回值為y(x),則y(x)和1-y(x)可以視為一種形似幾率,而形似幾率中的p和1-p就可以視為正反例發生的概率。
-
邏輯回歸和線性回歸之間有何聯系?
- 邏輯回歸的形似幾率取對數就是線性回歸,線性回歸解的對數幾率就是邏輯回歸。因此邏輯回歸也被稱為對數幾率回歸。
-
邏輯回歸的優點有哪些?
- 邏輯回歸對線性關系(特征與標簽之間的線性關系極強的數據)的擬合效果非常好
- 邏輯回歸計算快:對於線性數據,邏輯回歸的擬合和計算都非常快
- 邏輯回歸返回的分類結果不是固定的0,1,而是以小數形式呈現的類概率數字:我們因此可以把邏輯回歸返回的結果當成連續型數據來利用
-
邏輯回歸的損失函數是什么?
- 對數似然損失函數。
-
邏輯回歸如何處理過擬合?
- L1正則化和L2正則化,可以使用模型參數penalty和C來處理。C是用來控制正則化程度的超參數。C越小正則化力度越大。
-
L1和L2正則化的區別?
- 如果我們的主要目的只是為了防止過擬合,選擇L2正則化就足夠了。但是如果選擇L2正則化后還是過擬合,模型在未知數據集上的效果表現很差,就可以考慮L1正則化。
- 在L1正則化在逐漸加強的過程中,攜帶信息量小的、對模型貢獻不大的特征的參數w,會比攜帶大量信息的、對模型有巨大貢獻的特征的參數更快地變成0,所以L1正則化本質是一個特征選擇的過程。
- L2正則化在加強的過程中,會盡量讓每個特征對模型都有一些小的貢獻,但攜帶信息少,對模型貢獻不大的特征的參數w會非常接近於0。
-
邏輯回歸常用的模型參數有哪些?
-
聚類算法聚出的類有什么含義呢?這些類有什么樣的性質?
- 我們認為,被分在同一個簇中的數據是有相似性的,而不同簇中的數據是不同的,當聚類完畢之后,我們就要分別去研究每個簇中的樣本都有什么樣的性質,從而根據業務需求制定不同的商業或者科技策略。
- 聚類算法追求“簇內差異小,簇外差異 大”:
- 而這個“差異“,由樣本點到其所在簇的質心的距離來衡量。
-
Kmeans如何計算距離?
- 歐式距離
- 曼哈頓距離
- 余弦距離
-
Kmeans有損失函數嗎?
- 損失函數本質是用來衡量模型的擬合效果的(損失越小,模型的擬合效果越好),只有有着求解參數需求的算法,才會有損失函數。Kmeans不求解什么參數,它的模型本質也沒有在擬合數據,而是在對數據進行一種探索。因此Kmeans沒有損失函數。
-
什么時候會使用Kmeans的predict方法?
- 如果樣本數據量級比較大,則可以使用局部數據來指定之心和實現聚類,然后使用predict將剩下數據進行分類操作。
-
聚類算法的評價指標是什么?
- 輪廓系數,其原理就是讓聚類算法追求簇內差異小,簇外差異大。
-
SVM的主要適用場景?
- 圖像分類
- 文本分類
-
支持向量機的分類原理
- 找出最大邊際的決策邊界即可實現高質量的分類。在高維和非線性的特征中可以使用不同的核函數對數據進行升維變化找出合適的超平面作為的決策邊界進行分類,因此SVM常被用作到二分類案例中。常用的核函數有:
- linner:處理線性
- poly:處理偏線性
- sigmod:非線性
- rbf:偏非線性
- 在使用中發現rbf在線性和非線性數據中表現都不錯。
- 找出最大邊際的決策邊界即可實現高質量的分類。在高維和非線性的特征中可以使用不同的核函數對數據進行升維變化找出合適的超平面作為的決策邊界進行分類,因此SVM常被用作到二分類案例中。常用的核函數有:
-
決策樹的基本原理是什么?
- 找尋特征和標簽值之間的決策規律,這個規律可以使用一個樹狀結構來表示,基於該樹狀結構就可以對未知數據進行分類和預測。
-
決策樹算法的處理核心是什么?
- 如何尋找最佳節點和最佳分支
- 如何讓樹停止生長,防止過擬合
-
構建決策樹的常用算法有哪些?
- ID3,C4.5和CART
-
簡述ID3算法原理
- 基於信息論可以計算樹結構的最佳節點是什么,最佳節點是根據計算不同特征的信息增益,信息增益的大小可以決定最佳節點和不同的分支情況。直到節點的信息熵為0或者不純度為0則停止分支。
-
什么是信息熵和信息增益?
- 信息熵(entropy):是一種信息的度量方式,表示信息的混亂程度,也就是說:信息越有序,信息熵越低(不純度或者信息量越低)。
- 信息增益:在根據某個特征划分數據集之前之后信息熵發生的變化or差異叫做信息增益,知道如何計算信息增益,獲得計算增益最高的特征就是最好的選擇。
-
ID3有哪些局限性?
- 沒有剪枝的設置,容易導致過擬合
- 不能直接處理連續型數據集,若要使用ID3處理連續型變量,則首先需要對連續變量進行離散化
-
常用的模型剪枝參數有哪些?
- min_samples_leaf
- min_samples_split
- max_depth
-
超參數如何調優?
- 學習曲線
- 網格搜索
-
簡述集成算法的核心思想?
- 目標是學習出一個穩定的且在各個方面表現都較好的模型,但實際情況往往不這么理想,有時我們只能得到多個有偏好的模型(弱監督模型(弱評估器,基評估器),在某些方面表現的比較好)。集成學習就是組合這里的多個弱監督模型一起得到一個更好更全面的強監督模型。(三個臭皮匠賽過諸葛亮)
-
實現集成學習的方法有哪些?
- Bagging:並行生成多個弱評估器且使用又放回的隨機抽樣方式生成多分訓練集數據,然后訓練多個弱評估器,然后將每一個弱評估器返回的分類結果進行投票,將預測結果進行均值計算返回最終結果。
- Boosting:依次生成多個弱評估器,然后前一個弱評估器會將預測錯的樣本賦予更高的權重然后將整改后的樣本訓練下一個弱評估器,從而使得后面的弱評估器都是前一個評估器的糾錯專家,從而降低預測錯的可能。
-
常見的集成模型有哪些?
- Bagging的隨機森林
- Boosting的xgboost
-
建模前對數據做過哪些形式的數據處理和探究?
- 使用descrip和info對數據總覽數據概況
- 通過 describe 和 matplotlib 可視化查看數據的相關統計量(柱狀圖)
- 重點關注最大最小值中的異常數據和方差較低的特征
- 缺失值處理
- 標簽數據的分布情況
- 特征的數值分布情況
- 特征於特征之間的相關性
- 特征和標簽之間的相關性
- 適當的特征工程
綜合面試題
-
怎么處理數據中的離群值?
- 解析:
- 離群值的存在會影響到對數據的擬合和預測,通常需要加以處理,大致可以分為兩類方法
- 第一類的方法可以參考缺失值處理:
- 1)直接刪除
- 2)替換:可以使用均值、中位數、眾數進行替換
- 第二類的方法是離群值處理特有的:
- 利用拉依達准則法(3σ准則),將超出這個范圍的值替換成設定的閾值
- 極小的離群點數據x < (q1 - 3 * iq))
- 極大的離群點數據:x > (q3 + 3 * iq)
- 第一類的方法可以參考缺失值處理:
- 離群值的存在會影響到對數據的擬合和預測,通常需要加以處理,大致可以分為兩類方法
- 值得注意的是,在特定的業務中,離群值是有特殊的含義的,對這些離群值單獨分析可能會得到一些有價值的結論
- 解析:
-
用於評估預測模型的矩陣稱為什么?
- 混淆矩陣(confusion matrix),其列代表預測的類別,行代表真實值的分類, 常用在監督學習中,也可稱為列聯表、誤差矩陣,可以直觀地看出每個類別被分錯 的數量占類總數的比例,從而可以直觀簡單地評估預測模型優劣。
-
下面對於處理缺失數據的方法,正確的是(多選):
- A. 缺失數據的處理必須遵循固定的標准和步驟,防止關鍵信息丟失
- B. 一種方法是忽略有缺失數據的記錄,這種處理方法的一個缺點是對於觀測值比較小的數據集,容易造成關鍵數據的丟失
- C. 使用平均值或者最常出現值等不同的方法填充數據
- D. 一種方法是直接把缺失值標記為“未知”
- 答案:B、C、D
-
簡述 k-means 聚類的基本思想、步驟以及 k-means 的缺點。
- 基本思想:通過迭代尋找 k 個聚類的一種划分方案,使得用這 k 個聚類的均值來代表相應各類樣本時所得的總體誤差最小。
- K-means 聚類步驟:
- Step1: 隨機選擇 k 個質心(即 k 個類);
- Step2: 計算每一個點到這些質心的距離,然后決定每個點所屬的類;
- Step3: 對於每個類,重新確定該類的質心;
- Step4: 若收斂,則結束;否則轉到 Step2.
- K-means 缺點:
- 1.對聚類中心的初始化比較敏感,不同的初始化帶來不同的聚類結果。
- 2.K 值需要首先人工確定(啟發式)。
- 3.只能處理服從標准正太分布的聚類。
- 4.K-means 對於噪聲比較敏感
-
下面有關分類算法的准確率,召回率,F1 值的描述,錯誤的是?
- A.准確率是檢索出相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的查准率
- B.召回率是指檢索出的相關文檔數和文檔庫中所有的相關文檔數的比率,衡量的是 檢索系統的查全率
- C.正確率、召回率和 F 值取值都在 0 和 1 之間,數值越接近 0,查准率或查全率就 越高
- D.為了解決准確率和召回率沖突問題,引入了 F1 分數
-
答案:C
-
下列不是 SVM 核函數的是:
- A.多項式核函數
- B.logistic 核函數
- C.徑向基核函數
- D.Sigmoid 核函數
-
答案:B
-
在 Logistic Regression 中,如果同時加入 L1 和 L2 范數,會產生什么效果()
- A.可以做特征選擇,並在一定程度上防止過擬合
- B.能解決維度災難問題
- C.能加快計算速度
- D.可以獲得更准確的結果
-
答案:A
-
請解釋過擬合,以及如何防止過度擬合。
-
解析:
- 過擬合:是指為了得到一致假設而使假設變得過度嚴格
- 判斷過擬合的方法:一個假設(模型)在訓練數據上能夠獲得比其他假設(模型) 更好的擬合, 但是在【訓練數據外】的數據集上卻不能很好地擬合數據,這就意味 着出現了過擬合現象。
-
解決辦法通常有:
- 增大數據量
- 減少特征
- 正則化特征
-
下面關於 ID3 算法中說法錯誤的是()
- A.ID3 算法要求特征必須離散化
- B.信息增益可以用熵,而不是 GINI 系數來計算
- C.選取信息增益最大的特征,作為樹的根節點
- D.ID3 算法是一個二叉樹模型
-
答案:D
-
在其他條件不變的前提下,以下哪種做法容易引起機器學習中的過擬合問題()
- A.增加訓練集量
- B.減少神經網絡隱藏層節點數
- C.刪除稀疏的特征
- D.SVM 算法中使用高斯核/RBF 核代替線性核
-
答案:D
-
監督學習和無監督學習有什么區別?
-
解析:
- 監督學習:對具有標記(分類)的訓練樣本進行學習,這里,所有的標記(分類)是已知的。如:決策樹算法、朴素貝葉斯算法、KNN 算法。
- 無監督學習:對沒有標記(分類)的訓練樣本進行學習,目的是為了發現訓練集中的結構特性。這里,所有的標記(分類)是未知的。如:聚類算法。
-
為什么說朴素貝葉斯是“朴素”的?
- 朴素貝葉斯是一種簡單但極為強大的預測建模算法。之所以稱為朴素貝葉斯,是因為它假設每個輸入變量是獨立的。這是一個強硬的假設,實際情況並不一定,但是這項技術對於絕大部分的復雜問題仍然非常有效。
-
SVM 最重要的思想是什么?
- SVM 計算的過程就是幫我們找到超平面的過程,它有個核心的概念叫:分類間隔。SVM 的目標就是找出所有分類間隔中最大的那個值對應的超平面。
-
K-Means 和 KNN 算法的區別是什么?
- 首先,這兩個算法解決的是數據挖掘中的兩類問題。K-Means 是聚類算法,KNN 是分類算法。其次,這兩個算法分別是兩種不同的學習方式。K-Means 是非監督學習,也就是不需要事先給出分類標簽,而 KNN 是有監督學習,需要我們給出訓練數據的分類標識。最后,K 值的含義不同。K-Means 中的 K 值代表 K 類。KNN 中的 K 值代表 K 個最接近的鄰居。
-
Python數據分析通常使用的環境、工具和庫都有哪些?庫功能是什么?
- 基礎環境一般為Anaconda,
- 編輯器多用Ipython或JupyterNotebook,
- 常用庫有:
- Numpy:數值計算
- Matplotlib:數據可視化
- Pandas:數據預處理和數據分析
- scikit-learn:機器學習算法建模預測
-
數據預處理過程有哪些?
- 1)缺失值處理:刪、插
- 2)異常值處理
- 3)標准化:最大最小標准化、z標准化等
- 4)歸一化:對於文本或評分特征,不同樣本之間可能有整體上的差異,如a文本共20個詞,b文本30000個詞,b文本中各個維度上的頻次都很可能遠遠高於a文本
- 5)離散化:onehot、分箱等
-
PCA
- 1)主成分分析是一種降維的方法
- 2)思想是將樣本從原來的特征空間轉化到新的特征空間,並且樣本在新特征空間坐標軸上的投影方差盡可能大,這樣就能涵蓋樣本最主要的信息
-
請說明隨機森林較一般決策樹穩定的幾點原因
1)bagging的方法,多個樹投票提高泛化能力
2)bagging中引入隨機,避免單棵樹的過擬合,提高整體泛化能力
-
LR 的推導,特性?
- LR的優點在於實現簡單,並且計算量非常小,速度很快,存儲資源低,缺點就是因為模型簡單,對於復雜的情況下會出現欠擬合,並且只能處理2分類問題(可以通過一般的二元轉換為多元或者用softmax回歸)。
下列哪種方法常用來預測連續型獨立變量
A. 線性回歸 right
B. 邏輯回歸
C. 都行
D. 都不行
訓練線性回歸模型,如果數據量變少,是否更容易發生過擬合?如果假設空間變小,是否更容易發生過擬合?
- 數據量(樣本量)變少模型會過擬合,空間(特征維度)變小,不會擬合,可能會欠擬合
使用Lasso回歸擬合數據,之后將數據中某個特征數值擴大10倍,使用相同的正則化系數對Lasso回歸進行修正,
A. 這個特征很可能會被排除到模型外
B. 這個特征仍會包含在模型中
C. 根據已知信息無法判斷這個特征是否被排除
解釋:首先嶺回歸是L2正則,Lasso為L1正則化。Lasso也是線性模型就是在找尋特征和目標之間的關聯w,那么模型訓練好之后w就是已知的,如果特征數值擴大10倍,因為w已經為已知的,wx值也為固定的,x擴大則w減小,再次正則化縮減特征權重,則w可能縮減為0,則該特征就會被排除在模型外。
使用線性回歸模型擬合數據,之后增加一個新的特征變量,則
R-square上升/下降(1-(RSS/(pred-y).sum()))?Adjust R-square上升/下降?
解釋:增加一個特征,則視為模型預測能力變強,則pred-y變小,則R2變大,Adjust R-square只會解決的是樣本量對r2造成的影響,這里沒有增加樣本則Adjust R-square和R2變化是一樣的,都變大
評估線性回歸模型的指標
A. R-square
B. Adjust R-square
C. F statistics (error)
D. RMSE/MSE/MAE
使用正規方程(SDGRegression)Normal Equation求解系數
- 解釋:正規方程就是以梯度下降求解w的一種線性回歸模型。
A. 需要學習因子
B. 如果特征數量很多,會降低運行速度
C. 不需要迭代訓練 (error)
兩個變量相關,它們的相關系數可以為0嗎?
- 可以。為0說明兩個變量之間沒有線性關系
在一個較復雜的回歸模型中擬合樣本數據,使用Ridge回歸調節正則化參數來降低模型復雜度。若設置的參數較大,偏差bias上升/下降,方差varianca上升/下降?
解釋:
- 偏差指的是算法在大型訓練集上的錯誤率,方差指的是算法在測試集上的表現低於訓練集的程度。
- 高偏差對應着欠擬合,高方差對應着過擬合
- 因此正則化參數較大,模型可能發生欠擬合,則訓練集和測試集偏差變大。訓練集方差上升,測試集方差下降。
邏輯回歸與多元回歸的區別
A. 邏輯回歸用來預測事件發生的概率
B. 邏輯回歸用來計算擬合優度指數 error
C. 邏輯回歸用來對回歸系數進行估計
監督學習容易產生過擬合,還是非監督學習容易產生過擬合?
- 非監督無法計算擬合度
評價的模型存在高偏差bias,怎么辦?(說明模型欠擬合)
A. 減少模型特征數量
B. 增加模型特征數量 right
C. 增加樣本數量
二元分類中,閾值為0.5,大於0.5為正例樣本,小於0.5為負例樣本,將閾值調整為0.6,准確率、召回率等如何變化?
- 解釋,閾值為0.6,則正例樣本數量減少。
點擊率預測是屬於正負樣本不均衡的問題,例如點擊占99%,未點擊占1%。 在這種不平衡的數據集上建模,訓練樣本的正確率達到了99%,是否需要繼續優化模型?
- 需要。
