首页 > 解决方案 > 使用 statsmodels.api 使用 ols().fit() 时出错

问题描述

我一直在关注 Udemy 的机器学习教程。我正在使用该statsmodels.formula.api库,但该类OLS不在其中,我猜它已被移动,因为我发现一个线程说要使用statsmodels.api并导入。问题是,当我在下面的代码上运行该fit()方法时sm.OLS(),我得到了错误'NoneType' Object has no attribute 'shape'。这是代码和错误。

import statsmodels.api as sm
X = np.append(arr = np.ones((len(X), 1)).astype(int), values = X , axis = 1)
X_opt = X[:, [0, 1, 2, 3, 4, 5]]
regressor_OLS = sm.OLS(endog = y, exorg = X_opt).fit()

上线出错regressor_OLS = sm.OLS(endog = y, exorg = X_opt).fit()

AttributeError: 'NoneType' object has no attribute 'shape'

.fit()注意:如果我在 just run 中排除regressor_OLS = sm.OLS(endog = y, exorg = X_opt),它可以正常工作,但不是我想要的结果。

标签: pythonmachine-learningstatsmodels

解决方案


将其更改为

import statsmodels.api as sm
X = np.append(arr = np.ones((len(X), 1)).astype(int), values = X , axis = 1)
X_opt = X[:, [0, 1, 2, 3, 4, 5]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt)
res=regressor_OLS.fit()

这是因为您必须在初始化后拟合回归量。在另一张纸条上,刚刚注意到它是 exog 而不是 exorg

希望这可以帮助。


推荐阅读