我已将我的数据分为训练和验证样本,并已成功将我的模型与三种线性模型拟合。我不知道该怎么做是将模型应用于验证样本以评估拟合度。当我尝试将模型应用于保留样本时(很抱歉,我知道这不是可复制的示例,但我认为问题很明显。我只是为了确保完整性而在此处添加了摘录。请保持谦虚!) :
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)可用,并将直接将其应用于我的验证数据,但是我希望有一个简单的答案被我遗漏了。
答案 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模型,并且在技术上对于空间模型可能并不完全正确。 偷取者。