[機器學習筆記] 機器學習知識要點彙總

機器學習知識要點彙總

 

1.  機器學習的常見分類和常用的算法有哪些?

將機器學習分爲四種,分別是監督學習、無監督學習、半監督學習和增強學習。

(1)監督學習(Supervised Learning):是指每個進入算法的訓練數據樣本都有對應的期望值也就是目標值,進行機器學習的過程實際上就是特徵值和目標隊列映射的過程;通過過往的一些數據的特徵以及最終結果來進行訓練的方式就是監督學習法;監督學習算法的訓練數據源需要由特徵值以及目標隊列兩部分組成。

 

因爲監督學習依賴於每個樣本的打標,可以得到每個特徵序列映射到的確切的目標值是什麼,所以常用於迴歸以及分類場景。常見的監督學習算法如下表所示:

 

算法

具體包括

分類算法

 

K近鄰(k-Nearest Neighbor,KNN)、樸素貝葉斯(Naive Bayesian algorithm)、決策樹(Decision Tree)、隨機森林(Random forest)、GBDT(GradientBoostingDecisionTree, 梯度提升迭代決策樹)和支持向量機(Support Vector Machine, SVM)等

迴歸算法

 

邏輯迴歸(Logistic Regressive)、線性迴歸(Linear Regression)等

 

監督學習的一個問題就是獲得目標值的成本比較高。

 

(2)無監督學習(Unsupervised Learning):就是指訓練樣本不依賴於打標數據的機器學習算法,它主要是用來解決一些聚類場景的問題。常見的無監督學習算法如下表所示:

 

算法

具體包括

聚類算法

 

K-Means(k-means clustering algorithm,k均值聚類算法)、DBSCAN(聚類算法,Density-Based Spatial Clustering of Applications wit)等

 

推薦算法

 

協同過濾(Collaborative Filtering)等

 

 

相較於監督學習,無監督學習的一大好處就是不依賴於打標數據。

 

(3)半監督學習(Semi-supervised Learning):通過對樣本的部分打標來進行機器學習算法的使用,很多半監督學習算法都是監督學習算法的變形。

 

(4)強化學習(Reinforcement Learning):是一種比較複雜的機器學習種類, 強調的是系統與外界不斷地交互,獲得外界的反饋,然後決定自身的行爲。

 

綜上,監督學習主要解決的是分類和迴歸的場景,無監督學習主要解決聚類場景,半監督學習解決的是一些打標數據比較難獲得的分類場景,強化學習主要是針對流程中不斷需要推理的場景。具體的分類如下表所示:

 

算法

具體包括

監督學習

邏輯迴歸、K 近鄰、樸素貝葉斯、隨機森林、支持向量機

無監督學習

K-means、DBSCAN、協同過濾、LDA

半監督學習

標籤傳播

強化學習

隱馬爾可夫

 

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

監督學習(supervised learning):通過已有的訓練樣本(即已知數據以及其對應的輸出)來訓練,從而得到一個最優模型,再利用這個模型將所有新的數據樣本映射爲相應的輸出結果,對輸出結果進行簡單的判斷從而實現分類的目的,那麼這個最優模型也就具有了對未知數據進行分類的能力。

無監督學習(unsupervised learning):我們事先沒有任何訓練數據樣本,需要直接對數據進行建模。

有監督學習:對具有標記的訓練樣本進行學習,以儘可能對訓練樣本集外的數據進行分類預測。(LR,SVM,BP,RF,GBDT)

 

3.  過擬合產生的原因及其解決方法

如果一味的去提高訓練數據的預測能力,所選模型的複雜度往往會很高,這種現象稱爲過擬合。所表現的就是模型訓練時候的誤差很小,但在測試的時候誤差很大。

產生的原因:

(1)過擬合原因

  •     樣本數據的問題。
  •     樣本數量太少
  •     抽樣方法錯誤,抽出的樣本數據不能有效足夠代表業務邏輯或業務場景。比如樣本符合正態分佈,卻按均分分佈抽樣,或者樣本數據不能代表整體數據的分佈
  •     樣本里的噪音數據干擾過大

(2) 模型問題

  •     模型複雜度高 、參數太多
  •     決策樹模型沒有剪枝
  •     權值學習迭代次數足夠多(Overtraining),擬合了訓練數據中的噪聲和訓練樣例中沒有代表性的特徵.

解決方法:

(1)樣本數據方面:

  •     增加樣本數量,對樣本進行降維,添加驗證數據
  •     抽樣方法要符合業務場景
  •     清洗噪聲數據

(2)模型或訓練問題

  •     控制模型複雜度,優先選擇簡單的模型,或者用模型融合技術。
  •     利用先驗知識,添加正則項。L1正則更加容易產生稀疏解、L2正則傾向於讓參數w趨向於0.
  •     交叉驗證
  •     不要過度訓練,最優化求解時,收斂之前停止迭代。
  •     決策樹模型沒有剪枝
  •     權值衰

 

4.  線性分類器與非線性分類器的區別以及優劣

如果模型是參數的線性函數,並且存在線性分類面,那麼就是線性分類器,否則不是。

常見的線性分類器有:LR,貝葉斯分類,單層感知機、線性迴歸

常見的非線性分類器:決策樹、RF、GBDT、多層感知機SVM兩種都有(看線性核還是高斯核)

線性分類器速度快、編程方便,但是可能擬合效果不會很好

非線性分類器編程複雜,但是效果擬合能力強

 

5.  LR(Logistics Regression)與Liner SVM區別

Linear SVM和LR都是線性分類器

Linear SVM不直接依賴數據分佈,分類平面不受一類點影響;LR則受所有數據點的影響,如果數據不同類別strongly unbalance一般需要先對數據做balancing。

Linear SVM依賴數據表達的距離測度,所以需要對數據先做normalization(歸一化);LR不受其影響Linear SVM依賴penalty的係數,實驗中需要做validation

n Linear SVM和LR的performance都會收到outlier的影響,其敏感程度而言,誰更好很難下明確結論。

 

6.  常見的分類算法

SVM、神經網絡、決策樹、隨機森林、邏輯迴歸、KNN、貝葉斯

 

7.  SVM、LR、決策樹的對比

模型複雜度:SVM支持核函數,可處理線性非線性問題;LR模型簡單,訓練速度快,適合處理線性問題;決策樹容易過擬合,需要進行剪枝。

損失函數:SVM hinge loss; LR L2正則化; adaboost 指數損失。

數據敏感度:SVM添加容忍度對outlier不敏感,只關心支持向量,且需要先做歸一化;LR對遠點敏感

數據量:數據量大就用LR,數據量小且特徵少就用SVM非線性核。

 

8.  聚類算法中的距離度量

聚類算法中的距離度量一般用閩科夫斯基距離,在p取不同的值下對應不同的距離,例如p=1的時候對應曼哈頓距離,p=2的情況下對應歐式距離,p=inf的情況下變爲切比雪夫距離,還有jaccard距離,冪距離(閩科夫斯基的更一般形式),餘弦相似度,加權的距離,馬氏距離(類似加權)作爲距離度量需要滿足非負性,同一性,對稱性和直遞性,閩科夫斯基在p>=1的時候滿足讀來那個性質,對於一些離散屬性例如{飛機,火車,輪船}則不能直接在屬性值上計算距離,這些稱爲無序屬性,可以用VDM(ValueDiffrence Metrix),屬性u上兩個離散值a,b之間的VDM距離定義爲

其中表示在第i個簇中屬性u上a的樣本數,樣本空間中不同屬性的重要性不同的時候可以採用加權距離,一般如果認爲所有屬性重要性相同則要對特徵進行歸一化。一般來說距離需要的是相似性度量,距離越大,相似度越小,用於相似性度量的距離未必一定要滿足距離度量的所有性質,例如直遞性。比如人馬和人,人馬和馬的距離較近,然後人和馬的距離可能就很遠。

 

9.  解釋貝葉斯公式和樸素貝葉斯分類求解方法

貝葉斯公式

最小化分類錯誤的貝葉斯最優分類器等價於最大化後驗概率

基於貝葉斯公式來估計後驗概率的主要困難在於,條件概率是所有屬性上的聯合概率,難以從有限的訓練樣本直接估計得到。樸素貝葉斯分類器採用了屬性條件獨立性假設,對於已知的類別,假設所有屬性相互獨立。這樣,樸素貝葉斯分類則定義爲:如果有足夠多的獨立同分布樣本,那麼可以根據每個類中的樣本數量直接估計出來。

 

在離散情況下先驗概率可以利用樣本數量估計或者離散情況下根據假設的概率密度函數進行最大似然估計。樸素貝葉斯可以用於同時包含連續變量和離散變量的情況。如果直接基於出現的次數進行估計,會出現一項爲0而乘積爲0的情況,所以一般會用一些平滑的方法,例如拉普拉斯修正。

 

10.  爲什麼一些機器學習模型需要對數據進行歸一化?

http://blog.csdn.net/xbmatrix/article/details/56695825

歸一化化就是要把你需要處理的數據經過處理後(通過某種算法)限制在你需要的一定範圍內。

1)歸一化後加快了梯度下降求最優解的速度。等高線變得顯得圓滑,在梯度下降進行求解時能較快的收斂。如果不做歸一化,梯度下降過程容易走之字,很難收斂甚至不能收斂

2)把有量綱表達式變爲無量綱表達式, 有可能提高精度。一些分類器需要計算樣本之間的距離(如歐氏距離),例如KNN。如果一個特徵值域範圍非常大,那麼距離計算就主要取決於這個特徵,從而與實際情況相悖(比如這時實際情況是值域範圍小的特徵更重要)

3) 邏輯迴歸等模型先驗假設數據服從正態分佈。

歸一化的類型有:線性歸一化、標準差歸一化、非線性歸一化

 

11.  歸一化和標準化的區別?

歸一化

1)把數據變成(0.1)之間的小數

2)把有量綱表達式變成無量綱表達

常見的有線性轉換、對數函數轉換、反餘切函數轉換等

標準化:

數據的標準化(normalization)是將數據按比例縮放,使之落入一個小的特定區間。在某些比較和評價的指標處理中經常會用到,去除數據的單位限制,將其轉化爲無量綱的純數值,便於不同單位或量級的指標能夠進行比較和加權。

1 ) 最小-最大規範化(線性變換)

y=((x-MinValue) / (MaxValue-MinValue))(new_MaxValue-new_MinValue)+new_minValue

2)z-score規範化(或零-均值規範化)

y=(x-X的平均值)/X的標準差

3)小數定標規範化:通過移動X的小數位置來進行規範化

y= x/10的j次方 (其中,j使得Max(|y|) <1的最小整數

4).對數Logistic模式:

新數據=1/(1+e^(-原數據))

5)模糊量化模式

新數據=1/2+1/2sin[派3.1415/(極大值-極小值)

 

12.  特徵向量的缺失值處理

1、缺失值較多,直接將該特徵捨棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。

2. 缺失值較少,其餘的特徵缺失值都在10%以內,我們可以採取很多的方式來處理:

1) 把NaN直接作爲一個特徵,假設用0表示;

2) 用均值填充;

3) 用隨機森林等算法預測填充

 

13.  決策樹的停止條件

 直到每個葉子節點都只有一種類型的記錄時停止,(這種方式很容易過擬合)。

 另一種時當葉子節點的記錄樹小於一定的閾值或者節點的信息增益小於一定的閾值時停止

 

14. GBDT 和隨機森林的區別?

隨機森林採用的是bagging的思想,bagging又稱爲bootstrap aggreagation,通過在訓練樣本集中進行有放回的採樣得到多個採樣集,基於每個採樣集訓練出一個基學習器,再將基學習器結合。

隨機森林在對決策樹進行bagging的基礎上,在決策樹的訓練過程中引入了隨機屬性選擇。傳統決策樹在選擇劃分屬性的時候是在當前節點屬性集合中選擇最優屬性,而隨機森林則是對結點先隨機選擇包含k個屬性的子集,再選擇最有屬性,k作爲一個參數控制了隨機性的引入程度。

另外,GBDT訓練是基於Boosting思想,每一迭代中根據錯誤更新樣本權重,因此是串行生成的序列化方法,而隨機森林是bagging的思想,因此是並行化方法。

 

15.  監督學習一般使用兩種類型的目標變量

標稱型和數值型

標稱型:標稱型目標變量的結果只在有限目標集中取值,如真與假(標稱型目標變量主要用於分類)

數值型:數值型目標變量則可以從無限的數值集合中取值,如0.100,42.001等 (數值型目標變量主要用於迴歸分析)

 

16.  如何確定K-mean中的值?

給定一個合適的類簇指標,比如平均半徑或直徑,只要我們假設的類簇的數目等於或者高於真實的類簇的數目時,該指標上升會很緩慢,而一旦試圖得到少於真實數目的類簇時,該指標會急劇上升。類簇的直徑是指類簇內任意兩點之間的最大距離。類簇的半徑是指類簇內所有點到類簇中心距離的最大值。

 

17.  用貝葉斯機率說明Dropout的原理

Dropout 是一種模型選擇技術,其旨在避免在訓練過程中出現過擬合現象,Dropout的基本做法是在給定概率 p 的情況下隨機移除輸入數據 X 的維度。因此,探討一下其如何影響潛在損失函數和最優化問題是有啓發性的。

 

18.  何爲共線性, 跟過擬合有啥關聯?

共線性:多變量線性迴歸中,變量之間由於存在高度相關關係而使迴歸估計不準確。

共線性會造成冗餘,導致過擬合。

解決方法:排除變量的相關性/加入權重正則

 

(更新中……)

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