我已经将我的数据划分为训练和验证样本,并成功地将我的模型与三种线性模型相匹配。我想不出如何将模型应用到验证样例中来评估是否合适。当我试图将该模型应用于持久化示例时(对不起,我知道这不是一个可重复的示例,但我认为问题非常清楚。我只是把这个片段放在这里是为了完整。请轻点!):
valid = validation.loc[:, x + [ "sale_amt"]]
holdout1 = m1.predict(valid)我收到以下错误消息:
AttributeError跟踪(最近一次调用)在() 8 9 valid = validation.loc[:,x+ "sale_amt"] --> 10 holdout1 =m1.预测(有效) AttributeError: OLS对象没有属性“预测”
其他Python回归包有一个“预测”方法,但PySAL似乎没有。我意识到函数系数(betas)是可用的,并将继续将它们直接应用于我的验证数据,但我希望有一个简单的答案,我刚刚错过了。
发布于 2019-07-19 13:44:46
如果回答我自己的问题不是很好,我很抱歉,但我想出了一个解决办法。我联系了PySAL开发人员之一,他帮助我找到了我想要的结果。请注意,我的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模型所使用的非空间模型的方法,在技术上可能对空间模型不完全正确。请注意。
https://stackoverflow.com/questions/56547666
复制相似问题