RFC Consistent options/names for loss and criterion
See original GitHub issueProposal
Make the options to choose a loss
or a split criterion
consistent/unified over all estimators, classifiers as well as regressors.
Current State of Affairs
The API for setting a loss function or a split criterion is scattered. Here is an incomplete list as of v0.23.0:
Classifiers
- sklearn.ensemble.GradientBoostingClassifier
loss : {‘deviance’, ‘exponential’}, default=’deviance’
criterion : {‘friedman_mse’, ‘mse’, ‘mae’}, default=’friedman_mse’
- sklearn.ensemble.HistGradientBoostingClassifier
loss : {‘auto’, ‘binary_crossentropy’, ‘categorical_crossentropy’}, optional (default=’auto’)
- sklearn.linear_model.SGDClassifier
loss : {‘hinge’, ‘log’, ‘modified_huber’, ‘squared_hinge’, ‘perceptron’, ‘squared_loss’, ‘huber’, ‘epsilon_insensitive’, ‘squared_epsilon_insensitive’.}, default=’hinge’
- sklearn.svm.LinearSVC
loss : {‘hinge’, ‘squared_hinge’}, default=’squared_hinge’
- sklearn.tree.DecisionTreeClassifier
criterion : {“gini”, “entropy”}, default=”gini”
Regressors
-
sklearn.ensemble.GradientBoostingRegressor
loss : {‘ls’, ‘lad’, ‘huber’, ‘quantile’}, default=’ls’
criterion : {‘friedman_mse’, ‘mse’, ‘mae’}, default=’friedman_mse’
-
sklearn.ensemble.HistGradientBoostingRegressor
loss : {‘least_squares’, ‘least_absolute_deviation’, ‘poisson’}, optional (default=’least_squares’)
-
sklearn.linear_model.SGDRegressor
loss : {‘squared_loss’, ‘huber’, ‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, default=’squared_loss’
-
sklearn.tree.DecisionTreeRegressor
criterion : {“mse”, “friedman_mse”, “mae”}, default=”mse”
-
loss : {‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, default=’epsilon_insensitive’
Additional context
Supersedes #3481. Furthermore, #15123 is a bit related, though that one is about private functionality while this one is about public API.
Update
Issue Analytics
- State:
- Created 3 years ago
- Comments:29 (29 by maintainers)
Top Results From Across the Web
RFC 883 - Domain names: Implementation specification
Domain names: Implementation specification (RFC 883, November 1983; ... wish to deal with multiple choices or are willing to use the closeness criteria...
Read more >RFC 3550: RTP: A Transport Protocol for Real-Time Applications
82 Appendix A.3 Determining Number of Packets Expected and Lost . ... (canonical) name in the RTCP packets for both so that the...
Read more >Web Content Accessibility Guidelines (WCAG) 2.1 - W3C
WCAG 2.1 success criteria are written as testable statements that are not ... 3.1.3 Unusual Words; 3.1.4 Abbreviations; 3.1.5 Reading Level ...
Read more >45 CFR Part 170 -- Health Information Technology Standards ...
The standards, implementation specifications, and certification criteria ... Logical Observation Identifiers Names and Codes (LOINC®) Database version 2.40, ...
Read more >Extensible Messaging and Presence Protocol (XMPP): Core
Resolution of Fully Qualified Domain Names ... XML Namespace Names and Prefixes ... regarding the core features of XMPP 1.0, thus obsoleting RFC...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
🚀 An RFC issue that gets closed! That does not happen every day. Thanks to everyone involved! 🚀
+1 for “Maybe we could make an exception for tree-based models and accept both names (as aliases)?”
and clarify the docstring