#python #h2o
#python #h2o
Вопрос:
У меня есть набор коэффициентов из обученной модели, но у меня нет доступа к самой модели или набору обучающих данных. Я хотел бы создать экземпляр H2OGeneralizedLinearEstimator
и установить коэффициенты вручную, чтобы использовать модель для прогнозирования.
Первое, что я попробовал, было (это пример воспроизведения ошибки):
import h2o
from h2o.estimators.glm import H2OGeneralizedLinearEstimator
from h2o.frame import H2OFrame
h2o.init()
# creating some test dataset
test = {"x":[0,1,2], "y":[0,0,1]}
df = H2OFrame(python_obj=test)
glm = H2OGeneralizedLinearEstimator(family='binomial', model_id='logreg')
# setting the coefficients
glm.coef = {'Intercept':0, 'x':1}
# predict
glm.predict(test_data=df)
Это выдает ошибку:
Ошибка H2OResponseError: ошибка сервера water.исключения.Исключение H2OKeyNotFoundArgumentException: Ошибка: объект ‘logreg’ не найден в функции: предсказать для аргумента: модель
Я также попытался установить glm.params
ключи на основе ключей аналогичной обученной модели:
for key in trained.params.keys():
glm.params.__setitem__(key, trained.params[key])
но это не заполняет glm.params
( glm.params = {}
).
Ответ №1:
Похоже, вы хотите использовать функцию makeGLMModel
Это более подробно описано в документации, и я перепечатаю здесь для вашего удобства:
Изменение или создание пользовательской модели GLM
В R и python makeGLMModel
вызов может использоваться для создания модели H2O на основе заданных коэффициентов. Для извлечения информации о наборе данных требуется исходная модель GLM, обученная на том же наборе данных. Создать пользовательскую модель GLM на R или python:
- R: вызов
h2o.makeGLMModel
. В качестве параметров используется модель, вектор коэффициентов и (необязательно) пороговое значение принятия решения. - Pyton:
H2OGeneralizedLinearEstimator.makeGLMModel
(статический метод) принимает модель, словарь, содержащий коэффициенты, и (необязательно) пороговое значение принятия решения в качестве параметров.