【发布时间】:2014-05-27 17:45:27
【问题描述】:
我正在研究逻辑回归模型,但我无法理解如何将模型从我的训练集拟合到我的测试集。抱歉,我是 python 新手,对 statsmodels 非常陌生..
import pandas as pd
import statsmodels.api as sm
from sklearn import cross_validation
independent_vars = phy_train.columns[3:]
X_train, X_test, y_train, y_test = cross_validation.train_test_split(phy_train[independent_vars], phy_train['target'], test_size=0.3, random_state=0)
X_train = pd.DataFrame(X_train)
X_train.columns = independent_vars
X_test = pd.DataFrame(X_test)
X_test.columns = independent_vars
y_train = pd.DataFrame(y_train)
y_train.columns = ['target']
y_test = pd.DataFrame(y_test)
y_test.columns = ['target']
logit = sm.Logit(y_train,X_train[subset],missing='drop')
result = logit.fit()
print result.summary()
y_pred = logit.predict(X_test[subset])
从最后一行,我得到这个错误:
y_pred = logit.predict(X_test[子集]) 回溯(最近一次通话最后): 文件“”,第 1 行,在 文件“C:\Users\eMachine\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\statsmodels\discrete\discrete_model.py”,第 378 行,在预测中 返回 self.cdf(np.dot(exog, params)) ValueError:矩阵未对齐
我的训练和测试数据集具有相同数量的变量,所以我确定我误解了 logit.predict() 的实际作用。
【问题讨论】:
-
np.asarray(X_train[subset]).shape和np.asarray(X_test[subset]).shape的第二个值是否相同? -
@user333700 是的,他们有。
标签: python statsmodels