Как вы получаете имена InputColumn из модели? - PullRequest
0 голосов
/ 08 февраля 2019

Например, возьмите OneHotEncoderModel, но вы можете взять что-нибудь из пакета pyspark.ml.feature.Когда вы используете OneHotEncoderEstimator, у вас есть возможность установить inputCols.На самом деле вы должны использовать inputCols и outputCols в конструкторе.

После того, как вы создадите соответствующую модель из оценщика, вы больше не сможете получить значение для inputCols.Не существует метода, подобного getInputCols(), который бы дал вам это из данной модели.Если вы используете getParam("inputCols"), он просто даст вам описание Param, а не его значение.

Если вы посмотрите на сериализованную модель (файл метаданных), значение для этого параметра (inputCols) равнона самом деле выписан.См. Пример ниже:

{"class":"org.apache.spark.ml.feature.OneHotEncoderModel","timestamp":1548215172466,"sparkVersion":"2.4.0","uid":"OneHotEncoderEstimator_c5fcbebe4045","paramMap":{"inputCols":["workclass-tmp"],"outputCols":["workclass-encoded"]},"defaultParamMap":{"handleInvalid":"error","dropLast":true}}

Однако я ищу способ получить это из API.

1 Ответ

0 голосов
/ 08 февраля 2019

Исправление к моему более раннему ответу:

правильный метод называется getOrDefault.Например:

model.getOrDefault("inputCols")

Похоже, что существует недокументированный способ получения этих значений:

model._paramMap[model.inputCols]

или

model._paramMap[model.params["inputCols"]]
...