Andreoli, Dario and Schiepek, Richard (2015) Implementation des HLC‐Algorithmus für Clustering von Phytoplankton Daten. Bachelor thesis, HSR Hochschule für Technik Rapperswil.
Impl. HLC Algorithmus.pdf - Supplemental Material
Download (6MB) | Preview
Abstract
Die Eawag in Dübendorf führt regelmässige Untersuchungen von Phytoplankton aus dem Greifensee durch. Dabei wird versucht anhand von Charakteristika wie z.B. Fluoreszenzwerten Rückschlüsse auf die Spezies zu schliessen. Dazu werden Clustering Algorithmen auf grosse Datensätze angewendet. Gängige Algorithmen wie Ward oder k-Means lieferten bis anhin keine zufriedenstellende Ergebnisse. Der Hebbian Learning Clustering Algorithmus (HLC) ist in der Lage, auch kompliziertere Formen zu clustern und „Background-noize“ auszufiltern. Ziel der Bachelorarbeit war, die Verwendbarkeit des HLC-Algorithmus aufgrund von Cluster Resultaten der Phytoplankton Daten nachzuweisen.
Der HLC-Algorithmus stand in Mathematica, sowie in einer frühen C++ Version zur Verfügung. Durch das Clustern von Sample Daten der ETH Zürich konnten wir ein Gefühl für den Algorithmus und deren Parameter entwickeln. In einem zweiten Schritt verbesserten wir die Performance des C++ Codes durch massives Refactoring, wie bessere Code Struktur, bessere C++ Collections, entfernen von überflüssigen Sortierungen und auch CUDA Parallelisierung. Zu Beginn hatte der Algorithmus keine Konfigurationsmöglichkeiten. Durch das Einsetzen eines externen XML-Config-Files können nun Parameter definiert, Daten gefiltert oder nur ein gewisser Prozentsatz der Daten eingelesen werden, um auch grosse Datensätze analysieren zu können. Um die Usability für alle User zu verbessern, entwickelten wir zudem ein User Interface basierend auf der Qt-Library. Um die Plattformunabhängigkeit zu gewährleisten, wurde bereits zu Beginn der Arbeit diese hergestellt und während des ganzen Projektes Tests auf den verschiedenen Plattformen (Mac, Windows, Linux) durchgeführt.
Wir konnten durch den Einsatz des HLC-Algorithmus und dem Konfigurieren weniger Parameter dieselben, oder sogar bessere Cluster nachweisen, wie die Eawag dies mittels herkömmlichen Techniken und zusätzlicher Handarbeit gemacht hat. Ausserdem konnten wir durch optimierte
Programmierung und Parallelisierung eine stark verbesserte Performance erreichen. Um die Parameter des Algorithmus zu konfigurieren, oder sonstige Feinjustierungen vorzunehmen, stellen wir ein intuitives User Interface zur Verfügung. Ausführbare Versionen des HLC-Algorithmus werden auf der Internetseite der Stoop-Group (http://stoop.ini.uzh.ch) für die Plattformen
Windows, Mac und Linux zur Verfügung gestellt.
Item Type: | Thesis (Bachelor) |
---|---|
Subjects: | Topics > Software > Refactoring Topics > Software > Performance Area of Application > Statistics Area of Application > Academic and Education Technologies > Programming Languages > C++ Technologies > Parallel Computing > CUDA (Compute Unified Device Architecture) Brands > nVidia |
Divisions: | Bachelor of Science FHO in Informatik > Bachelor Thesis |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Stoop, Ruedi UNSPECIFIED |
Date Deposited: | 20 Oct 2015 07:50 |
Last Modified: | 20 Oct 2015 07:50 |
URI: | https://eprints.ost.ch/id/eprint/455 |