機器學習常見問題整理?

機器學習項目流程?

答:理解實際問題,抽象成數學模型(分類、迴歸、聚類)——>獲取數據——>特徵預處理與特徵選擇——>訓練模型與調優——>模型診斷(過擬合、欠擬合等)——>模型融合——>上線運行。

機器學習算法的分類?

答:監督學習、非監督學習、半監督學習、強化學習。

特徵選擇與降維的區別?

答:兩者達到的效果是一樣的,都是試圖去減少特徵數據集中的屬性(特徵)的數目;
但是兩者所採用的方式方法卻不同:降維的方法主要是通過屬性間的關係,如組合不同的屬性得新的屬性,這樣就改變了原來的特徵空間;而特徵選擇的方法是從原始特徵數據集中選擇子集,是一種包含的關係,沒有更改原始的特徵空間。

特徵選擇的方法?

答:主要有三種方法:1)Filter;2)Wrapper;3)Embedded
1、Filter方法(過濾式)

其主要思想是:對每一維的特徵“打分”,即給每一維的特徵賦予權重,這樣的權重就代表着該維特徵的重要性,然後依據權重排序。

主要的方法有:
Chi-squared test(卡方檢驗)
information gain(信息增益)
correlation coefficient scores(相關係數)
2、Wrapper方法(包裹式)

其主要思想是:將子集的選擇看作是一個搜索尋優問題,生成不同的組合,對組合進行評價,再與其他的組合進行比較。這樣就將子集的選擇看作是一個是一個優化問題,這裏有很多的優化算法可以解決,尤其是一些啓發式的優化算法,如GA,PSO,DE,ABC等,詳見“優化算法——人工蜂羣算法(ABC)”,“優化算法——粒子羣算法(PSO)”。

主要方法有:recursive feature elimination algorithm(遞歸特徵消除算法)

3、Embedded方法(嵌入式)

其主要思想是:在模型既定的情況下學習出對提高模型準確性最好的屬性。這句話並不是很好理解,其實是講在確定模型的過程中,挑選出那些對模型的訓練有重要意義的屬性。

主要方法:正則化,如嶺迴歸就是在基本線性迴歸的過程中加入了正則項。

模型診斷的方法?

答:交叉驗證、繪製學習曲線等。

過擬合的調優思路?欠擬合的調優思路?

過擬合就是模型把數據學習的太徹底,以至於把噪聲數據的特徵也學習到了,這樣就會導致在後期測試的時候不能夠很好地識別數據,即不能正確的分類,模型泛化能力太差。
這裏寫圖片描述

解決辦法:

  1. 重新清洗數據
  2. 增加數據量
  3. 降低模型複雜度
  4. 採用正則化方法

欠擬合就是模型沒有很好地捕捉到數據特徵,不能夠很好地擬合數據。

這裏寫圖片描述

解決辦法:

  1. 提供特徵的數量和質量
  2. 增加模型複雜度
  3. 減少正則化參數

哪些機器學習算法不需要做歸一化處理?

答:樹模型(概率模型)不需要,如決策樹、RF;而想Adaboost、SVM、LR、KNN、Kmeans之類的優化問題就需要歸一化。
樹模型不需要歸一化,因爲數值縮放不影響分類點位置。
而對於線性模型,使用梯度下降時,損失等高線是一個橢圓的形狀,如迭代到最低點需要多次迭代,使用歸一化後,等高線就是圓形的,迭代次數較少。

有監督學習和無監督學習的區別

答:有監督學習:對具有標記的訓練樣本進行學習,以儘可能對訓練樣本集外的數據進行分類預測(LR、SVM、RF、GBDT)
無監督學習:對未標記的樣本進行訓練學習,已發現這些樣本中的知識結構(Kmeans,DL)

生成模型和判別模型

生成模型:由數據學習聯合概率分佈P(X,Y),然後求出條件概率分佈P(Y|X)作爲預測的模型,即生成模型:P(Y|X)= P(X,Y)/ P(X)。(樸素貝葉斯)
生成模型可以還原聯合概率分佈p(X,Y),並且有較快的學習收斂速度,還可以用於隱變量的學習
判別模型:由數據直接學習決策函數Y=f(X)或者條件概率分佈P(Y|X)作爲預測的模型,即判別模型。(k近鄰、決策樹)
直接面對預測,往往準確率較高,直接對數據在各種程度上的抽象,所以可以簡化模型

什麼是正則化?

答:所謂正則化就是對參數施加一定的控制,防止參數走向極端。

L1與L2的區別?

答:L1正則化是指權值向量w中各個元素的絕對值之和,通常表示爲||w||
L2正則化是指權值向量w中各個元素的平方和然後再求平方根

L1正則化可以產生稀疏權值矩陣,即產生一個稀疏模型,可以用於特徵選擇
L2正則化可以防止模型過擬合(overfitting);一定程度上,L1也可以防止過擬合

爲什麼L1可以產生稀疏矩陣,L2可以防止過擬合?

答:可以看到,L1-ball 與L2-ball 的不同就在於L1在和每個座標軸相交的地方都有“角”出現,而目標函數的測地線除非位置擺得非常好,大部分時候都會在角的地方相交。注意到在角的位置就會產生稀疏性,例如圖中的相交點就有w1=0,而更高維的時候(想象一下三維的L1-ball 是什麼樣的?)除了角點以外,還有很多邊的輪廓也是既有很大的概率成爲第一次相交的地方,又會產生稀疏性。

相比之下,L2-ball 就沒有這樣的性質,因爲沒有角,所以第一次相交的地方出現在具有稀疏性的位置的概率就變得非常小了。這就從直觀上來解釋了爲什麼L1-regularization 能產生稀疏性,而L2-regularization 不行的原因了。

因此,一句話總結就是:L1會趨向於產生少量的特徵,而其他的特徵都是0,而L2會選擇更多的特徵,這些特徵都會接近於0。Lasso在特徵選擇時候非常有用,而Ridge就只是一種規則化而已。

這裏寫圖片描述

決策樹/Bagging/Radom Forest/Boosting/Adaboost/GBDT 和XGBoost的區別?

答:1.決策樹:從根節點開始,測試待分類項目中相應的特徵屬性,並按其值選擇輸出分支,直到葉子結點,將葉子節點存放的類別作爲決策結果
2.bagging(綜合多個弱分類器的結果得到一個強分類的思想):
1)從樣本中重採用選出n個樣本
2)在所有屬性上對n個樣本建立分建立分類器(ID3,C4.5,CART,SVM,Logistic 迴歸等)
3)重複以上步驟m次(奇數),即獲得了m個分類器
4)將數據放在這m個分類器上,最後根據m個分類器的投票結果決定數據屬於哪類
3.Random Forest(在bagging基礎上做了修改,有限樣本,有限屬性):
1)從樣本集中採用boostrap採用(有放回的採用)選出n個樣本
2)從所有屬性中隨機選擇k個屬性,選擇最佳分割屬性作爲結點,建立CART樹
3)重複以上兩步m次,即建立m棵CART樹
4)這m棵CART形成隨機森林,通過投票結果決定數據屬於哪一類
4.Boosting:(與Bagging類似,循環嵌套,不好的數據重新weight)
通過m次的迭代,每次迭代訓練出不同的弱分類器,然後將這n個弱分類器進行組合,形成一個強分類器。Adaboost是最具代表性的一個算法。
Adaboost屬於Boosting,採用指數損失函數替代原本分類任務的0/1損失函數
GBDT屬於Boosting的優秀代表,對函數殘差近似值進行梯度下降,用CART迴歸樹做學習
器,集成爲迴歸模型
XGBoost屬於Boosting的集大成者,對函數殘差近似值進行梯度下降,迭代時利用了二階梯度信息,集成模型可分類,也可迴歸。由於它可在特徵粒度上進行並行計算,結構風險和工程實現多了很多優化,泛化性能和擴展性能都比GBDT好。

LR和SVM的區別與聯繫?

答:聯繫:1)都處理分類問題,一般都爲線性二分類問題
2)都可加不同的正則化項,如L1,L2

區別:1)LR是參數模型,SVM是非參數模型
2)目標函數:LR採用Logistic loss,SVM採用hinge loss
3)SVM只考慮support vector,也就是和分類最相關的少數點
去學習分類器。而邏輯迴歸通過非線性映射,大大減少離分類平面較遠點的權重,相對提升與分類最相關數據點的權重
4)LR簡單、易於理解,SVm相對複雜,SVM轉換爲對偶問題後,分類只需計算與少數幾個支持向量的距離,在進行復雜核函數計算時,優勢明顯,能大大簡化模型和計算。
5)LR能做的SVM能做,但準確率上有問題,SVM能做的,LR做不了。

什麼是熵?

答:用來表示變量的不確定性

什麼是梯度下降法?

答:如何調整 θ 使得J(θ)(損失函數)取最小值有很多方法,其中有一種是最小二乘法,另一種是梯度下降法。
算法流程如下:
1)首先對θ 賦值,這個值可以是隨機的,也可以是全零向量
2)改變θ 的值,使得J(θ)按梯度下降的方向進行減少,θ =θ-∇θJ
易被初始值的選擇而陷入局部最優。

LDA主題模型?

主題模型的主要思想就是通過對文檔的統計分析找到對應的主題,再有主題來找到在這個主題下會產生詞語的概率。在操作中,文檔和詞都是已知條件而主題模型則是隱變量,基於這一點我們能夠很好的利用EM算法特性。
LDA模型:是一個三層結構的貝葉斯模型,需要超參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章