Implementation des HLC‐Algorithmus für Clustering von Phytoplankton Daten

Andreoli, Dario and Schiepek, Richard (2015) Implementation des HLC‐Algorithmus für Clustering von Phytoplankton Daten. Bachelor thesis, HSR Hochschule für Technik Rapperswil.

[img]
Preview
Text
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
Creators:
CreatorsEmail
Andreoli, DarioUNSPECIFIED
Schiepek, RichardUNSPECIFIED
Contributors:
ContributionNameEmail
Thesis advisorStoop, RuediUNSPECIFIED
Depositing User: HSR Deposit User
Date Deposited: 20 Oct 2015 07:50
Last Modified: 20 Oct 2015 07:50
URI: http://eprints.hsr.ch/id/eprint/455

Actions (login required)

View Item View Item