Python: есть ли способ предсказать метки для разделения временного ряда CV? - PullRequest
0 голосов
/ 03 ноября 2018

Я планирую построить матрицу путаницы для моей перекрестной проверки, и поскольку матрица путаницы принимает только прогнозы, есть способ сделать это. Но cross_val_predict не может быть использован для CV с разбивкой по времени. Я использую MultinomialNB для моей проблемы.

Я попробовал следующий код:

def tn(y_true, y_pred): return confusion_matrix(y_true, y_pred)[0, 0]
def fp(y_true, y_pred): return confusion_matrix(y_true, y_pred)[0, 1]
def fn(y_true, y_pred): return confusion_matrix(y_true, y_pred)[1, 0]
def tp(y_true, y_pred): return confusion_matrix(y_true, y_pred)[1, 1]
scoring = {'tp' : make_scorer(tp), 'tn' : make_scorer(tn),'fp' : 
make_scorer(fp), 'fn' : make_scorer(fn)}
cv_results = cross_validate(nb, train_data, train_label,scoring=scoring, cv=tss)#10 fold time series split
tp = cv_results['test_tp'].sum()
fn = cv_results['test_fn'].sum()
tn = cv_results['test_tn'].sum()
fp = cv_results['test_fp'].sum()

Суммарный счет полученной матрицы путаницы не соответствует общему количеству точек данных поезда, и для каждого сгиба CV я строю матрицу путаницы, которая не является тем, что я хочу.

...