[
https://issues.apache.org/jira/browse/IGNITE-10592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexey Zinoviev updated IGNITE-10592:
-------------------------------------
Reporter: Alexey Zinoviev (was: Artem Malykh)
> [ML] DatasetTrainer#update should be thought over.
> --------------------------------------------------
>
> Key: IGNITE-10592
> URL: https://issues.apache.org/jira/browse/IGNITE-10592
> Project: Ignite
> Issue Type: Improvement
> Components: ml
> Reporter: Alexey Zinoviev
> Assignee: Alexey Zinoviev
> Priority: Major
> Fix For: 3.0
>
>
> DatasetTrainer#update was designed to contain skeleton for updating models,
> whereas concrete behaviour of update is implemented in subclasses by
> overriding this skeletons protected components, namely
> DatasetTrainer#checkState and DatasetTrainer#updateModel.
> We have a problem here: if we retain skeleton method, then it should be
> final. But making it final will cut the possibility to write wrappers around
> some given DatasetTrainer, because in that case we will not be able to
> implement Wrapper#checkState and Wrapper#updateModel by delegation to wrapped
> object (this methods have protected access). We need wrappers for stacking
> and for bagging for example.
> Now in wrappers we have ability to
> 1. Override skeleton method, but (maybe) it seems not very clean solution,
> since it is no more skeleton method and we loose guarantees that checkState
> and updateModel will be used at all;
> 2. place wrapper in the same package as DatasetTrainer, but this forces
> not-so-good classes structure.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)