Как протестировать модель машинного обучения?

Я хочу разработать структуру (для целей тестирования QA), которая проверяет модель машинного обучения. У меня было много дискуссий с моими сверстниками и чтение статей из Google.

Большинство обсуждений или статей говорят о том, что модель машинного обучения будет развиваться с использованием тестовых данных, которые мы предоставляем. поправьте меня если я ошибаюсь.

Какова возможность разработки фреймворка, подтверждающего, что модель машинного обучения даст точные результаты?

Несколько способов протестировать модель из статей, которые я читал: Техника разделения и многократного разделения, Метаморфическое тестирование.

Пожалуйста, также предложите любые другие подходы


person Siva    schedule 09.03.2018    source источник


Ответы (2)


Тестирование QA программного обеспечения на основе ML требует дополнительных и довольно нетрадиционных тестов, потому что часто их выходные данные для заданного набора входных данных не определены, детерминированы или известны априори, и они дают приблизительные, а не точные результаты.

QA может быть разработан для проверки:

  1. наивные, но предсказуемые методы сравнения: метод среднего в прогнозировании, основанный на частоте классов классификатор в классификации и т. д.
  2. проверки на вменяемость (выполнимые/рациональные результаты): например, является ли предсказанный возраст положительным?
  3. предустановленные объективные уровни приемлемости: например, является ли его AUCROC > 0,5?
  4. экстремальные/граничные случаи: например, грозовые условия для модели прогноза погоды.
  5. компромисс между смещением и дисперсией: какова его производительность на данных в выборке и вне выборки? Здесь полезен K-Fold перекрестная проверка.
  6. сама модель: это коэффициент вариации ее показателя эффективности (например, AUCROC) от < em>n работает с одними и теми же данными для одного и того же/случайного поезда и тестового разделения в разумных пределах?

Некоторые из этих тестов требуют измерения производительности. Здесь представлена ​​их обширная библиотека.

person Reveille    schedule 14.08.2018

Я думаю, на самом деле поток данных должен быть протестирован здесь, например, необработанный ввод, манипуляция, тестовый вывод и прогнозы. Например, если у вас есть простая линейная модель, вы действительно хотите проверить прогнозы, полученные на основе этой модели, а не коэффициенты модели. Итак, возможно, шаги высокого уровня суммированы ниже;

  1. Необработанный ввод. Имеет ли смысл необработанный ввод? Прежде чем вы начнете манипулировать, вы должны убедиться, что значения необработанных данных находятся в ожидаемых пределах. Например, если в некоторых данных вы обычно видите 5–10 % доли NA, наличие 95 % NA в новой партии может указывать на то, что что-то не так.
  2. Обучение/прогнозирование готовых входных данных. Независимо от того, обучаете ли вы новую модель или вводите новые данные в уже обученную модель для прогнозирования, вы, вероятно, хотите быть уверены, что обработанные данные также имеют смысл. Некоторые алгоритмы машинного обучения чувствительны к аномалиям данных. Вы не хотите прогнозировать кредитный рейтинг около тысячи только потому, что у вас есть некоторые аномалии данных во входных данных.
  3. Успех модели. К этому времени у вас должно быть некоторое представление об успехе вашей модели. Таким образом, вы можете измерить производительность модели на новых тестовых данных. Вы также можете проверить результаты обучения и теста, если они существенно не отличаются (например, переобучение). Если вы проходите переподготовку, вы можете сравнить баллы с предыдущими тренировками. Или вы можете выделить какой-то набор тестов и сравнить его результаты.
  4. Прогнозы. Наконец, вам нужно убедиться, что ваш окончательный результат имеет смысл, прежде чем доставлять его в производство/клиентам. Например, если вы прогнозируете доход для очень маленького магазина, прогнозы ежедневного дохода не могут быть миллионами долларов или какими-то отрицательными суммами.

Полное раскрытие, я написал небольшой пакет Python для этого. Вы можете проверить здесь или скачать, как показано ниже,

pip install mlqa
person Dogan Askan    schedule 04.06.2020