Я пытаюсь использовать стратегию перекрестной проверки TimeSeriesSplit в версии 0.18.1 sklearn с оценкой LogisticRegression. Я получаю ошибку о том, что:sklearn TimeSeriesSplit cross_val_predict работает только для разделов
cross_val_predict работает только для разделов
Следующий фрагмент кода показывает, как воспроизвести:
from sklearn import linear_model, neighbors
from sklearn.model_selection import train_test_split, cross_val_predict, TimeSeriesSplit, KFold, cross_val_score
import pandas as pd
import numpy as np
from datetime import date, datetime
df = pd.DataFrame(data=np.random.randint(0,10,(100,5)), index=pd.date_range(start=date.today(), periods=100), columns='x1 x2 x3 x4 y'.split())
X, y = df['x1 x2 x3 x4'.split()], df['y']
score = cross_val_score(linear_model.LogisticRegression(fit_intercept=True), X, y, cv=TimeSeriesSplit(n_splits=2))
y_hat = cross_val_predict(linear_model.LogisticRegression(fit_intercept=True), X, y, cv=TimeSeriesSplit(n_splits=2), method='predict_proba')
Что я делаю не так?
Что такое '14' здесь, в' range (14) '? Это какое-то произвольное число? То же самое с значениями dataframe. Мне не очень понятно, как вы пришли к этим ценностям. – keithhackbarth
14 является произвольным и, как указано, примером. Что касается кадра данных: посмотрите на вопрос, я просто скопировал его. – glao