Inhaltsverzeichnis:
Video: Introduction to the Hadoop Technology Stack 2024
Maschinelles Lernen bezieht sich auf einen Zweig der künstlichen Intelligenztechniken, der Werkzeuge bereitstellt, die es Computern ermöglichen, ihre Analyse auf der Grundlage früherer Ereignisse zu verbessern. Diese Computersysteme nutzen historische Daten aus früheren Versuchen, eine Aufgabe zu lösen, um die Leistung zukünftiger Versuche mit ähnlichen Aufgaben zu verbessern.
In Bezug auf die erwarteten Ergebnisse mag maschinelles Lernen sehr ähnlich wie das andere Schlagwort "Data Mining" klingen; Der erstere konzentriert sich jedoch auf die Vorhersage durch Analyse von vorbereiteten Trainingsdaten, wobei letzterer sich mit der Wissensentdeckung von unbearbeiteten Rohdaten beschäftigt. Aus diesem Grund hängt maschinelles Lernen stark von statistischen Modellierungstechniken ab und bezieht sich auf Bereiche der Wahrscheinlichkeitstheorie und der Mustererkennung.
Mahout ist ein Open-Source-Projekt von Apache, das Java-Bibliotheken für verteilte oder anderweitig skalierbare Algorithmen zum maschinellen Lernen anbietet.
Diese Algorithmen decken klassische maschinelle Lernaufgaben wie Klassifizierung, Clustering, Assoziationsregelanalyse und Empfehlungen ab. Obwohl Mahout-Bibliotheken so konzipiert wurden, dass sie innerhalb eines Apache-Hadoop-Kontexts funktionieren, sind sie auch mit jedem System kompatibel, das das MapReduce-Framework unterstützt. Zum Beispiel stellt Mahout Java-Bibliotheken für Java-Sammlungen und allgemeine mathematische Operationen (lineare Algebra und Statistiken) bereit, die ohne Hadoop verwendet werden können.
Wie Sie sehen, sind die Mahout-Bibliotheken in Java MapReduce implementiert und werden auf Ihrem Cluster als Sammlungen von MapReduce-Jobs entweder auf YARN (mit MapReduce v2) oder MapReduce v1 ausgeführt.
Mahout ist ein sich entwickelndes Projekt mit mehreren Mitwirkenden. Bis zu diesem Zeitpunkt ist die Sammlung von Algorithmen, die in den Mahout-Bibliotheken verfügbar sind, keineswegs vollständig; Die Sammlung von Algorithmen, die zur Verwendung implementiert werden, expandiert jedoch mit der Zeit weiter.
Es gibt drei Hauptkategorien von Mahout-Algorithmen zur Unterstützung der statistischen Analyse: kollaboratives Filtern, Clustering und Klassifizierung.
Kollaborative Filterung
Mahout wurde speziell für die Verwendung als Empfehlungsmaschine entwickelt und verwendet einen so genannten kollaborativen Filteralgorithmus . Mahout kombiniert die Fülle an Clustering- und Klassifikationsalgorithmen, um präzisere Empfehlungen auf Basis von Eingabedaten zu erhalten.
Diese Empfehlungen werden häufig gegen Benutzereinstellungen angewendet, wobei das Verhalten des Benutzers berücksichtigt wird. Durch Vergleichen der vorherigen Auswahlen eines Benutzers ist es möglich, die nächsten Nachbarn (Personen mit einer ähnlichen Entscheidungshistorie) für diesen Benutzer zu identifizieren und zukünftige Auswahlen basierend auf dem Verhalten der Nachbarn vorherzusagen.
Betrachten Sie eine "Geschmacksprofil" -Engine wie Netflix - eine Engine, die Bewertungen basierend auf den bisherigen Bewertungs- und Betrachtungsgewohnheiten des Nutzers empfiehlt. In diesem Beispiel werden die Verhaltensmuster für einen Benutzer mit der Geschichte des Benutzers verglichen - und mit den Trends von Benutzern mit ähnlichem Geschmack, die derselben Netflix-Gemeinschaft angehören - um eine Empfehlung für Inhalte zu generieren, die der fragliche Benutzer noch nicht gesehen hat.
Clustering
Im Gegensatz zur überwachten Lernmethode für das Empfehlungsmodul von Mahout ist Clustering eine Form von unbeaufsichtigtem Lernen - wobei die Bezeichnungen für Datenpunkte im Voraus bekannt sind und aus den Daten abgeleitet werden müssen ohne menschliche Eingabe (der überwachte Teil).
Im Allgemeinen sollten Objekte innerhalb eines Clusters ähnlich sein. Objekte aus verschiedenen Clustern sollten unterschiedlich sein. Entscheidungen, die im Voraus über die Anzahl der zu erzeugenden Cluster, die Kriterien für die Messung der "Ähnlichkeit" und die Darstellung von Objekten getroffen werden, wirken sich auf die durch Clustering-Algorithmen erzeugte Kennzeichnung aus.
Beispielsweise sollte eine Clustering-Engine, die eine Liste von Nachrichtenartikeln bereitstellt, in der Lage sein, Gruppen von Artikeln innerhalb dieser Sammlung zu definieren, die ähnliche Themen behandeln.
Angenommen, es würde eine Reihe von Artikeln über Kanada, Frankreich, China, Forstwirtschaft, Öl und Wein gesammelt. Wenn die maximale Anzahl von Clustern auf 2 festgelegt wurde, kann Ihr Algorithmus Kategorien wie "Regionen" und "Branchen" erstellen. "Anpassungen an die Anzahl der Cluster führen zu unterschiedlichen Kategorisierungen. Zum Beispiel kann die Auswahl für 3 Cluster zu paarweisen Gruppierungen von Kategorien der nationalen Industrie führen.
Klassifikationen
Klassifikationsalgorithmen verwenden menschlich markierte Trainingsdatensätze, wobei die Kategorisierung und Klassifizierung aller zukünftigen Eingaben durch diese bekannten Bezeichnungen bestimmt wird. Diese Klassifizierer implementieren das, was als überwachtes Lernen in der Welt des maschinellen Lernens bekannt ist.
Die Klassifizierungsregeln, die von den Trainingsdaten festgelegt werden, die von den Experten der Domäne vorab etikettiert wurden, werden dann auf rohe, unverarbeitete Daten angewendet, um ihre angemessene Kennzeichnung zu ermitteln.
Diese Techniken werden häufig von E-Mail-Diensten verwendet, die versuchen, Spam-E-Mails zu klassifizieren, bevor sie Ihren Posteingang überqueren. Insbesondere bei einer E-Mail, die eine Reihe von Phrasen enthält, von denen bekannt ist, dass sie gemeinsam in einer bestimmten Klasse von Spam-Mails auftreten, die von einer Adresse eines bekannten Botnets stammen, kann Ihr Klassifizierungsalgorithmus die E-Mail zuverlässig als bösartig identifizieren.
Zusätzlich zu der Fülle an statistischen Algorithmen, die Mahout nativ bereitstellt, ist auch ein unterstützendes User Defined Algorithms (UDA) -Modul verfügbar. Benutzer können bestehende Algorithmen außer Kraft setzen oder eigene über das UDA-Modul implementieren. Diese robuste Anpassung ermöglicht eine Leistungsoptimierung von nativen Mahout-Algorithmen und Flexibilität bei der Bewältigung einzigartiger statistischer Analyseherausforderungen.
Wenn Mahout als statistische Analyseerweiterung für Hadoop angesehen werden kann, sollte UDA als Erweiterung der statistischen Fähigkeiten von Mahout gesehen werden.
Traditionelle statistische Analyse-Anwendungen (wie SAS, SPSS und R) verfügen über leistungsfähige Werkzeuge zur Generierung von Workflows. Diese Anwendungen verwenden intuitive grafische Benutzeroberflächen, die eine bessere Datenvisualisierung ermöglichen. Mahout-Skripte folgen einem ähnlichen Muster wie diese anderen Werkzeuge zur Erstellung statistischer Analyse-Workflows.
Während des abschließenden Datenexplorations- und Visualisierungsschritts können Benutzer in lesbare Formate (JSON, CSV) exportieren oder Visualisierungstools wie Tableau Desktop nutzen.
Die Architektur von Mahout befindet sich auf der Hadoop-Plattform. Hadoop entlastet den Programmierer, indem es die Aufgabe der Programmierung von MapReduce-Jobs von der komplexen Buchhaltung trennt, die zur Verwaltung der Parallelität über verteilte Dateisysteme hinweg erforderlich ist. Im gleichen Geist bietet Mahout programmiererfreundliche Abstraktionen komplexer statistischer Algorithmen, die für die Implementierung mit dem Hadoop-Framework bereit sind.