THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||
---|---|---|
| ||
@PublicEvolving interface Stage<T extends Stage<T>> extends WithParams<T>, Serializable { /** * This method checks the compatibility between input schemas, stage's parameters and stage's * logic. It should raise an exception if there is any mismatch, e.g. the number of input * schemas is wrong, or if a required field is missing from a schema. * * <p>If there is no mismatch, the method derives and returns the output schemas from the input * schemas. * * <p>Note that the output schemas of a given Estimator instance should equal the output schemas * of the Transformer instance fitted by this Estimator instance, suppose the same list of input * schemas are used as inputs to the fit/transform methods respectively. * * @param schemas the list of schemas of the input tables. * @return the list of schemas of the output tables. */ TableSchema[] transformSchemas(TableSchema... schemas); /** Skipped */ default String toJson() {...} /** Skipped */ default void loadJson(String json) {...} } @PublicEvolving public interface Transformer<T extends Transformer<T>> extends Stage<T> { /** * Applies the Transformer on the given input tables, and returns the result tables. * * @param inputs a list of tables * @return a list of tables */ Table[] transform(Table... inputs); /** * Uses the given list of tables to update internal states. This can be useful for e.g. online * learning where an Estimator fits an infinite stream of training samples and streams the model * diff data to this Transformer. * * <p>This method may be called at most once. * * @param inputs a list of tables */ default void setStateStreams(Table... inputs) { throw new UnsupportedOperationException("this method is not implemented"); } /** * Gets a list of tables representing changes of internal states of this Transformer. These * tables might come from the Estimator that instantiated this Transformer. * * @return a list of tables */ default Table[] getStateStreams() { throw new UnsupportedOperationException("this method is not implemented"); } } @PublicEvolving public interface Estimator<E extends Estimator<E, M>, M extends Transformer<M>> extends Stage<E> { /** * Trains on the given inputs and produces a Transformer. If this Estimator may be used to * compose a Pipeline, the transform method of the returned Transformer should be able to accept * a list of tables of the same length and schemas as the fit method of this Estimator. * * @param inputs a list of tables * @return a Transformer */ M fit(Table... inputs); } @PublicEvolving public final class Pipeline implements Estimator<Pipeline, PipelineModel> { public Pipeline(List<Stage<?>> stages) {...} @Override public PipelineModel fit(Table... inputs) {...} /** Skipped a few publicmethods, APIsincluding andthe implementations of the Estimator APIs. */ } @PublicEvolving public final class PipelineModel implements Transformer<PipelineModel> { public PipelineModel(List<Transformer<?>> transformers) {...} /** Skipped a few publicmethods, APIsincluding andthe implementations of the Transformer APIs. */ } |
...
Code Block | ||
---|---|---|
| ||
/** * A Graph acts as an Estimator. It consists of a DAG of stages, each of which is either an * Estimator or Transformer. */ @PublicEvolving public final class Graph implements Estimator<Graph, GraphModel> { public Graph(...) {...} @Override public GraphModel fit(Table... inputs) {...} @Override public TableSchema[] transformSchemas(TableSchema... schemas) { return schemas; } /** Skipped a few publicmethods, APIsincluding andthe implementations of thesome Estimator APIs. */ } |
Proposed Changes
Describe the new thing you want to do in appropriate detail. This may be fairly extensive and have large subsections of its own. Or it may be a few sentences. Use judgement based on the scope of the change.
...