机器学习问题总结(01)
文章目錄
- 1.請描述推薦系統中協同過濾算法CF的原理
- 2.請描述決策樹的原理、過程、終止條件,以及如何防止過擬合
- 2.1決策樹生成算法
- 2.2 剪枝處理(防止過擬合)
- 2.3 停止條件
- 2.4 棵決策樹的生成過程
- 2.5 決策樹的損失函數
- 3.請描述K-means的原理,說明選擇聚類中心的方法
- 3.1 算法流程圖
- 3.2 聚類中心初始化問題
- 4.請列舉分類模型和回歸模型的區別
- 5.請列舉生成模型與判別模型的區別
- 6.梯度下降法求解最優化問題的原理與步驟
- 7.請列舉Random Forest和GBDT的區別
- 8.什么是欠擬合、過擬合?避免過擬合有哪些途徑?
- 8.1 欠擬合:
- 8.2 過擬合:
- 9.邏輯回歸的目標函數和優化方法
- 10.講下 擬牛頓法
- 10.1 常見的優化方法
- 1.梯度下降法
- **批量梯度下降法(Batch Gradient Descent,BGD)**
- **隨機梯度下降(Stochastic Gradient Descent,SGD)**
- 2.牛頓法
- 3.**擬牛頓法(Quasi-Newton Methods)**
- 4.共軛梯度法(Conjugate Gradient)
- 5.啟發式優化方法
- 11.講下隨機森林或者GDBT
- 11.RF、GBDT的區別
- 12.隨機森林怎么取最后的結果?
- 13.隨機森林是怎樣避免ID3算法信息增益的缺點的?
- 14.為什么deep learning 能抑制梯度消失或者爆炸的問題?
1.請描述推薦系統中協同過濾算法CF的原理
協同過濾算法,主要的功能是預測和推薦。
通過對用戶歷史行為數據的挖掘發現用戶的偏好,基于不同的偏好對用戶進行群組劃分并推薦品味相似的商品。分為兩大類:
- 一類為基于memory的(Memory-based),包括 基于用戶的協同過濾算法(user-based collaboratIve filtering) 基于物品的協同過濾算法(item-based collaborative filtering) 兩種方法都是將用戶的所有數據讀入到內存中進行運算的;
- 另一類為基于Model的(Model-based),包括 Aspect Model,pLSA,LDA,聚類,SVD,Matrix Factorization等這種方法訓練過程比較長,但是訓練完成后,推薦過程比較快
一般步驟
- 1.收集數據
- 2.找到相似的用戶和物品
- 3.進行推薦
簡單的說就是:人以類聚,物以群分。
2.請描述決策樹的原理、過程、終止條件,以及如何防止過擬合
決策樹(decision tree)是一種基本的分類與回歸方法,主要用于分類。可以看做是if-then規則的集合。
- 優點:分類速度快,模型具有可讀性
- 決策樹學習的3個步驟:特征選擇、決策樹生成、決策樹修剪
- 決策樹算法:ID3、C4.5、CART
2.1決策樹生成算法
熵:對平均不確定性的度量
H(X)=?∑x?>XP(x)logP(x)H(X) = -\sum_{x->X}P(x)logP(x)H(X)=?∑x?>X?P(x)logP(x)
平均互信息:在得知特征X后,使得對標簽Y的信息的不確定性減少的程度
I(X,Y)=∑x?>X,y?>YP(X,Y)logP(X,Y)/P(X)P(Y)I(X,Y)=\sum_{x->X,y->Y}P(X,Y)logP(X,Y)/P(X)P(Y)I(X,Y)=∑x?>X,y?>Y?P(X,Y)logP(X,Y)/P(X)P(Y)
決策樹的基本思想是以信息熵為度量,構造一顆熵值下降最快的樹,其中葉子節點的熵值為0.
ID3、C4.5、CART
- ID3算法利用信息增益為準則,來選擇劃分屬性,對取值數目較多的屬性有所偏好(如西瓜編號屬性),容易過擬合,不具有泛化能力,對新樣本的預測能力差(特征A對于數據集D的信息增益:g(D,A) = H(D) - H(D|A))
- C4.5算法利用信息增益率選擇屬性,但并不是直接選擇信息增益率最大的候選劃分屬性,而是使用啟發式,先從候選劃分屬性中找出信息增益高于平均水平的屬性,再從中選擇增益率最高的(信息增益率:gr(D,A) = g(D , A) / H(A))
- CART使用“基尼系數(可以衡量特征和標簽之間的差異性)”來選擇劃分屬性,從數據集隨機抽取兩個樣本,類別標記不一致的概率,Gini(D)越小,數據集的純度越高(Gini§ = ∑k=1KPk(1?Pk)\sum_{k=1}^KP_k(1-P_k)∑k=1K?Pk?(1?Pk?),其中PkP_kPk?為第K個類別的概率)
2.2 剪枝處理(防止過擬合)
- 剪枝是防止過擬合的主要手段
- 有預剪枝、后剪枝
- 預剪枝:根據一些原則及早的停止樹增長
- 如樹的深度達到用戶所要的深度
- 節點中的樣本個數少于用戶指定的個數
- 不存度指標下降的最大幅度小于用戶指定的幅度等
- 后剪枝:通過在完全生長的樹上剪去分枝實現的
- 通過刪除節點的分支來剪去樹節點
- 可以使用的后剪枝方法有多種,比如:代價復雜性剪枝、最小誤差剪枝、悲觀誤差剪枝等等
- 預剪枝:根據一些原則及早的停止樹增長
預剪支
- 預剪枝的核心問題是如何事先指定樹的最大深度
- 如果設置的最大深度不恰當,那么將會導致過于限制樹的生長,使決策樹的表達式規則趨于一般,不能更好地對新數據集進行分類和預測。
后剪枝
- 后剪枝操作是一個邊修剪邊檢驗的過程
- 一般規則標準是:在決策樹的不斷剪枝操作過程中,將原樣本集合或新數據集合作為測試數據,檢驗決策樹對測試數據的預測精度,并計算出相應的錯誤率
- 如果剪掉某個子樹后的決策樹對測試數據的預測精度或其他測度不降低,那么剪掉該子樹(貪心算法)
預剪枝、后剪枝總結
- 預剪枝:事先指定樹的最大深度(具有局限性)
- 后剪枝:邊修剪邊檢驗,如果修剪后預測精度不下降,則減掉
2.3 停止條件
- 沒有屬性可以分裂
- 直到數據集不可分則停止決策樹停止生長
2.4 棵決策樹的生成過程
- 特征選擇:特征選擇是指從訓練數據中眾多的特征中選擇一個特征作為當前節點的分裂標準,如何選擇特征有著很多不同量化評估標準標準,從而衍生出不同的決策樹算法。
- 決策樹生成: 根據選擇的特征評估標準,從上至下遞歸地生成子節點,直到數據集不可分則停止決策樹停止生長。 樹結構來說,遞歸結構是最容易理解的方式。
- 剪枝:決策樹容易過擬合,一般來需要剪枝,縮小樹結構規模、緩解過擬合。剪枝技術有預剪枝和后剪枝兩種。
2.5 決策樹的損失函數
決策樹的目的是構建一顆熵最小的樹,所以決策樹的損失函數包括兩部分,一個部分是衡量這棵樹的熵大小的,另一個是對樹的復雜度約束的正則化項。其中對樹熵值的衡量計算是通過計算所有的葉子節點的熵乘以葉子節點的數目作為權重的和,正則化項是對每個葉子節點樣本數目的一個約束。
其中TTT為葉子節點的個數,NtN_tNt?為第t個葉子節點的樣本的數目,Ht(T)H_t(T)Ht?(T)是第t個葉子節點的經驗熵,aaa是對葉子節點的總樣本數的一個懲罰因子。
3.請描述K-means的原理,說明選擇聚類中心的方法
K-means是一種聚類算法(區別于分類算法),屬于無監督
K-means的原理是通過多次的迭代,使得各個樣本點到其所屬簇的質心的距離平方和最小。(類間距最大)
3.1 算法流程圖
- 從樣本中選取K個點,初始化K個簇的質心;
- 分別計算各個樣本到不同質心的相異度,將樣本歸到相異度最小的質心所屬的簇;
- 根據聚類結果,重新計算質心;
- 不斷重復上述過程,直到精度達到要求。
3.2 聚類中心初始化問題
- 隨機選擇K個點作為初始的類簇中心點,該方法具有很強的不確定性
- 選擇批次距離盡可能遠的K個點,首先隨機選擇一個點作為第一個初始類簇中心點,然后選擇距離該點最遠的那個點作為第二個初始類簇中心點,然后再選擇距離前兩個點的最近距離最大的點作為第三個初始類簇的中心點,以此類推,直至選出K個初始類簇中心點。(K-means++)
- 選用層次聚類或者Canopy算法進行初始聚類,然后利用這些類簇的中心點作為KMeans算法初始類簇中心點。
4.請列舉分類模型和回歸模型的區別
定量輸出稱為回歸,或者說是連續變量預測;
定性輸出稱為分類,或者說是離散變量預測。
舉個例子:
預測明天的氣溫是多少度,這是一個回歸任務;
預測明天是陰、晴還是雨,就是一個分類任務。
5.請列舉生成模型與判別模型的區別
- 生成模型是通過學習數據集的聯合概率密度分布,然后通過貝葉斯公式得出后驗概率,通過最大化后驗概率進行預測。生成式模型在學習過程中是一個一個類別單獨學習的。
- 判別式模型是直接對模型的分界面進行學習,然后通過學習到的分界面對新的數據運行預測。
6.梯度下降法求解最優化問題的原理與步驟
函數的梯度是函數下降/上升的最大方向。
如果要對一個目標函數做最小化
- 每次只需將目標函數對各個parameters 做偏導,得到梯度
- 然后用當前parameter加上負梯度乘以一個步長進行更新。
- 步長太大可能跳出局部最優點。
常用的梯度下降方法有batch gd(使用全部數據計算梯度),SGD(對每個sample計算梯度)。 SGD計算更快,并且能取得不錯的效果,而且有時能跳出局部最優,去explore其他更優 的極值點
7.請列舉Random Forest和GBDT的區別
Random Forest 是bootstrap(bagging)的方法的tree based ensemble
- 即有放回的對訓練數據采樣,分別訓練decision tree,
- 最后用簡單的投票方式作為最終結果。
使用了兩次隨機,分別是樣本的隨機和特征的隨機,所以叫隨機森林。
GBDT 是 boosting 的代表
- 每次訓練都是使用所有數據,但是認為最終結果是多顆樹的疊加
- 訓練完一棵樹以后,將結果的殘差作為下一棵樹的訓練目標。
- 在這個過程中還使用了梯度近似殘差的方法。
8.什么是欠擬合、過擬合?避免過擬合有哪些途徑?
8.1 欠擬合:
指的是模型對數據的表征能力不夠,在性能指標上的表現就是訓練集和測試集上的表現都不好。
解決方法:
- 增加新的特征
- 增加模型的復雜度
- 減少正則化的懲罰因子
8.2 過擬合:
模型對于訓練數據擬合呈過當的情況,反映到評估指標上 ,就是模型在訓練集上的表現很好,但在測試集和新數據上的表現較差
解決方法
- 從數據入手,獲取更多的訓練數據,可以直接增加數據也可以通過人工方法合成更多的數據,因為更多的樣本能夠讓模型學習到更多更高效的特征 ,并減小噪聲的影響
- 從模型入手,降低模型的復雜度,適當降低模型復雜度可以避免模型擬合過多的采樣噪聲。
- 正則化方法,給模型加上一定的正則約束,L1和L2正則化
- 采用集成學習方法
9.邏輯回歸的目標函數和優化方法
目標函數:服從二項分布的似然函數
優化方法:優化常用的是梯度下降法
10.講下 擬牛頓法
- 對比了梯度下降法只是泰勒的一階展開式
- 而牛頓法是泰勒的二階展開式
10.1 常見的優化方法
1.梯度下降法
梯度下降法是最早最簡單,也是最為常用的最優化方法。梯度下降法實現簡單,當目標函數是凸函數時,梯度下降法的解是全局解。一般情況下,其解不保證是全局最優解,梯度下降法的速度也未必是最快的。梯度下降法的優化思想是用當前位置負梯度方向作為搜索方向,因為該方向為當前位置的最快下降方向,所以也被稱為是”最速下降法“。最速下降法越接近目標值,步長越小,前進越慢。
梯度下降法的缺點:
- 靠近極小值時收斂速度減慢,如下圖所示;
- 直線搜索時可能會產生一些問題;**
- 可能會“之字形”地下降**
批量梯度下降法(Batch Gradient Descent,BGD)
對于批量梯度下降法,樣本個數m,x為n維向量,一次迭代需要把m個樣本全部帶入計算,迭代一次計算量為m*n2n^2n2
隨機梯度下降(Stochastic Gradient Descent,SGD)
隨機梯度下降是通過每個樣本來迭代更新一次,如果樣本量很大的情況(例如幾十萬),那么可能只用其中幾萬條或者幾千條的樣本,就已經將theta迭代到最優解了,對比上面的批量梯度下降,迭代一次需要用到十幾萬訓練樣本,一次迭代不可能最優,如果迭代10次的話就需要遍歷訓練樣本10次。但是,SGD伴隨的一個問題是噪音較BGD要多,使得SGD并不是每次迭代都向著整體最優化方向。
批量梯度下降—最小化所有訓練樣本的損失函數,使得最終求解的是全局的最優解,即求解的參數是使得風險函數最小,但是對于大規模樣本問題效率低下。
隨機梯度下降—最小化每條樣本的損失函數,雖然不是每次迭代得到的損失函數都向著全局最優方向, 但是大的整體的方向是向全局最優解的,最終的結果往往是在全局最優解附近,適用于大規模訓練樣本情況。
2.牛頓法
牛頓法是一種在實數域和復數域上近似求解方程的方法。方法使用函數_f _(x)的泰勒級數的前面幾項來尋找方程_f _(x) = 0的根。牛頓法最大的特點就在于它的收斂速度很快
關于牛頓法和梯度下降法的效率對比:
從本質上去看,牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到一個盆地的最底部,梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之后,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。(牛頓法目光更加長遠,所以少走彎路;相對而言,梯度下降法只考慮了局部的最優,沒有全局思想。)
牛頓法的優缺點總結:
- 優點:二階收斂,收斂速度快;
- 缺點:牛頓法是一種迭代算法,每一步都需要求解目標函數的Hessian矩陣的逆矩陣,計算比較復雜。
3.擬牛頓法(Quasi-Newton Methods)
**擬牛頓法的本質思想是改善牛頓法每次需要求解復雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來近似Hessian矩陣的逆,從而簡化了運算的復雜度。**擬牛頓法和最速下降法一樣只要求每一步迭代時知道目標函數的梯度。通過測量梯度的變化,構造一個目標函數的模型使之足以產生超線性收斂性。這類方法大大優于最速下降法,尤其對于困難的問題。另外,因為擬牛頓法不需要二階導數的信息,所以有時比牛頓法更為有效。如今,優化軟件中包含了大量的擬牛頓算法用來解決無約束,約束,和大規模的優化問題。
4.共軛梯度法(Conjugate Gradient)
共軛梯度法是介于最速下降法與牛頓法之間的一個方法,它僅需利用一階導數信息,但克服了最速下降法收斂慢的缺點,又避免了牛頓法需要存儲和計算Hesse矩陣并求逆的缺點,共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優化最有效的算法之一。 在各種優化算法中,共軛梯度法是非常重要的一種。其優點是所需存儲量小,具有步收斂性,穩定性高,而且不需要任何外來參數。
5.啟發式優化方法
啟發式方法指人在解決問題時所采取的一種根據經驗規則進行發現的方法。其特點是在解決問題時,利用過去的經驗,選擇已經行之有效的方法,而不是系統地、以確定的步驟去尋求答案。啟發式優化方法種類繁多,包括經典的模擬退火方法、遺傳算法、蟻群算法以及粒子群算法等等。
11.講下隨機森林或者GDBT
隨機森林
采用的是bagging的思想,bagging又稱為bootstrap aggreagation,通過在訓練樣本集中進行有放回的采樣得到多個采樣集,基于每個采樣集訓練出一個基學習器,再將基學習器結合。隨機森林在對決策樹進行bagging的基礎上,在決策樹的訓練過程中引入了隨機屬性選擇。傳統決策樹在選擇劃分屬性的時候是在當前節點屬性集合中選擇最優屬性,而隨機森林則是對結點先隨機選擇包含k個屬性的子集,再選擇最優屬性,k作為一個參數控制了隨機性的引入程度。
GBDT
GBDT采用的是boosting的思想,先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分布進行調整,使得基學習器做錯的訓練樣本在后續受到更多的關注,然后基于調整后的樣本分布來訓練下一個基學習器,最后將所有基學習器加權結合。GDBT在傳統的boosting的基礎上,將以決策樹為基函數的提升樹擬合殘差,利用損失函數的負梯度在當前模型的值作為殘差的估計。
11.RF、GBDT的區別
GBDT和隨機森林的相同點:
- 1、都是由多棵樹組成
- 2、最終的結果都是由多棵樹一起決定
GBDT和隨機森林的不同點:
- 1、組成隨機森林的樹可以是分類樹,也可以是回歸樹;而GBDT只由回歸樹組成
- 2、組成隨機森林的樹可以并行生成; 而GBDT只能是串行生成
- 3、對于最終的輸出結果而言,隨機森林采用多數投票等;而GBDT則是將所有結果累加起來,或者加權累加起來
- 4、隨機森林對異常值不敏感,GBDT對異常值非常敏感
- 5、隨機森林對訓練集一視同仁,GBDT是基于權值的弱分類器的集成
- 6、隨機森林是通過減少模型方差提高性能,GBDT是通過減少模型偏差提高性能
12.隨機森林怎么取最后的結果?
對于分類任務,隨機森林是多數表決;
對于回歸任務,隨機森林是簡單平均
13.隨機森林是怎樣避免ID3算法信息增益的缺點的?
首先說下信息增益的過程,決策樹算法本質上就是要找出每一列的最佳劃分以及不同列劃分的先后順序及排布。
- 信息增益的缺點是比較偏向選擇取值多的屬性
- 而gini系數每次都是二分,所以跟屬性多少沒有關系。
14.為什么deep learning 能抑制梯度消失或者爆炸的問題?
一是激活函數不光是只用sigmoid函數,還有 ReLU函數
二是在參數并不是初始化的時候并不是隨機選擇的,而是在前面有自編碼器做了特征特征器,這樣避免了梯度下降法求解陷入局部最優解;
三,深度學習一些手段,權值共享,卷積核,pooling等都能抑制梯度消失問題;
四,二次代價函數換成交叉熵損失函數或者選用softmax+對數似然代價函數的組合
總結
以上是生活随笔為你收集整理的机器学习问题总结(01)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python Cookbook 3rd
- 下一篇: 《Python Cookbook 3rd