Spark ML: как скопировать все параметры из модели в другую - PullRequest
0 голосов
/ 26 декабря 2018

В Spark я установил все параметры Оценщика, используя сеттеры.Теперь я хочу скопировать все эти значения в другой Estimator, который является существующим val внутри другого класса.Я мог бы использовать сеттеры один за другим во втором экземпляре, но я хотел бы скопировать все параметры сразу, как это делает copyValues(), но copyValues является приватным :-(

Я пыталсявызов mymodel.extractParamMap() и затем его обход, вызов othermodel.set(param, value) без каких-либо изменений, но исходные параметры уже имеют родительский объект, поэтому позже я получаю сообщение об ошибке, когда Spark понимает, что новая модель не является владельцем (родителем) этих параметров.

Я не могу (по крайней мере, не легко) создать новые экземпляры Param (с обновленным новым родителем), потому что каждый исходный Param принадлежит какому-то подклассу Params (скажем, DoubleParam и т. Д.), Который я не могу получить при обходе параметраmap, если я не использую отражение для этого.

Я не могу просто создать новый ParamPair с тем же значением оригинала, не указав сначала что-то о базовом типе параметра. Я мог бы сделать какое-то сопоставление с образцом длякаждый возможный тип (скажем, IntParam, DoubleParam, ...) для создания соответствующего (обновляемого родителем) типа Param в каждомслучай (я пытался, и это работает), но это уродливо и совсем не элегантно.

Нет ли более простого способа перенести все значения параметров одновременно из одной модели (оценщика) в другую существующую?Что-то вроде copyValues, но для широкой публики: -)

...