Я тренирую набор glm
моделей, использующих воду, где очень матрица разреженной тренировки (4million x 50k
) одинакова, но переменная отклика (y) отличается для каждой модели. Я использую следующие шаги:
- обучающая матрица читается в виде таблицы 3col pandas (row_id, col_id, value) [время: <5 с] * создано 1010 * <li>
scipy.sparse.csc_matrix
используя таблицу [время: <5 с] </li> train_h2o_orig = h2o.H2OFrame(csc_matrix)
- поезд в этом л oop
for y in cols:
train_h2o = train_h2o_orig.cbind(h2o.H2OFrame(y))
train_h2o[-1] = train_h2o[-1].asfactor()
glm_h2o = H2PGeneralizedLinearEstimator(family="binomial", nfolds=4, nlambdas=20,
lambda_search=True, max_active_predictors=100, seed=12345)
glm_h2o.train(y=train_h2o.names[-1], training_frame=train_h2o)
Вопросы:
существует ли версия обучающей функции модели GLM, в которой обучающая матрица и вектор ответа могут предоставляться отдельно (как H2OFrame
с), чтобы мне не приходилось связывать и копировать кадры вокруг.
самый медленный шаг - h2o.H2OFrame (.) (> 30 минут). Существует ли более разреженный формат матрицы, который более эффективен (cs c? Coo? Csr?)
, в прошлом я предпочитал писать файл SVMLight и читать его обратно. Но с этим я должен создать 20 из них на диске и прочитать его обратно. Создать способ создания этого файла без переменной ответа?
Настройка: 32 ядра, 512 ГБ памяти, RHEL7 (для одного пользователя) / Python 3.6.9 / h2o 3.30 .0.2 / jre 1.8.0_251