Как мне предсказать значения, используя функцию .predict () в statsmodels в Python? - PullRequest
0 голосов
/ 07 января 2019

Я набрал следующие строки кода:

# import relevant statistical packages
import numpy as np
import pandas as pd
import statsmodels.api as sm
import pylab as pl
import sklearn.linear_model as skl
import sklearn.metrics as metrics
from sklearn.model_selection import train_test_split

# import data
url = "/<...>/Smarket.csv" # relative url within my computer
Smarket = pd.read_csv(url, index_col = 'SlNo')

X3 = Smarket[['Lag1', 'Lag2', 'Lag3', 'Lag4', 'Lag5', 'Volume']]
Y3 = Smarket['Direction']

X_train, X_test, y_train, y_test = train_test_split(X3, Y3, test_size=0.2016)
data_1 = pd.concat([pd.DataFrame(y_train), X_train], axis = 1)
model_1 = sm.formula.glm(formula = 'y_train~X_train', data = data_1,  family= sm.families.Binomial()).fit()

X_new = model_1.predict(X_test)

Теперь в последнем коде я получаю следующую ошибку:

PatsyError: Number of rows mismatch between data argument and X_train (252     versus 998)
y_train~X_train
        ^^^^^^^

Я просто не могу понять, почему я получаю эту ошибку. Я понимаю, что это может быть из-за несоответствия количества данных между X_test и X_train. Как мне изменить свой код, чтобы получить прогнозируемые значения?

...