Skip to content

IPredictor and related parts hiding #2251

Description

@TomFinley

We have a few types inside IPredictor.cs that are perhaps useful for internal infrastructure, but are not directly useful from the point of view of the IEstimator/ITransformer/MLContext public API.

The thing that makes me the most nervous are things like IPredictorProducing and IDistPredictorProducing, which are definitely marker interfaaces that we don't want, but I would argue we don't really want any of this to be public.

public interface IPredictorProducing<out TResult> : IPredictor

public interface IDistPredictorProducing<out TResult, out TResultDistribution> : IPredictorProducing<TResult>

There are a significant number of side effects from this, including the hiding of many other APIs that we want hidden anyway, since anything that is part of the IEstimator/ITransformer/IDataView/MLConext idiom does not take an IPredictor (it produces things that implement that interface, but generally we do not use that interface). So this will be a driver for hiding many other things.

Metadata

Metadata

Assignees

Labels

APIIssues pertaining the friendly API

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions