1

我已将我的数据划分为训练和验证样本,并成功地将我的模型与三种类型的线性模型拟合。我无法弄清楚如何将模型应用于验证样本以评估拟合。当我尝试将模型应用于坚持样本时(抱歉,我知道这不是一个可重现的示例,但我认为问题很清楚。我只是为了完整起见将这个片段放在这里。请温柔!) :

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

我收到以下错误消息:

() 8 9 有效 = validation.loc[:, x + [ "sale_amt"]] ---> 10 holdout1 = m1.predict(valid) 中的 AttributeError Traceback (最近一次调用最后一次)

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

其他 Python OLS 回归包有一个“预测”方法,但 PySAL 似乎没有。我意识到函数系数(beta)是可用的,并将继续将它们直接应用于我的验证数据,但我希望有一个我刚刚错过的简单答案。

4

1 回答 1

1

如果回答我自己的问题是不好的形式,我深表歉意,但我确实想出了一个解决方案。我联系了 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 模型的非空间模型的方法,并且在技术上对于空间模型可能并不完全正确。 买者自负。

于 2019-07-19T13:44:46.330 回答