Innehållsförteckning:
Video: 31. Ny teknik för supereffektivt lärande 2024
Maskininlärning avser en gren av artificiell intelligenssteknik som ger verktyg som gör att datorer kan förbättra sin analys utifrån tidigare händelser. Dessa datorsystem utnyttjar historiska data från tidigare försök att lösa en uppgift för att förbättra prestationen för framtida försök till liknande uppgifter.
När det gäller förväntade resultat kan maskininlärning låta mycket som det andra ordet "data mining"; Den tidigare fokuserar emellertid på prediktering genom analys av utarbetad träningsdata, den senare handlar om kunskapsupptäckt från obearbetad rådata. Av denna anledning beror maskininlärning kraftigt på statistisk modelleringsteknik och drar sig från områden av sannolikhetsteori och mönsterigenkänning.
Mahout är ett open source-projekt från Apache, som erbjuder Java-bibliotek för distribuerade eller annars skalbara maskinlärningsalgoritmer.
Dessa algoritmer täcker klassiska maskininlärningsuppgifter som klassificering, gruppering, associeringsregelanalys och rekommendationer. Även om Mahout-bibliotek är utformade för att fungera inom ett Apache Hadoop-sammanhang, är de också kompatibla med alla system som stöder MapReduce-ramen. Till exempel tillhandahåller Mahout Java-bibliotek för Java-samlingar och vanliga matematiska operationer (linjär algebra och statistik) som kan användas utan Hadoop.
Som du kan se implementeras Mahout-biblioteken i Java MapReduce och kör på ditt kluster som samlingar av MapReduce-jobb på antingen YARN (med MapReduce v2) eller MapReduce v1.
Mahout är ett utvecklingsprojekt med flera bidragsgivare. Vid tidpunkten för denna skrivning är samlingen av algoritmer tillgängliga i Mahout-biblioteken inte alls fullständig; Samlingen av algoritmer som implementeras för användning fortsätter dock att expandera med tiden.
Det finns tre huvudkategorier av Mahout-algoritmer för att stödja statistisk analys: samarbetsfiltrering, gruppering och klassificering.
Samarbetande filtrering
Mahout var speciellt utformad för att fungera som en rekommendationsmotor, med hjälp av vad som kallas en samverkande filtrering -algoritm. Mahout kombinerar rikedom med klustrings- och klassificeringsalgoritmer till sitt förfogande för att producera mer exakta rekommendationer baserat på inmatningsdata.
Dessa rekommendationer tillämpas ofta mot användarinställningar, med beaktande av användarens beteende. Genom att jämföra en användares tidigare markeringar är det möjligt att identifiera närmaste grannar (personer med liknande beslutshistoria) till den användaren och förutse framtida val baserat på grannarnas beteende.
Tänk på en "smakprofil" -motor som Netflix - en motor som rekommenderar betyg baserat på användarens tidigare poäng och beteendevanor. I det här exemplet jämförs beteendemönstren för en användare mot användarens historia - och trenderna för användare med liknande smaker som tillhör samma Netflix-community - för att generera en rekommendation för innehåll som ännu inte visats av användaren i fråga.
Clustering
Till skillnad från den övervakade inlärningsmetoden för Mahouts rekommendationsmotorfunktion är clustering en form av obesvarad lärande - där etiketterna för datapunkter är okända före tid och måste utläsas från data utan mänsklig inmatning (den övervakade delen).
Generellt bör objekt inom ett kluster vara likartade; Objekt från olika kluster bör vara olika. Beslut som fattas i förväg om antalet kluster som ska genereras, kriterierna för mätning av "likhet" och representationen av objekt kommer att påverka märkningen som produceras av klustringsalgoritmer.
Till exempel, en klustermotor som tillhandahålls en lista med nyhetsartiklar bör kunna definiera kluster av artiklar i den samlingen som diskuterar liknande ämnen.
Antag att en uppsättning artiklar om Kanada, Frankrike, Kina, skogsbruk, olja och vin skulle vara sammanslagna. Om det maximala antalet kluster sattes till 2, kan din algoritm producera kategorier som "regioner" och "industrier". "Justeringar av antalet kluster kommer att producera olika kategoriseringar; till exempel, att välja för 3 grupper kan resultera i parvisa grupperingar av nationindustrinskategorier.
Klassificeringar
Klassificeringsalgoritmer använder sig av mänskliga märkta träningsdatasatser, där kategoriseringen och klassificeringen av all framtida inmatning styrs av dessa kända etiketter. Dessa klassificatorer implementerar vad som är känt som övervakat lärande i maskininlärningsvärlden.
Klassificeringsregler - fastställd av träningsdata, som tidigare har blivit märkta av domänexperter - tillämpas sedan på obehandlad, obehandlad data för att bäst bestämma sin lämpliga märkning.
Dessa tekniker används ofta av e-posttjänster som försöker klassificera spam e-post innan de någonsin korsar din inkorg. Specifikt, med tanke på ett e-postmeddelande som innehåller en uppsättning fraser som är kända för att gemensamt förekomma tillsammans i en viss klass av skräppost - levereras från en adress som tillhör en känd botnät - kan din klassificeringsalgoritm på ett pålitligt sätt identifiera e-postmeddelandet som skadligt.
Förutom den rikedom av statistiska algoritmer som Mahout tillhandahåller, finns också en modul med stöd för Användardefinierad algoritmer (UDA). Användare kan åsidosätta befintliga algoritmer eller genomföra egna via UDA-modulen. Denna robusta anpassning möjliggör prestandatestning av inhemska Mahout-algoritmer och flexibilitet när det gäller att hantera unika statistiska analysutmaningar.
Om Mahout kan ses som en statistisk analysförlängning till Hadoop, bör UDA ses som en förlängning till Mahouts statistiska kapacitet.
Traditionella statistiska analysapplikationer (som SAS, SPSS och R) kommer med kraftfulla verktyg för att generera arbetsflöden. Dessa applikationer använder intuitiva grafiska användargränssnitt som möjliggör bättre datavisualisering. Mahout skript följer ett liknande mönster som dessa andra verktyg för att generera statistiska analys arbetsflöden.
Under det slutgiltiga datautforsknings- och visualiseringssteget kan användare exportera till läsbara format (JSON, CSV) eller utnyttja visualiseringsverktyg som Tableau Desktop.
Mahouts arkitektur sitter på toppen av Hadoop-plattformen. Hadoop unburdens programmeraren genom att skilja upp uppgiften att programmera MapReduce-jobb från den komplexa bokhållningen som behövs för att hantera parallellitet över distribuerade filsystem. I samma anda ger Mahout programmerarvänliga abstraktioner av komplexa statistiska algoritmer, redo för implementering med Hadoop-ramverket.