【機器學(xué)習(xí)】嘿馬機器學(xué)習(xí)(算法篇)第2篇:樸素貝葉斯,1.4 樸素貝葉斯算法總結(jié)【附代碼文檔】

教程總體簡介:機器學(xué)習(xí)(算法篇 2 ) 1.1 樸素貝葉斯算法簡介 1.2 概率基礎(chǔ)復(fù)習(xí) 學(xué)習(xí)目標 1.概率定義 2.案例:判斷女神對你的喜歡情況 3.聯(lián)合概率、條件概率與相互獨立 4.貝葉斯公式 4.1 公式介紹 4.2 案例計算 4.3 文章分類計算 5 小結(jié) 1.3 案例:商品評論情感分析 1.api介紹 HMM模型 4.7 HMM模型API介紹 1 API的安裝: 2 hmmlearn介紹 3 MultinomialHMM實例 集成學(xué)習(xí)進階 5.1 xgboost算法原理 1 最優(yōu)模型的構(gòu)建方法 2 XGBoost的目標函數(shù)推導(dǎo) 2.1 目標函數(shù)確定 2.2 CART樹的介紹 2.3 樹的復(fù)雜度定義 4 XGBoost與GDBT的區(qū)別 5.4 otto案例介紹 -- Otto Group Product Classification Challenge【xgboost實現(xiàn)】 1 背景介紹 2 思路分析 3 部分代碼實現(xiàn) 5.5 lightGBM 1 寫在介紹lightGBM之前 1.2 AdaBoost算法 1.3 GBDT算法以及優(yōu)缺點 1.4 啟發(fā) 5.8 《絕地求生》玩家排名預(yù)測 1 項目背景 2 數(shù)據(jù)集介紹 3 項目評估方式 5.9 stacking算法基本思想 1 集成學(xué)習(xí)基本復(fù)習(xí) 3 stacking的特點 5.10 住房月租金預(yù)測 2 任務(wù) 3 數(shù)據(jù) 4 評分標準 向量與矩陣的范數(shù) 1.向量的范數(shù) 朗格朗日乘子法 Huber Loss 極大似然函數(shù)取對數(shù)的原因 1 減少計算量 2 利于結(jié)果更好的計算 3 取對數(shù)并不影響最后結(jié)果的單調(diào)性 樸素貝葉斯 2.2 SVM算法api初步使用 支持向量機 2.3 SVM算法原理 1 定義輸入數(shù)據(jù) 2 線性可分支持向量機 3 SVM的計算過程與算法步驟 3.1 推導(dǎo)目標函數(shù) 4 舉例 2.4 SVM的損失函數(shù) 小結(jié) 2.8 案例:數(shù)字識別器 3 案例實現(xiàn) 3.1 初識EM算法 3.2 EM算法介紹 1 極大似然估計 1.1 問題描述 1.2 用數(shù)學(xué)知識解決現(xiàn)實問題 1.3 最大似然函數(shù)估計值的求解步驟 2 EM算法實例描述 EM算法 4.1 馬爾科夫鏈 1 簡介 2 經(jīng)典舉例 4.2 HMM簡介 1 簡單案例 2 案例進階 2.2 問題解決 4.4 前向后向算法評估觀察序列概率 1 回顧HMM問題一:求觀測序列的概率 2 用前向算法求HMM觀測序列的概率 2.1 流程梳理 3 HMM前向算法求解實例 4.5 維特比算法解碼隱藏狀態(tài)序列 1 HMM最可能隱藏狀態(tài)序列求解概述 2 維特比算法概述 4.6 鮑姆-韋爾奇算法簡介 定位 目標 K-近鄰算法 1.3 距離度量 1 歐式距離(Euclidean Distance): 3 切比雪夫距離 (Chebyshev Distance): 4 閔可夫斯基距離(Minkowski Distance): 5 標準化歐氏距離 (Standardized EuclideanDistance): 7 漢明距離(Hamming Distance)【了解】: 邏輯回歸 3.5 ROC曲線的繪制 1 曲線繪制 1.1 如果概率的序列是(1:0.9,2:0.7,3:0.8,4:0.6,5:0.5,6:0.4)。 2 意義解釋 決策樹算法 4.2 決策樹分類原理 1 熵 1.1 概念 2 決策樹的劃分依據(jù)一----信息增益 2.1 概念 5 小結(jié) 5.1 常見決策樹的啟發(fā)函數(shù)比較 5.2 決策樹變量的兩種類型: 5.3 如何評估分割點的好壞? 4.3 cart剪枝 1 為什么要剪枝 2 常用的減枝方法 2.1 預(yù)剪枝 2.2后剪枝: 4.4 特征工程-特征提取 1 特征提取 4.5 決策樹算法api 4.6 案例:泰坦尼克號乘客生存預(yù)測 4 決策樹可視化 4.1 保存樹的結(jié)構(gòu)到dot文件 4.2 網(wǎng)站顯示結(jié)構(gòu) 5.2 Bagging 1 Bagging集成原理 2 隨機森林構(gòu)造過程 3 隨機森林api介紹 4 隨機森林預(yù)測案例 聚類算法 6.3 聚類算法實現(xiàn)流程 1 k-means聚類步驟 6.4 模型評估 1 誤差平方和(SSE \The sum of squares due to error): 2 “肘”方法 (Elbow method) — K值確定 3 輪廓系數(shù)法(Silhouette Coefficient) 4 CH系數(shù)(Calinski-Harabasz Index) 6.5 算法優(yōu)化 1 Canopy算法配合初始聚類 1.2 Canopy算法的優(yōu)缺點 3 二分k-means 4 k-medoids(k-中心聚類算法) 5 Kernel k-means(了解) 6 ISODATA(了解) 7 Mini Batch K-Means(了解) 6.6 特征降維 1 降維 1.2 降維的兩種方式 2 特征選擇 2.1 定義 2.2 方法 2.3 低方差特征過濾 3 主成分分析 3.1 什么是主成分分析(PCA) 3.2 API 3.3 數(shù)據(jù)計算 6.7 案例:探究用戶對物品類別的喜好細分 1 需求 3 完整代碼 6.8 算法選擇指導(dǎo) 正規(guī)方程的另一種推導(dǎo)方式 1.損失表示方式 梯度下降法算法比較和進一步優(yōu)化 1 算法比較 2 梯度下降優(yōu)化算法 維災(zāi)難 1 什么是維災(zāi)難 2 維數(shù)災(zāi)難與過擬合 1.4 k值的選擇 1 K值選擇說明 1.5 kd樹 2 構(gòu)造方法 1.6 案例:鳶尾花種類預(yù)測--數(shù)據(jù)集介紹 2 scikit-learn中數(shù)據(jù)集介紹 2.2 sklearn數(shù)據(jù)集返回值介紹 2.3 查看數(shù)據(jù)分布 2.4 數(shù)據(jù)集的劃分 1.9 練一練 同學(xué)之間討論剛才完成的機器學(xué)習(xí)代碼,并且確保在自己的電腦是哪個運行成功 1.10 交叉驗證,網(wǎng)格搜索 1 什么是交叉驗證(cross validation) 1.2 為什么需要交叉驗證 2 什么是網(wǎng)格搜索(Grid Search) 3 交叉驗證,網(wǎng)格搜索(模型選擇與調(diào)優(yōu))API: 4 鳶尾花案例增加K值調(diào)優(yōu) 1.11 案例2:預(yù)測facebook簽到位置 2.1 線性回歸簡介 1 線性回歸應(yīng)用場景 2 什么是線性回歸 2.2 線性回歸的特征與目標的關(guān)系分析 2.3 數(shù)學(xué):求導(dǎo) 1 常見函數(shù)的導(dǎo)數(shù) 2 導(dǎo)數(shù)的四則運算 3 練習(xí) 4 矩陣(向量)求導(dǎo) [了解] 線性回歸 2.4 線性回歸的損失和優(yōu)化 1 損失函數(shù) 3 梯度下降和正規(guī)方程的對比 2.5 梯度下降法介紹 1 全梯度下降算法(FG) 3 小批量梯度下降算法(mini-batch) 2.7 案例:波士頓房價預(yù)測 3 回歸性能評估 2.8 欠擬合和過擬合 2 原因以及解決辦法 3 正則化 3.1 什么是正則化 2.9 正則化線性模型 1 Ridge Regression (嶺回歸,又名 Tikhonov regularization) 2 Lasso Regression(Lasso 回歸) 3 Elastic Net (彈性網(wǎng)絡(luò)) 3.1 邏輯回歸介紹 2 邏輯回歸的原理 2.2 激活函數(shù) 3 損失以及優(yōu)化 3.1 損失 3.3 案例:癌癥分類預(yù)測-良/惡性乳腺癌腫瘤預(yù)測 3.4 分類評估方法 2 ROC曲線與AUC指標 2.1 TPR與FPR 2.3 AUC指標 2.4 AUC計算API

完整筆記資料代碼:https://gitee.com/yinuo112/AI/tree/master/機器學(xué)習(xí)/嘿馬機器學(xué)習(xí)(算法篇)/note.md

感興趣的小伙伴可以自取哦~


全套教程部分目錄:


部分文件圖片:

樸素貝葉斯

學(xué)習(xí)目標

  • 說明條件概率與聯(lián)合概率
  • 說明貝葉斯公式、以及特征獨立的關(guān)系
  • 記憶貝葉斯公式
  • 知道拉普拉斯平滑系數(shù)
  • 應(yīng)用貝葉斯公式實現(xiàn)概率的計算
  • 會使用樸素貝葉斯對商品評論進行情感分析

1.4 樸素貝葉斯算法總結(jié)

1.樸素貝葉斯優(yōu)缺點

  • 優(yōu)點:

    • 樸素貝葉斯模型發(fā)源于古典數(shù)學(xué)理論,有穩(wěn)定的分類效率
    • 缺失數(shù)據(jù)不太敏感,算法也比較簡單,常用于文本分類
    • 分類準確度高,速度快
  • 缺點:

    • 由于使用了樣本屬性獨立性的假設(shè),所以如果特征屬性有關(guān)聯(lián)時其效果不好
    • 需要計算先驗概率,而先驗概率很多時候取決于假設(shè),假設(shè)的模型可以有很多種,因此在某些時候會由于假設(shè)的先驗?zāi)P偷脑驅(qū)е骂A(yù)測效果不佳;

2.樸素貝葉斯內(nèi)容匯總

2.1 NB的原理

樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設(shè)的分類方法。

  • 對于給定的待分類項<span>xxx</span>
  • 即:在此項出現(xiàn)的條件下各個目標類別出現(xiàn)的概率,將后驗概率最大的類作為<span>xxx</span>

2.2 樸素貝葉斯樸素在哪里?

在計算條件概率分布P(X=x∣Y=c_k)時,NB引入了一個很強的條件獨立假設(shè),即,當Y確定時,X的各個特征分量取值之間相互獨立。

2.3 為什么引入條件獨立性假設(shè)?

為了避免貝葉斯定理求解時面臨的組合爆炸、樣本稀疏問題。

假設(shè)條件概率分為

![image-20190814213224062](

2.4 在估計條件概率P(X∣Y)時出現(xiàn)概率為0的情況怎么辦?

解決這一問題的方法是采用貝葉斯估計。

簡單來說,引入λ,

  • 當λ=0時,就是普通的極大似然估計;
  • 當λ=1時稱為拉普拉斯平滑。

2.5 為什么屬性獨立性假設(shè)在實際情況中很難成立,但樸素貝葉斯仍能取得較好的效果?

  • 人們在使用分類器之前,首先做的第一步(也是最重要的一步)往往是特征選擇,這個過程的目的就是為了排除特征之間的共線性、選擇相對較為獨立的特征
  • 對于分類任務(wù)來說,只要各類別的條件概率排序正確,無需精準概率值就可以得出正確分類;
  • 如果屬性間依賴對所有類別影響相同,或依賴關(guān)系的影響能相互抵消,則屬性條件獨立性假設(shè)在降低計算復(fù)雜度的同時不會對性能產(chǎn)生負面影響。

2.6 樸素貝葉斯與LR的區(qū)別?

1)簡單來說:

  • 區(qū)別一:

    • 樸素貝葉斯是生成模型,

      • 根據(jù)已有樣本進行貝葉斯估計學(xué)習(xí)出先驗概率P(Y)和條件概率P(X|Y),
      • 進而求出聯(lián)合分布概率P(XY),
      • 最后利用貝葉斯定理求解P(Y|X),
    • 而LR是判別模型,

      • 根據(jù)極大化對數(shù)似然函數(shù)直接求出條件概率P(Y|X);

    從概率框架的角度來理解機器學(xué)習(xí);主要有兩種策略:

    第一種:給定 x, 可通過直接建模 P(c |x) 來預(yù)測 c,這樣得到的是"判別式模型" (discriminative models);

    第二種:也可先對聯(lián)合概率分布 P(x,c) 建模,然后再由此獲得 P(c |x), 這樣得到的是"生成式模型" (generative models) ;

    顯然,前面介紹的邏輯回歸、決策樹、都可歸入判別式模型的范疇,還有后面學(xué)到的BP神經(jīng)網(wǎng)絡(luò)

    支持向量機等;

    對生成式模型來說,必然需要考慮![image-20200107010451242](

  • 區(qū)別二:

    • 樸素貝葉斯是基于很強的條件獨立假設(shè)(在已知分類Y的條件下,各個特征變量取值是相互獨立的),
    • 而LR則對此沒有要求;
  • 區(qū)別三:

    • 樸素貝葉斯適用于數(shù)據(jù)集少的情景,
    • 而LR適用于大規(guī)模數(shù)據(jù)集。

2)進一步說明:

前者是生成式模型,后者是判別式模型,二者的區(qū)別就是生成式模型與判別式模型的區(qū)別。

  • 首先,Navie Bayes通過已知樣本求得先驗概率P(Y), 及條件概率P(X|Y), 對于給定的實例,計算聯(lián)合概率,進而求出后驗概率。也就是說,它嘗試去找到底這個數(shù)據(jù)是怎么生成的(產(chǎn)生的),然后再進行分類。哪個類別最有可能產(chǎn)生這個信號,就屬于那個類別。

    • 優(yōu)點: 樣本容量增加時,收斂更快;隱變量存在時也可適用。
    • 缺點:時間長;需要樣本多;浪費計算資源
  • 相比之下,Logistic回歸不關(guān)心樣本中類別的比例及類別下出現(xiàn)特征的概率,它直接給出預(yù)測模型的式子。設(shè)每個特征都有一個權(quán)重,訓(xùn)練樣本數(shù)據(jù)更新權(quán)重w,得出最終表達式。

    • 優(yōu)點:

      • 直接預(yù)測往往準確率更高;
      • 簡化問題;
      • 可以反應(yīng)數(shù)據(jù)的分布情況,類別的差異特征;
      • 適用于較多類別的識別。
    • 缺點

      • 收斂慢;
      • 不適用于有隱變量的情況。

樸素貝葉斯

學(xué)習(xí)目標

  • 說明條件概率與聯(lián)合概率
  • 說明貝葉斯公式、以及特征獨立的關(guān)系
  • 記憶貝葉斯公式
  • 知道拉普拉斯平滑系數(shù)
  • 應(yīng)用貝葉斯公式實現(xiàn)概率的計算
  • 會使用樸素貝葉斯對商品評論進行情感分析

2.1 SVM算法簡介

學(xué)習(xí)目標

  • 了解SVM算法的定義
  • 知道軟間隔和硬間隔

1 SVM算法導(dǎo)入

在很久以前的情人節(jié),大俠要去救他的愛人,但魔鬼和他玩了一個游戲。

魔鬼在桌子上似乎有規(guī)律放了兩種顏色的球,說:

“你用一根棍分開它們?要求:盡量在放更多球之后,仍然適用?!?/p>

![image-20190812210946954](

于是大俠這樣放,干的不錯?

![img](

然后魔鬼,又在桌上放了更多的球,似乎有一個球站錯了陣營。

![img](

怎么辦??

把分解的小棍兒變粗。

SVM就是試圖把棍放在最佳位置,好讓在棍的兩邊有盡可能大的間隙。

![img](

現(xiàn)在即使魔鬼放了更多的球,棍仍然是一個好的分界線。

![img](

然后,在SVM 工具箱中有另一個更加重要的技巧( trick)。 魔鬼看到大俠已經(jīng)學(xué)會了一個trick,于是魔鬼給了大俠一個新的挑戰(zhàn)。

![img](

現(xiàn)在,大俠沒有棍可以很好幫他分開兩種球了,現(xiàn)在怎么辦呢?

當然像所有武俠片中一樣大俠桌子一拍,球飛到空中。然后,憑借大俠的輕功,大俠抓起一張紙,插到了兩種球的中間。

![img](

現(xiàn)在,從魔鬼的角度看這些球,這些球看起來像是被一條曲線分開了。

![img](

再之后,無聊的大人們,把上面的物體起了別名:

球—— 「data」數(shù)據(jù)

棍子—— 「classifier」分類

最大間隙——「optimization」最優(yōu)化

拍桌子——「kernelling」核方法

紙——「hyperplane」超平面

案例來源:[

支持向量機直觀感受:[

2 SVM算法定義

2.1 定義

SVM:SVM全稱是supported vector machine(支持向量機),即尋找到一個超平面使樣本分成兩類,并且間隔最大。

SVM能夠執(zhí)行線性或非線性分類、回歸,甚至是異常值檢測任務(wù)。它是機器學(xué)習(xí)領(lǐng)域最受歡迎的模型之一。SVM特別適用于中小型復(fù)雜數(shù)據(jù)集的分類。

![image-20190812213753598](

2.2 超平面最大間隔介紹

![image-20190812214123863](

上左圖顯示了三種可能的線性分類器的決策邊界:

虛線所代表的模型表現(xiàn)非常糟糕,甚至都無法正確實現(xiàn)分類。其余兩個模型在這個訓(xùn)練集上表現(xiàn)堪稱完美,但是它們的決策邊界與實例過于接近,導(dǎo)致在面對新實例時,表現(xiàn)可能不會太好

右圖中的實線代表SVM分類器的決策邊界,不僅分離了兩個類別,且盡可能遠離最近的訓(xùn)練實例。

2.3 硬間隔和軟間隔

2.3.1 硬間隔分類

在上面我們使用超平面進行分割數(shù)據(jù)的過程中,如果我們嚴格地讓所有實例都不在最大間隔之間,并且位于正確的一邊,這就是硬間隔分類。

硬間隔分類有兩個問題,首先,它只在數(shù)據(jù)是線性可分離的時候才有效;其次,它對異常值非常敏感

當有一個額外異常值的鳶尾花數(shù)據(jù):左圖的數(shù)據(jù)根本找不出硬間隔,而右圖最終顯示的決策邊界與我們之前所看到的無異常值時的決策邊界也大不相同,可能無法很好地泛化。

![image-20190812215717860](

2.3.2 軟間隔分類

要避免這些問題,最好使用更靈活的模型。目標是盡可能在保持最大間隔寬闊和限制間隔違例(即位于最大間隔之上,甚至在錯誤的一邊的實例)之間找到良好的平衡,這就是軟間隔分類。

要避免這些問題,最好使用更靈活的模型。目標是盡可能在保持間隔寬闊和限制間隔違例之間找到良好的平衡,這就是軟間隔分類。

![image-20190812222103508](

在Scikit-Learn的SVM類中,可以通過超參數(shù)C來控制這個平衡:C值越小,則間隔越寬,但是間隔違例也會越多。上圖顯示了在一個非線性可分離數(shù)據(jù)集上,兩個軟間隔SVM分類器各自的決策邊界和間隔。

左邊使用了高C值,分類器的錯誤樣本(間隔違例)較少,但是間隔也較小。

右邊使用了低C值,間隔大了很多,但是位于間隔上的實例也更多??雌饋淼诙€分類器的泛化效果更

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容