Scikit-learn có sử dụng chính quy theo mặc định không?


12

Tôi chỉ trang bị một đường cong logistic cho một số dữ liệu giả mạo. Tôi đã làm cho dữ liệu về cơ bản là một chức năng bước.

data = -------------++++++++++++++

Nhưng khi tôi nhìn vào đường cong được trang bị, độ dốc rất nhỏ. Hàm tối thiểu hóa tốt nhất hàm chi phí, giả sử entropy chéo, là hàm bước. Tại sao nó không giống như một chức năng bước? Có một số chính quy, L1 hoặc L2, được thực hiện theo mặc định?

Hồi quy logistic bằng scikit-learn

Câu trả lời:


8

Xin hãy xem tài liệu . Dòng đầu tiên hiển thị các tham số mặc định, bao gồm penalty='l2'C=1.0.

Bạn thực sự không thể vô hiệu hóa hoàn toàn chính quy, bạn chỉ có thể thường xuyên ít hơn ... thử cài đặt C=1e10chẳng hạn.


2
Bây giờ bạn có thể (kể từ phiên bản 0.21.0) penalty='none'. scikit-learn.org/urdy/whats_new.html#id15
Ben Reiniger

6

Vâng, có sự chính quy theo mặc định. Nó dường như là chính quy L2 với hằng số là 1.

Tôi đã giải quyết vấn đề này và phát hiện ra rằng chính quy L2 với hằng số 1 mang lại cho tôi một sự phù hợp trông giống hệt như những gì mà bộ khoa học viễn tưởng mang lại cho tôi mà không chỉ định chính quy hóa.

from sklearn.linear_model import LogisticRegression    
model = LogisticRegression()
model.fit(X, y)

giống như

model = LogisticRegression(penalty="l2", C=1)
model.fit(X, y)

Khi tôi chọn C=10000, tôi có một cái gì đó trông giống như chức năng bước hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.