การเปรียบเทียบ Logistic Regression และ SVM

Linear Classifiers ใน Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Logistic regression:

  • เป็น linear classifier
  • ใช้ร่วมกับ kernel ได้ แต่ช้า
  • ให้ค่าความน่าจะเป็นที่มีความหมาย
  • ขยายไปยังหลายคลาสได้
  • ทุกจุดข้อมูลมีผลต่อการ fit
  • Regularization แบบ L2 หรือ L1

Support vector machine (SVM):

  • เป็น linear classifier
  • ใช้ร่วมกับ kernel ได้ และเร็วกว่า
  • ไม่ให้ค่าความน่าจะเป็นโดยตรง
  • ขยายไปยังหลายคลาสได้
  • เฉพาะ "support vectors" ที่มีผลต่อการ fit
  • ใช้ L2 regularization เป็นหลัก
Linear Classifiers ใน Python

การใช้งานใน scikit-learn

Logistic regression ใน sklearn:

  • linear_model.LogisticRegression

ไฮเปอร์พารามิเตอร์หลักใน sklearn:

  • C (ค่าผกผันของความแรง regularization)
  • penalty (ประเภทของ regularization)
  • multi_class (ประเภทของ multi-class)

SVM ใน sklearn:

  • svm.LinearSVC และ svm.SVC
Linear Classifiers ใน Python

การใช้งานใน scikit-learn (ต่อ)

ไฮเปอร์พารามิเตอร์หลักใน sklearn:

  • C (ค่าผกผันของความแรง regularization)
  • kernel (ประเภทของ kernel)
  • gamma (ค่าผกผันของความเรียบของ RBF)
Linear Classifiers ใน Python

SGDClassifier

SGDClassifier: รองรับชุดข้อมูลขนาดใหญ่ได้ดี

from sklearn.linear_model import SGDClassifier

logreg = SGDClassifier(loss='log_loss')

linsvm = SGDClassifier(loss='hinge')
  • ไฮเปอร์พารามิเตอร์ alpha ของ SGDClassifier เทียบได้กับ 1/C
Linear Classifiers ใน Python

มาฝึกกันเถอะ!

Linear Classifiers ใน Python

Preparing Video For Download...