выбор между алгоритмами - PullRequest
7 голосов
/ 12 июля 2010

Я уверен, что в Stackoverflow есть много инженеров по тестированию программного обеспечения, инженеров по проверке алгоритмов. Кто-нибудь может сказать, как поступить в следующем сценарии.

Скажем, у нас есть маммограмма и 5 различных алгоритмов, которые принимают эту маммограмму в качестве входных данных и определяют, есть ли у пациента рак. Если 3 из 5 алгоритмов говорят, что у пациента рак, а 2 говорят, что у пациента рака нет. Какой алгоритм я должен верить. Как мне продолжить тестирование этих алгоритмов. Есть ли статистическая концепция, используемая в таких сценариях?

Мне задали этот вопрос в интервью для должности инженера по валидации алгоритмов. Я полагаю, что они пытались понять, как я мог бы подумать, учитывая такой сценарий. Как я должен был ответить на это?

Спасибо за ваше время

-Sashi

Ответы [ 15 ]

1 голос
/ 12 июля 2010

По сути, если вы знаете, что результаты алгоритмов являются условно независимыми (т.е. независимыми, учитывая истинную, но неизвестную метку класса), тогда использование Наивного Байеса является оптимальным метаклассификатором.

В противном случае этот вопрос не может быть решен без знания структуры условной зависимости среди классификаторов. Например, если классификаторы A, B, C и D являются слабыми, идентичные классификаторы (т.е. они всегда дают одинаковые результаты) и имеют точность 0,51, тогда как классификатор E условно не зависит от классификаторов A, B, C и D и имеет с точностью 0,99, тогда я думаю, что вполне очевидно, что голосование - плохая идея.

1 голос
/ 12 июля 2010

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

Со стандартом вы можете начать получать оценку того, какой алгоритм (ы) является / являютсяболее «точный» (т. е. чаще всего согласен с мнением эксперта).Информация об индикаторах позволяет вам получить более подробную информацию о времени и обстоятельствах, при которых каждый из них представляется более или менее точным, поэтому вы можете начать формировать суждение о времени / обстоятельствах, при которых можно доверять друг другу.Благодаря этому вы можете (по крайней мере, надеяться) объединить результаты пяти существующих алгоритмов в один общий результат, который (с осторожностью и, возможно, немного удачи) будет более точным, чем любой из них в отдельности.

1 голос
/ 12 июля 2010

Я думаю, что если бы у вас была некоторая статистическая информация о каждом предыдущем выполнении каждого алгоритма (сколько раз он был правильным / неправильным в ряде статистических экспериментов), то вы могли бы рассчитать вероятность правильности каждого алгоритма.Тогда вы могли бы как-то объединить эти вероятности, чтобы получить шансы того, что у человека рак.Просто предположение ...

1 голос
/ 12 июля 2010

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

Но, если по какой-то причине необходимо использовать набор алгоритмов, попросите человека-оператора (т. Е. Доктора) лично проверить маммограмму в случае некоторой неопределенности.Затем врач может решить, оправданы ли дальнейшие анализы, основываясь на несогласии с используемыми алгоритмами.

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

0 голосов
/ 12 июля 2010

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

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

...