« Mats Anderssons matematiska gåta | Main | Recension av Malcolm Gladwell "The Tipping Point" »

december 05, 2003

Recension av Jiawei Han & Micheline Kamber: 'Data Mining - Concepts and Techniques'

Denna bok läste jag för ett tag sedan, men kom på att det vore roligt att skriva en recension, speciellt eftersom jag tyckte om boken.

Boken Data Mining - Concepts and Techniques (Amazonlänk) av Jiawei Han och Micheline Kamber är, till skillnad från många andra introducerande böcker om Data Mining, skriven till stor del för en rätt speciell teknisk målgrupp: utvecklare och forskare i databasindustrin. Detta innebär inte att man måste vara databaskonstruktör för att förstå boken, däremot bör man inte banga för begrepp som "komplexitet", "curse of dimensionality", "OLAP" eller "full scan". Det är få rena matematiska formler eller resonemang i boken, däremot används en hel del pseudokod för att beskriva algoritmerna.

Boken är skriven för att vara "self contained" genom att kapitlen ska gå att läsa oberoende av andra. En konsekvens av detta är att vissa begrepp förklaras flera gånger, vilket troligen ska ses som en fördel. Det blir trots detta en del korsreferenser för de viktiga begreppen (såsom "OLAP", "decision tree", "Apriori" etc), så min personliga rekommendation är att börja från början, och i alla fall skumma igenom det som inte känns så viktigt. Trots bokens cirka 500 sidor huvudtext (det finns några appendix samt en omfattande litteraturlista) går det rätt snabbt att läsa dem.

De första kapitlen (2 - 4) handlar om olika typer av förutsättningar för bra data mining: OLAP, data warehouse och förprocessering ("tvättning") av data. När jag först läste kapitlet om OLAP blev jag lite förvånad. Även om det är bra skrivet, så förstod jag inte riktigt poängen med det, men efter hand insåg jag att det beskriver en typ av beslutsstödssystem som är mer vanligt förekommande än data mining, och som i någon mån kan ses som en "base level" för den typ av kunskap man vill åstadkomma med data mining. Det är också en mjukstart som introducerar olika begrepp som sedan används. Kapitlen om data warehouse och datatvättning är viktiga, eftersom dessa två områden oftast är nödvändiga för lyckade projekt med data mining av mycket stora dataanhopningar.

Det är en herrans massa tekniker (algoritmer) som gås igenom i boken. De områden som behandlas är:
- associationsregler, t.ex. Apriori och dess olika varianter.
- klassifikation och prediktion, beslutsträd, neurala nätverk, Bayesiaska klassifikatörer etc
- klusteranalys, många olika typer av klustertekniker presenteras
- komplexa datatyper (t.ex. spatial data, tidsserier, text samt data på och via webben)

Varje område har ett eget kapitel och beskriver många algoritmer samt deras varianter och utvidgningar. Många tekniker kompletteras med små exempel på hur algoritmen fungerar. Man använder i stort sett samma data(bas) genomgående för detta, vilket är bra. Även om databasen förklaras i början av boken skulle det vara trevligt om den fanns online så att man själv kunde leka lite.

Jag ger extrapoäng för att man beskriver teknikernas fördelar och nackdelar, t.ex. om den är skalbar (dvs passar för data mining av mycket stora databaser) samt för vilka områden det behövs mer forskning.

Det är bra förklaringar av teknikerna. För vissa tekniker/algoritmer, t.ex. artificiella neurala nätverk, förklaras de kortfattat och hänvisas sedan till annan litteratur. Troligen är det ett klokt beslut för att boken inte ska svälla till en ohanterlig (och väldigt dyr) klump. Jag kunde dock inte hitta något ställe där författarna uttryckligen berättar om sina urvalskriterier om vilka eller hur mycket de beskriver om metoderna.

En intressant sak är att man diskuterar begreppshierarkier, dvs begrepp på olika nivåer, t.ex. begreppen gata, stad, landskap, land. På många olika ställen förklaras hur en teknik ska användas (eller ändras) för att hantera denna typ av hierarki.

Bokens avslutas med diskussioner om trender, framtiden och - framförallt - möjliga sociala effekter av data mining. Man pratar även om hur man ska göra för att sälja in data mining till fler än de existerande användarna.

I den utvecklingsmodell med aktörerna:
- innovators
- early adopters
CHASM ("avgrund")
- early majority
- late majority
- laggards

befinner sig data mining enligt författarna i avgrunds-området, där uppfinnare, tekniker med flera försöker att sälja in en produkt/ett koncept till en grupp 'early majorities'. Denna grupp är troligen inte är så mottagliga för den typ av säljargument som hittills framförts, så något måste göras. Det är troligen bara tekniktöntar som jag själv som fascineras av (eller ens bryr sig om) algoritmerna bakom Amazon rekommenderarsystem eller googles sätt att ranka sajter. Däremot är det "allas angelägenhet" att (dvs inte hur) de fungerar på ett bra sätt. Även om det finns böcker som förklarar data mining utifrån sälj/marknadsperspektiv (t.ex. de skrivna av Michael Berry och Gordon Linoff) uppfattar jag att det fortfarande är teknikdominerat säljprat som dominerar.

Som en lösning föreslås "invisible data mining", som innebär att användarna inte ens ska märka eller veta om att det finns en avancerad teknik (data mining) "under huven". Min tolkning av detta är att man helt enkelt försöker dölja begreppet "data mining", som numera samtidigt representerar en hype och har negativa konnotationer (samkörningar, intrång i den personliga integriteten). I stället för att sälja med hjälp av en teknik bör man alltså i stället presentera de resultat man kan få fram. Det låter som ett vettigt förslag.

(I boken The Tipping Point, av Malcolm Gladwell, beskrivs andra och generella sätt hur man ska komma förbi avgrunden. Se t.ex. Recension av Malcolm Gladwell "The Tipping Point".)

Varje kapitel avslutas med sammanfattning, övningar samt en genomgång av relevant litteratur; huvudtexten är nästan helt fri från referenser. (Det är när jag sitter och läser sådana referensidor som jag önskar att det fanns böcker som man kan surfa med för att läsa de många intressanta papers som diskuteras. Det räcker faktiskt inte med datorer som man kan använda för att läsa elektroniska dokument eller böcker.)

En liten stilistisk småsak som jag irriterade mig på i boken är att ett avsnitt börjar oftast med en fråga (i kursiv stil), varpå den genast besvaras kortfattat och svaret använder begrepp som först definieras i nästa stycke. Man kan se det som en form av introduktion av begreppet, men jag blev lite störd av det. Efter hand lärde jag mig dock att tycka om detta grepp eftersom det utgjorde ett litet avbräck (andningspaus) i de tekniska diskussionerna.

Slutomdöme
Jag tror inte jag skulle rekommendera "Data Mining - Concepts and Techniques" som första bok i data mining. Däremot som andra eller tredje bok och nog endast för de som vill antingen utveckla sådana system eller är välmotiverade att gå igenom ganska detaljerade algoritmer. Själv tyckte jag mycket om boken, om inte annat för att den gav en syn på data mining som är ganska ovanlig jämfört med övriga böcker jag läst. Boken är välskriven och trots tonvikten på tekniska förklaringar var den lättläst. Visserligen var det några småsaker (av ren stilitisk natur) som jag retade mig på/inte förstod poängen med, men de var snabbt förlåtna.


Vidare referenser
Bokens egen sajt innehåller errata, Powerpointfiler, bilder som finns i boken samt några referenser till kursupplägg.

Jiawei Hans publikationer.
Här finns en kurs där man använder boken. Det finns också föreläsningar i PDF-format, samt några av de introducerande papers som refereras i boken.

Mer generellt om data mining:
KDnuggets är en av de bästa sajterna för att hitta resurser inom data mining.


Min egen Data Mining, Machine Learning etc innehåller bland annat några andra av mina recensioner av böcker inom data mining-området. Se även Data Mining - En liten presentation med vidhäftande referenser om några av de system och böcker som jag själv har använt/läst.

Posted by hakank at december 5, 2003 02:50 EM Posted to Machine learning/data mining