Mit Machine Learning zur automatischen Brustkrebserkennung

Du fragst dich jetzt vielleicht, was es mit diesem Machine Learning auf sich hat. Warum ist es momentan so angesagt und warum sollte mich das interessieren? Wenn du mit Technik nicht viel am Hut hast, hast du den Begriff vielleicht auch schon öfter gehört, weißt aber nicht warum darum so ein großer Aufwand betrieben wird. In diesem Artikel möchte ich dir einen groben und vor allem praktischen Eindruck davon verschaffen, wie uns Machine Learning nutzen kann und warum es so interessant ist. Keine Angst, du brauchst nicht viel technisches Hintergrundwissen, um bis zum Ende mitzumachen.

Im Grunde geht es beim Machine Learning darum, einem Computer neue Dinge beizubringen, sodass er bessere Entscheidungen treffen kann. Zum Zweck dieses Artikels, werden wir uns ein relativ kleines Datenset von ca. 570 Krankenakten von Patienten mit Brusttumoren ansehen. Wir werden versuchen, dem Computer beizubringen, den Brustkrebs zu diagnostizieren und festzustellen, ob er gutartig oder bösartig ist. Falls du dich jetzt schon überfordert fühlst, hab keine Angst. Alles was du brauchst ist dein Computer, die Weka Tool Suite (Link siehe unten) und, am allerwichtigsten, eine Tasse guten Kaffee.

Den Fachjargon entwirren

Bevor es ans Eingemachte geht, möchte ich allerdings noch ein paar Begriffe klären. Das Problem, das wir hier zu lösen versuchen, wird von Softwareentwicklern als „classification problem“ (Klassifizierungsproblem) bezeichnet. Unser Ziel ist es, dem Computer die Vorhersage der „target class“ (Zielklasse) beizubringen, also die Diagnose ob der Tumor gut- oder bösartig ist. Die restlichen Informationen (Tumoreigenschaften wie z.B. Radius, Fläche und Textur) sind „features“ (Eigenschaften), mit denen wir den Computer füttern werden, um ihm das Identifizieren von Mustern beizubringen, sodass er korrekte Diagnosen stellen kann.

Wir werden unser Datenset in zwei klare Teile teilen. Der eine ist unser trainig set, und der andere Teil ist unser test set. Du kannst dir das trainig set als Sammlung von Fragen und Antworten vorstellen, die wir dem classifier (dem Computer) zum Lernen geben. Das test set ist dann quasi die Prüfung, die er ablegen muss, damit wir beurteilen können, wie gut wir ihm das Diagnostizieren beigebracht haben.

Erste Schritte mit Weka

Ok, genug der Theorie! Jetzt geht es erst einmal zu kaggle.com, wo wir uns das nötige medizinische Datenset herunterladen (die gesammelten Links gibt es dann auch am Ende des Artikels). Dann gehen wir noch zu waikato.ac.nz und laden uns Weka herunter. Weka ist ein Werkzeug, das wir zum Experimentieren mit unseren Daten nutzen werden. Wenn wir uns jetzt das soeben heruntergeladene Datenset im Excel anschauen, sehen wir, dass es aus Zeilen für alle einzelnen Patienten besteht. Bei den Spalten finden sich Bereiche für eine ID, unsere „target class“ (Diagnose) und noch einige weitere Informationen zu den einzelnen Tumoren.

Versuchen wir jetzt einmal unsere Daten mit Weka zu öffnen. Nach Start des Programms, solltest du von einer Liste mit Weka Anwendungen begrüßt werden. Klicke auf „Explorer“, klicke auf dem Bildschirm, der sich dann öffnet, auf „Open file…“ und wähle die CSV Datei aus, die du von kaggle heruntergeladen hast. Dieses Menü mag dich jetzt vielleicht etwas verschrecken, aber schlussendlich werden wir hier wirklich nur wenige Funktionen verwenden.

Die Ansicht oben ist der Pre-Processing Reiter. Im Bereich „Attributes“, zeigt uns Weka eine Liste mit Feldern, die wir als features verwenden können (das sind die gleichen wie die Spalten im Excel). Wenn du auf eines der Attribute klickst, siehst du Informationen und Statistiken dazu im „Selected Attribute“ Feld rechts.

Während es in Weka zahlreiche Wege gibt, unsere Daten zu pre-processen (automatisches Ausfüllen fehlender Daten, Felder aggregieren, etc.), werden wir es hier etwas einfacher angehen und erst einmal das ID Feld entfernen. Warum? Weil das ID Feld nur einen beliebigen Wert enthält, der uns keine nützlichen Informationen zur Diagnose des Tumors liefert. Wenn wir es aber nicht entfernen, könnte das einige Machine Learning Algorithmen verwirren. Tatsächlich liegt die Kunst beim Machine Learning teilweise darin, die richtige Mischung an features für ein gegebenes Problem zu finden. Klicke also die Auswahlbox neben der ID und klicke dann auf „Remove“.

Die Daten Visualisieren

Unsere Daten in Form von Text und Zahlen anzusehen ist zwar sehr nett, aber wie wäre es mit ein paar Bildern? Bekommen wir vielleicht einen besseren Einblick, wenn wir unsere Daten mit Graphen darstellen? Finden wir es heraus, indem wir auf den Reiter „Visualize“ im Weka Explorer klicken. Unter „Plot Matrix“ sehen wir mehrere Graphen, die verschiedene Attribute miteinander vergleichen. Jeder Punkt im Graph repräsentiert eine Zeile aus unserer Datenquelle.

Bleib jetzt im „Visualize“ Reiter, klicke auf das „Color“ Dropdown-Feld und wähle „Diagnosis“; dann klicke auf „Update“. Die target class (Art des Tumors) ist jetzt mit einer Farbcodierung versehen. Hier stehen die blauen Punkte für bösartige Tumore und die roten Punkte für gutartige.

Wenn wir uns jetzt den Graphen der durchschnittlichen Tumorfläche verglichen mit der durchschnittlichen Konkavität ansehen, wird es interessant. In der linken unteren Ecke des Graphen, wo beide Werte niedrig sind, sehen wir eine Ansammlung roter Punkte. Sobald die Werte beider Variablen höher werden, sehen wir aber hauptsächlich blaue Punkte. Gibt es da vielleicht einen Zusammenhang? Können wir dem Computer so eine einfache Entscheidung beibringen? Also beispielsweise: Wenn die durchschnittliche Konkavität unter 0,1 liegt und die durchschnittliche Fläche einen Wert unter 730 aufweist, sollte die Diagnose „gutartig“ sein; anderenfalls sollte sie „bösartig“ lauten.

Wie sich herausstellt, gibt es einen Algorithmus namens Random Forest, den wir hier verwenden können, um den Computer automatisch sogenannte Decision Trees bzw. Entscheidungsbäume erstellen zu lassen. Einfach gesagt sind Entscheidungsbäume eine hierarchische Struktur von einfachen aneinander geketteten if/else Entscheidungen (bedingte Anweisungen). Sie stellen quasi eine Sammlung von Fragen dar, die sich der Computer aufgrund der vorhandenen Informationen stellt, um so zu einer Vorhersage bzw. Diagnose zu gelangen. Der Random Forest besteht aus mehreren solchen Entscheidungsbäumen, aus deren Entscheidungen ein Durchschnittswert errechnet werden kann, um die Resultate für den classifier instesamt zu verbessern. Das folgende Diagramm zeigt eine sehr einfache Darstellung davon, wie so ein Entscheidungsbaum aussehen könnte.

Klassifizierungen

Versuchen wir jetzt einmal, dem Computer beizubringen, aus den vorher untersuchten Daten Schlau zu warden. Gehe dazu zum Reiter “Classify”. In dieser Ansicht können wir verschiedene Algorithmen zur Klassifizierung testen. Als erstes müssen wir dazu den gewünschten Algorithmus auswählen, indem wir auf „Choose“ klicken. Dann navigieren wir hinunter zu „Trees“ und wählen „Random Forest“. Für diesen Versuch reicht es, wenn wir die vorausgewählten Standardeinstellungen beibehalten.

Jetzt wählen wir in den “Test options“ auf der linken Seite „Percentage split“ aus und belassen den Standardwert bei 66%. Das ist im Grunde die Anweisung für Weka, zwei Drittel der Daten für das Training und den Rest für den Test zu nutzen. Abschließend sollten wir noch den Wert im Dropdown-Menü direkt unter dem Bereich „Test options“ auf „Diagnosis“ stellen. Das gibt Weka unsere Zielklasse („target class“) bekannt.

Damit sind wir auch schon bereit, unseren Random Forest classifier zu trainieren und seine Leistung anhand unserer Testdaten zu evaluieren. Wenn du auf den „Start“ Knopf klickst, sollten nach einigen Sekunden Ergebnisse im Bereich „Classifier Output“ auf der rechten Seite erscheinen.

Wenn du dort nach oben scrollst, siehst du irgendwann eine Zeile, in der “Correctly Classified Instances” steht. Rechts davon solltest du einen Wert von ca. 95,8% sehen. Das sagt uns, dass der classifier bei unseren Testdaten mit 95,8 prozentiger Wahrscheinlichkeit die richtige Diagnose getroffen hat.

Für unser einfaches Beispiel ist das gar nicht mal so schlecht! Wenn wir das allerdings auf die Entwicklung einer Lösung zur Unterstützung bei tatsächlichen Diagnosen ausweiten wollten, bräuchten wir natürlich eine viel größere Datenmenge. Außerdem müssten wir sehr vorsichtig sein und die Qualität unserer Untersuchungen sowie die Qualität der Vorhersagen des classifiers genau im Auge behalten. Alles in allem sollten wir uns aber bewusst sein, dass kein classifier jemals zu 100% korrekt sein kann; ein Arzt sollte für eine Diagnose daher trotzdem immer herangezogen werden!

Zusammenfassung

In diesem Artikel habe ich versucht, dir einen kleinen Einblick in das Thema Machine Learning und insbesondere auch das Klassifizierungsproblem zu geben. Der Einfachheit halber habe ich einige Dinge nicht angesprochen, die es normalerweise zu bedenken gilt. Beispielsweise sind das Probleme oder Fragestellungen wie die richtige Auswahl von Trainigs- und Testdaten und deren Größe, die Behandlung von sogenannten „overfitting problems“ (Überanpassungsprobleme), oder die verschiedene Gewichtung von Klassifizierungsfehlern (sollte man z.B. einen Teil der Gesamtgenauigkeit opfern, um es möglichst zu vermeiden, dass ein bösartiger Tumor falscherweise als gutartig diagnostiziert wird?). Außerdem haben wir natürlich die komplexe Mathematik, die den Algorithmen zugrunde liegt, nicht behandelt.

Ich hoffe allerdings, dass du einen Eindruck davon bekommen hast, warum Machine Learning ein so interessantes Feld ist. Und ich hoffe auch, dass ich dir vielleicht einen Anstoß dazu geben konnte, darüber nachzudenken, wie Problemstellungen in deinem persönlichen Umfeld mit Machine Learning gelöst werden könnten. Falls dich das Thema näher interessiert, findest du weiter unten Links zu den Daten, die wir hier genutzt haben und zum Weka Programm der University of Waikato. Außerdem findest du dort auch weitere Informationen über Entscheidungsbäume und den Random Forest Algorithmus.

Wenn du Fragen hast, bei denen ich dir weiterhelfen kann, freue ich mich über ein Email von dir. Ansonsten wünsche ich dir noch viel Spaß mit dem Thema Machine Learning!

Lust auf mehr? Melde dich jetzt für unseren monatlichen Newsletter an!

Links und Hintergrundinformationen

Breast Cancer Wisconsin (Diagnostic) Data Set
Weka
Decision Trees
Random Forest Algorithmus