2012-08-30 23 views
5

Tại sao nó có thể làTại sao Scikit GradientBoostingClassifier sẽ không cho phép tôi sử dụng hồi quy hình vuông ít nhất?

GradientBoostingClassifier(loss='ls') 

không thành công với:

raise ValueError("``n_classes`` must be 1 for regression") 
ValueError: ``n_classes`` must be 1 for regression 

và nó hoạt động hoàn hảo với loss='deviance'?

Tôi đang sử dụng scikit-learn-0.11 với scipy-0.11.0rc1 trong Ubuntu 64 bit Điều này xảy ra khi phân loại tập dữ liệu với lớp nhị phân 'CÓ' 'NO'.

+2

Do hồi quy bình phương nhỏ nhất là cho hồi quy (http://en.wikipedia.org/wiki/Regression_analysis) và trình phân loại tăng độ dốc là để phân loại (http://en.wikipedia.org/wiki/Classification_in_machine_learning)? – alfa

Trả lời

6

Đây là lỗi trong GradientBoostingClassifier. Nó không nên phơi bày các chức năng mất bình phương nhỏ nhất để phân loại. Thay vào đó, hãy sử dụng hàm mất "sai lệch".

Xin lỗi vì sự bất tiện gây ra.

PS: Nếu bạn thực sự cần mất bình phương tối thiểu để phân loại, hãy liên hệ với tôi và chúng tôi có thể làm việc với tính năng này để phát hành trong tương lai.

+1

Đã mở một vấn đề cho việc này: https://github.com/scikit-learn/scikit-learn/issues/1085 –

+0

Sự cố đã được khắc phục trong bản phát hành 0,12 –