我lm
在 R 中有一个经过训练和序列化的模型。在一个函数内部,我将模型和特征向量(一个数组)作为输入传递,我有:
CREATE OR REPLACE FUNCTION lm_predict(
feat_vec float[],
model bytea
)
RETURNS float
AS
$$
#R-code goes here.
mdl <- unserialize(model)
# class(feat_vec) outputs "array"
y_hat <- predict.lm(mdl, newdata = as.data.frame.list(feat_vec))
return (y_hat)
$$ LANGUAGE 'plr';
这返回错误y_hat
!我知道这一点是因为这个其他解决方案有效(这个函数的输入仍然是模型(在字节数组中)和一个feat_vec
(数组)):
CREATE OR REPLACE FUNCTION lm_predict(
feat_vec float[],
model bytea
)
RETURNS float
AS
$$
#R-code goes here.
mdl <- unserialize(model)
coef = mdl$coefficients
y_hat = coef[1] + as.numeric(coef[-1]%*%feat_vec)
return (y_hat)
$$ LANGUAGE 'plr';
我究竟做错了什么??它是相同的未序列化模型,第一个选项也应该给我正确的答案......