I maskinlæring og mønstergenkendelse er en funktion en individuel målbar egenskab eller karakteristik af et observeret fænomen [1] . Udvælgelsen af informative, karakteristiske og uafhængige funktioner er et kritisk skridt for effektive algoritmer i mønstergenkendelse , klassificering og regression . Funktioner er normalt numeriske, men strukturelle funktioner såsom strenge og grafer bruges i syntaktisk mønstergenkendelse . Begrebet "egenskab" er forbundet med forklarende variabler , der bruges i statistiskteknikker såsom lineær regression .
Sættet af numeriske træk er bekvemt beskrevet af en trækvektor. Et eksempel på at opnå en klassifikation med to funktioner fra en egenskabsvektor (associeret med en perceptron ) består i at beregne punktproduktet af egenskabsvektoren og vægtvektoren, sammenligne resultatet med en tærskelværdi og bestemme hvilken klasse objektet tilhører baseret på den sammenligning.
Klassifikationsalgoritmer, der er afhængige af funktionsvektorer, omfatter klassificering af nærmeste nabo , neurale netværk og statistiske teknikker såsom den Bayesianske tilgang .
I karaktergenkendelse kan funktioner omfatte histogrammer , herunder antallet af sorte prikker langs vandrette og lodrette retninger, antallet af indre hulrum, stregbetoning og mange andre.
I talegenkendelse kan funktioner til fonemgenkendelse omfatte støjtal, længde af lyde, relativ lydstyrke, filtertilpasning og mere.
I spamdetektionsalgoritmer kan funktioner omfatte tilstedeværelsen eller fraværet af nogle e-mail-headere, e-mail-struktur, sprog, hyppighed af visse udtryk, grammatisk korrekthed af tekst.
I computersyn er der et stort antal mulige funktioner , såsom kanter og objekter.
I mønstergenkendelse og maskinlæring er en funktionsvektor en n-dimensionel vektor af numeriske funktioner, der repræsenterer et eller andet objekt. Mange algoritmer i maskinlæring kræver en numerisk repræsentation af objekter, da sådanne repræsentationer letter behandling og statistisk analyse. Når du arbejder med billeder, kan en funktion svare til billedpunkter (pixels), mens funktioner til tekst kan svare til hyppigheden af brug af termer i teksten. Funktionsvektorer svarer til vektorer af forklarende variabler , der bruges i statistiske procedurer såsom lineær regression . Featurevektorer kombineres ofte med vægte ved hjælp af prikproduktet til at konstruere en lineær prædiktorfunktion , som bruges til at bestemme scoren for forudsigelsen.
Det vektorrum, der er knyttet til disse vektorer, kaldes ofte featurerummet . Adskillige dimensionsreduktionsteknikker kan bruges til at reducere dimensionen af featurerummet .
Funktioner på højere niveau kan udledes fra allerede kendte funktioner og tilføjes til egenskabsvektoren. For eksempel til undersøgelse af sygdomme er attributten "alder" nyttig, som kan defineres som alder = "dødsår" minus "fødselsår" . Denne proces omtales som feature building [2] [3] . Funktionskonstruktion er anvendelsen af et sæt konstruktionsoperatører på et sæt eksisterende funktioner, hvilket resulterer i konstruktionen af nye funktioner. Eksempler på sådanne konstruktionsoperatorer omfatter lighedstest {=, ≠}, aritmetiske operatorer {+,−,×, /}, matrixoperatorer {max(S), min(S), gennemsnit(S)} og mere komplekse operatorer, for eksempel count(S,C) [4] , som tæller antallet af træk i trækvektoren S, der opfylder en betingelse C, eller f.eks. afstanden til en anden genkendelsesklasse generaliseret af en enhed. Feature building betragtes som et stærkt værktøj til både at øge nøjagtigheden og forbedre strukturforståelsen, især i højdimensionelle problemer [5] . Ansøgninger omfatter studiet af sygdom og anerkendelse af følelser i samtale [6] .
Det indledende sæt af råfunktioner kan være overflødigt og for stort til at behandle. Et indledende trin i mange maskinlærings- og mønstergenkendelsesapplikationer består således af at vælge en delmængde af funktioner eller konstruere et nyt reduceret funktionssæt for at give læring for at forbedre generaliteten og fortolkningen.
Isolation eller valg af funktioner er en kombination af kunst og videnskab. Systemer til at gøre dette er kendt som feature engineering-systemer . Udtræk og udvælgelse af funktioner kræver eksperimentering med mange muligheder, såvel som evnen til at kombinere automatiserede teknikker med intuition og viden fra en snæver specialist på dette område. Automatisering af denne proces kaldes feature learning , hvor maskinen ikke kun bruger funktionerne til at lære sig selv, men også lærer nye funktioner.