Сравните точность двух моделей классификации повторной перекрестной проверкой
testckfold
статистически оценивает точность двух моделей классификации путем повторной перекрестной проверки этих двух моделей, определения различий в потере классификации, и затем формулировки тестовой статистической величины путем объединения различий в классификации потерь. Этот тип теста является особенно соответствующим, когда объем выборки ограничивается.
Можно оценить, отличается ли точность моделей классификации, или выполняет ли одна модель классификации лучше, чем другой. Доступные тесты включают 5 2 парный тест t, 5 2 парный тест F и 10 10 повторную перекрестную проверку тест t. Для получения дополнительной информации смотрите Повторные Тесты Перекрестной проверки. Ускорять расчеты, testckfold
параллельные вычисления поддержек (требует лицензии Parallel Computing Toolbox™).
возвращает тестовое решение, которое следует из проведения 5 2 парного теста перекрестной проверки F. Нулевая гипотеза является моделями 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
указывает, что существует недостаточно доказательства, чтобы предложить различие в точности этих двух моделей.
Тесты подходят для misclassification потери классификации уровней, но можно задать другие функции потерь (см. LossFun
). Ключевые предположения - то, что предполагаемые потери классификации независимы и нормально распределены со средним значением 0 и конечным общим отклонением по двухсторонней нулевой гипотезе. Потери классификации кроме misclassification уровня могут нарушить это предположение.
Очень дискретные данные, неустойчивые классы и очень неустойчивые матрицы стоимости могут нарушить предположение нормальности о различиях в классификации потерь.
Если вы задаете, чтобы провести 10 10 повторную перекрестную проверку тест t с помощью 'Test','10x10t'
, затем testckfold
использование 10 степеней свободы для распределения t, чтобы найти критическую область и оценить p - значение. Для получения дополнительной информации см. [2] и [3].
Используйте testcholdout
:
Для наборов тестов с большими объемами выборки
Чтобы реализовать варианты Макнемэра тестируют, чтобы сравнить две точности модели классификации
Для чувствительного к стоимости тестирования с помощью теста хи-квадрата или отношения правдоподобия. Тест хи-квадрата использует quadprog
, который требует лицензии Optimization Toolbox™.
[1] Alpaydin, E. “Объединенный 5 x 2 CV F Тест для Сравнения Контролируемых Алгоритмов обучения Классификации”. Нейронный Расчет, Издание 11, № 8, 1999, стр 1885–1992.
[2] Bouckaert. R. “Выбирая Между Двумя Алгоритмами обучения На основе Калиброванных Тестов”. Международная конференция по вопросам Машинного обучения, 2003, стр 51–58.
[3] Bouckaert, R. и Э. Франк. “Оценивая Replicability Тестов Значения для Сравнения Алгоритмов обучения”. Усовершенствования в Открытии Знаний и Анализе данных, 8-й Тихом-океане-азиатской Конференции, 2004, стр 3–12.
[4] Dietterich, T. “Аппроксимируйте статистические тесты для сравнения контролируемых алгоритмов обучения классификации”. Нейронный Расчет, Издание 10, № 7, 1998, стр 1895–1923.
[5] Hastie, T., Р. Тибширэни и Дж. Фридман. Элементы статистического изучения, 2-го Эда. Нью-Йорк: Спрингер, 2008.
templateDiscriminant
| templateECOC
| templateEnsemble
| templateKNN
| templateNaiveBayes
| templateSVM
| templateTree
| testcholdout