我有一个lm
模型在R,我已经训练和序列化。内的功能,其中,I通过作为输入的模型和特征向量(一个单个阵列),我有:R线性模型(LM)预测函数与一个单阵列
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
!!我知道这是因为这种解决方案的其他作品(输入这个功能仍然是模型(为bytearray)和一个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';
我在做什么错?这是同样的非序列化的模型,第一个选项应该给我正确的答案以及...
这是R代码里面?它看起来像半蟒蛇;冒号中的冒号不会以这种方式工作,也不会返回''或'+'。 – alistaire
是的,它是R +伪代码 - 你可以忽略函数声明 实际上 - 这是在Postgres的PL/R函数中,但我不想把重点放在Postgres – strv7
...所以如何伪代码返回结果,正确与否? – alistaire