2013-09-24 37 views
17

Tôi cần biết cách trả về hệ số hồi quy logistic theo cách mà tôi có thể tự mình tạo ra xác suất dự đoán.Scikit Tìm hiểu: Hệ số mô hình hồi quy logistic: Làm rõ

Mã của tôi trông như thế này:

lr = LogisticRegression() 
lr.fit(training_data, binary_labels) 

# Generate probabities automatically 
predicted_probs = lr.predict_proba(binary_labels) 

tôi đã giả định các giá trị lr.coeff_ sẽ đi theo hồi quy logistic điển hình, vì vậy mà tôi có thể trở lại các xác suất dự đoán như thế này:

sigmoid(dot([val1, val2, offset], lr.coef_.T)) 

Nhưng đây không phải là công thức thích hợp. Có ai có định dạng thích hợp để tạo ra các xác suất dự đoán từ Scikit Learn LogisticRegression không? Cảm ơn!

Trả lời

15

hãy nhìn vào các tài liệu (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html), hệ số bù đắp không được lưu trữ bởi lr.coef_ mảng coef_

, hình dạng = [n_classes-1, n_features] Hệ số của tính năng trong quyết định chức năng. coef_ là thuộc tính chỉ đọc có nguồn gốc từ raw_coef_ theo sau bố cục bộ nhớ trong của liblinear. intercept_ array, shape = [n_classes-1] Intercept (a.k.a. bias) đã thêm vào chức năng quyết định. Nó chỉ có sẵn khi tham số chặn được đặt thành True.

thử:

sigmoid(dot([val1, val2], lr.coef_) + lr.intercept_) 
+0

#prgao, cảm ơn, nhưng câu trả lời của bạn chỉ nói với tôi như thế nào không để tạo ra các xác suất. Bạn có biết cách tính toán chúng không? Cảm ơn. – zbinsd

+2

sigmoid (dấu chấm ([val1, val2], lr.coef_) + lr.intercept_) – prgao

+1

#prgao, điều đó đã xảy ra. Chết tiệt, tôi nghĩ rằng điều này sẽ có tác dụng 'sigmoid (dấu chấm ([val1, val2, 1], lr.coef_.T))', nhưng hóa ra, tôi cần bao gồm đánh chặn hai lần, như trong: 'sigmoid (dot ([val1, val2, 1], lr.coef_.T) + lr.intercept_) '. Cảm ơn bạn đã chỉ ra điều này. – zbinsd

Các vấn đề liên quan