我有一个火车数据帧(227845行)和一个测试数据帧(56962行)。 我想要做的是对列车数据运行statsmodel logit回归,然后预测测试数据的值。但是当我在尝试预测测试值时训练模型后,我得到错误:
PatsyError: Number of rows mismatch between data argument and train.loc[:, train.columns != 'Class'] (56962 versus 227845)
train['Class'] ~ train.loc[:, train.columns != 'Class']
我的分析步骤是:
import statsmodels.formula.api as smf
from statsmodels.formula.api import logit
from sklearn.model_selection import train_test_split
dataS = pd.read_csv('sample.csv')
train, test = train_test_split(dataS , test_size=0.3, random_state=0)
数据栏:
['Time' 'V1' 'V2' 'V3' 'V4' 'V5' 'V6' 'V7' 'V8' 'V9' 'V10' 'V11' 'V12'
'V13' 'V14' 'V15' 'V16' 'V17' 'V18' 'V19' 'V20' 'V21' 'V22' 'V23' 'V24'
'V25' 'V26' 'V27' 'V28' 'Amount' 'Class']
mod = logit("dataS['Class'] ~ dataS.loc[:, dataS.columns != 'Class']", data = dataS).fit()
predictions = mod.predict(test.loc[:, test.columns != 'Class'])
我尝试使用sklearn.linear_model.LogisticRegression
和statsmodel.Logit
运行它,在这两种情况下predict()
工作正常,但分析的统计数据不是我预期的那些与smf模型。
有人可以帮忙吗?