Сравните точность двух моделей классификации повторной перекрестной проверкой
testckfold
статистически оценивает точность двух моделей классификации неоднократно крестом, подтверждающим эти две модели, определяя различия в потере классификации, и затем формулируя тестовую статистическую величину путем объединения различий в классификации потерь. Этот тип теста является особенно соответствующим, когда объем выборки ограничивается.
Можно оценить, отличается ли точность моделей классификации, или выполняет ли одна модель классификации лучше, чем другой. Доступные тесты включают 5 2 парный тест t, 5 2 парный тест F и 10 10 повторную перекрестную проверку тест t. Для получения дополнительной информации смотрите Повторные Тесты Перекрестной проверки. Чтобы ускорить вычисления, testckfold
поддерживает параллельные вычисления (требует лицензии Parallel Computing Toolbox™).
h = testckfold(C1,C2,X1,X2)
h = testckfold(C1,C2,X1,X2,Y)
h = testckfold(___,Name,Value)
[h,p,e1,e2]
= testckfold(___)
возвращает тестовое решение, которое следует из проведения 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