Inhoudsopgave:
Video: How The Economic Machine Works by Ray Dalio 2024
Machine learning verwijst naar een tak van kunstmatige intelligentie technieken die tools biedt waarmee computers hun analyse kunnen verbeteren op basis van eerdere gebeurtenissen. Deze computersystemen maken gebruik van historische gegevens uit eerdere pogingen om een taak op te lossen om de prestaties van toekomstige pogingen bij vergelijkbare taken te verbeteren.
Op het gebied van verwachte resultaten lijkt machine learning veel op dat andere buzzword "datamining"; echter, de eerste richt zich op voorspelling door analyse van voorbereide trainingsgegevens, de laatste heeft betrekking op kennisontdekking van onbewerkte onbewerkte gegevens. Om deze reden hangt het leren van machines sterk af van statistische modelleertechnieken en trekt het van gebieden van waarschijnlijkheidstheorie en patroonherkenning.
Mahout is een open source-project van Apache en biedt Java-bibliotheken voor gedistribueerde of anders schaalbare algoritmen voor het leren van apparaten.
Deze algoritmen omvatten klassieke machine learning-taken zoals classificatie, clustering, associatie-regelanalyse en aanbevelingen. Hoewel Mahout-bibliotheken zijn ontworpen om te werken binnen een Apache Hadoop-context, zijn ze ook compatibel met elk systeem dat het MapReduce-raamwerk ondersteunt. Mahout biedt bijvoorbeeld Java-bibliotheken voor Java-verzamelingen en algemene wiskundige bewerkingen (lineaire algebra en statistieken) die zonder Hadoop kunnen worden gebruikt.
Zoals je kunt zien, zijn de Mahout-bibliotheken geïmplementeerd in Java MapReduce en worden ze op je cluster uitgevoerd als verzamelingen van MapReduce-taken op beide YARN-kaarten (met MapReduce v2) of MapReduce v1.
Mahout is een evoluerend project met meerdere bijdragers. Tegen de tijd dat ik dit schrijf, is de verzameling algoritmen die beschikbaar zijn in de Mahout-bibliotheken helemaal niet compleet; de verzameling van algoritmen die voor gebruik is geïmplementeerd, blijft echter met de tijd uitbreiden.
Er zijn drie hoofdcategorieën van Mahout-algoritmen voor het ondersteunen van statistische analyse: collaboratief filteren, clusteren en classificeren.
Gezamenlijke filtering
Mahout is speciaal ontworpen om als aanbevelingsengine te dienen, met gebruik van een zogenaamd collaboratief filter -algoritme. Mahout combineert de rijkdom aan clustering- en classificatie-algoritmes tot zijn beschikking om preciezere aanbevelingen te produceren op basis van invoergegevens.
Deze aanbevelingen worden vaak toegepast tegen gebruikersvoorkeuren, rekening houdend met het gedrag van de gebruiker. Door de eerdere selecties van een gebruiker te vergelijken, is het mogelijk om de dichtstbijzijnde buren (personen met een vergelijkbare beslissingsgeschiedenis) voor die gebruiker te identificeren en toekomstige selecties te voorspellen op basis van het gedrag van de buren.
Overweeg een "smaakprofiel" -engine zoals Netflix - een engine die beoordelingen aanbeveelt op basis van de eerdere scoor- en kijkgewoonten van die gebruiker. In dit voorbeeld worden de gedragspatronen voor een gebruiker vergeleken met de gebruikersgeschiedenis - en de trends van gebruikers met dezelfde smaak die tot dezelfde Netflix-community behoren - om een aanbeveling te genereren voor inhoud die nog niet door de betreffende gebruiker is bekeken.
Clustering
In tegenstelling tot de bewaakte leermethode voor de aanbevelingsfunctie van Mahout, is clustering een vorm van niet-gecontroleerd leren - waarbij de labels voor datapunten niet van tevoren bekend zijn en moeten worden afgeleid uit de gegevens zonder menselijke input (het gesuperviseerde deel).
Over het algemeen moeten objecten binnen een cluster vergelijkbaar zijn; objecten uit verschillende clusters moeten niet hetzelfde zijn. Beslissingen die van tevoren worden genomen over het aantal te genereren clusters, de criteria voor het meten van "gelijkenis" en de weergave van objecten, zullen van invloed zijn op de labeling die wordt geproduceerd door clusteralgoritmen.
Een cluster-engine die een lijst met nieuwsartikelen bevat, moet bijvoorbeeld clusters van artikelen in die verzameling kunnen definiëren die soortgelijke onderwerpen bespreken.
Stel dat een reeks artikelen over Canada, Frankrijk, China, bosbouw, olie en wijn worden geclusterd. Als het maximale aantal clusters is ingesteld op 2, kan uw algoritme categorieën produceren zoals 'regio's' en 'branches'. "Aanpassingen van het aantal clusters zullen verschillende categorisaties produceren; als u bijvoorbeeld selecteert voor 3 clusters, kan dit leiden tot paarsgewijze groeperingen van nationale-industrieklassen.
Classificaties
Classificatiealgoritmen maken gebruik van door mensen gelabelde trainingsgegevenssets, waarbij de categorisering en classificatie van alle toekomstige invoer wordt bepaald door deze bekende labels. Deze classifiers implementeren het zogenaamde gesuperviseerde leren in de machine-leerwereld.
Classificatieregels - ingesteld door de trainingsgegevens, die van tevoren zijn gelabeld door domeinexperts - worden vervolgens toegepast op onbewerkte, onverwerkte gegevens om zo de juiste labeling te bepalen.
Deze technieken worden vaak gebruikt door e-mailservices die proberen spam-e-mail te classificeren voordat ze uw Postvak IN ooit passeren. Specifiek, gezien een e-mail die een reeks zinnen bevat waarvan bekend is dat ze vaak samen voorkomen in een bepaalde categorie spammail - afgeleverd vanaf een adres dat bij een bekend botnet hoort - kan uw classificatie-algoritme de e-mail betrouwbaar identificeren als kwaadaardig.
Naast de schat aan statistische algoritmen die Mahout standaard biedt, is er ook een ondersteunende Door gebruiker gedefinieerde algoritmen (UDA) -module beschikbaar. Gebruikers kunnen bestaande algoritmen overbruggen of hun eigen algoritmen implementeren via de UDA-module. Deze robuuste aanpassing maakt prestatie-afstemming van inheemse Mahout-algoritmen en flexibiliteit bij het aanpakken van unieke statistische analyse-uitdagingen mogelijk.
Als Mahout kan worden beschouwd als een uitbreiding van de statistische analyse van Hadoop, moet UDA worden gezien als een uitbreiding op de statistische mogelijkheden van Mahout.
Traditionele toepassingen voor statistische analyse (zoals SAS, SPSS en R) worden geleverd met krachtige hulpmiddelen voor het genereren van werkstromen. Deze toepassingen maken gebruik van intuïtieve grafische gebruikersinterfaces die een betere gegevensvisualisatie mogelijk maken. Mahout-scripts volgen een soortgelijk patroon als deze andere tools voor het genereren van statistische analyse-workflows.
Tijdens de laatste fase van gegevensverkenning en visualisatie kunnen gebruikers exporteren naar door mensen leesbare formaten (JSON, CSV) of gebruikmaken van visualisatietools zoals Tableau Desktop.
De architectuur van Mahout ligt bovenop het Hadoop-platform. Hadoop ontzorgt de programmeur door de taak van het programmeren van MapReduce-taken te scheiden van de complexe boekhouding die nodig is om parallellisme over verspreide bestandssystemen te beheren. In dezelfde geest biedt Mahout programmeervriendelijke abstracties van complexe statistische algoritmen, klaar voor implementatie met het Hadoop-framework.