Сохранение нескольких моделей линейной регрессии в цикле - PullRequest
0 голосов
/ 27 мая 2020

Я пробую многолинейную регрессию с 4 независимыми параметрами, которые сравниваются с этими параметрами для класса с меткой 0, чтобы линейно соответствовать модели.

from sklearn import linear_model
from pandas import DataFrame

covariates = DataFrame({'Param1':P1, 'Param2':P2, 'Param3':P3, 'Param4':P4}).iloc[cov_idx, :]
covariates = covariates.to_numpy(dtype=np.float32)

covCN = covariates[labels['Group'] == 0] # only controls as reference group to estimate effect of covariates
lm = linear_model.LinearRegression()

for k in range(images.shape[3]):
  for j in range(images.shape[2]):
    for i in range(images.shape[1]):
      if any(images[:, i, j, k, 0] != 0):
        tmpdat = images[labels['Group'] == 0, i, j, k, 0]
        lm.fit(covCN, tmpdat)
        pred = lm.predict(covariates) 
        images[:, i, j, k, 0] = images[:, i, j, k, 0] - pred 

Я хочу сохранить модели линейной регрессии для прогнозирования на основе другого набора данных со схожими параметрами. Когда я попробовал приведенный ниже код для сохранения модели, я решил, что сохраняется только одна модель.

import pickle
with open("model","wb") as f:
  pickle.dump(lm,f)
with open("model","rb") as f:
  model = pickle.load(f)
covariates = DataFrame({'Param1':A1, 'Param2':A2, 'Param3':A3, 'Param4':A4}).iloc[cov_idx, :]
covariates = covariates.to_numpy(dtype=np.float32)

for k in range(images.shape[3]):
  for j in range(images.shape[2]):
    for i in range(images.shape[1]):
      if any(images[:, i, j, k, 0] != 0):
        pred = model.predict(covariates) 
        images[:, i, j, k, 0] = images[:, i, j, k, 0] - pred 

Как мне сохранить все модели линейной регрессии и использовать их для прогнозирования на разных набор данных?

...