Python 给定形状错误的类中的StatModel
我在statmodels中使用以下模型Python 给定形状错误的类中的StatModel,python,linear-regression,statmodels,Python,Linear Regression,Statmodels,我在statmodels中使用以下模型 import statsmodels.api as sm class MultiLinRegLearner_A: """This class defines a Multi Linear regression algorithm.""" def __init__(self, X_train, Y_train): self.X_train = s
import statsmodels.api as sm
class MultiLinRegLearner_A:
"""This class defines a Multi Linear regression algorithm."""
def __init__(self, X_train, Y_train):
self.X_train = sm.add_constant(X_train)
self.Y_train = Y_train
def train(self):
self.model = sm.OLS(self.Y_train, self.X_train).fit()
def query(self, X_test):
Y = self.model.predict(X_test)
return Y
在这里,直到培训部分,它才能正常工作,但是当我调用mgl.query(X[150:])时,就会出现错误。
我得到了以下错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-49-c0758051747f> in <module>
2 mgl = MultiLinRegLearner_A(X[:150], Y[:150])
3 mgl.train()
----> 4 mgl.query(X[150:])
<ipython-input-48-0c0142618863> in query(self, X_test)
13
14 def query(self, X_test):
---> 15 Y = self.model.predict(X_test)
16 return Y
C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\base\model.py in predict(self, exog, transform, *args, **kwargs)
1098
1099 predict_results = self.model.predict(self.params, exog, *args,
-> 1100 **kwargs)
1101
1102 if exog_index is not None and not hasattr(predict_results,
C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\regression\linear_model.py in predict(self, params, exog)
378 exog = self.exog
379
--> 380 return np.dot(exog, params)
381
382 def get_distribution(self, params, scale, exog=None, dist_class=None):
<__array_function__ internals> in dot(*args, **kwargs)
ValueError: shapes (74,3) and (4,) not aligned: 3 (dim 1) != 4 (dim 0)
这是一张X:
array([[ 5.57469465e-02, 4.58671212e-02, 8.05328572e-01],
[ 5.95213534e-02, 2.82266197e-02, 4.60267261e-01],
[ 1.08318052e-01, 5.42789552e-02, 6.83864663e-01],
[ 1.06784149e-01, 2.89634220e-02, 4.62705431e-01],
[ 6.70113471e-02, 9.51949656e-03, 2.23702558e-01],
但是,当我在类外使用该模型时,如下面所示,它可以完美地工作
import statsmodels.api as sm
X = sm.add_constant(X)
model = sm.OLS(Y[:150],X[:150]).fit()
predictions = model.predict(X[150:])
print_model = model.summary()
有人知道我该如何解决这个问题吗?x\u火车有
add\u常量
,x\u测试缺少预测,add\u常量需要选项有\u常量='add'
x\u火车有add\u常量
,x\u测试缺少预测,add\u常量需要选项有\u常量='add'
array([[ 5.57469465e-02, 4.58671212e-02, 8.05328572e-01],
[ 5.95213534e-02, 2.82266197e-02, 4.60267261e-01],
[ 1.08318052e-01, 5.42789552e-02, 6.83864663e-01],
[ 1.06784149e-01, 2.89634220e-02, 4.62705431e-01],
[ 6.70113471e-02, 9.51949656e-03, 2.23702558e-01],
import statsmodels.api as sm
X = sm.add_constant(X)
model = sm.OLS(Y[:150],X[:150]).fit()
predictions = model.predict(X[150:])
print_model = model.summary()