樸素貝葉斯模型、SVM模型筆記


一、樸素貝葉斯模型

1 應用場景

樸素貝葉斯的主要應用有文本分類、垃圾文本過濾,情感判別,多分類實時預測等。

樸素貝葉斯分類器的核心假設爲自變量之間是條件獨立的。該假設的主要目的是爲了提高算法的運算效率,如果實際數據集中的自變量不滿足獨立性假設時,分類器的預測結果往往會產生錯誤。

通常情況下,貝葉斯分類器的效果不會低於決策樹。

2 模型優點

  • 算法在運算過程中簡單而高效
  • 算法擁有古典概率的理論支撐,分類效率穩定
  • 算法對缺失數據和異常數據不太敏感

3 模型缺點

  • 模型的判斷結果依賴於先驗概率,所以分類結果存在一定的錯誤率
  • 對輸入的自變量X要求具有相同的特徵(如變量均爲數值型或離散型或0-1型)
  • 模型的前提假設 (假設前提:自變量是條件獨立的(自變量之間不存在相關性)) 在實際應用中很難滿足等

4 模型種類

4.1 高斯貝葉斯分類器

利用高斯貝葉斯分類器對數據集進行分類時要求:

  • 輸入的數據集X爲連續的數值型變量
  • 假設數值型變量服從正態分佈

python中,sklearn的子模塊naive_bayes中的GaussianNB類

GaussianNB(priors=None) # priors:用於指定因變量各類別的先驗概率,默認以數據集中的類別頻率作爲先驗概率。

4.2 多項式貝葉斯分類器

利用多項式貝葉斯分類器對數據集進行分類時要求:

  • 輸入的數據集X爲離散型變量
  • 假設X變量服從多項式分佈

通常情況下,會利用多項式貝葉斯分類器作文本分類,如一份郵件是否垃圾郵件、用戶評論是否爲正面等。
python中,sklearn的子模塊naive_bayes中的MultinomialNB類

MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
alpha爲平滑係數,爲了避免概率爲0而設置的

可利用pandas模塊中的factorize函數對離散的自變量進行數值轉換

4.3 伯努利貝葉斯分類器

利用伯努利貝葉斯分類器對數據集進行分類時要求:

  • 輸入的數據集X爲0-1二元值
  • 假設X變量服從伯努利分佈

python中,sklearn的子模塊naive_bayes中的BernoulliNB類

BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
binarize:如果該參數爲浮點型數值,則將以該值爲界限,當自變量的值大於該值時,自變量的值將被轉換爲1,否則被轉換爲0;如果該參數爲None時,則默認訓練數據集的自變量均爲0-1值。

二、SVM模型

Support Vector Machine,支持向量機。該算法具有較高的預測準確率,受企業界的歡迎,如利用該算法實現醫療診斷、圖像識別、文本分類、市場營銷等。

1 算法思想

**利用某些支持向量所構成的“超平面”,將不同類別的樣本點進行劃分。**不管樣本點是線性可分的、近似線性可分的還是非線性可分的,都可以利用“超平面”將樣本點以較高的準確度切割開來。(將低維線性不可分的空間轉換爲高維的線性可分空間。)

!如果樣本點爲非線性可分,就要藉助於核函數技術,實現樣本在覈空間下完成線性可分的操作。

2 算法優點

  • 由於SVM模型最終所形成的分類器僅依賴於一些支持向量,這就導致模型具有很好的魯棒性(增加或刪除非支持向量的樣本點,並不會改變分類器的效果)
  • 避免“維度災難”的發生(模型並不會隨數據維度的提升而提高計算的複雜度)
  • 模型具有很好的泛化能力,一定程度上可以避免模型的過擬合
  • 可以避免模型在運算過程中出現的局部最優

3 算法缺點

  • 模型不適合大樣本的分類或預測,因爲它會消耗大量的計算資源和時間
  • 模型對缺失樣本非常敏感,這就需要建模前清洗好每一個觀測樣本
  • 雖然可以通過核函數解決非線性可分問題,但是模型對核函數的選擇也同樣很敏感
  • SVM爲黑盒模型(相比於迴歸或決策樹等算法),對計算得到的結果無法解釋

4 幾種常見的SVM模型

  • 線性可分的SVM
  • 近似線性可分SVM:犧牲少部分異常點的利益,確保大部分的樣本點都能夠被線性可分。
  • 非線性可分SVM:核心思想就是把原始數據擴展到更高維的空間,然後基於高維空間實現樣本的線性可分。

Python中提供了有關線性可分SVM或近似線性可分SVM的實現功能,讀者只需要導入sklearn模塊,並調用svm子模塊中的LinearSVC類即可。
關於非線性可分SVM模型的功能實現,可以利用Python中的sklearn模塊,讀者可以通過調用svm子模塊中的SVC類

5 幾種常用的SVM核函數

  • 線性核函數
  • 多項式核函數
  • 高斯核函數
  • Sigmoid核函數

在實際應用中,SVM模型對核函數的選擇是非常敏感的,所以需要通過先驗的領域知識或者交叉驗證的方法選出合理的核函數。

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