Porównanie regresji logistycznej i SVM

Liniowe klasyfikatory w Pythonie

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Regresja logistyczna:

  • Jest klasyfikatorem liniowym
  • Może używać jąder, ale wolno
  • Zwraca znaczące prawdopodobieństwa
  • Można rozszerzyć do wielu klas
  • Wszystkie punkty wpływają na dopasowanie
  • Regularyzacja L2 lub L1

Maszyna wektorów nośnych (SVM):

  • Jest klasyfikatorem liniowym
  • Może używać jąder, i szybko
  • Nie zwraca naturalnie prawdopodobieństw
  • Można rozszerzyć do wielu klas
  • Tylko „wektory nośne" wpływają na dopasowanie
  • Zwykle tylko regularyzacja L2
Liniowe klasyfikatory w Pythonie

Użycie w scikit-learn

Regresja logistyczna w sklearn:

  • linear_model.LogisticRegression

Główne hiperparametry w sklearn:

  • C (odwrotność siły regularyzacji)
  • penalty (typ regularyzacji)
  • multi_class (typ wieloklasowości)

SVM w sklearn:

  • svm.LinearSVC i svm.SVC
Liniowe klasyfikatory w Pythonie

Użycie w scikit-learn (cd.)

Główne hiperparametry w sklearn:

  • C (odwrotność siły regularyzacji)
  • kernel (typ jądra)
  • gamma (odwrotność wygładzenia RBF)
Liniowe klasyfikatory w Pythonie

SGDClassifier

SGDClassifier: dobrze skaluje się na duże zbiory danych

from sklearn.linear_model import SGDClassifier

logreg = SGDClassifier(loss='log_loss')

linsvm = SGDClassifier(loss='hinge')
  • Hiperparametr alpha w SGDClassifier odpowiada 1/C
Liniowe klasyfikatory w Pythonie

Czas na ćwiczenia!

Liniowe klasyfikatory w Pythonie

Preparing Video For Download...