У меня есть модель машинного обучения, сохраненная в формате * .rds. Я хочу открыть эту модель в Python, чтобы делать прогнозы. Для этого я установил rpy2
. Это мой код Jupyter Notebook:
!pip install rpy2
import json
import pandas as pd
import numpy as np
import rpy2.robjects as robjects
from rpy2.robjects import numpy2ri
from rpy2.robjects.packages import importr
r = robjects.r
numpy2ri.activate()
model_rds_path = "model.rds"
model = r.readRDS(model_rds_path)
raw_data = '{"data":[[79],[63]]}'
data = json.loads(raw_data)["data"]
if type(data) is not np.ndarray:
data = np.array(data)
result = r.predict(model, data, probability=False)
result
В строке r.predict(…)
я получаю следующую ошибку:
RRuntimeError: Error in model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) :
'data' must be a data.frame, not a matrix or an array
Calls: <Anonymous> -> predict.lm -> model.frame -> model.frame.default
Учебный скрипт в R выглядит следующим образом:
library(caret)
# Reading `data` from CSV file
x <- data$height
y <- data$weight
model <- lm(y~x)
# Test predictions
df_test_heights <- data.frame(x = as.numeric(c(115,20)))
result <- predict(model,df_test_heights)
print(result)
Я так растерялся ... Потратил целый день, пытаясь решить эту проблему !! Кто-нибудь знает, как это исправить ??? Буду также признателен, если кто-нибудь знает альтернативный способ (альтернативный rpy2
) для открытия файлов RDS из Python.
Спасибо !!!