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

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

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

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

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

-Sashi

Ответы [ 15 ]

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

Вы не можете ничего сказать, имея только эту информацию.Что, если некоторые из алгоритмов повторно используют некоторые другие алгоритмы из этих 5?Тогда они могут быть подвержены одним и тем же дефектам.

Скажем, A, B и C фактически используют один и тот же подалгоритм для предварительной обработки данных, и последний дает субоптимальные результаты для некоторого конкретного изображения, поэтому предварительно обработанное изображение вызывает более позднююэтапы для получения неправильных результатов - не имеет значения, что у вас есть три алгоритма, говорящих одно и то же.

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

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

Выбор лучшего классификатора для работы или объединение различных классификаторов - это отдельное поле. Эта общая статья о классификации является хорошим началом для любого, чтобы узнать о выборе лучшего классификатора для работы. И эта статья об ансамблях классификаторов является хорошим местом для начала изучения объединения классификаторов.

Чтобы дать основу для ответа на ваш (довольно широкий) вопрос: лучший классификатор для работы зависит от нескольких факторов:

  • Требуемое качество классификации (в вашем случае это будет высокое)
  • Допустимая сложность классификации (т. Е. Можете ли вы рассчитать дни, чтобы получить ответ, у вас есть несколько миллисекунд) (время, как я полагаю, не является ограничением)
  • Стоимость, связанная с ошибочной классификацией. Это очень важный фактор в вашем случае. Если вы скажете людям, что у них рак, а у них нет сильного стресса, но (можно надеяться) дальнейшее тестирование (которое стоит денег) в конечном итоге обнаружит, что они здоровы. С другой стороны, если вы пропустите рак у пациента, она может умереть. Это означает, что «лучший» классификатор (тот, который делает наименьшее количество ошибок) не может быть лучшим для вашей проблемы.

По последнему пункту: скажем, у 1 из 1000 женщин рак, у меня есть несколько классификаторов:

  1. Пропускает 20% случаев рака и говорит, что у здоровой женщины рак в 2% случаев. Этот классификатор допускает около 200 ошибок при населении в 10000 человек.
  2. Просто скажите: «У этого человека нет рака» во всех случаях. Всего 10 ошибок в 10000 случаях!
  3. Просто скажите «У этой персоны рак», в 10000 случаях она сделает 9990 ошибок.

Второй классификатор допускает наименьшее количество ошибок, но после нескольких месяцев его использования люди, которые могли быть спасены, начинают умирать. Третий классификатор отправляет всех на следующий тест (который будет иметь ту же проблему, что и этот), или, возможно, он вызывает бесполезную операцию, изменяющую жизнь, у 9990 здоровых людей. Второй тест делает компромисс. Два человека могут сильно заболеть или даже умереть, 198 человек переживают болезненные и стрессовые процедуры и операции, которые ни к чему не приведут. Очевидно, в вашем случае все классификаторы были похожи на классификатор 1 с небольшими изменениями в процентах. В этих случаях вы должны найти компромисс между отсутствием случаев заболевания раком и применением остальной части процедуры (включая стоимость!) Для здоровых людей. Отправной точкой для исследования этого компромисса является характеристика приемника-оператора

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

На самом деле довольно сложно ответить. Я уверен, что каждый алгоритм хорош в подборе различных типов триггеров ввода. Скорее всего, вам потребуется статистический анализ, чтобы определить, что каждый алгоритм обычно определяет как рак. Кроме того, вы можете зайти так далеко, чтобы сделать что-то вроде создания байесовской модели, чтобы описать / определить, есть ли у пациента рак на основе алгоритмических результатов.

вы можете обнаружить, что 3 алгоритма последовательно пропускают определенный тип рака, который другие два умеренно хорошо выявляют. Вы можете обнаружить похожие отношения, которые возникают, например, когда алгоритмы 2, 3 и 5 говорят, что рака нет, алгоритм 1 говорит, что есть, а алгоритм 4 неубедителен, что обычно есть обычно доброкачественные пятна определенной формы и интенсивности цвета это следует проанализировать, но, вероятно, это не рак.

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

Надень шляпу собеседника, это психологическая оценка.Такие вопросы, как этот алгоритм оценки, имеют более одного правильного ответа.Я узнал об этих вопросах от моей жены, которая работала рекрутером более 5 лет.Интервьюер хочет увидеть, как вы реагируете.Лучше всего делать предположения и вести к логическому выводу.Не говорите «я не знаю», не спорьте и не задавайте массу вопросов.Вы окажетесь трудным и спорным (как и многие программисты).

Теперь, когда вы знаете, что это не вопрос программирования, подумайте над тем, чтобы спросить об этом на careeroverflow.com.Мне нравятся эти вопросы, потому что они показывают способность адаптироваться и стать нежесткими.

Почему круглая шахта? <- версия Microsoft </p>

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

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

Не зная ничего о самих алгоритмах, трудно принять решение, исходя из 3 результатов «да» и 2 «нет» (особенно для чего-то столь важного, как скрининг рака). Ваша цель - максимально приблизиться к тем же результатам, что и у обученного специалиста (по крайней мере, на первый взгляд), и подобные системы иногда можно сделать более точными, основываясь на знаниях и опыте экспертов в данной области, а не на математических одни алгоритмы.

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

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

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

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

Это не тривиальная проблема, и в значительной степени зависит от того, какие риски вы готовы пойти.

Формализмы, такие как теория принятия решений и байесовский вывод, действительно должны рассматриваться здесь.Это позволяет вам принимать во внимание различные вероятности ложных срабатываний / отрицательных значений и хотите ли вы их взвешивать по-разному.

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

При прочих равных условиях можно сказать, что у пациента вероятность заболеть раком составляет 60%.Чтобы дать лучший ответ, вам нужно знать больше информации о том, как работает алгоритм.Некоторые моменты, на которые следует обратить внимание:

  • Возможно, некоторые алгоритмы новее других или оказались менее надежными.Было бы хорошо узнать точность каждого алгоритма, используя исторические данные маммографии, помеченные как «раковые» и «не раковые».
  • Рак у каждого человека немного отличается - возможно, есть характеристики, что определенный алгоритмлучше определить?Требуется ли специалист по предметной области для определения правильного диагноза на основании выводов алгоритма и данных маммограммы (изображения?)?
  • Как уже упоминалось, возможно, некоторые алгоритмы используют те же методы, что и другие алгоритмы,оба могут иметь одинаковое смещение.
2 голосов
/ 12 июля 2010

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

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

Нечто подобное.

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

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

...