-
Notifications
You must be signed in to change notification settings - Fork 1.9k
What namespaces to keep, what to drop, and what to hide #2326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
My surface reactions. Regarding the namespaces that are reserved mostly for what we think of as classical "training" aalgorithms, we tended to put them in
Since I am not sure that I see the point in the seemingly elaborate hierarchy of Transforms namespaces (e.g., categorical, conversions, feature-selection, normalizers), but I do not feel strongly about it. The negative thing I see about this is that the inevitable result is that the "odd-ball" transformers that are in fact less commonly used wind up being uncategorizable and so put in the regular My expectation is that anything with
I do not understand why we have "Microsoft.ML.TimeSeries" and "Microsoft.ML.TimeSeriesProcessing". Anyway, it seems like these belong in one of either the "Transforms" or "Trainers" style namespace, probably Transforms. (So Microsoft.ML.Transforms.TimeSeries.) Microsoft.ML.SamplesUtils contains a single class. I feel like these things, if we want to keep them, should be extensions on To be consistent with trainers, all the stuff in
|
Note that while namespace changes are fine, I feel like the first order of business really must be to choose what we put in |
We have both Microsoft.ML.Trainers and using Microsoft.ML.Learners namespaces. I think in the blogs/announcements we refer to them mostly as Learners. Drop the Microsoft.ML.Trainers in favor of Microsoft.ML.Learners? |
Converging on Microsoft.ML.Trainers instead, since that seems to be the namespace the majority of trainers live in. |
I'd prefer Microsoft.ML.Algorithms. |
It would match https://dotnet.microsoft.com/learn/machinelearning-ai/what-is-mldotnet. "Choose Algorithm" |
I would not. We have trainers, transforms, predictors... if some random note written by someone happened to use such a generic term as "algorithm," and it is apparently having the ability to affect how people think about such things, that is what must be changed. |
Regarding Microsoft.ML.Data.IO, I think everything here should be hidden, it can probably be moved into |
Ok, then what about Microsoft.ML.LearningAlgorithms? Choose Algorithm Linear (e.g. SymSGD, SDCA) |
FYI -
namespace Microsoft.ML.Data.Evaluators.Metrics {
public sealed class AnomalyDetectionMetrics {
public double Auc { get; }
public double DrAtK { get; }
}
}
namespace Microsoft.ML.Model {
public interface ICanSaveModel {
void Save(ModelSaveContext ctx);
}
public sealed class ModelSaveContext : IDisposable {
public void Dispose();
}
} This isn't enough types (IMO) for it's own namespace. |
In the table below there are all the namespaces that are in ML.Net.
They also all display in the docs site. Some of them, like Microsoft.ML.Ensemble needs to continue to exist in the code, but it is not ready to be exposed to the users, and can be hidden in the docs site.
Some others, like Microsoft.ML.Internal.Internallearn can potentially be merged into other namespaces.
Let's annotate in the list below the namespaces that need to be hidden in the docs site, and the ones that need to be gone altogether:
The text was updated successfully, but these errors were encountered: