PySAL OLS模型:AttributeError:'OLS'对象没有属性'predict'

时间:2019-06-11 16:00:56

标签: python regression spatial predict pysal

我已将我的数据分为训练和验证样本,并已成功将我的模型与三种线性模型拟合。我不知道该怎么做是将模型应用于验证样本以评估拟合度。当我尝试将模型应用于保留样本时(很抱歉,我知道这不是可复制的示例,但我认为问题很明显。我只是为了确保完整性而在此处添加了摘录。请保持谦虚!) :

valid = validation.loc[:, x + [ "sale_amt"]] 
holdout1 = m1.predict(valid)

我收到以下错误消息:

  

AttributeError跟踪(最近一次通话)    在()中        8        9有效= validation.loc [:, x + [“ sale_amt”]]   ---> 10 holdout1 = m1.predict(有效)

     

AttributeError:“ OLS”对象没有属性“ predict”`

其他Python OLS回归软件包具有“预测”方法,但PySAL似乎没有。我意识到函数系数(betas)可用,并将直接将其应用于我的验证数据,但是我希望有一个简单的答案被我遗漏了。

1 个答案:

答案 0 :(得分:0)

我很抱歉回答自己的问题是不好的形式,但我确实提出了解决方案。我联系了PySAL的开发人员之一Daniel Arribas-Bel,他帮助我取得了想要的结果。请注意,我的PySAL OLS对象名为m1,而我的验证数据帧称为“验证”:

m1 = ps.model.spreg.OLS(...)
m1.intercept = m1.betas[0]  # Get the intercept from the betas array
m1.coefficients = m1.betas[1:len(m1.betas)] # Get the coefficients from the betas array
validation['predicted_price'] = m1.intercept + validation.loc[:, x].dot(  m1.coefficients) 

请注意,这是我将在非空间模型中使用的方法,该模型适用于我在PySAL中构建的KNN模型,并且在技术上对于空间模型可能并不完全正确。 偷取者。