Datautvinning

Från Wikipedia
(Omdirigerad från Informationsutvinning)
Hoppa till: navigering, sök
Beslutsträdsinlärning är ett exempel på en datautvinningsalgoritm som skapar prediktionsmodeller, i detta exempel för överlevnaden av en passagerare på Titanic. ("sibsp" är antalet makar och syskon som personen har ombord). Siffrorna under trädets löv visar sannolikheten för överlevnad respektive procent av observationerna inom respektive löv.

Datautvinning,[1] informationsutvinning[2], eller data mining, betecknar verktyg för att söka efter mönster, samband och trender i stora datamängder.[2][3] Verktygen använder statistiska beräkningsmetoder kombinerat med beräkningseffektiva algoritmer för maskininlärning och mönsterigenkänning hämtade från artificiell intelligens.

Tekniker för datautvinning tillämpas inom områden som bioinformatik, affärsunderrättelser (business intelligence), beslutsstödsystem, webbanvändningsanalys (web mining), text mining, maskinöversättning, automatisk sammanfattning av texter, IT-forensik och analys av sensordata.

Det bredare begreppet big data åsyftar även tekniker för insamling av data från flera stora databaser och datafiler till ett sökbart informationslager (data warehousing), vilket ofta föregår men inte ska sammanblandas med datautvinning.

Data mining är ett trendord som åsyftar tidigare kända tekniker, och som har fått uppmärksamhet på senare år därför att dagens växande datamängder med ett stort antal variabler ofta är svåröverblickbara för människor. Dessutom kan klassiska metoder för dataanalys, exempelvis multivariat statistisk analys, ge orimligt stor beräkningskomplexitet och fungerar därför inte vid storskalig analys.

Syftet med verktyg för datautvinning är att underlätta sökandet efter strukturer bland ett stort antal variabler och leda till upptäckt av tidigare okända relationer, och på så sätt extrahera begriplig och användbar information ur rådata.

Forskningsmetod[redigera | redigera wikitext]

Tredimensionellt sambandsdiagram där värdet av tre variabler indikeras med datapunktens position i rummet, och en fjärde variabel med dess färg.

Användaren av verktyg för datautvinning väljer bland en uppsättning algoritmer och diagram som lämpar sig för olika typer av analys och problemställningar, och för olika typer av data. Användaren testar och jämför vilken algoritm och vilka parameterinställningar som ger bäst reliabilitet, tydligast diagram eller rimlig beräkningstid för det aktuella problemet.

Den datamängd som analyseras är vanligen i form av en tabell, där varje rad eller post betraktas som en datapunkt i ett flerdimensionellt rum, och varje kolumn är en variabel eller ett attribut. Varje variabel har en specifik statistisk mätskala (motsvarande datatyper inom datavetenskap) och en specifik roll, exempelvis som målvariabel, det vill säga den variabel vi vill träna självlärande algoritmer att prediktera.

Explorativ dataanalys[redigera | redigera wikitext]

Arbetssättet vid datautvinning baseras på explorativ dataanalys (EDA), som innebär att man omväxlande kombinerar verktygets automatiserade beräkningar med visualisering och manuell observation. Syftet med EDA är att hjälpa forskaren att upptäcka nya okända relationer som kan åskådliggöras med tydliga diagram. Syftet är också att bedöma vilka samband som kan vara intressanta och att identifiera vilka variabler och datapunkter som förväntas ha betydelse vid prediktering av en målvariabel, och vilka som kan elimineras för att reducera beräkningstiden.

Explorativ dataanalys skiljer sig från konfirmativ dataanalys (CDA) som är det traditionella arbetssättet vid kvantitativ forskning. Vid CDA formulerar man hypoteser och bygger modeller innan man påbörjar insamling och analys av experimentella data, och dataanalysen används enbart för att verifieriera prediktioner genom systematisk hypotesprövning. EDA är däremot en hypotesgenererande och induktiv metod, som ger upphov till datadrivna hypoteser. Vid datautvinning arbetar man dessutom ofta heuristiskt genom att utnyttja problemspecifik kunskap om vilken data som förväntas ha betydelse för resultatet och vilka typer av relationer som är intressanta och användbara att identifiera.

Risk för förhastade slutsatser[redigera | redigera wikitext]

Kritiker menar att vid datautvinning och annan explorativ dataanalys riskerar man att dra förhastade slutsatser eftersom man kringgår inledande formulering och testning av hypoteser. Tillfälliga slumpmässiga mönster och relationer finns alltid mellan ett stort antal variabler, och om man letar förutsättningslöst bland alla upptänkliga samband riskerar man att identifiera slumpmässiga relationer. Vid hypotestestning brukar man rekommendera en signifikansnivån (ett p-värde) på högst 0,05, vilket innebär att det är mindre än en chans på tjugo att det som ser ut som ett samband i själva verket bara är ren slump. Denna tumregel förutsätter emellertid att man har ett fåtal tydliga hypoteser från början, medan signifikansnivån bör vara betydligt lägre vid explorativ dataanalys.

Liksom vid annan multivariat dataanalys riskerar man confounding (okända snedvridande faktorer som är korrelerade med indata och målvariabel och därför ger felaktigt intryck av samband), eller att predikteringar görs långt in i framtiden baserat på gamla data som inte är ett representantivt urval för framtida data.

Resultatet av datamodellering implementeras ofta i form av policier, exempelvis för vilken produkt som ska marknadsföras för vilken kund, eller i form av verktyg för att prediktera variabler, exempelvis marknadspris. Vid införandet av sådana riskerar man att förändra marknadens eller systemets beteende, och då är inte prediktionsmodellerna tillämpliga längre. Om exempelvis kunder på en auktionssajt utnyttjar en web mining-tjänst som predikterar auktionspriset på en vara baserat på hur många som klickar på varans webblänk, finns en risk att intresserade köpare undviker att klicka på varans webbsida för att inte höja priset, och att säljare försöker höja priset genom att klicka på varans webbsida.

Processdiagram som visar relationen mellan de olika faserna i CRISP-DM

Standardiserad arbetsprocess[redigera | redigera wikitext]

För att undvika ovanstående problem bör den explorativa datauvinningen följas av en valideringsfas, då generaliserbarheten av de identifierade sambanden utvärderas på andra datamängder (så kallade testdata). Under utvärderingsfasen beräknas olika prestandamått för mönstrens och predikteringarnas reliabilitet. Generaliserbarheten av de samband man kommer fram till måste också rimlighetsbedömas baserat på begripliga förklaringsmodeller, vilket förutsätter att man först utvecklar en grundförståelse för problemområdet och variablernas innebörd. Vissa metoder inom datautvinning kan ge upphov till prediktionsmodeller som har ett förklaringsvärde som kan rimlighetsbedömas, exempelvis beslutsträd, medan andra modeller, exempelvis vikterna i neurala nätverk, är svårtolkade.

Standardmodeller för arbetsprocessen vid datautvinning har därför formulerats. Den så kallade CRISP-DM-modellen är idag den vanligaste metodiken som tillämpas för datautvinning:[4][5]

  1. Uppgiftsförståelse (business understanding)
  2. Dataförståelse
  3. Datapreparering
  4. Modellering
  5. Validering
  6. Införande i verksamheten

Metoder och algoritmer[redigera | redigera wikitext]

Klusteranalys med K-means-algoritmen grupperar datapunkter i ett givet antal kluster (i detta fall tre, representerade av tre färger). Algoritmen maximerar avståndet mellan klustren, som förutsätts vara lika stora (vilket inte är adekvat i detta exempel) och vara geometriskt konvexa.
Tränad klassificering med stödvektormaskin (SVM), som avgränsar klasserna med hyperplan för minsta möjliga fel och största möjliga avstånd mellan hyperplanet och närmaste datapunkt.
Ett artificiellt neuralt nätverk kan tränas att prediktera och klassificera.
Ickelinjär regression[förtydliga] med polynom av olika ordning.
En genetisk algoritm genererar slumpvisa kombinationer av parametervärden, och korsfertiliserar parvis de kombinationer ("föräldrar") som ger bäst prestanda så att nya potentiellt goda kombinationer ("barn") uppstår. Efter några generationer erhålles en lösning som sannolikt är nära optimum.

Datatutvinning innefattar en rad metoder och algoritmer för olika typer av dataanalys, som kan grupperas enligt följande.

Datavisualisering[redigera | redigera wikitext]

Datapreparering och datarensning[redigera | redigera wikitext]

  • Urval av variabler
  • Identifiering och borttagning av avvikande värden (anomalier)
  • Hantering av saknade värden, exempelvis genom estimering
  • Normalisering
  • Klassificering av numeriska variabler och ordnade kategorier i intervall
  • Datakonverting, exempelvis av polynominal variabel (med fler än två icke-ordnade kategorier) till flera binominala variabler (med två värden)

Icke-tränade självlärande algoritmer[redigera | redigera wikitext]

Icke-tränade (non-supervised) algoritmer saknar målvariabel. Syftet är att ge förståelse för hur mindre grupper av variabler förhåller sig till varandra. Algoritmerna används för att upptäcka lokala mönster och relationer mellan en delmängd av variablerna, men som inte är tillämpliga på datamängden i sin helhet. Algoritmerna används bland annat under dataförståelsefasen i ovan nämnda arbetsprocess för att identifiera vilka variabler som sannolikt saknar betydelse för den variabel man vill prediktera. De kan också användas för att extrahera dold information, exempelvis kategorier och kluster av datapunkter, som kan ha betydelse för predikteringen. Exempel på typer av algoritmer:

  • klusteranalys, för att gruppera liknande poster i en tabell till ett kluster eller en kategori, exempelvis marknadssegment. Syftet kan vara att identifiera vilka variabler som har betydelse för marknadssegmenteringen. Exempel:
    • k means
  • Associationsregelanalys (mönsterigenkänning), exempelvis för market basket analysis (att upptäcka att en kund som handlar vara A och B med stor sannolikhet och låg statistisk signifikansnivå handlar vara C), eller för IT-forensik (att upptäcka att en person som brukar kommunicera med A och B med stor sannolikhet och låg signifikansnivå också kommunicerar med person C). Exempel:
    • a priorialgoritmen
    • FP-Growth-algoritmen
  • korrelationsanalys
  • subjektbaserad igenkänning

Tränade algoritmer[redigera | redigera wikitext]

Syftet med tränade (supervised) självlärande algoritmer är att ge upphov till prediktionsmodeller som kan förutsäga värdet av en målvariabel, med utgångspunkt i att målvariabeln är känd för träningsdata. Detta kan användas för klassificering, utifrån att träningsdata redan klassificerats (försetts med en känd målvariabel), exempelvis en kategori, ett rekommenderat beslut eller en diagnos. Tränade algoritmer kan också användas för skattning, interpolation, extrapolation och trendanalys av en numerisk målvariabel. Modellen utgör en global beskrivning av relationen mellan målvariablen och summan av hela datamängden.

Exempel på tränade algoritmer:

Verifiering och validering[redigera | redigera wikitext]

Vid träning av självlärande algoritmer används träningsdata som måste vara ett statistiskt urval av de data som det ska tillämpas på, och som innehåller en målvariabel med givna värden. Ett prestandamått beräknas genom att jämföra målvariabeln med algoritmens estimering av målvariabeln. Verktygen undviker överanpassning (eng over-fitting), det vill säga att modellen får för hög komplexitet och hög prestanda för träningsdata men låg reliabilitet för andra data. Detta hanteras med split-half-metoden genom att dela upp den datamängd som har känd målvariabel i träningsdata och testdata, och efter varje träningsiteration applicera den erhållna modellen på testdata. Träningen avbryts när modellen inte ger ökad prestanda för testdata. Den modell som erhålles efter slutförd träning tillämpas därefter på nya data, som saknar känd målvariabel. Om mängden tränings- och testdata är begränsat kan man upprepa förfarandet för flera olika uppdelningar i testdata och träningsdata. Därmed erhålles flera prediktionsmodeller, som kan kombineras exempelvis genom majoritetsröstning av kategorisering eller medelvärdesbildning av estimering.

Exempel på metoder och prestandamått:

Meta-analys[redigera | redigera wikitext]

Meta-analys är metoder för att välja lämpligast algoritm och optimera algoritmens parameterinställningar för respektive fall, och för att utveckla strategier för att förbättra systemets lärande som är tillämpliga på ett stort antal fall. Exempel på optimeringsalgoritm:

Programvara[redigera | redigera wikitext]

Vanlig programvara för datautvinning är:

  • R (statistikprogram som användaren programmerar med ett skriptspråk - öppen källkod)
  • Rapidminer (baseras på grafisk programmering - öppen källkod fram till version 5.3)
  • WEKA (programbibliotek i Java som också har ett grafiskt användargränssnitt)
  • SPSS (kommersiellt statistikprogram)

Tillämpning i Sverige[redigera | redigera wikitext]

FRAs användning av datautvinning[redigera | redigera wikitext]

FRA använder datautvinning i sin bearbetning av trafikdata, benämnt som "trafikbearbetning" och fastställande av "trafikmönster" i förarbetena till FRA-lagen,[6] och förarbetena till FRA:s PUL.[7][8]

Se även[redigera | redigera wikitext]


Källor[redigera | redigera wikitext]

Noter[redigera | redigera wikitext]

  1. ^ Senska datatermgruppen rekommenderar begreppet datautvinning
  2. ^ [a b] Uppsala Universitet: Data mining (Informationsutvinning)
  3. ^ Gartner group
  4. ^ en:Cross Industry Standard Process for Data Mining (CRISP-DM)
  5. ^ Gregory Piatetsky-Shapiro (2007) KDnuggets Methodology Poll
  6. ^ ”En anpassad försvarsunderrättelseverksamhet - Proposition 2006/07:63” (Noia 64 mimetypes pdf.png PDF). Försvarsdepartementet, sidan 22. 8 mars 2007. http://www.regeringen.se/content/1/c6/07/83/67/2ee1ba0a.pdf. 
  7. ^ Lag om behandling av personuppgifter i Försvarets radioanstalts försvarsunderrättelse- och utvecklingsverksamhet (2007:259)
  8. ^ ”Personuppgiftsbehandling hos Försvarsmakten och Försvarets radioanstalt - Proposition 2006/07:46” (Noia 64 mimetypes pdf.png PDF). Försvarsdepartementet, sidan 29. 8 mars 2007. http://www.regeringen.se/content/1/c6/07/73/05/7ac2933f.pdf.