TimeSeries NLP: использование ARIMA с CountVectorizer - PullRequest
0 голосов
/ 29 мая 2020

Я практикуюсь в наборе данных заголовков новостей kaggle по ценам DJIA, экспортированным из Yahoo Finance: https://www.kaggle.com/aaron7sun/stocknews#Combined_News_DJIA .csv

НЛП с TimeSeries обсуждается не так много, Я попытался использовать код этой статьи с помощью CountVectorizer (), но безуспешно. Мне было интересно, есть ли у кого-нибудь ресурсы или предложения?

Мой код ниже основан на заголовке в наборе данных выше:

def modeller(vect, X_tr, y_tr, X_te):
    X_train_dtm = vect.fit_transform(X_tr.unstack())
    X_test_dtm = vect.fit_transform(X_te.unstack())
    X_tr_arima = [x for x in X_train_dtm]
    print('done with count vectorizer. now modelling.')
    model = ARIMA(X_tr_arima, order=(1,1,1))
    print('done modelling. now fitting')
    model_fit = model.fit(X_tr_arima, y_tr)
    y_hat = model.predict(x_te_arima)
    return y_hat

vect = CountVectorizer(stop_words='english')
X_train, X_test, y_train, y_test = X.iloc[0:100], X.iloc[100:X.shape[0]], y[0:100], y[100:len(y)]
modeller(vect, X_train, y_train, X_test)

Вывод (ошибка из строки ARIMA):

ValueError: setting an array element with a sequence.

1 Ответ

0 голосов
/ 29 июня 2020

У меня была такая же проблема, и я мог исправить ее, используя этот подход. Попробуйте изменить

from pmdarima.pipeline import Pipeline

на

from pmdarima.pipeline import Pipeline as arimaPip
...