- Shogun (Toolbox)
-
Shogun ist eine Open-Source-Toolbox aus dem Bereich des Maschinellen Lernens. Mit ihr lassen sich Regressions- und Klassifikations-Probleme lösen, sowie unter anderem Hidden Markov Models lernen.
Inhaltsverzeichnis
Anwendungsschwerpunkt
Der Fokus dieser Toolbox liegt ganz klar auf so genannten Kern-Methoden (siehe Kernel (Maschinelles Lernen)), mit dem Anwendungsschwerpunkt Bioinformatik. Dazu wurde eine Reihe von Kernen auf Sequenzen (sogenannte String-Kerne) implementiert und besonders auf Geschwindigkeit zur Anwendung auf großen Datenmengen getrimmt. So lassen sich mit der Toolbox Probleme mit String-Kernen auf sehr großen Datenmengen lösen (bis zu 10 Millionen).
Insbesondere bietet Shogun generische Schnittstellen zu vielen verschiedenen Implementierungen von Support Vector Machines (SVMs), wie z. B. SVMlight und libSVM. Dies ermöglicht es allen SVMs, dieselben Kern-Implementierungen zu verwenden, und erleichtert das Hinzufügen neuer kernbasierter Lernmethoden. Neben den folgenden Standard-Kernen (linearer, polynomieller, Gauss- und Sigmoid-Kern (siehe Kernel (Maschinelles Lernen)) sind in Shogun effiziente Implementierungen für kürzlich publizierte String-Kerne vorhanden, wie z. B. der Locality Improved, Fischer, TOP, Spektrum, Weighted Degree Kernel (with shifts). Für die letzteren wurden die effizienten LINADD Optimierungen implementiert.
Besonderheiten
Shogun ermöglicht es außerdem, mit eigenen vorberechneten Kernen zu arbeiten. Eines der Hauptmerkmale dieser Toolbox ist der so genannte kombinierbare Kern (engl. combined Kernel), welcher sich aus einer gewichteten Linearkombination von Unter-Kernen zusammensetzt: . Dabei müssen die Unter-Kerne nicht notwendigerweise auf demselben Eingabe-Raum arbeiten, sondern auf verschiedenen Domänen. Shogun kann eine optimale Unter-Kern-Gewichtung, d. h. , durch den Multiple Kernel Learning Algorithmus lernen. Neben den SVM 2-Klassen Klassifikations und Regressionsproblemen ist in Shogun auch eine Reihe von linearen Methoden implementiert. Beispiele hierfür sind die Diskriminanzanalyse (engl. Linear Discriminant Analysis (LDA)), Linear Programming Machine (LPM), (Kernel) Perceptronen und Hidden Markov Modelle. Shogun kann ein reiches Spektrum an Daten verarbeiten. Nicht nur sind voll besetzte Eingabe-Matrizen, sondern auch dünn besetzte, sowie Strings, die jeweils vom Typ Integer/Gleitkomma (einfache oder doppelte Genauigkeit) sein können, möglich. Weiterhin können Ketten von Präprozessoren an die Eingaben angehängt werden, so dass die Eingaben on-the-fly von den Lernalgorithmen weiterverarbeit werden können.
Schnittstellen
Shogun ist in C++ implementiert und bietet Schnittstellen zu Matlab™, R, Octave und Python. Diese Schnittstellen erlauben interaktives experimentieren mit den Lernalgorithmen (siehe Abbildung 1 für die Python-Schnittstelle), aber auch Batch-Skript-Verarbeitung auf Rechenclustern.
Literatur
- C. Cortes, Wladimir Wapnik: Support-vector networks. In: Machine Learning. Band 20, Nr. 3, 1995, Seiten 273–297.
- S. Sonnenburg, G. Rätsch, C. Schäfer und B. Schölkopf: Large Scale Multiple Kernel Learning. In: Journal of Machine Learning Research. Band 7, Juli 2006, Seiten 1531–1565.
- T. Joachims: Making large-scale SVM learning practical. In: B. Schölkopf, C. J. C. Burges, A. J. Smola (Hrsg.): Advances in Kernel Methods – Support Vector Learning. MIT Press, Cambridge, MA, 1999, Seiten 169–184.
- C.-C. Chang, C.-J. Lin: LIBSVM: a library for support vector machines. 2001.
Weblinks
Kategorien:- Freie Statistik-Software
- Klassifizierung
- Maschinelles Lernen
Wikimedia Foundation.