матрица путаницы scikits с перекрестной проверкой

Я обучаю классификатор svm с перекрестной проверкой (stratifiedKfold) с использованием интерфейсов scikits. Для каждого набора тестов (из k) я получаю результат классификации. Я хочу получить матрицу путаницы со всеми результатами. Scikits имеет интерфейс матрицы путаницы: sklearn.metrics.confusion_matrix (y_true, y_pred) Мой вопрос в том, как мне накапливать значения y_true и y_pred. Это массивы (numpy). Должен ли я определять размер массивов на основе моего параметра k-fold? И для каждого результата я должен добавить в массив y_true и y-pred ????


person andreSmol    schedule 16.03.2012    source источник
comment
У меня есть решение этой проблемы. Для каждой итерации (через мою k-кратную) я создаю матрицу путаницы, которую добавляю к предыдущей. Таким образом я получаю CN, содержащий все значения. С помощью numpy легко построить эту кумулятивную матрицу (см + = см)   -  person andreSmol    schedule 16.03.2012
comment
Но у меня все еще есть проблема, если я хочу получить накопленный отчет о точности / отзыве (classification_report). Каждая итерация будет иметь y_true, y_pred. Как мне получить окончательный отчет?   -  person andreSmol    schedule 16.03.2012
comment
На протяжении всей перекрестной проверки y_true будет постоянным. Для y_pred вы можете выполнить ту же процедуру, что и матрица путаницы. Делайте агрегированные / итоговые прогнозы.   -  person Sayali Sonawane    schedule 31.08.2016


Ответы (1)


Вы можете использовать совокупную матрицу неточностей или вычислить ее для каждого раздела CV и вычислить среднее значение и стандартное отклонение (или стандартную ошибку) для каждого компонента в матрице в качестве меры изменчивости.

Для отчета о классификации необходимо изменить код, чтобы он принимал двумерные входные данные, чтобы передавать прогнозы для каждого раздела CV, а затем вычислять средние оценки и стандартное отклонение для каждого класса.

person ogrisel    schedule 18.03.2012
comment
Как бы вы могли создать совокупную матрицу путаницы? - person Merlin; 24.05.2016