1. 程式人生 > >機器學習(貝葉斯,K-means,ROC,AUC)

機器學習(貝葉斯,K-means,ROC,AUC)

決策 曲線 輸入數據 初始 分享 是否 ensemble 並不是 線性不可分

申明:因為看的這個課老師講的有點亂,課程也有的章節少那麽幾小節。所以對一些東西沒理解透徹,而且有些亂。

所以,望理解,等以後學的更深刻了再回來修改。

1.ROC與AOC

ROC與AUC

技術分享圖片


ROC:橫軸False 縱軸TRUE
理想情況下(0,1)達不到 最完美的情況
每一個Threshold都可以判斷出來TPR,FPR
比如Threshold最大時,TP=FP=0對應於原點。即對應的都是負樣本
當Threadhold最小時,TN,FN都為0,對應於(1,1)點,即都是正樣本
(1,0)點是最糟糕的點,因為他避開了所有的正確答案
(0,0)點實際上分類器預測的所有樣本都是負樣本。因為positive全為01,所以只有Not positive


(1,1)實際上分類器預測的所有樣本都是正樣本 因為只有positive
對於y=x上的點,這條對角線上的點其實表示的是一個采用隨機猜想策略的分類器的結果,表示該分類器對於一半的樣本猜測其為正樣本,另一半為負樣本。
AUC被定義為曲線下的面積,AUC在0.5到1之間
(之所以大於0.5是因為幾乎不存在一個模型還不如猜的準)曲線面積越大越好即對於分類器而言,AUC越大越好

從sklearn.metrics import roc_auc_score
導入AUC計算,只需要傳入參數是(Y真實值,Y預測值

2.在樹的可視化的時候,由是否滿足根特征的條件分為True和False 樣本數占的越大顏色越深,如果發現大多數數據都屬於一類的話可能會發生過擬合,遇到這種情況的時候,調整決策樹的最主要依賴的特征,把之前最主要依賴的特征直接Drop重做一個決策樹(反正在建造樹的時候也是隨機選擇幾個特征)

技術分享圖片

技術分享圖片

在集成的時候可以針對不同的樹將他們的預測結果取個平均,取平均後再去計算AUC時發現的確比就一顆樹的時候要好許多。

在sklearn.ensemble導入RandomForestClassifier
rf=RandomForestClassifier(
n_estimators=10,10棵樹
max_features=3,
random_state=SEED)直接集成隨機森林,10棵樹

平均分策略並不是很好。在集成時,將效果差的直接Drop,也可以根據不同的貢獻程度分配不同的權重來進行

技術分享圖片

stacking:

第一層選擇好多個弱分類器集成,然後將輸出結果作為第二層的輸入。不過在這裏我不知道第二層的分類器處理第一層輸出數據時到底是如何處理的,很亂,不知道原理,以後來填坑。

不過在選擇數據時,第一層和第二層不能用同樣的數據,但是如果切分開的話又會造成數據量少而影響結果。所以,還是需要用交叉驗證。

還有雖然說stacking是串行,但也可以並行操作 SuperLearner

技術分享圖片

3.貝葉斯

技術分享圖片

其實這個公式可以由條件概率公式證明。P(AB)=P(A|B)P(B)=P(B|A)P(A)很明顯吧..

技術分享圖片

技術分享圖片

對於垃圾郵件的過濾。P(h+)或者P(h-)都是很容易求的,就是指在給定庫中二者的比例。

p(D|h+)表示在非垃圾郵件中包含這個郵件的概率。因為這份郵件也是由若幹單詞構成。擴展式如上。說實話不理解這裏,因為我覺得所謂的擴展和沒擴展一樣的啊...擴展成上式之後再換成樸素貝葉斯,相互之間獨立,所以上式又可以變成P(d1|h+)*P(d2|h+)。。。。這個就很容易得到了吧...就相當於這麽多非垃圾郵件中出現某個單詞的頻率..也是先驗概率。

技術分享圖片

TF-IDF

TF就是詞頻瀏覽,IDF是逆文檔頻率,上面有計算公式。據我目前在學習時所體會到的,這個只是一種將一個個輸入數據轉變為向量,可以根據詞頻,也可以根據這個來計算每個詞對應的數然後構成向量,如下既是引用這個。

技術分享圖片

4.SVM

SVM添加超平面的時候盡量使最靠近分離平面的那個元素與超平面的距離變大。
大部分數據對於分離超平面都沒有作用,能決定分離超平面的,只是已知的訓練數據中很小的一部分。對於超平面有著非常強大影響的數據點也被稱為支持向量。
核函數可以將原始特征映射到另一個高維特征空間中,解決原始空間的線性不可分問題

今天只是簡單的了解,之前只會直接從sklearn中調,現在想學習原理,一起加油吧

5.K-means

聚類概念:
無監督問題,聚類:相似的東西分到一組
評估和調參有些困難

K means
要得到簇的個數 K 聚成幾堆
質心:均值,即向量各維度取平均值 對於每一堆中有一個質心
距離的度量:歐氏距離和余弦相似度
要先對數據進行標準化
優化目標:對於每一個簇,其中每一個樣本到中心點的距離越近越好
根據K,會初始化隨機K個點,然後計算點分別到這K個點的距離來進行分離,
更新質心,將一個簇裏面再算一個質心。
再重新計算距離,進行分類
繼續更新///////////
直到質心基本不變了或者是樣本大致不再變了
劣勢:
K值難確定 復雜度與樣本呈現線性關系 很難發現任意形狀的簇 與初始值也有很大的原因

聚類評估:輪廓系數:
計算一個簇中一個樣本到其他樣本的平均距離
越小越好一個樣本到其他簇的平均距離,希望越大越好
s=b-a/max(a,b)接近1越好

6.PCA

技術分享圖片

技術分享圖片

基變換,所以對於降到K維,我們也是需要找到一個K維向量,然後去和原來的向量做內積運算,即可降維

技術分享圖片

技術分享圖片

在PCA中盡量使投影的方差比較大

技術分享圖片

想要找不相關的也就是垂直的,90度

技術分享圖片

由協方差矩陣可以看出,其對角線為方差,其他是協方差,我們想要讓協方差為0

技術分享圖片

技術分享圖片

技術分享圖片

所以可以實現將協方差對角化

技術分享圖片

原始數據輸入,構造協方差矩陣1/mXX的轉置,求其特征值和特征向量,然後將特征向量從小到大排序。因為最後化為1維,所以選擇最大的即可。對角化的話特征向量組成的矩陣可以使協方差矩陣對角化。對於原數據,只需用選擇出來的特征向量去內積。因為是基,所以模為1.

機器學習(貝葉斯,K-means,ROC,AUC)