最近看了周志華老師的書,主要內容如下,涉及到很多機器學習的知識點:
by [2017.12.29 更新 denny shenzhen 59888745@qq.com]
1.線性模型:
- 線性迴歸;多元線性迴歸;廣義線性迴歸;
- 二分類問題,
3.在樣本空間找一個超平面,將不同類別的樣本分開;
2.決策樹:CSL,ID3,C4.5演算法
ID3中根據屬性值分割資料,之後該特徵不會再起作用,這種快速切割的方式會影響演算法的準確率.
C4.5還彌補了ID3中不能處理特徵屬性值連續的問題
CART(Classification and Regression tree)分類迴歸樹是一棵二叉樹,採用二元切分法,每次把資料切成兩份,分別進入左子樹、右子樹.
CART:迴歸任務的決策樹.
GB、GBDT、xgboost 的關係
GB:Gradient boosting:機器學習中的學習演算法的目標是為了優化或者說最小化loss Function,Gradient boosting的思想是迭代生多個(M個)弱的模型,然後將每個弱模型的預測結果相加
GBDT:Gradient boosting Decision Tree(GBDT),GB演算法中最典型的基學習器是決策樹,尤其是CART,正如名字的含義,GBDT是GB和DT的結合
xgboost :Xgboost是GB演算法的高效實現,xgboost中的基學習器除了可以是CART(gbtree)也可以是線性分類器(gblinear)。
RF:隨即森林
策略:分而治之,自根至葉的遞迴過程;在每一箇中間結點尋找一個劃分;
資訊熵:
資訊增益:求特增的資訊增益,再用資訊增益最大的特徵來劃分屬性;
剪枝方法(訓練樣本時,有可能造成分支過多,主動去掉一些分支):是決策樹對付過擬合的主要手段
3. 神經網路:
神經元模型:
啟用函式:sigmoid
多層網路:包含隱含的網路
BP演算法:
BP演算法:誤差逆傳播演算法:是一個迭代學習演算法,在迭代的每一輪中採用廣義感知機;基於梯度下降策略;
標準BP演算法,累積BP演算法;
緩解過擬合的策略:
早停:若訓練誤差連續n輪的變化小於b,則停止訓練;若訓練誤差降低,驗證誤差升高,則停止訓練;
正則化:在誤差目標函式中增加一項描述網路複雜度;
全域性最小,區域性最小:
神經網路的訓練過程可以看作是一個引數尋優的過程;在引數空間中,尋找一組最優引數使得誤差最小;
跳出區域性最小的常見策略:
不同的初始引數;
隨機擾動;
遺傳演算法;
其他常見神經網路:
RBF勁向基函式:分類任務中出bp之外最常用
ART:‘競爭學習’的代表
SOM自組織特徵對映:最常用的聚類方法
etc
最常用的深度學習模型:卷積神經網路CNN
深度學習常用軟體包:caffe,matconvnet,torch
3.支援向量機svm
對偶問題:拉格朗日函式
解的稀疏性:
核函式kernel function:的選擇成為支援向量機效能的關鍵;
e不敏感損失函式;
4.貝葉斯分類器
貝葉斯定理
先驗概力,後驗概力
極大力擬然估算
EM演算法:是估算隱變數的利器;
5.整合學習
通過構建並結合多個學習器來完成學習任務。
同質整合:整合中包含同型別學習器
異質整合:個體學習器由不同的學習演算法生成
整合學習方法:
序列化方法:adaboost,gradientboost,lpboost
並行化方法:bagging
6.聚類:
將樣本資料劃分為多個族;
原型據類:kmeans
1.隨機選取k個點作為族中心
2.將其他樣本點根據與族中心的距離,劃分給最近的族;
3.根新各族的均值向量,將其作為族中心;
4.若所有族中心沒有發生變化,則停止,否則執行2
密度據類:dbscan
層次據類:agnes
-----------------------------
1.用遞迴的視角來看決策樹,根據特徵選擇分支條件,不斷的生成子樹,所有的子陣列成了最後的決策樹。為了防止過擬合,限制模型的複雜度,通常都會通過剪枝(Pruning)來正則化決策樹
例如下面根據回家時間、約會情況
2.熵是隨機變數不確定性的度量,不確定性越大,熵值就越大.
3.正則化概述(Regularization):理解為在最小化loss function 的同時,保證模型的複雜度儘可能的低,防止出現過擬合(overfitting)。 它一方面可用於控制模型的複雜度,提高模型的範化能力;另一方面還可以用於約束模型的特性,例如稀疏、平滑特性等
4.機器學習技法-AdaBoost元演算法:通過組合多個弱分類器(hypothese),構建一個更強大的分類器(hypothese),從而達到“三個臭皮匠賽過諸葛亮”的效果
5.CART相比AdaBoost的效率會高一些,因為前者是“有條件的切”,後者是完全的“橫、豎”。
6.隨機森林(RF):通過Bagging的方式將許多個CART組合在一起,不考慮計算代價,通常樹越多越好.
7.熵是隨機變數不確定性的度量,不確定性越大,熵值就越大。
機器學習效能評估指標
分類: 準確裡accuracy, 精確裡precison, 召回裡recall ROC AUC
迴歸: 平均絕對誤差MAE(Mean Absolute Error)又被稱為 l 1 範數損失(l1-norm loss), 平均平方誤差 MSE(Mean Squared Error)又被稱為 l 2 範數損失(l2-norm loss).
ROC 曲線可以用於評價一個分類器好壞 在邏輯迴歸裡面,我們會設一個閾值,大於這個值的為正類,小於這個值為負類。如果我們減小這個閥值,那麼更多的樣本會被識別為正類。這會提高正類的識別率,但同時也會使得更多的負類被錯誤識別為正類。為了形象化這一變化,在此引入 ROC TPR 代表能將正例分對的概率,FPR 代表將負例錯分為正例的概率.
AUC:定義為ROC曲線下的面積
------------------------------------------------
|
優點/場合 |
缺點 |
樸素貝葉斯 |
對小規模的資料表現很好,適合多分類任務,適合增量式訓練 |
對輸入資料的表達形式很敏感 |
決策樹 是選擇一個屬性進行分枝 |
計算量簡單,可解釋性強,比較適合處理有缺失屬性值的樣本,能夠處理不相關的特徵 |
容易過擬合(後續出現了隨機森林,減小了過擬合現象); |
logsitc迴歸 是用最大似然估計來學習的用於分類 |
分類時計算量非常小,速度很快,儲存資源低 |
容易欠擬合,一般準確度不太高, 只能處理兩分類問題 |
線性回歸 用於迴歸 |
實現簡單,計算簡單 |
不能擬合非線性資料 |
KNN |
可以用來做分類也可以用來做迴歸, 準確度高,對資料沒有假設 |
計算量大, 需要大量的記憶體 |
參考大神 陳天奇的blog:http://homes.cs.washington.edu/~tqchen
http://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
學習資料:
1. 特徵工程技術和方法概括總結:http://blog.csdn.net/jasonding1354/article/details/47171115
2. 乾貨:結合Scikit-learn介紹幾種常用的特徵選擇方法:http://dataunion.org/14072.html
3. 參考資料2的英文原版:http://machinelearningmastery.com/discover-feature-engineering-how-to-engineer-features-and-how-to-get-good-at-it/
4. 機器學習之特徵工程:http://www.csuldw.com/2015/10/24/2015-10-24%20feature%20engineering/
5. 特徵提取與特徵選擇: http://lanbing510.info/2014/10/22/Feature-Extraction-Selection.html
6. PCA與LDA:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
7。http://www.cnblogs.com/wxquare/p/5484636.html ml 學習筆記
8。https://class.coursera.org/ntumltwo-002/lecture