Jämförelse av logistisk regression och SVM

Linjära klassificerare i Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Logistisk regression:

  • Är en linjär klassificerare
  • Kan använda kärnor, men är långsam
  • Ger meningsfulla sannolikheter
  • Kan utökas till flera klasser
  • Alla datapunkter påverkar anpassningen
  • L2- eller L1-regularisering

Support vector machine (SVM):

  • Är en linjär klassificerare
  • Kan använda kärnor, och är snabb
  • Ger inte sannolikheter direkt
  • Kan utökas till flera klasser
  • Bara "stödvektorer" påverkar anpassningen
  • Konventionellt endast L2-regularisering
Linjära klassificerare i Python

Användning i scikit-learn

Logistisk regression i sklearn:

  • linear_model.LogisticRegression

Viktiga hyperparametrar i sklearn:

  • C (invers regulariseringsstyrka)
  • penalty (typ av regularisering)
  • multi_class (typ av flerklass)

SVM i sklearn:

  • svm.LinearSVC och svm.SVC
Linjära klassificerare i Python

Användning i scikit-learn (forts.)

Viktiga hyperparametrar i sklearn:

  • C (invers regulariseringsstyrka)
  • kernel (typ av kärna)
  • gamma (invers RBF-utjämning)
Linjära klassificerare i Python

SGDClassifier

SGDClassifier: skalar väl till stora datamängder

from sklearn.linear_model import SGDClassifier

logreg = SGDClassifier(loss='log_loss')

linsvm = SGDClassifier(loss='hinge')
  • SGDClassifier-hyperparametern alpha motsvarar 1/C
Linjära klassificerare i Python

Nu kör vi en övning!

Linjära klassificerare i Python

Preparing Video For Download...