Я пытаюсь оценить производительность алгоритма классификации машинного обучения под наблюдением. Наблюдения делятся на номинальные классы (2 на данный момент, однако я хотел бы обобщить это для многоклассовых проблем), составленные из 99 субъектов.
Один из вопросов, на которые я бы хотел ответить, - если алгоритм демонстрирует существенную разницу в точности классификации между входными классами. Для случая бинарной классификации я сравниваю среднюю точность между классами по предметам, используя парный критерий Уилкоксона (поскольку базовое распределение не является нормальным). Чтобы обобщить эту процедуру для многоклассовых задач, я намеревался использовать тест Фридмана .
Тем не менее, значения p, полученные этими двумя процедурами в случае бинарного в / в, сильно различаются, при этом критерий Уилкоксона дает результаты, p < .001
тогда как p = .25
для критерия Фридмана. Это заставляет меня поверить, что у меня есть фундаментальное неправильное понимание структуры теста Фридмана.
Разве не уместно использовать тест Фридмана в этом случае для сравнения результатов повторных измерений точности по всем предметам?
Мой код R для получения этих результатов ( subject
это идентификатор субъекта, acc
точность DV и expected
класс наблюдения IV):
> head(subject.accuracy, n=10)
subject expected acc
1 10 none 0.97826087
2 10 high 0.55319149
3 101 none 1.00000000
4 101 high 0.68085106
5 103 none 0.97826087
6 103 high 1.00000000
7 104 none 1.00000000
8 104 high 0.08510638
9 105 none 0.95121951
10 105 high 1.00000000
> ddply(subject.accuracy, .(expected), summarise, mean.acc = mean(acc), se.acc = sd(acc)/sqrt(length(acc)))
expected mean.acc se.acc
1 none 0.9750619 0.00317064
2 high 0.7571259 0.03491149
> wilcox.test(acc ~ expected, subject.accuracy, paired=T)
Wilcoxon signed rank test with continuity correction
data: acc by expected
V = 3125.5, p-value = 0.0003101
alternative hypothesis: true location shift is not equal to 0
> friedman.test(acc ~ expected | subject, subject.accuracy)
Friedman rank sum test
data: acc and expected and subject
Friedman chi-squared = 1.3011, df = 1, p-value = 0.254
wilcox.test
выполняет тест со знаком ранга, сравнивающий точность при двух условиях, потому что вы никогда не сообщаете ему переменную сопряжения. По крайней мере, это небезопасный способ выполнения теста, поскольку он основан на упорядочении строк во входных данных.