Profil
Einträge: 20
Kommentare: 2

Thomas Bumberger
Letztes Update: 21:08 / 14.10.2009

Forschungsdokumentation

Dienstag, 11. August 2009

  Der Aufgabe erste Lösung

Nun, alle 10 Datensätze sind analysiert, am besten abgeschnitten hat der so genannte SVMClassifier (SVM steht für Support Vector Machine), der beim Großteil der Datensätze mit entsprechender Parametrierung 100% geschafft hat, was ein exzellentes Ergebnis ist, vor allem, weil die Baseline mit 99,36% sehr hoch gesetzt war.
Derzeit bin ich dabei Vorbereitungen für die Findung des repräsentativsten Datensatzes durchzuführen.
Dazu trainiere ich einen Algorithmus auf einen Datensatz und wende dann dieses Modell auf die anderen Datensätze an.

Freitag, 7. August 2009

  Eine Aufgabe - 4 Tage - oder warum PCs nicht schnell genug sein...

4 Tage lang (beginnend ab gestern) werde ich auf 10 Datensätze Algorithmen loslassen mit dem Ziel
für jeden den optimalen zu finden. Nach einer statistischen Auswertung soll festgestellt werden, ob ein Algorithmus besonders gut für die teils ähnlichen Datensätze geeignet ist.
Wunschziel wäre es, einen Algorithmus zu finden, der, trainiert auf einen Datensatz, alle anderen Datensätze vorhersagen könnte.

Mittwoch, 5. August 2009

  Eine Aufgabe - ein Nachmittag

Am Vormittag habe ich mich sowohl mit FLLLAME als auch mit WEKA vertraut gemacht und die Dokumentation zu den Bildverbesserungsverfahren abgeschlossen.
Desweiteren wurde mir nähergelegt, im Standardwerk zum Thema Machine Learning das erste Kapitel weiterzulesen.
Es bietet eine grundlegende Einführung in die Thematik auf Basis der Wahrscheinlichkeitsrechnung und beginnt mit der Laplac'schen Wahrscheinlichkeit und führt sehr schnell in das Bayestheorem ein, das es ermöglicht Wahrscheinlichkeiten zu gewichten und deshalb eine hervorragend Methode darstellt, Objekte anhand von Eigenschaften zu klassifizieren.
Ein Beispiel: 4/10 aller Objekte gehören zu Klasse A, 6/10 zu Klasse B, 9/10 aller Objekte, die zur Klasse A gehören und 5/10 aller Elemente die zu Klasse B gehören, besitzen das Merkmal A.
Wie groß ist die Wahrscheinlichkeit, dass ein Objekt, an dem das Merkmal A festgestellt wurde zur Klasse A gehört?
P(KA)=6/10
P(KB)=4/10
P(A/KA)=9/10
P(A)=4/10*9/10+6/10*5/10=36/100+30/100=66/100
P(KA/A)=P(KA)*P(A/KA)/P(A)=0,81
-> Zu 81% gehört ein Objekt, an dem Merkmal A festgestellt wurde in die Klasse A
Aufgrund der so genannten Desicion Theory wird ein Klassifier diesem Fall dem Merkmal A, die Klasse A zuordnen.
Dieses Verfahren kann man weiter verfeinern, wenn man einen Bias auf eine der beiden Klassen legt.
Hierzu wieder ein Beispiel: Es ist tragbar, wenn bei einer automatischen Diagnose Krebs festgestellt wird und deshalb weitere Untersuchungen durch einen Arzt angeordnet werden, der den Fehler leicht beheben kann, es hat aber fatale Folgen, wenn das Programm Krebs nicht diagnostiziert, weil er nicht 100% eindeutig ist.
Nun zum Nachmittag, dem eigentlichen Grund meiner Dokumentation:
Die Aufgabe war simpel:
Finde einen Algorithmus, der sich besonders gut auf die vorgegebenen Daten anwenden lässt und überschreite damit 60% bei Crossvalidierungsverfahren.
Überlege, wie man mit der großen Datenmenge umgehen kann (~62000 Datensätze mit 16 Attributen), um weiterhin schnell Ergebnisse präsentiert zu bekommen.
Die zweite Frage lässt sich einfach beantworten:
Entweder man skaliert die Performance des PCs mit der Größe der Datenmenge oder aber man reduziert die Datenmenge.
Statistisch gesehen ist der Unterschied, ob ich mehrere Algorithmen auf 100% oder nur zufällige 10% der Daten anwende, um festzustellen, welcher besser passt, marginal.
Getestet habe ich 20 Algorithmen sowohl auf eine unbiased und eine biased Variante Datensätze.
Zuerst alle auf das Trainingsset (um schlecht geeignete Algorithmen von vornherein auszusortieren [Achtung IB1 (ein 1NN Algorithmus) ergibt bei Validierung auf das Trainingsset immer 100%]), dann auf die verkleinerten Datensätze.
Die bestabschneidenden Algorithmen werden daraufhin per Parameter feingetuned und aufgrund iheres Abschneidens gewertet.
Die Bestgerweteten werden dann auf die gesamte Datenmenge (unbiased) losgelassen, wobei sowohl die Parameter für die biased als auch für die unbiased Variante getestet werden.
Derzeitiger Stand ist, dass der populäre Algorithmus Random Forest das beste Ergebnis geliefert hat (>90% korrekt klassifiziert), wobei ein Algorithmus noch immer rechnet, der bei kleineren Datenmengen tendenziell bessere Ergebnisse lieferte.

Dienstag, 4. August 2009

  Divide et impera

Teile und herrsche
Genau das soll ein Classifier, Schritt 3, tun - aufgrund von statistischen Daten werden neue Daten in verschiedene Gruppen einteilen. Vorurteilsbasiert aufgrund von Wahrscheinlichkeitswerten.
Nachdem ich bis heute Mittag eine Einführung in diverse Ansätze für Classifier erhalten habe, darf ich heute Nachmittag mit einigen davon spielen.
Ein Paar Gruppen/Ansätze für Classifier:
Münze - vollkommen zufällig (Kopf oder Zahl)
Nearest Neighbour - trifft Entscheidung aufgrund von Datenpunkten innerhalb eines Radius des neuen Datenpunkts
ZeroR - trifft Entscheidung aufgrund des am häufigsten vorkommenden Klassentyps (entspricht Nearest Neighbour mit Radius unendlich)
K Nearest Neighbour - findet die K nächsten Nachbarn
Treebased - findet den Datentyp aufgrund von Entscheidungsbäumen
Ist Mensch?
Ja: Ist Mann?
Ja: -> Klasse Mann
Nein: -> Klasse Frau
Nein: Ist Tier?
Ja: Klasse Tier
Nein: Klasse Außerirdisches Wesen

Montag, 3. August 2009

  Des Praktikums zweiter Teil

Heute begann der zweite Teil meines Praktikums im FLLL einen Halbstock tiefer als bisher.
Als Einführung durfte ich mich in die Theorie hinter dem Digital Image Processing einlesen und näheres zu den ersten zwei Schritten am Weg zum Machine Learning erfahren.
Schritt 1 - Imaging: Die Aufnahme eines Bildes und das herausrechnen diverser Störfaktoren wie Noise (http://de.wikipedia.org/wiki/Rauschen_%28Physik%29)
Schritt 2: Das reduzieren des Bildes auf das Wesentliche
Schritt 2,5: Segmentierung (Einteilung) des Bildes in Abschnitte

Samstag, 1. August 2009

  Updates

Aufgrund persönlicher Angelegenheiten war ich den halben Dienstag und den gesamten Mittwoch verhindert und hatte kaum/keine Zeit etwas für das Blog zu verfassen

Ich habe den Donnerstag und Freitag damit verbracht mein Projekt abzuschließen.
D.h. ich habe einen Demoalgorithmus asynchron eingebaut, viele Verbesserungen und Umgestaltungen vorgenommen
und den gesamten Freitag Nachmittag damit verbracht meine Arbeit zu dokumentieren, damit sich andere schnell und leicht auskennen.

Ich habe somit den ersten Teil des Praktikums abgeschlossen.
Rückblickend kann ich mich nur bei meinen Betreuern bedanken. Die Arbeitsatmosphäre war exzellent, die Kollegen freundlich und hilfsbereit.
Ab Montag bin ich im FLLL (Fuzzy Logic Laboratory Linz-Hagenberg und werde deren Classifier an Labordaten testen und Ergebnisse vergleichen

Montag, 27. Juli 2009

  Business as usual

Heute nur ein kurzes Statusupdate:
Mein Betreuer ist wieder vom Kurzurlaub zurück und war mit meiner Arbeit zufrieden.
Weiterarbeit an der Integration des Algorithmus.
Aufräumen des Codes, kleinere Umbauarbeiten im Hauptfenster.

Freitag, 24. Juli 2009

  Die Geister die ich rief

werd ich wieder los!
Um dynamisch Objekte zu erzeugen legt man zunächst einen Zeiger an
Zeiger* zeiger;
sodann weist man dem Zeiger eine neue Instanz des Objekts zu.
zeiger = new Objekt();
Um das Objekt wieder zu löschen reicht ein einfaches
delete zeiger;


Zu meiner Arbeit heute:
Ich hab den Buttons Play/Pause Buttons Leben eingehaucht,
den Code teils neu geschrieben, gegliedert,... damit er besser lesbar und wiederverwendbar ist.
Zudem habe ich ein sich lustig äußerndes Performanceproblem in QGraphicsView festgestellt. Zu Beginn wirrd am rechten Rand kurzzeitig Scrollleisten eingeblendet auch, wenn genug Platz vorhanden ist.
Dies äußert sich, wenn man mittels new und delete viele QGraphicsView Objekte mit den Bildern der Sequenz erstellt, anzeigt und wieder zerstört.werden, in einem starken Bildrauschen am rechten Rand. Das werde ich am Montag wohl debuggen müssen. Ein Ansatz ist, einige QGraphicsView Elemente im voraus zu cachen und sie zu einem späteren Zeitpunkt anzuzeigen.
Bildlich gesprochen:
Ein Lagerplatz, ein Arbeitsplatz, nasse Holzpfähle, eine Schubkarre und eine Trockenlampe am Arbeitsplatz.
Ziel ist es die am Arbeitsplatz trockene Holzpfähle aufzustellen.
(Ungecached) Man hat eine Schubkarre, fährt zum Lagerplatz und holt einen Holzpfahl, fährt wieder retour, lädt ihn aus, lässt ihn durch die Trockenlampe trocknen und stellt ihn auf.
(Gecached) Man hat eine Schubkarre, fährt zum Lagerplatz und holt einen Holzpfahl, fährt wieder retour, lädt ihn aus, fährt zum Lagerplatz und holt einen Holzpfahl, fährt wieder retour, stellt den bereits liegenden Holzpfahl auf und lädt den anderen aus. Dann geht es wieder retour den nächsten Holzpfahl aus dem Lager holen.
Man macht sich dabei zu Nutze, dass das Holz während es beim Arbeitsplatz liegt, selbstständig trocknet.
Der Nachteil ist, dass es am Anfang etwas länger dauert bis der erste Pfahl steht.

Ich weiß, Holzvergleich sind wie Autovergleiche, sie hinken ;)


Schönen Abend noch!

Donnerstag, 23. Juli 2009

  Ein Bild...

...sagt mehr als tausend Worte.
Deshalb einfach ein erster Screenshot.

(c) Bildmaterial TU München IAPA

Der Screenshot zeigt die Applikation, die ich entwickle.
Derzeit ist ein Großteil der Funktionalität bereits vorhanden, muss jedoch noch intern miteinander verbunden werden.

Das Mikroskopiebild ist von der IAPA, TU München.

Ziel ist es, wie schon gesagt, jede einzelne dargestellte Zelle zu tracken, zu markieren und die Punkte verschiebbar zu machen.
Dunkle Zellen sind im Normalzustand, helle Zellen durchleben gerade die Mitose.
Wie man sehen kann, überlagern sich die Zellen teilweise.

Schönen Abend noch


@BlogAdmins: das Layout ist nicht wirklich gut, wenn es so einfach durcheinander zu bringen ist.

Mittwoch, 22. Juli 2009

  Arbeitszeit und Tagesablauf

6:45h .- Zeit aufzustehen
7:35h - raus aus der Wohnung
7:43h - Bus macht sich auf den Weg Richtung Hagenberg im Mühlkreis
8:20 - rein ins Büro, Wasser + Kaffee holen
8:30 - Arbeitsbeginn
12:00 - Mittagspause + Essen
12:30 - back to work
17:35 - Feierabend
17:42 - Bus fährt wieder retour nach Linz
18:30 - zurück zu Hause
-----------------------------

rund 11 Stunden außer Haus
rund 8,5 Stunden Arbeit, die sich lohnt

Wie siehts bei euch aus?

summerschool.at | gen-au labor blogs

User Status

Username:

Passwort:


Suche

 

Aktuellste Beiträge

Bioinformatik
Warst du auch in der Bioinformatik tätig? Ich...
martin.bertschler - 14. Okt, 21:08
wenn die entscheidungsbäume...
wenn die entscheidungsbäume nur immer so einfach...
thomas.bumberger - 17. Aug, 10:42
Der Aufgabe erste Lösung
Nun, alle 10 Datensätze sind analysiert, am besten...
thomas.bumberger - 11. Aug, 11:49
Zum ersten Teil meinse...
http://www.zukunftwissen.apa.at/cms/zukunft-wissen/schule-und-bildung/topnews_einzel.html?id=CMS1248444533896
thomas.bumberger - 7. Aug, 10:43
Eine Aufgabe - 4 Tage...
4 Tage lang (beginnend ab gestern) werde ich auf 10...
thomas.bumberger - 7. Aug, 10:41

Status

Online seit 1039 Tagen
Zuletzt aktualisiert: 14. Okt, 21:08

Credits

Bundesmininsterium für Wissenschaft und Forschung

Genomforschung in Österreich

supported by



built with

powered by Antville powered by Helma


  • xml version of this page
  • xml version of this page