Hồi quy logistic đa lớp

Bộ phân loại tuyến tính với Python

Michael (Mike) Gelbart

Instructor, The University of British Columbia

Kết hợp bộ phân loại nhị phân với one-vs-rest

lr0.fit(X, y==0)

lr1.fit(X, y==1)

lr2.fit(X, y==2)
# get raw model output
lr0.decision_function(X)[0]
6.124
lr1.decision_function(X)[0]
-5.429
lr2.decision_function(X)[0]
-7.532
lr = LogisticRegression(multi_class='ovr')
lr.fit(X, y)

lr.predict(X)[0]
0
Bộ phân loại tuyến tính với Python

One-vs-rest:

  • huấn luyện một bộ phân loại nhị phân cho mỗi lớp
  • dự đoán với tất cả, lấy đầu ra lớn nhất
  • ưu: đơn giản, mô-đun
  • nhược: không tối ưu trực tiếp độ chính xác
  • cũng phổ biến với SVM
  • có thể tạo xác suất

"Multinomial" hay "softmax":

  • huấn luyện một bộ phân loại duy nhất cho mọi lớp
  • dự đoán trả về trực tiếp lớp tốt nhất
  • nhược: phức tạp hơn, cần mã mới
  • ưu: giải bài toán trực tiếp
  • khả thi với SVM, nhưng ít phổ biến hơn
  • có thể tạo xác suất
Bộ phân loại tuyến tính với Python

Hệ số mô hình cho đa lớp

lr_ovr = LogisticRegression(multi_class='ovr') 

lr_ovr.fit(X,y)

lr_ovr.coef_.shape
(3,13)
lr_ovr.intercept_.shape
(3,)
lr_mn = LogisticRegression(multi_class="multinomial")
lr_mn.fit(X,y)

lr_mn.coef_.shape
(3,13)
lr_mn.intercept_.shape
(3,)
Bộ phân loại tuyến tính với Python

Cùng luyện tập nào!

Bộ phân loại tuyến tính với Python

Preparing Video For Download...