В Spark я установил все параметры Оценщика, используя сеттеры.Теперь я хочу скопировать все эти значения в другой Estimator, который является существующим val внутри другого класса.Я мог бы использовать сеттеры один за другим во втором экземпляре, но я хотел бы скопировать все параметры сразу, как это делает copyValues()
, но copyValues
является приватным :-(
Я пыталсявызов mymodel.extractParamMap()
и затем его обход, вызов othermodel.set(param, value)
без каких-либо изменений, но исходные параметры уже имеют родительский объект, поэтому позже я получаю сообщение об ошибке, когда Spark понимает, что новая модель не является владельцем (родителем) этих параметров.
Я не могу (по крайней мере, не легко) создать новые экземпляры Param (с обновленным новым родителем), потому что каждый исходный Param принадлежит какому-то подклассу Params (скажем, DoubleParam и т. Д.), Который я не могу получить при обходе параметраmap, если я не использую отражение для этого.
Я не могу просто создать новый ParamPair
с тем же значением оригинала, не указав сначала что-то о базовом типе параметра. Я мог бы сделать какое-то сопоставление с образцом длякаждый возможный тип (скажем, IntParam
, DoubleParam
, ...) для создания соответствующего (обновляемого родителем) типа Param в каждомслучай (я пытался, и это работает), но это уродливо и совсем не элегантно.
Нет ли более простого способа перенести все значения параметров одновременно из одной модели (оценщика) в другую существующую?Что-то вроде copyValues
, но для широкой публики: -)