-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Labels
APIIssues pertaining the friendly APIIssues pertaining the friendly API
Milestone
Description
We need to clean our API for learners.
This includes following things:
-
No protected fields/members/method in public classes. Only private protected.
-
Learner class is sealed.
-
The trainer name types should follow the names used in the contexts (see The trainer name types should follow the names used in the contexts #2172)
-
ModelPameters for this Learner is also clean. (sealed, public documentation, no public constructor)
-
Options cleaning:
- They should be named Options, and all their base classes (except
LearnerInputBase*) - Option should have meaning and proper way it initialize it self. We shouldn't accept int if in reality we use enum (FastTree EarlyStoppingMetric is an
intbut only accepts specific values #2521) or accept array of ints as a string separated by commapublic string CustomGains = "0,3,7,15,31"; - No short names.
- Standard names like:
/// <param name="labelColumnName">The name of the label column.</param>
/// <param name="featureColumnName">The name of the feature column.</param>
NumberOfIterations,NumberOfThreads,LearningRate,L2Regularization,L1Regularization
no (MaxIterations,NumIterations,NumThreads,L2Weight,L1Weight)
- If we communicate with user (exceptions, channel messages), don't use DataKind values. No R4, U4, and so on, it should be float, uint, etc.
ignore for now:
-
Everything public has proper documentation.
-
We have samples of how use base call to trainer (no options) and call with options.
-
We have baseline tests for learner.
`
Metadata
Metadata
Assignees
Labels
APIIssues pertaining the friendly APIIssues pertaining the friendly API