Сравните точности двух классификационных моделей путем повторной перекрестной валидации
testckfold
статистически оценивает точности двух классификационных моделей путем многократной перекрестной проверки двух моделей, определения различий в классификационных потерях и затем формулировки тестовой статистики путем объединения классификационных потерь. Этот тип испытания является особенно подходящим, когда размер образца ограничен.
Можно оценить, отличаются ли точности классификационных моделей или одна классификационная модель работает лучше другой. Доступные тесты включают тест парного t 5 на 2, тест парного F 5 на 2 и повторный тест перекрестного t валидации 10 на 10. Для получения дополнительной информации см. «Повторные тесты перекрестной валидации». Чтобы ускорить расчеты, testckfold
поддерживает параллельные вычисления (требует лицензии Parallel Computing Toolbox™).
возвращает решение теста, которое является результатом проведения парного F кросс-валидационного теста 5 на 2. Нулевая гипотеза является классификационными моделями h
= testckfold(C1
,C2
,X1
,X2
)C1
и C2
имеют равную точность в прогнозировании меток истинных классов с помощью предиктора и данных отклика в таблицах X1
и X2
. h
= 1
указывает на отклонение нулевой гипотезы на уровне 5% значимости.
testckfold
проводит тест перекрестной валидации путем применения C1
и C2
ко всем переменным предиктора в X1
и X2
, соответственно. Истинные метки классов в X1
и X2
должно быть то же самое. Имена переменных отклика в X1
, X2
, C1.ResponseName
, и C2.ResponseName
должно быть то же самое.
Для примеров способов сравнения моделей смотрите Советы.
применяет полную классификационную модель или классификационные шаблоны h
= testckfold(C1
,C2
,X1
,X2
,Y
)C1
и C2
ко всем переменным предиктора в таблицах или матрицах данных X1
и X2
, соответственно. Y
- имя табличной переменной, соответствующее меткам истинного класса или массиву меток истинного класса.
использует любой из входных параметров в предыдущих синтаксисах и дополнительные опции, заданные одним или несколькими h
= testckfold(___,Name,Value
)Name,Value
аргументы в виде пар. Для примера можно задать тип альтернативной гипотезы, тип теста или использование параллельных вычислений.
Примеры способов сравнения моделей включают:
Сравните точности простой классификационной модели и более сложной модели путем передачи одного и того же набора данных предиктора.
Сравните точности двух разных моделей, используя два разных набора предикторов.
Выполните различные типы выбора признаков. Например, можно сравнить точность модели, обученной с помощью набора предикторов, с точностью одной, обученной на подмножестве или другом наборе предикторов. Можно произвольно выбрать набор предикторов или использовать такой метод выбора признаков, как PCA или последовательный выбор признаков (см. pca
и sequentialfs
).
Если оба этих операторов верны, можно опускать поставляющие Y
.
Следовательно, testckfold
использует общую переменную отклика в таблицах.
Один из способов выполнить нечувствительный к затратам выбор признаков:
Создайте шаблон классификационной модели, который характеризует первую классификационную модель (C1
).
Создайте шаблон классификационной модели, который характеризует вторую классификационную модель (C2
).
Задайте два набора данных предиктора. Для примера задайте X1
как полный набор предикторов и X2
как редуцированный набор.
Введите testckfold(C1,C2,X1,X2,Y,'Alternative','less')
. Если testckfold
возвращает 1
затем существует достаточно доказательств, чтобы предположить, что классификационная модель, которая использует меньше предикторов, работает лучше, чем модель, которая использует полный набор предикторов.
Кроме того, можно оценить, существует ли значительное различие между точностями двух моделей. Чтобы выполнить эту оценку, удалите 'Alternative','less'
спецификация на шаге 4.testckfold
проводит двусторонний тест и h = 0
указывает, что недостаточно доказательств, чтобы предположить различие в точности двух моделей.
Тесты подходят для классификации классификации потерь по классификации, но можно задать другие функции потерь (см LossFun
). Ключевые допущения заключаются в том, что предполагаемые классификационные потери являются независимыми и обычно распределяются со средней 0 и конечным общим отклонением при двусторонней нулевой гипотезе. Классификационные потери, отличные от коэффициента неправильной классификации, могут нарушить это предположение.
Высоко дискретные данные, несбалансированные классы и сильно несбалансированные матрицы затрат могут нарушить нормальность допущения классификационных различий потерь.
Если вы задаете, чтобы провести повторную перекрестную валидацию 10 на 10 t тест с использованием 'Test','10x10t'
, затем testckfold
использует 10 степеней свободы для распределения t, чтобы найти критическую область и оценить p значение. Для получения дополнительной информации см. разделы [2] и [3].
Использовать testcholdout
:
Для тестовых наборов с большими размерами выборки
Для реализации вариантов теста Макнемара, чтобы сравнить две точности классификационной модели
Для чувствительной к цене проверки с использованием критерия хи-квадрат или коэффициент вероятности. Тест хи-квадрат использует quadprog
(Optimization Toolbox), для которого требуется лицензия Optimization Toolbox™.
[1] Alpaydin, E. «Комбинированный тест CV F 5 x 2 для сравнения контролируемых классификационных Алгоритмов обучения». Нейронный Расчет, том 11, № 8, 1999, стр. 1885-1992.
[2] Буккар. Р. «Выбор между двумя алгоритмами обучения на основе калиброванных тестов». Международная конференция по машинному обучению, 2003, стр. 51-58.
[3] Буккар, Р. и Э. Фрэнк. «Оценка реплицируемости тестов значимости для сравнения алгоритмов обучения». Усовершенствования в области обнаружения знаний и майнинга данных, 8-я Тихоокеано-Азиатская конференция, 2004, стр. 3-12.
[4] Диттерих, Т. «Аппроксимация статистических тестов для сравнения контролируемых алгоритмов классификационного обучения». Нейронный Расчет, том 10, № 7, 1998, стр. 1895-1923.
[5] Хасти, Т., Р. Тибширани и Дж. Фридман. Элементы статистического обучения, 2nd Ed. New York: Springer, 2008.
templateDiscriminant
| templateECOC
| templateEnsemble
| templateKNN
| templateNaiveBayes
| templateSVM
| templateTree
| testcholdout