比較 logistic regression 與 SVM

Python 中的線性分類器

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Logistic regression:

  • 線性分類器
  • 可搭配 kernels,但較慢
  • 會輸出有意義的機率
  • 可擴充為多類別
  • 所有資料點都影響擬合
  • L2 或 L1 正規化

Support vector machine(SVM):

  • 線性分類器
  • 可搭配 kernels,且較快
  • 不會自然產生機率輸出
  • 可擴充為多類別
  • 只有「support vectors」影響擬合
  • 慣例上僅用 L2 正規化
Python 中的線性分類器

在 scikit-learn 中使用

sklearn 中的 Logistic regression:

  • linear_model.LogisticRegression

sklearn 的關鍵超參數:

  • C(正規化強度的倒數)
  • penalty(正規化類型)
  • multi_class(多類別方式)

sklearn 中的 SVM:

  • svm.LinearSVCsvm.SVC
Python 中的線性分類器

在 scikit-learn 中使用(續)

sklearn 的關鍵超參數:

  • C(正規化強度的倒數)
  • kernel(kernel 類型)
  • gamma(RBF 平滑度的倒數)
Python 中的線性分類器

SGDClassifier

SGDClassifier:可良好擴展至大型資料集

from sklearn.linear_model import SGDClassifier

logreg = SGDClassifier(loss='log_loss')

linsvm = SGDClassifier(loss='hinge')
  • SGDClassifier 的超參數 alpha 類似 1/C
Python 中的線性分類器

一起來練習吧!

Python 中的線性分類器

Preparing Video For Download...