Chúng tôi đã nâng cấp sklearn của chúng tôi từ 0.13-git cũ lên 0.14.1 và tìm hiệu suất của trình phân loại hồi quy logistic của chúng tôi thay đổi khá nhiều. Hai phân loại được đào tạo với cùng một dữ liệu có hệ số khác nhau, và do đó thường cho kết quả phân loại khác nhau.Các phiên bản khác nhau của sklearn cho kết quả đào tạo khá khác nhau
Theo một thử nghiệm tôi đã sử dụng 5 điểm dữ liệu (cao chiều) để đào tạo các phân loại LR, và kết quả là:
0.13-git:
clf.fit(data_test.data, y)
LogisticRegression(C=10, class_weight='auto', dual=False, fit_intercept=True,
intercept_scaling=1, penalty='l2', tol=0.0001)
np.sort(clf.coef_)
array([[-0.12442518, -0.11137502, -0.11137502, ..., 0.05428562,
0.07329358, 0.08178794]])
0.14.1:
clf1.fit(data_test.data, y)
LogisticRegression(C=10, class_weight='auto', dual=False, fit_intercept=True,
intercept_scaling=1, penalty='l2', random_state=None, tol=0.0001)
np.sort(clf1.coef_)
array([[-0.11702073, -0.10505662, -0.10505662, ..., 0.05630517,
0.07651478, 0.08534311]])
Tôi sẽ nói sự khác biệt là khá lớn, trong khoảng 10^(- 2). Rõ ràng dữ liệu tôi sử dụng ở đây không phải là lý tưởng, bởi vì chiều hướng của các tính năng lớn hơn nhiều so với số lượng mục nhập. Tuy nhiên, nó thường là trường hợp trong thực tế quá. Có liên quan gì đến lựa chọn tính năng không? Làm thế nào tôi có thể tạo ra kết quả giống như trước đây? Tôi hiểu các kết quả mới không nhất thiết phải tồi tệ hơn trước đây, nhưng bây giờ tập trung là làm cho chúng nhất quán nhất có thể. Cảm ơn.
Trong 0.13.1 bạn không có 'random_state = None', đây có phải là lỗi đánh máy không? – EdChum
Phiên bản 0.13 không có thông số đó. Trong 0.14.1 tôi cũng đã cố gắng để thiết lập random_state = 0, và kết quả là giống như random_state = None. – ymeng
Đó là giá trị kiểm tra các tài liệu như có đôi khi sửa lỗi trong các phiên bản khác nhau – EdChum