GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (1)   Поиск:  
 Автор Тема: unit tests from Ml classifiers
data
Сообщений: 109
unit tests from Ml classifiers
Добавлено: 22 янв 17 10:28
Изменено: 31 янв 17 6:37
Все кодеры знают, что тесты берегут нервишки, особенно когда проект расшаренный и невесть кто может внести изменения, но чаше всего опасность исходит от собственной персоны, особенно в попыхах когда что то делается, на скорость.

Итак предлагаю обсудить тестирование таких “нечетких” сущностей как классификаторы, но результаты обсуждения наверняка можно обобщить будет и на другие структуры подобного порядка сложности, сперва нужно понять общие принципы.

Первое что приходит в голову, это взять распространённую метрику качества, например accuracy и сравнить результат с приемлемым диапазоном, как для “правильно работающего алгоритма”. Но как очевидно здесь есть много подводных камней.

Высказываемся…
[Ответ][Цитата]
mserg
Сообщений: 258
На: Тесты для классификаторов
+1
Добавлено: 23 янв 17 1:20
Цитата:
Автор: data

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

Итак предлагаю обсудить тестирование таких “нечетких” сущностей как классификаторы, но результаты обсуждения наверняка можно обобщить будет и на другие структуры подобного порядка сложности, сперва нужно понять общие принципы.

Первое что приходит в голову, это взять распространённую метрику качества, например accuracy и сравнить результат с приемлемым диапазоном, как для “правильно работающего алгоритма”. Но как очевидно здесь есть много подводных камней.

Высказываемся…


Технологически, защита от побочных эффектов коррекции кода, называется регрессионное тестирование.

Для собственно проверки классификатора, потребуется репозиторий задач, на котором прогоняется программа после внесения изменений. И действительно, проверяются диапазоны точности классификации, количество сожранных ресурсов (память, суммарное процессорное время), а также собственное время классификации. И вообще, любые параметры, которые вычисляются при классификации. Если имеют место быть генерации случайных чисел, то при тестировании устанавливается seed.

Аналогичные проблемы возникают у решателей (solver-ов) - после коррекции может поменяться само решение (если задача вырожденная), несколько поменяться оптимум (из-за погрешностей), одни задачи начинают решаться быстрее, другие медленнее, и т.д. Коррекция приложения не должна ухудшать средние характеристики программы.
[Ответ][Цитата]
data
Сообщений: 109
На: Тесты для классификаторов
Добавлено: 23 янв 17 11:13
Изменено: 23 янв 17 11:13
Цитата:
Автор: mserg



Технологически, защита от побочных эффектов коррекции кода, называется регрессионное тестирование.

Для собственно проверки классификатора, потребуется репозиторий задач, на котором прогоняется программа после внесения изменений. И действительно, проверяются диапазоны точности классификации, количество сожранных ресурсов (память, суммарное процессорное время), а также собственное время классификации. И вообще, любые параметры, которые вычисляются при классификации. Если имеют место быть генерации случайных чисел, то при тестировании устанавливается seed.

Аналогичные проблемы возникают у решателей (solver-ов) - после коррекции может поменяться само решение (если задача вырожденная), несколько поменяться оптимум (из-за погрешностей), одни задачи начинают решаться быстрее, другие медленнее, и т.д. Коррекция приложения не должна ухудшать средние характеристики программы.
Ага, в принципе можно, время и загрузку машинки тоже мерить, это верно. Кроме того наверно проверку нужно делать статистически, во много итераций с усреднением, так как например нейронки сходятся от раза к разу. Конечно если всё учесть то получится масштабно, нужно подумать как бы это упростить до некоторого оптимального минимума.
[Ответ][Цитата]
Дмитрий Стволовой
Сообщений: 328
На: Тесты для классификаторов
+1
Добавлено: 25 янв 17 4:05
Цитата:
Тесты для классификаторов
Тесты нужны чтобы в основном ошибки программирования отлавливать, работает\не работает, при внесении правок, как правило простые ошибки, то о чем Вы толкуете несколько другое, ближе к оценке производительности, профилированию. Классификаторы нужно профилировать пот задачу всем скопом, сложно сказать какой из них в какой конфигурации окажется лучшим, нужен интерфейс сравнительного анализа классификаторов и их конфигураций. В этом контексте разработать метрики для сравнения. Но повторюсь это не совсем юнит-тесты(ru.wikipedia.org/wiki/Модульное_тестирование) если я правильно Вас понял.
[Ответ][Цитата]
data
Сообщений: 109
На: Тесты для классификаторов
Добавлено: 26 янв 17 9:05
Цитата:
Автор: Дмитрий Стволовой

Тесты нужны чтобы в основном ошибки программирования отлавливать, работает\не работает, при внесении правок, как правило простые ошибки, то о чем Вы толкуете несколько другое, ближе к оценке производительности, профилированию. Классификаторы нужно профилировать пот задачу всем скопом, сложно сказать какой из них в какой конфигурации окажется лучшим, нужен интерфейс сравнительного анализа классификаторов и их конфигураций. В этом контексте разработать метрики для сравнения. Но повторюсь это не совсем юнит-тесты(ru.wikipedia.org/wiki/Модульное_тестирование) если я правильно Вас понял.
Тоже верно. Пока я так и сделал, только скор проверяется, что бы в диапазон попадал, но потом добавлю и диапазоны ресурсоёмкости, хотя думаю это как минимум отдельным тестом, иначе не будет понятно, что же сломано.
[Ответ][Цитата]
гость
95.211.205.*
На: Тесты для классификаторов
Добавлено: 27 янв 17 8:45
Цитата:
Тесты для классификаторов
название темы неправильное, переименуйте в "unit tests from Ml classifiers" иначе не понятно конкретно о чем речь
[Ответ][Цитата]
гость
64.137.178.*
На: Тесты для классификаторов
Добавлено: 28 янв 17 7:32
Цитата:
Автор: data

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

Итак предлагаю обсудить тестирование таких “нечетких” сущностей как классификаторы, но результаты обсуждения наверняка можно обобщить будет и на другие структуры подобного порядка сложности, сперва нужно понять общие принципы.

Первое что приходит в голову, это взять распространённую метрику качества, например accuracy и сравнить результат с приемлемым диапазоном, как для “правильно работающего алгоритма”. Но как очевидно здесь есть много подводных камней.

Высказываемся…
XOR
[Ответ][Цитата]
data
Сообщений: 109
На: Тесты для классификаторов
Добавлено: 31 янв 17 6:37
Цитата:
Автор: гость

название темы неправильное, переименуйте в "unit tests from Ml classifiers" иначе не понятно конкретно о чем речь
согласен
[Ответ][Цитата]
гость
81.177.126.*
На: Тесты для классификаторов
Добавлено: 31 янв 17 6:40
А... Data, он всегда останется как на аватарке?
[Ответ][Цитата]
data
Сообщений: 109
На: Тесты для классификаторов
Добавлено: 31 янв 17 6:46
Изменено: 31 янв 17 6:49
Цитата:
Автор: гость

XOR
Забавно, но именно XOR я использовал в начале для юнитов нелинейных классификаторов, но потом стал брать более хитрые датасеты
[Ответ][Цитата]
гость
176.126.252.*
На: Тесты для классификаторов
Добавлено: 31 янв 17 10:46
Цитата:
Автор: data

Забавно, но именно XOR я использовал в начале для юнитов нелинейных классификаторов, но потом стал брать более хитрые датасеты
клёвый цветовой темплит, по автоподписям параметров методов, предположу что иде - идея, где взяли темплит? тоже такой хочу...
[Ответ][Цитата]
гость
107.189.10.*
На: unit tests from Ml classifiers
Добавлено: 09 янв 22 8:08
Цитата:
Автор: data

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

Итак предлагаю обсудить тестирование таких “нечетких” сущностей как классификаторы, но результаты обсуждения наверняка можно обобщить будет и на другие структуры подобного порядка сложности, сперва нужно понять общие принципы.

Первое что приходит в голову, это взять распространённую метрику качества, например accuracy и сравнить результат с приемлемым диапазоном, как для “правильно работающего алгоритма”. Но как очевидно здесь есть много подводных камней.

Высказываемся…
Тесты дело не хитрое, житейское. Я вообще привык уже работать по TDD работать почти на все 100%, вначале плевался, потом привык, а сейчас в восторге.
[Ответ][Цитата]
 Стр.1 (1)