Innholdsfortegnelse:
Video: Podcast: maskinlæring i praksis 2025
Maskininnlæring referere til en gren av kunstig intelligensteknikk som gir verktøy som gjør at datamaskiner kan forbedre analysen deres basert på tidligere hendelser. Disse datasystemene utnytter historiske data fra tidligere forsøk på å løse en oppgave for å forbedre ytelsen til fremtidige forsøk på lignende oppgaver.
Når det gjelder forventede resultater, kan maskinlæring høres mye som det andre buzzword "data mining"; Men førstnevnte fokuserer på prediksjon gjennom analyse av forberedt treningsdata, sistnevnte er opptatt av kunnskapsoppdagelse fra ubehandlet rådata. Av denne grunn er maskinlæring avhengig av statistiske modelleringsteknikker og trekker seg fra områder av sannsynlighetsteori og mønstergenkjenning.
Mahout er et open source-prosjekt fra Apache, og tilbyr Java-biblioteker for distribuerte eller ellers skalerbare maskinlæringsalgoritmer.
Disse algoritmene dekker klassiske maskinlæringsoppgaver som klassifisering, clustering, assosieringsregelanalyse og anbefalinger. Selv om Mahout-biblioteker er utformet for å fungere i en Apache Hadoop-kontekst, er de også kompatible med ethvert system som støtter MapReduce-rammeverket. For eksempel tilbyr Mahout Java-biblioteker for Java-samlinger og vanlige matteoperasjoner (lineær algebra og statistikk) som kan brukes uten Hadoop.
Som du kan se, er Mahout-biblioteker implementert i Java MapReduce og kjører på klyngen din som samlinger av MapReduce-jobber på enten YARN (med MapReduce v2) eller MapReduce v1.
Mahout er et utviklingsprosjekt med flere bidragsytere. På tidspunktet for denne skrivingen er samlingen av algoritmer som er tilgjengelige i Mahout-bibliotene på ingen måte fullstendig; Imidlertid fortsetter samlingen av algoritmer som er implementert for bruk, å vokse med tiden.
Det finnes tre hovedkategorier av Mahout-algoritmer for å støtte statistisk analyse: samarbeidende filtrering, gruppering og klassifisering.
Samarbeidsfiltrering
Mahout ble spesielt utviklet for å fungere som en anbefalingsmotor, og benytter det som kalles en samarbeidende filtrering -algoritme. Mahout kombinerer rikdom med clustering og klassifikasjonsalgoritmer til rådighet for å produsere mer nøyaktige anbefalinger basert på inngangsdata.
Disse anbefalingene brukes ofte mot brukerpreferanser, og tar hensyn til brukerens oppførsel. Ved å sammenligne en brukers tidligere valg, er det mulig å identifisere nærmeste naboer (personer med lignende beslutningshistorie) til den brukeren og forutsi fremtidige valg basert på oppføringene til naboene.
Vurder en "smakprofil" -motor som Netflix - en motor som anbefaler rangeringer basert på brukerens tidligere scoring og visningsvaner. I dette eksempelet sammenlignes adferdsmønstre for en bruker i forhold til brukerens historie - og trender for brukere med lignende smak som tilhører samme Netflix-fellesskap - for å generere en anbefaling for innhold som ennå ikke er sett av brukeren i spørsmålet.
Clustering
I motsetning til den overordnede læringsmetoden for Mahouts anbefalingsmotorfunksjon, er clustering en form for uovervåket læring - hvor etikettene for datapunkter ikke er kjent før og må utledes av dataene uten menneskelig inngang ( overvåket del).
Generelt bør objekter innenfor en klynge være like; Objekter fra forskjellige klynger bør være forskjellige. Beslutninger på forhånd om antall klynger å generere, kriteriene for måling av "likhet" og representasjon av objekter vil påvirke merkingen produsert av klyngalgoritmer.
For eksempel, en klyngemotor som er gitt en liste over nyhetsartikler, bør kunne definere klynger av artikler i samlingen som diskuterer lignende emner.
Anta at et sett med artikler om Canada, Frankrike, Kina, skogbruk, olje og vin skulle bli klynget. Hvis maksimalt antall klynger ble satt til 2, kan algoritmen produsere kategorier som "regioner" og "næringer". "Justeringer av antall klynger vil produsere forskjellige kategoriseringer; for eksempel kan valg for 3 klynger resultere i parvise grupperinger av nasjonalt industrikategorier.
Klassifiseringer
Klassifikasjonsalgoritmer benytter seg av menneskemerkede treningsdatasett, der kategoriseringen og klassifiseringen av alle fremtidige innganger styres av disse kjente etikettene. Disse klassifiseringene implementerer det som kalles overvåket læring i maskinlæringsverdenen.
Klassifiseringsregler - fastsatt av opplæringsdataene, som tidligere er merket av domeneeksperter - blir deretter brukt mot rå, ubehandlet data for å bestemme riktig merking.
Disse teknikkene brukes ofte av e-posttjenester som forsøker å klassifisere spam-e-post før de noensinne krysser innboksen din. Spesielt, gitt en e-post som inneholder et sett med setninger som er kjent for å ofte forekomme sammen i en bestemt klasse spam-mail - levert fra en adresse som tilhører et kjent botnet - klassifikasjonsalgoritmen din er i stand til å identifisere e-posten på en pålitelig måte.
I tillegg til det vell av statistiske algoritmer som Mahout gir innfødt, er en støtte User Defined Algorithms (UDA) -modul også tilgjengelig. Brukere kan overstyre eksisterende algoritmer eller implementere sine egne gjennom UDA-modulen. Denne robuste tilpasningen tillater ytelse tuning av native Mahout-algoritmer og fleksibilitet når det gjelder å takle unike statistiske analyseutfordringer.
Hvis Mahout kan ses som en statistisk analyseutvidelse til Hadoop, bør UDA ses som en utvidelse til Mahouts statistiske evner.
Tradisjonelle statistiske analyseprogrammer (som SAS, SPSS og R) kommer med kraftige verktøy for å generere arbeidsflyter. Disse applikasjonene bruker intuitive grafiske brukergrensesnitt som muliggjør bedre datavisualisering. Mahout-skript følger et lignende mønster som disse andre verktøyene for å generere statistiske analyse arbeidsflyter.
I løpet av det endelige datautforsknings- og visualiseringstrinnet kan brukere eksportere til menneskelige lesbare formater (JSON, CSV) eller dra nytte av visualiseringsverktøy som Tableau Desktop.
Mahouts arkitektur sitter på toppen av Hadoop-plattformen. Hadoop unburdens programmereren ved å skille oppgaven med å programmere MapReduce-jobber fra den komplekse bokføringen som trengs for å administrere parallellitet over distribuerte filsystemer. I samme ånd gir Mahout programmerervennlige abstraksjoner av komplekse statistiske algoritmer, klar for implementering med Hadoop-rammen.
