Auswahl zwischen Algorithmen

7

Ich bin mir sicher, dass es viele Software Testing Engineers, Algorithmenvalidierungsingenieure auf Stackoverflow gibt. Könnte mir bitte jemand sagen, wie man im folgenden Szenario vorgehen sollte.

Nehmen wir an, wir haben ein Mammogramm und fünf verschiedene Algorithmen, die dieses Mammogramm als Eingabe verwenden und erkennen, ob Krebs im Patienten ist. Wenn 3 von 5 Algorithmen sagen, dass Krebs im Patienten ist und 2 sagen, dass es keinen Krebs bei dem Patienten gibt. Welcher Algorithmus sollte ich glauben? Wie soll ich diese Algorithmen testen? Gibt es in solchen Szenarien ein statistisches Konzept?

Ich wurde diese Frage in einem Interview für die Position des Algorithm Validation Engineers gestellt. Ich glaube, sie versuchten zu sehen, wie ich angesichts eines solchen Szenarios denken würde. Wie hätte ich das beantworten sollen?

Danke für Ihre Zeit

-Sashi

    
Sashi Kiran Challa 12.07.2010, 14:45
quelle

16 Antworten

7

Sie können nichts sagen, wenn Sie nur diese Information haben. Was, wenn einige der Algotithms einige andere Algorithmen aus diesen 5 wiederverwenden? Dann könnten sie für dieselben Defekte anfällig sein.

Sagen Sie, A, B und C verwenden den gleichen Unteralgorithmus für die Vorverarbeitung von Daten und der letztere liefert suboptimale Ergebnisse für ein bestimmtes Bild und das vorverarbeitete Bild führt dazu, dass die späteren Phasen zu falschen Ergebnissen führen - es spielt keine Rolle drei Algorithmen sagen dasselbe.

Sie benötigen spezifischere Daten darüber, wie die Algorithmen korrelieren und welche statistischen Merkmale über die Fehlerraten bekannt sind, um eine Analyse durchführen zu können.

    
sharptooth 12.07.2010 14:47
quelle
4

Das ist eigentlich ziemlich schwer zu beantworten. Ich bin sicher, jeder Algorithmus ist gut darin, verschiedene Arten von Eingabetriggern zu erfassen. Mehr als wahrscheinlich, benötigen Sie eine statistische Analyse, um zu bestimmen, was jeder Algorithmus normalerweise als Krebs erkennt. Darüber hinaus können Sie so weit gehen, etwas wie ein Bayes-Modell zu machen, um zu beschreiben / zu bestimmen, ob ein Patient Krebs hat, basierend auf den algorithmischen Ergebnissen.

Sie können feststellen, dass 3 Algorithmen konsistent die spezifische Art von Krebs vermissen, dass die anderen beiden mäßig gut bei der Aufnahme sind. Sie können ähnliche Zusammenhänge entdecken, wenn die Algorithmen 2, 3 und 5 sagen, dass es keinen Krebs gibt, sagt Algorithmus 1, und Algorithmus 4 ist nicht schlüssig, dass es normalerweise typisch gutartige Flecken mit einer bestimmten Form und Farbintensität gibt das sollte analysiert werden, ist aber wahrscheinlich kein Krebs.

    
San Jacinto 12.07.2010 14:57
quelle
4

Die Auswahl des besten Klassifikators für einen Job oder die Kombination verschiedener Klassifikatoren ist ein ganz eigenes Feld. Dieser allgemeine Artikel zur Klassifizierung ist ein guter Anfang, um mehr über die Auswahl des besten Klassifikators für einen Job zu erfahren . Und dieser Artikel über Klassifikator-Ensembles ist ein guter Ort, um etwas über das Kombinieren von Klassifikatoren zu lernen.

Um die Grundlage für eine Antwort auf Ihre (ziemlich breite) Frage zu geben: Der beste Klassifikator für einen Job hängt von mehreren Faktoren ab:

  • Die erforderliche Qualität der Klassifizierung (in Ihrem Fall wäre das hoch)
  • Die erlaubte Komplexität der Klassifikation (d. h., können Sie Tage berechnen, um eine Antwort zu erhalten, haben Sie mehrere Millisekunden) (Zeit ist keine Einschränkung in Ihrem Fall, denke ich)
  • Die mit der Fehlklassifizierung verbundenen Kosten. Dies ist ein sehr wichtiger Faktor in Ihrem Fall. Wenn Sie den Menschen sagen, dass sie Krebs haben, wenn sie nicht haben, verursachen Sie großen Stress, aber (hofft) weitere Tests (die Geld kosten) werden schließlich herausfinden, dass sie gesund sind. Auf der anderen Seite, wenn Sie Krebs bei einem Patienten verpassen, könnte sie sterben. Dies bedeutet, dass der "beste" Klassifikator (derjenige, der die wenigsten Fehler macht) nicht der beste für Ihr Problem ist.

Zu diesem letzten Punkt: Sagen Sie, 1 von 1000 Frauen hat Krebs, ich habe einige Klassifizierer:

  1. Vermisst 20% der Krebsfälle und sagt, dass eine gesunde Frau in 2% der Fälle Krebs hat. Dieser Klassifikator würde ungefähr 200 Fehler in einer Bevölkerung von 10000 Menschen machen.
  2. Sag einfach: "Diese Person hat keinen Krebs" in allen Fällen. Nur 10 Fehler in 10000 Fällen!
  3. Sagen Sie einfach "Diese Krankheit hat Krebs", es wird 9990 Fehler in 10000 Fällen machen.

Der zweite Klassifikator verursacht die geringste Anzahl an Fehlern, aber nach ein paar Monaten, in denen er verwendet wurde, beginnen Leute, die gerettet werden konnten, zu sterben. Der dritte Klassifikator schickt jeden für den nächsten Test (der das gleiche Problem wie dieser hätte) oder er verursacht bei 9990 gesunden Menschen eine nutzlose lebensverändernde Operation. Der zweite Test macht einen Kompromiss. Zwei Menschen können sehr krank werden oder sogar sterben, 198 Menschen erleben schmerzhafte und stressige Prozeduren und Operationen umsonst. Offensichtlich waren in Ihrem Fall alle Klassifikatoren wie Klassifikator 1 mit leichten Abweichungen in den Prozentsätzen. In diesen Fällen müssen Sie einen Kompromiss zwischen fehlenden Krebsfällen und dem Rest des Verfahrens (einschließlich Kosten!) Für gesunde Menschen schließen. Der Ausgangspunkt für die Untersuchung dieses Kompromisses ist die Empfänger-Betreiber-Charakteristik

    
jilles de wit 12.07.2010 15:38
quelle
3

Setzen Sie Ihren Interviewpartner auf, es ist eine psychologische Einschätzung. Fragen wie diese Algorithmusbewertung haben mehr als eine richtige Antwort. Über diese Fragen habe ich von meiner Frau erfahren, die über 5 Jahre als Personalvermittlerin gearbeitet hat. Der Interviewer möchte sehen, wie Sie reagieren. Es ist das Beste, nur Annahmen zu machen und zu einer logischen Schlussfolgerung zu führen. Sag nicht "Ich weiß es nicht", werde streitsüchtig oder stelle eine Menge Fragen. Sie werden schwierig und argumentativ erscheinen (so viele Programmierer).

Nun, da Sie wissen, dass dies keine Programmierfrage ist, sollten Sie darüber nachschauen, auf careeroverflow.com. Ich mag diese Fragen, weil sie eine Anpassungsfähigkeit zeigen und nicht starr werden.

Warum ist ein Mannloch rund? & lt; - Microsofts Version

    
P.Brian.Mackey 12.07.2010 15:27
quelle
2

Nun, hier sind eindeutig falsche Negative weit ernster als falsche Positive. Wenn alle Dinge gleich sind, wollen wir vielleicht Algorithmen bevorzugen, die mehr Krebs finden.

Wenn wir der Software viel mehr Mammogramme zuführen und wir feststellen, dass eine Sammlung der Algorithmen sich auf eine große Stichprobe der Mammogramme zu einigen scheint, dann könnten wir diese Algorithmen bevorzugen, da ihre Ergebnisse durch mehr Algorithmen unterstützt werden / p>

So ähnlich.

    
Ishmael 12.07.2010 15:09
quelle
2

Wenn alles andere gleich ist, könnte man sagen, dass der Patient eine 60% ige Chance auf Krebs hat. Um eine bessere Antwort zu geben, müssen Sie mehr Informationen darüber wissen, wie der Algorithmus funktioniert. Einige Punkte zu beachten:

  • Vielleicht sind einige Algorithmen neuer als andere oder haben sich als weniger zuverlässig erwiesen. Es wäre gut, die Genauigkeit jedes Algorithmus zu kennen, wobei historische Mammogrammdaten verwendet werden, die als "Krebsartig" und "Nicht-Krebsartig" gekennzeichnet sind.
  • Der Krebs einer jeden Person ist etwas anders - vielleicht gibt es Eigenschaften, die ein bestimmter Algorithmus besser identifizieren kann? Ist ein Domänenexperte erforderlich, um basierend auf den Algorithmus-Schlussfolgerungen und den Mammogramm- (Bild?) Daten festzustellen, welche Diagnose korrekt ist?
  • Wie bereits erwähnt, verwenden bestimmte Algorithmen möglicherweise die gleichen Techniken wie andere Algorithmen, so dass beide wahrscheinlich die gleiche Neigung haben.
Justin Ethier 12.07.2010 15:09
quelle
2

Es ist nicht ein triviales Problem und hängt stark davon ab, welche Risiken Sie bereit sind zu übernehmen.

Formalismen wie Entscheidungstheorie und Bayesian Inferenz sind hier wirklich zu berücksichtigen. Es erlaubt Ihnen, verschiedene Wahrscheinlichkeiten von falsch positiven / negativen zu berücksichtigen, und ob Sie sie unterschiedlich abwägen möchten.

    
Alexandre C. 12.07.2010 15:14
quelle
2

Ich glaube nicht, dass Sie > auf eine bestimmte Art und Weise geantwortet haben sollten. Der Interviewer würde wahrscheinlich analysieren wollen, wie Sie dieses Problem und nicht Ihre endgültige Antwort bewerten würden. Mit anderen Worten, sie waren wahrscheinlich an Ihrem eigenen Algorithmus interessiert, um eine Entscheidung zu treffen.

In einer realen Umgebung kann ich mir keine ernsthafte Wahl zwischen fünf Algorithmen vorstellen, um Krebs zu finden, besonders wenn sie so unterschiedliche Ergebnisse liefern.

    
Paulo Guedes 12.07.2010 15:18
quelle
2

Dies ist eine gute Gelegenheit, ein sogenanntes "Expertensystem" zu implementieren. Sie nehmen eine große Stichprobe Ihrer Daten (in Ihrem Fall Mammogrammbilder und die Ausgabe der verschiedenen Algorithmen) und führen sie an einer Reihe von echten Experten für Fleisch und Blut aus dem Bereich vorbei (hier Onkologen oder Labortechniker). Zeichnen Sie die Antworten für jedes Bild zusammen mit den Ausgaben der Algorithmen auf. Am Ende sollten Sie genügend Daten haben, um die Algorithmusausgabe der Expertenausgabe zuzuordnen. Um zu überprüfen, ob Ihr Mapping funktioniert, führen Sie eine Reihe von Testbildern durch Ihr System (Beispiele, die nicht Teil des ursprünglichen Datensatzes waren) und bitten Sie Ihr Expertengremium, die Ergebnisse zu überprüfen. Idealerweise sollten die Experten mit der Leistung Ihres Systems sehr oft übereinstimmen.

Ohne etwas über die Algorithmen selbst zu wissen, ist es schwierig, eine Entscheidung zu treffen, basierend auf 3 "Ja" und 2 "Nein" Ergebnissen (besonders für etwas so wichtiges wie eine Krebsvorsorgeuntersuchung). So nah wie möglich an die gleichen Ergebnisse zu kommen wie ein ausgebildeter Experte ist Ihr Ziel (zumindest am Anfang), und Systeme wie dieses können manchmal genauer gemacht werden, indem Entscheidungen auf dem Wissen und der Erfahrung von Experten auf dem Gebiet statt auf mathematischen basieren Algorithmen allein.

    
bta 12.07.2010 15:22
quelle
1

Ich hätte gefragt, ob die Verwendung eines Computers, um festzustellen, ob jemand Krebs hat, der richtige Weg ist, da die Verwendung von Algorithmen fehleranfällig ist.

Wenn jedoch aus irgendeinem Grund eine Reihe von Algorithmen verwendet werden muss, dann muss ein menschlicher Bediener (dh ein Arzt) das Mammogramm persönlich untersuchen, falls eine gewisse Unsicherheit besteht. Der Arzt kann dann entscheiden, ob weitere Tests gerechtfertigt sind, basierend auf der Uneinigkeit der verwendeten Algorithmen.

Die eine Sache, die wir als Programmierer übersehen, ist, dass Menschen einige Probleme lösen können, die wir nicht vorhersagen können; Stellen Sie sich vor, der Arzt bemerkt etwas im Mammogramm, für dessen Algorithmen nicht bestimmt wurde?

    
Charlie Salts 12.07.2010 15:05
quelle
1

Ich denke, wenn Sie statistische Informationen über jeden Algorithmus früherer Performances hatten (wie oft es bei einer Anzahl von statistischen Experimenten richtig / falsch war), dann könnten Sie die Wahrscheinlichkeit berechnen, für jeden Algorithmus richtig zu sein. Dann könnten Sie diese Wahrscheinlichkeiten irgendwie kombinieren, um die Chancen dieser Person zu bekommen, Krebs zu haben. Nur eine Spekulation ...

    
calin014 12.07.2010 15:07
quelle
1

Um in einer solchen Situation viel erreichen zu können, möchten Sie im Allgemeinen einen "goldenen" Standard haben - zB eine Meinung von einem Arzt darüber, ob eine Mammographie Krebs zeigt, oder historische Informationen verwenden, bei denen Sie wissen, dass ein Satz von Mammogramme zeigen Krebs und andere nicht. Darüber hinaus möchten Sie, wenn möglich, Informationen darüber, welche Indikatoren jeder Algorithmus in einem bestimmten Fall verwendet.

Mit einem Standard können Sie beginnen, eine Schätzung zu erhalten, welche Algorithmen "genauer" sind (d. h. mit der Expertenmeinung am häufigsten übereinstimmen). Informationen über Indikatoren ermöglichen es Ihnen, mehr Details über die Zeiten und Umstände zu generieren, unter denen jeder mehr oder weniger genau zu sein scheint, so dass Sie beginnen können, ein Urteil über Zeiten / Umstände zu bilden, unter denen Sie einander vertrauen. Damit können Sie (zumindest hoffen) die Ergebnisse Ihrer fünf vorhandenen Algorithmen zu einem Gesamtergebnis kombinieren, das (vorsichtig und vielleicht ein bisschen Glück) genauer ist als jedes einzelne davon.

    
Jerry Coffin 12.07.2010 15:09
quelle
1

Wenn Sie im Grunde wissen, dass die Ergebnisse der Algorithmen bedingt unabhängig sind (dh unabhängig von der echten, aber unbekannten Klassenbezeichnung), verwenden Sie Naive Bayes ist ein optimaler Meta-Klassifikator.

Andernfalls ist diese Frage nicht zu beantworten, ohne die bedingte Abhängigkeitsstruktur unter den Klassifizierern zu kennen. Wenn zum Beispiel Klassifikator A, B, C und D schwach sind, identische Klassifizierer (dh sie ergeben immer die gleichen Ergebnisse) und Genauigkeiten von 0,51 haben, während der Klassifikator E bedingt unabhängig von den Klassifizierern A, B, C und D ist und ein Genauigkeit von 0,99 dann denke ich, es ist ziemlich offensichtlich, dass Abstimmung eine schlechte Idee ist.

    
dsimcha 12.07.2010 15:10
quelle
1

Da der Algorithmus eine "Ja" oder "Nein" Antwort erzeugt, ist dies ziemlich einfach. Sie benötigen aktuelle Testdaten, um Ihre Algorithmen zu vergleichen. Sie sollten wahrscheinlich Langzeitdaten über die Erfolgsquoten der verschiedenen Heuristiken sammeln und einige statistische Analysen durchführen, welche eher richtig sind.

Die Validierung von Dingen wie Googles Suchalgorithmus - der keine "richtige" Antwort hat - wäre schwieriger.

    
Dean J 12.07.2010 15:15
quelle
1

Gehen Sie zurück und schauen Sie sich die Trenddaten für jeden der Algorithmen an. In der Vergangenheit, wie oft war A korrekt, B korrekt usw. Der typische Weg von hier wäre, alle Algorithmen laufen zu lassen und ein Bayesian Wighting System anzuwenden, aber ich denke, dass dieser Ansatz viel zu allgemein ist, da er stark von der Qualität abhängt die Quelldaten. Da jeder Algorithmus mit einer bestimmten Art von Eingabe ausgezeichnet ist, würde ein speziellerer Ansatz darin bestehen, einen Filter zu erzeugen, der die Quelldaten nach Markierungen abdeckt, die auf die Spezialität eines bestimmten Algorithmus ausgerichtet sind. Zum Beispiel, wenn die Quelle von einer älteren Maschine kommt, wollen Sie keinen Algorithmus, der schlecht mit Bildrauschen reagiert und ihn analysiert. Ein Spezialist für Mammographie-Technologie wäre ein großer Vorteil, um spezifischere Marker zu identifizieren. Vielleicht können Sie nach diesem Filterungsprozess ein Gewichtungssystem anwenden, um eine bessere Einschätzung der Sicherheit zu erhalten.

    
Peter Hanneman 12.07.2010 15:17
quelle
0

Aufgrund der gegebenen Informationen könnten Sie nicht antworten. Sie müssten alle 5 Algorithmen nehmen und sie an Patienten testen, bei denen Krebs diagnostiziert wurde, und auch solche, von denen bekannt ist, dass sie frei von Krebs sind. Damit können Sie bestimmen, welcher Algorithmus am genauesten war.

Sie könnten auch einen Algorithmus aus der 5 machen (vorausgesetzt, sie waren alle gute und gültige Algorithmen) und nehmen die Seite von dem, was mehr Stimmen hatte. Dies könnte oder könnte kein gültiger sechster Algorithmus sein, abhängig davon, wie gut die ersten 5 sind.

    
Matthew Knippen 12.07.2010 15:29
quelle

Tags und Links