Indholdsfortegnelse:
Video: Lærende Maskiner 2025
Maskinindlæring refererer til en gren af kunstig intelligens teknikker, der giver værktøjer, der gør det muligt for computere at forbedre deres analyse baseret på tidligere begivenheder. Disse computersystemer udnytter historiske data fra tidligere forsøg på at løse en opgave for at forbedre præstationen af fremtidige forsøg på lignende opgaver.
Med hensyn til forventede resultater kan maskinindlæring måske lytte meget til det andet buzzword "data mining"; Den tidligere fokuserer på forudsigelse gennem analyse af forberedt træningsdata, sidstnævnte vedrører videnopdagelse fra ubehandlede rådata. Af denne grund afhænger maskinindlæring kraftigt af statistiske modelleringsteknikker og trækker fra områder af sandsynlighedsteori og mønstergenkendelse.
Mahout er et open source-projekt fra Apache, der tilbyder Java-biblioteker til distribuerede eller ellers skalerbare algoritmer til maskinlæring.
Disse algoritmer dækker klassiske maskinindlæringsopgaver som klassificering, gruppering, associeringsregelanalyse og anbefalinger. Selvom Mahout-biblioteker er designet til at fungere i en Apache Hadoop-kontekst, er de også kompatible med ethvert system, der understøtter MapReduce-rammen. For eksempel leverer Mahout Java-biblioteker til Java-samlinger og almindelige matematiske operationer (lineær algebra og statistik), som kan bruges uden Hadoop.
Som du kan se, implementeres Mahout biblioteker i Java MapReduce og kører på din klynge som samlinger af MapReduce-job på enten YARN (med MapReduce v2) eller MapReduce v1.
Mahout er et udviklingsprojekt med flere bidragsydere. På tidspunktet for denne skrivning er samlingen af algoritmer, der er tilgængelige i Mahout-bibliotekerne, slet ikke fuldstændig; Imidlertid fortsætter samlingen af algoritmer implementeret til brug med tiden.
Der er tre hovedkategorier af Mahout-algoritmer til understøttelse af statistisk analyse: samarbejdsfiltrering, gruppering og klassificering.
Samarbejdsmæssig filtrering
Mahout var specielt designet til at fungere som en anbefalingsmotor, der anvender det, der kaldes en samarbejdsmæssig filtrering -algoritme. Mahout kombinerer rigdom af clustering og klassifikationsalgoritmer til rådighed for at producere mere præcise anbefalinger baseret på input data.
Disse henstillinger anvendes ofte imod brugernes præferencer under hensyntagen til brugerens adfærd. Ved at sammenligne en brugers tidligere valg er det muligt at identificere de nærmeste naboer (personer med en lignende beslutningshistorie) til den pågældende bruger og forudsige fremtidige valg baseret på naboernes adfærd.
Overvej en "smagsprofil" -motor som Netflix - en motor, der anbefaler vurderinger baseret på brugerens tidligere scoring og visningsvaner. I dette eksempel sammenlignes adfærdsmønstre for en bruger i forhold til brugerens historie - og udviklingen hos brugere med lignende smag, der tilhører det samme Netflix-fællesskab - for at generere en anbefaling til indhold, der endnu ikke er set af den pågældende bruger.
Clustering
I modsætning til den overordnede læringsmetode for Mahouts anbefalingsmotoregenskab er clustering en form for uovervåget læring - hvor etiketterne for datapunkter er ukendte før tiden og skal udledes af dataene uden menneskelig input ( overvåget del).
Generelt skal objekter i en klynge være ens; objekter fra forskellige klynger bør være forskellige. Afgørelser forud for tiden om antallet af klynger, der skal genereres, kriterierne for måling af "lighed" og repræsentation af objekter vil påvirke mærkning produceret af clusteringsalgoritmer.
Eksempelvis skal en klyngemotor, der er en liste over nyhedsartikler, definere klynger af artikler i den samling, der diskuterer lignende emner.
Antag, at et sæt artikler om Canada, Frankrig, Kina, skovbrug, olie og vin skulle grupperes. Hvis det maksimale antal klynger blev sat til 2, kan din algoritme producere kategorier som "regioner" og "industrier". "Justeringer af antallet af klynger vil producere forskellige kategoriseringer; for eksempel at vælge for 3 klynger kan resultere i parvise grupperinger af nationale industrikategorier.
Klassifikationer
Klassifikationsalgoritmer gør brug af menneskemærkede træningsdatasæt, hvor kategoriseringen og klassificeringen af alle fremtidige input styres af disse kendte mærker. Disse klassifikatorer implementerer det såkaldte supervised learning i maskinlæringsverdenen.
Klassificeringsregler - fastsat af uddannelsesdata, der er blevet mærket forinden af domæneeksperter - anvendes derefter på rå, uforarbejdede data for bedst at bestemme deres passende mærkning.
Disse teknikker bruges ofte af e-mail-tjenester, der forsøger at klassificere spam-e-mail, før de nogensinde krydser din indbakke. I betragtning af en e-mail, der indeholder et sæt sætninger, der er kendt for almindeligt at forekomme sammen i en bestemt klasse af spam-mail - leveret fra en adresse tilhørende et kendt botnet - din klassifikationsalgoritme er i stand til pålideligt at identificere e-mailen som skadelig.
Ud over den rigdom af statistiske algoritmer, som Mahout leverer indbygget, er der også en understøttelse Brugerdefineret algoritmer (UDA) -modul. Brugere kan tilsidesætte eksisterende algoritmer eller implementere deres egne gennem UDA-modulet. Denne robuste tilpasning giver mulighed for præstationsindstilling af native Mahout-algoritmer og fleksibilitet til at tackle unikke statistiske analyseproblemer.
Hvis Mahout kan ses som en statistisk analyseforlængelse til Hadoop, bør UDA ses som en udvidelse til Mahouts statistiske evner.
Traditionelle statistiske analyseprogrammer (som SAS, SPSS og R) leveres med kraftfulde værktøjer til generering af arbejdsgange. Disse applikationer bruger intuitive grafiske brugergrænseflader, der muliggør bedre datavisualisering. Mahout scripts følger et lignende mønster som disse andre værktøjer til generering af statistiske analysearbejder.
Under det endelige dataudforsknings- og visualiseringstrin kan brugere eksportere til menneskeligt læsbare formater (JSON, CSV) eller drage fordel af visualiseringsværktøjer som Tableau Desktop.
Mahouts arkitektur sidder oven på Hadoop-platformen. Hadoop unburdens programmereren ved at adskille opgaven med at programmere MapReduce-job fra den komplekse bogføring, der er nødvendig for at styre parallelisme på tværs af distribuerede filsystemer. I samme ånd giver Mahout programmeringsvenlige abstraktioner af komplekse statistiske algoritmer, klar til implementering med Hadoop-rammen.