Я думаю, что первым шагом является проверка правильности заявленных результатов обучения и тестирования.
- Выполнено ли разделение во время 5-кратной перекрестной проверки таким образом, чтобы получить статистически независимые наборы обучающих / тестовых наборов? Например, если в данных повторяются измерения, всегда ли они оказываются в одном наборе?
- Точность 95,83% в 5-кратном резюме из 150 образцов соответствует 5 ошибочным из 130 обучающих выборок для 5 суррогатных моделей или 25 неправильным случаям для 5 * 130 обучающих выборок.
Точность теста 98,21% объяснить сложнее: во время одного прогона резюме каждый случай должен быть проверен один раз. Таким образом, возможные сообщаемые цифры должны быть с шагом 100% / 150. 98,21% соответствует 2,68 неправильным случаям (2 и 3 неправильных из 150 тестовых случаев дают точность 98,67 и 98,00% соответственно).
Если вы можете извлечь свою модель, рассчитайте сообщенные погрешности извне.
- Каковы точные данные для случайного ввода?
- Проведите внешнюю перекрестную проверку: разделите ваши данные и передайте в программу только обучающую часть. Предсказать «внешние» данные теста и рассчитать точность. Это соответствует выводу программы?
- Убедитесь, что заявленная «точность теста» основана на независимых данных (двойная / вложенная перекрестная проверка): если ваша программа выполняет оптимизацию на основе данных (например, выбирая «лучшие» функции путем сравнения многих моделей), это больше похоже на ошибку обучения (добро подходит), чем как ошибка обобщения.
Я согласен с @mbq, что ошибка обучения вряд ли когда-либо будет полезна в машинном обучении. Но вы можете оказаться в одной из немногих ситуаций, где это на самом деле полезно: если программа выбирает «лучшую» модель, сравнивая точность, но имеет только ошибки обучения, из которых вы можете выбрать, вам нужно проверить, действительно ли ошибка обучения допускает разумную ошибку. выбор.
@mbq обрисовал лучший сценарий для неразличимых моделей. Тем не менее, случаются и худшие сценарии: точно так же, как и точность теста, точность обучения также подвержена отклонениям, но имеет оптимистический уклон по сравнению с точностью обобщения, которая обычно представляет интерес. Это может привести к ситуации, когда модели невозможно будет отличить, хотя они действительно имеют разную производительность. Но их точность обучения (или внутреннее резюме) слишком близки, чтобы их можно было различить из-за их оптимистической предвзятости. Например, методы итеративного выбора признаков могут быть подвержены таким проблемам, которые могут даже сохраняться для точности внутренней перекрестной проверки (в зависимости от того, как реализована эта перекрестная проверка).
Поэтому, если такая проблема может возникнуть, я думаю, что это хорошая идея, чтобы проверить, может ли разумный выбор быть результатом точности, которую программа использует для принятия решения. Это будет означать проверку того, что внутренняя точность cv (которая предположительно используется для выбора наилучшей модели) не слишком или не слишком оптимистично настроена по отношению к внешне выполненному cv со статистически независимым расщеплением. Опять же, синтетические и / или случайные данные могут помочь выяснить, что на самом деле делает программа.
Второй шаг - посмотреть, имеют ли значение наблюдаемые различия для статистически независимых расщеплений, как уже указывало @mbq.
Я предлагаю вам посчитать, какую разницу в точности вам нужно наблюдать с вашим заданным размером выборки, чтобы получить статистически значимую разницу. Если наблюдаемое отклонение меньше, вы не можете решить, какой алгоритм лучше с вашим данным набором данных: дальнейшая оптимизация не имеет смысла.