MỤC LỤC LỜI NÓI ĐẦU Sù ph¸t triÓn nhanh chãng cña c¸c øng dông c«ng nghÖ th«ng tin (CNTT) vµ Internet vµo nhiÒu lÜnh vùc ®êi sèng x· héi: qu¶n lý kinh tÕ, khoa häc kü thuËt ®· t¹o ra nhiÒu c¬ së d÷ liÖu (CSDL) khæng lå VÝ dô, CSDL cña siªu thÞ Walmart (Mü) chøa h¬n 20 triÖu giao t¸c; CSDL nh©n khÈu cña TPHCM víi h¬n 5 triÖu nh©n khÈu Sù phong phó cña d÷ liÖu, cïng víi viÖc thiÕu v¾ng mét c«ng cô ph©n tÝch d÷ liÖu m¹nh ®· ®îc miªu t¶ nh lµ mét hoµn c¶nh giµu d÷ liÖu nhng nghÌo th«ng tin HËu qu¶ lµ, c¸c quyÕt ®Þnh quan träng thêng ®îc ®a ra kh«ng dùa trªn d÷ liÖu giµu th«ng tin ®îc lu tr÷ trong c¬ së d÷ liÖu mµ dùa trªn c¶m tÝnh c¶ nhµ ®a ra quyÕt ®Þnh, ®¬n gi¶n lµ v× ngêi ®a ra quyÕt ®Þnh kh«ng cã c«ng cô ®Ó triÕt ra tri thøc cã gi¸ trÞ ®îc nhóng trong lîng lín d÷ liÖu Theo ®¸nh gi¸ cña IBM, c¸c ph¬ng ph¸p khai ph¸ th«ng tin truyÒn thèng chØ thu ®îc kho¶ng 80% th«ng tin tõ CSDL, phÇn cßn l¹i bao gåm c¸c th«ng tin mang tÝnh kh¸i qu¸t, th«ng tin cã tÝnh qui luËt vÉn cßn tiÒm Èn trong CSDL Lîng th«ng tin nµy tuy nhá nhng lµ nh÷ng th«ng tin cèt lâi vµ cÇn thiÕt cho qu¸ tr×nh ra quyÕt ®Þnh Tõ ®ã, SQL Server 2005 ®· ra ®êi víi dÞch vô ph©n tÝch d÷ liÖu Analysis Service tÝch hîp s½n c¸c kü thuËt khai ph¸ d÷ liÖu (KPDL) ®îc cËp nhËt vµ n¨ng cÊp tõ phiªn b¶n SQL Server 2000 Gióp cho viÖc KPDL trë -1- nªn dÔ dµng vµ hiÖu qu¶ h¬n, ®ã lµ nÒn t¶ng ®Ó x©y dùng c¸c øng dông th¬ng m¹i th«ng minh §Ó chóng ta hiÓu râ h¬n vÒ vÊn ®Ò nµy, t«i sÏ tr×nh bµy chi tiÕt trong néi dung ®Ò tµi cña m×nh: T×m hiÓu c¸c gi¶i thuËt khai ph¸ d÷ liÖu trªn SQL Server 2005 vµ øng dông Do ®©y lµ lÜnh vùc míi nªn cßn nhiÒu h¹n chÕ vÒ tµi liÖu, kiÕn thøc nªn kh«ng tr¸nh khái nh÷ng thiÕu sãt RÊt mong ®îc sù ®ãng gãp ý kiÕn cña c¸c thÇy c« gi¸o vµ c¸c b¹n Vµ t«i xin ch©n thµnh c¶m ¬n thÇy gi¸o TS ®· gióp ®ì t«i hoµn thµnh néi dung nµy -2- Ch¬ng I Giíi thiÖu 1 Khai ph¸ d÷ liÖu Khai ph¸ d÷ liÖu (Data Mining) lµ tiÕn tr×nh kh¸m ph¸ c¸c tri thøc tiÒm Èn trong c¸c c¬ së d÷ liÖu Cô thÓ h¬n ®ã lµ tiÕn tr×nh trÝch läc, s¶n sinh nh÷ng tri thøc hoÆc nh÷ng mÉu tiÒm Èn, cha biÕt nhng h÷u Ých tõ c¸c c¬ së d÷ liÖu lín Data mining lµ qu¸ tr×nh t×m kiÕm c¸c mÉu míi, nh÷ng th«ng tin tiÒm Èn mang tÝnh dù ®o¸n trong c¸c khèi d÷ liÖu lín Nh÷ng c«ng cô data mining cã thÓ ph¸t hiÖn nh÷ng xu híng trong t¬ng lai, c¸c tri thøc mµ data mining mang l¹i cho c¸c doanh nghiÖp cã thÓ ra c¸c quyÕt ®Þnh kÞp thêi vµ tr¶ lêi nh÷ng c©u hái trong lÜnh vùc kinh doanh mµ tríc ®©y tèn nhiÒu thêi gian ®Ó xö lý Víi u ®iÓm trªn, Data mining ®· chøng tá ®îc tÝnh h÷u dông cña nã trong m«i trêng kinh doanh ®Çy tÝnh c¹nh tranh ngµy nay vµ ®îc øng dông réng r·i trong c¸c lÜnh vùc th¬ng m¹i, tµi chÝnh, ®iÒu trÞ y häc, gi¸o dôc, viÔn th«ng v.v KPDL lµ tiÕn tr×nh kh¸i qu¸t c¸c sù kiÖn rêi r¹c trong d÷ liÖu thµnh c¸c tri thøc mang tÝnh kh¸i qu¸t, tÝnh qui luËt hç trù tÝch cùc cho c¸c tiÕn tr×nh ra quyÕt ®Þnh Nguån d÷ liÖu phôc vô cho KPDL cã thÓ lµ c¸c CSDL lín hay c¸c kho d÷ liÖu cã hay kh«ng cã cÊu tróc Nãi nh vËy kh«ng cã nghÜa lµ KPDL kh«ng thÓ thùc hiÖn ë c¸c CSDL nhá, KPDL chØ thùc sù ph¸t huy t¸c dông trªn c¸c CSDL lín, n¬i mµ kh¶ n¨ng diÔn dÞch còng nh c¸c kü thuËt truyÒn thèng kh«ng thÓ thùc hiÖn næi hoÆc nÕu thùc hiÖn ®îc th× hiÖu qu¶ kh«ng cao Nh×n chung, c¸c t¸c vô KPDL cã thÓ ®îc ph©n thµnh hai lo¹i: miªu t¶ vµ dù b¸o C¸c t¸c vô khai ph¸ miªu t¶ th× m« t¶ c¸c ®Æc tÝnh chung cña d÷ liÖu trong CSDL, c¸c t¸c vô khai ph¸ dù b¸o thùc hiÖn viÖc suy luËn trªn d÷ liÖu hiÖn thêi ®Ó ®a ra c¸c dù b¸o 2 C¸c bµi to¸n th«ng dông trong khai ph¸ d÷ liÖu Trong KPDL, c¸c bµi to¸n cã thÓ ph©n thµnh bèn lo¹i chÝnh Bµi to¸n th«ng dông nhÊt trong KPDL lµ Ph©n líp (Classification) Víi mét tËp c¸c d÷ liÖu huÊn luyÖn cho tríc vµ sù huÊn luyÖn cña con ng- -3- êi, c¸c gi¶i thuËt ph©n lo¹i sÏ häc ra bé ph©n lo¹i (classifier) dïng ®Ó ph©n c¸c d÷ liÖu míi vµo mét trong nh÷ng líp (cßn gäi lµ lo¹i) ®· ®îc x¸c ®Þnh tríc NhËn d¹ng còng lµ mét bµi to¸n thuéc kiÓu Ph©n lo¹i Víi m« h×nh häc t¬ng tù nh bµi to¸n Ph©n lo¹i, líp bµi to¸n Dù ®o¸n (Prediction) sÏ häc ra c¸c bé dù ®o¸n Khi cã d÷ liÖu míi ®Õn, bé dù ®o¸n sÏ dùa trªn th«ng tin ®ang cã ®Ó ®a ra mét gi¸ trÞ sè häc cho hµm cÇn dù ®o¸n Bµi to¸n tiªu biÓu trong nhãm nµy lµ dù ®o¸n gi¸ s¶n phÈm ®Ó lËp kÕ ho¹ch trong kinh doanh C¸c gi¶i thuËt T×m luËt liªn kÕt (Association Rule) t×m kiÕm c¸c mèi liªn kÕt gi÷a c¸c phÇn tö d÷ liÖu, vÝ dô nh nhãm c¸c mãn hµng thêng ®îc mua kÌm víi nhau trong siªu thÞ C¸c kü thuËt Ph©n côm (Clustering) sÏ nhãm c¸c ®èi tîng d÷ liÖu cã tÝnh chÊt gièng nhau vµo cïng mét nhãm Cã nhiÒu c¸ch tiÕp cËn víi nh÷ng môc tiªu kh¸c nhau trong ph©n lo¹i 3 øng dông cña khai ph¸ d÷ liÖu KPDL ®îc øng dông réng r·i trong nhiÒu lÜnh vùc nh: A Ng©n hµng - X©y dùng øng dông dù b¸o rñi ro tÝn dông - T×m kiÕm tri thøc, qui luËt cña thÞ trêng chøng kho¸n vµ ®Çu t bÊt ®éng s¶n - Ph¸t hiÖn dïng thÎ tÝn dông gi¶ trªn m¹ng vµ lµ c«ng cô h÷u Ých cho dÞch vô qu¶n lý rñi ro cho th¬ng m¹i ®iÖn tö B Th¬ng m¹i ®iÖn tö: - X©y dùng c«ng cô t×m hiÓu, ®Þnh híng thóc ®Èy, giao tiÕp víi kh¸ch hµng - Ph©n tÝch viÖc mua s¾m trªn m¹ng vµ cho biÕt th«ng tin tiÕp thÞ phï hîp víi lo¹i kh¸ch hµng trong mét ph©n khu thÞ trêng nhÊt ®Þnh C Nh©n sù - Gióp nhµ tuyÓn dông chän øng viªn thÝch hîp nhÊt cho nhu cÇu cña c«ng ty 4 Nh÷ng th¸ch thøc trong khai ph¸ d÷ liÖu KPDL ph¶i lµm viÖc víi khèi d÷ liÖu lín vµ nhiÒu nguån d÷ liÖu kh¸c nhau (CSDL, Internet, c¸c lo¹i thiÕt bÞ thu thËp tÝn hiÖu, c¸c lo¹i thiÕt bÞ nhËn d¹ng, c¸c lo¹i thiÕt bÞ lu tr÷ ) nªn vÊn ®Ò tèc ®é xö lý lµ vÊn ®Ò cÇn quan t©m tríc nhÊt Cã hai híng ®Ó gi¶i quyÕt vÊn ®Ò nµy lµ n©ng cao n¨ng -4- lùc cña phÇn cøng vµ c¶i tiÕn phÇn mÒm, trong ®ã viÖc nghiªn cøu ®Ò xuÊt c¸c thuËt to¸n hiÖu qu¶ cã kh¶ n¨ng lµm viÖc trªn khèi d÷ liÖu lín vµ cã ®é phøc t¹p tÝnh to¸n thÊp lµ mét híng nghiªn cøu ®Çy tiÒm n¨ng Tõ nhu cÇu thùc tÕ trªn, gÇn ®©y ®· xuÊt hiÖn nhiÒu ngµnh khoa häc c«ng nghÖ hç trî KPDL, nh m¸y tÝnh to¸n song song, m¸y tÝnh lîng tö, c«ng nghÖ nano, ph¸t triÓn thuËt to¸n Vµ ®Æc biÖt lµ c¸c kü thuËt ph©n tÝch víi c¸c thuËt to¸n tiªn tiÕn tÝch hîp s½n trªn dÞch vô ph©n tÝch d÷ liÖu (Analysis Services) trong SQL Server 2005 5 C¸c bíc khai ph¸ d÷ liÖu Mét tËp d÷ liÖu, b»ng c¸ch nµo ®ã mµ ta cã , nh»m khai th¸c d÷ liÖu mét c¸ch hiÖu qu¶ phôc vô cho c«ng viÖc Ta tiÕn hµnh theo 6 bíc sau: 1 §Þnh nghÜa vÊn ®Ò 2 ChuÈn bÞ d÷ liÖu 3 Kh¸m ph¸ d÷ liÖu 4 X©y dùng m« h×nh 5 Khai th¸c vµ ®¸nh gi¸ m« h×nh 6 TriÓn khai m« h×nh vµ n©ng cÊp m« h×nh H×nh 1.1: C¸c bíc thùc hiÖn mét t¸c vô KPDL -5- Ch¬ng II C¸c gi¶i thuËt khai ph¸ d÷ liÖu trªn SQL Server 2005 Microsoft SQL Server 2005 Analysis Service (MSSAS) hç trî thªm cho chøc n¨ng khai th¸c th«ng tin (Business Intelligent), kh¶ n¨ng më réng gia t¨ng, tÝnh s½n cã vµ b¶o mËt cho c¸c gi¶i ph¸p Business Intelligent trong khi lµm cho chóng dÔ t¹o, dÔ triÓn khai vµ dÔ qu¶n lý Microsoft khi ph¸t triÓn SQL Server 2005 AS, hä ®· hoµn thiÖn c¸c thuËt to¸n thêng sö dông trong KPDL mét c¸ch hoµn chØnh nhÊt so víi SQL Server 2000 AS , bao gåm : MS(Microsoft) Naive Bayes, MS Decision Tree , MS Clustering, MS time series, MS Sequence Clustering, MS Neural Network Trong ph¹m vi cña ®Ò tµi t«i xin tr×nh bµy 3 thuËt to¸n: MS Naive Bayes, MS Decsion Tree vµ thuËt to¸n míi MS Time Series 1 ThuËt to¸n Microsoft Naive Bayes a Giíi thiÖu ThuËt to¸n MS Naive Bayes lµ mét thuËt to¸n ph©n lo¹i ®îc Microsoft SQL Server 2005 cung cÊp ®Ó sö dông trong m« h×nh KPDL Khi m« h×nh KPDL sö dông thuËt to¸n nµy, chóng ta cã thÓ x¸c ®Þnh mét sè thuéc tÝnh ®Çu vµo gióp viÖc ph©n lo¹i c¸c tr¹ng th¸i cña thuéc tÝnh dù ®o¸n tèt nhÊt, vµ gi¶ sö r»ng c¸c thuéc tÝnh ®éc lËp víi nhau Do gi¶ thiÕt nµy nªn thuËt to¸n cã tªn lµ Naive Bayes ThuËt to¸n MS Naive Bayes x©y dùng m« h×nh khai ph¸ nhanh h¬n c¸c thuËt to¸n kh¸c ThuËt to¸n nµy chØ hç trî c¸c thuéc tÝnh rêi r¹c (discrete, vÝ dô: Gíi tÝnh), nÕu t¹o mét m« h×nh Naive Bayes víi thuéc tÝnh liªn tôc (continuous) sÏ sinh ra lçi b Nguyªn t¾c c¬ b¶n cña gi¶i thuËt ThuËt to¸n tÝnh x¸c suÊt cã ®iÒu kiÖn c¸c tr¹ng th¸i cña mçi cét ®Çu vµo víi mçi tr¹ng th¸i cña cét dù b¸o §Þnh nghÜa vÒ x¸c suÊt cã ®iÒu kiÖn nh sau: X¸c suÊt cña biÕn cè A víi ®iÒu kiÖn biÕn cè B x¶y ra ®îc ký hiÖu P(A/B) vµ P(A/B)= P ( AB) P( B) -6- VÝ dô : Trong chiÕn lîc qu¶ng c¸o vÒ mÉu xe ®¹p míi cña phßng Marketing thuéc c«ng ty Adventure Works Cycle, hä quyÕt ®Þnh dïng c¸ch ph¸t tê r¬i §Ó gi¶m chi phÝ, hä muèn chØ göi ®Õn nh÷ng kh¸ch hµng quan t©m ®Õn mÆt hµng nµy C«ng ty ®· lu th«ng tin vÒ nh÷ng ®Æc ®iÓm cña kh¸ch hµng mua s¶n phÈm cña c«ng ty trong mét vµi n¨m tríc ®©y (c¬ së d÷ liÖu ®Ýnh kÌm bé cµi SQL Server 2005) Hä muèn sö dông d÷ liÖu nµy ®Ó thÊy c¸c ®Æc ®iÓm nh tuæi hay vïng cã thÓ gióp hä dù ®o¸n sù hëng øng cña kh¸ch hµng víi chiÕn dÞch qu¶ng c¸o, b»ng c¸ch xem xÐt nh÷ng ngêi ®· tõng mua hay kh«ng mua xe ®¹p t¹i c«ng ty chñ yÕu lµ thuéc ®é tuæi nµo, kho¶ng c¸ch tõ nhµ ®Õn n¬i lµm viÖc bao nhiªu xa §Æc biÖt, hä muèn thÊy ®îc sù kh¸c nhau gi÷a ®Æc ®iÓm cña c¸c kh¸ch hµng ®· mua vµ kh«ng mua xe ®¹p cña c«ng ty nh thÕ nµo? B»ng c¸ch sö dông thuËt to¸n MS Naive Bayes ®Ó x©y dùng m« h×nh khai ph¸, phßng Marketing cã thÓ nhanh chãng ®a ra kÕ ho¹ch qu¶ng c¸o cña m×nh X©y dùng m« h×nh TM Naive Bayes víi cÊu tróc nh sau: Structure TM Naive Bayes CommuteDistance Input BikeBuyer Predict Age Input CustomerKey Key Education Input Gender Input House Owner Flag Input Marital Status Input Number Car Owner Input Number Children At Home Input Occupation (NghÒ nghiÖp) Input Region Input Total Children Input B¶ng 2.1: CÊu tróc cña m« h×nh TM Naive Bayes Thuéc tÝnh dù ®o¸n BikeBuyer víi hai tr¹ng th¸i 0 vµ 1 t¬ng øng víi sù kh«ng mua vµ mua xe cña kh¸ch hµng Nh ®· nãi ë trªn: ThuËt to¸n tÝnh x¸c suÊt cã ®iÒu kiÖn c¸c tr¹ng th¸i cña mçi cét ®Çu vµo víi mçi tr¹ng th¸i cña cét dù b¸o Trong vÝ dô nµy víi cét ®Çu vµo CommuteDistance, tõ cë së d÷ liÖu vÒ 18484 kh¸ch hµng cña c«ng ty ta cã b¶ng thèng kÕ sau: -7- CommuteDistance 0-1 Miles (6310) 1-2 Miles (3232) 2-5 Miles (3234) 5-10 Miles (3214) 10+ Miles (2494) Tæng =18484 Sè ngêi mua 3538 1529 1839 1318 908 9132 Sè ngêi kh«ng mua 2772 1703 1395 1896 1586 9352 B¶ng 2.2: Sè kh¸ch hµng víi thuéc tÝnh CommuteDistance Gäi A lµ biÕn cè ngêi ®ã thuéc nhãm kh¸ch hµng cã kho¶ng c¸ch tõ nhµ ®Õ chç lµm viÖc tõ 0-1 Miles B1 lµ biÕn cè ngêi ®ã mua xe ®¹p, thuËt to¸n MS Naive Bayes sÏ tÝnh x¸c suÊt P1(A/B1) = P( AB1 ) 3538 : 18484 = = 0,387 P( B1 ) 9132 : 18484 NÕu vÉn gäi A lµ biÕn cè nh trªn, B2 lµ biÕn cè ngêi ®ã kh«ng mua xe ®¹p, ta cã: P2(A/B2) = P( AB2 ) 2772 : 18484 = =0,296 P( B2 ) 9352 : 18484 Nh vËy, trong sè nh÷ng ngêi mua xe ®¹p cña c«ng ty, chän ra mét ngêi th× x¸c suÊt ngêi ®ã ®i tõ nhµ tíi chç lµm viÖc tõ 0-1 Miles lµ 0,387 Vµ víi nh÷ng kh¸ch hµng kh«ng mua xe ®¹p cña c«ng ty, chän ra mét kh¸ch hµng th× x¸c suÊt ngêi ®ã ®i tõ nhµ ®Õn chç lµm viÖc tõ 0-1 Miles lµ 0,296 T¬ng tù víi c¸c tr¹ng th¸i kh¸c cña thuéc tÝnh ®Çu vµo CommuteDistance ta cã b¶ng sau: CommuteDistance P1(A/B1) P2(A/B2) 0-1 Miles 0,387 0,296 1-2 Miles 0,167 0,182 2-5 Miles 0,201 0,149 5-10 Miles 0,144 0,203 10+ Miles 0,099 0,170 B¶ng 2.3: X¸c suÊt cã ®iÒu kiÖn c¸c tr¹ng th¸i cña CommuteDistance Hoµn toµn t¬ng tù víi thuéc tÝnh CommuteDistance, xÐt víi c¸c thuéc tÝnh cßn l¹i trong m« h×nh ta ®îc kÕt qu¶ nh c¸c kÕt qu¶ hiÓn thÞ ë Microsoft Naive Bayes Viewer trong Business Intelligence Development Studio -8- H×nh 2.1: X¸c suÊt cã ®iÒu kiÖn trªn MS Naive Bayes Viewer Dùa vµo c¸c x¸c suÊt nµy chóng ta cã thÓ thÊy ®îc tr¹ng th¸i cña cña thuéc tÝnh ®Çu vµo nµo gióp cho ph©n biÖt ®îc c¸c tr¹ng th¸i cña théc tÝnh dù b¸o XÐt víi 1000 kh¸ch hµng mua xe vµ 1000 kh¸ch hµng kh«ng mua xe, chóng ta cã 387 kh¸ch hµng mua xe ®i lµm tõ 0-1 Miles, còng víi kho¶ng c¸ch nµy cã 296 kh¸ch hµng kh«ng mua xe t¹i c«ng ty Theo ®ã, víi tr¹ng th¸i 0-1 Miles cña thuéc tÝnh CommuteDistance chóng ta cã sè chªnh lÖch gi÷a sè kh¸ch hµng mua vµ sè kh¸ch hµng kh«ng mua xe t¹i c«ng ty lµ 387296 = 91 kh¸ch hµng, t¬ng tù víi c¸c tr¹ng th¸i kh¸c ta cã b¶ng: Sè ngêi kh«ng CommuteDistance Sè ngêi mua Chªnh lÖch mua 0-1 Miles 387 296 91 1-2 Miles 201 149 52 2-5 Miles 167 182 -15 5-10 Miles 144 203 -59 10+ Miles 99 170 -71 B¶ng 2.4: XÐt víi 1000 kh¸ch hµng VËy víi tr¹ng th¸i 0-1 Miles ph©n biÖt gi÷a c¸c kh¸ch hµng mua vµ kh«ng mua xe râ nhÊt, vµ tr¹ng th¸i 10+ Miles ph©n biÖt gi÷a kh¸ch hµng kh«ng mua vµ kh¸ch hµng mua xe t¹i c«ng ty râ rµng nhÊt, ®iÒu nµy ®îc thÓ hiÖn ë Tab Attribute Discrimination trong Microsoft Naive Bayes Viewer T¬ng tù víi c¸c tr¹ng th¸i cña c¸c thuéc tÝnh ®Çu vµo ta cã h×nh sau: -9- H×nh 2.2:Hai tr¹ng th¸i cña thuéc tÝnh CommuteDistance Nh vËy, trong chiÕn lîc qu¶ng c¸o cña phßng Marketing cña c«ng ty Adventure Works Cycle, hä sÏ chñ yÕu ph¸t tê r¬i cho nh÷ng ngêi ®i tõ 0-1 Miles ®Ó lµm viÖc vµ h¹n chÕ ph¸t tê r¬i cho nh÷ng ngêi ph¶i ®i trªn 10 Miles ®Ó lµm viÖc c C¸c tham sè cña thuËt to¸n ThuËt to¸n MS Navie Bayes kh¸ ®¬n gi¶n, v× vËy kh«ng cã nhiÒu tham sè C¸c tham sè ®¶m b¶o thuËt to¸n hoµn thµnh trong mét lîng thêi gian hîp lÝ MAXIMUM_INPUT_ATTRIBUTES : x¸c sè thuéc tÝnh ®Çu vµo lín nhÊt NÕu nh sè thuéc tÝnh ®Çu vµo lín h¬n gi¸ trÞ cña tham sè, thuËt to¸n sÏ chän sè ®Çu vµo b»ng gi¸ trÞ nµy ThiÕt lËp tham sè nµy b»ng 0 ®Ó thuËt to¸n tÝnh ®ªn tÊt c¶ c¸c thuéc tÝnh ®Çu vµo Gi¸ trÞ mÆc ®Þnh lµ 255 MAXIMUM_OUTPUT_ATTRIBUTES : x¸c ®Þnh sè thuéc tÝnh ®Çu ra lín nhÊt NÕu m« h×nh cã sè ®Çu ra lín h¬n gi¸ trÞ cña tham sè, thuËt to¸n sÏ chän sè ®Çu ra b»ng gi¸ trÞ nµy ThiÕt lËp tham sè nµy b»ng 0 ®Ó thuËt to¸n tÝnh ®Õn tÊt c¶ ®Çu ra Gi¸ trÞ mÆc ®Þnh lµ 255 MAXIMUM_STATES : chØ ra sè tr¹ng th¸i lín nhÊt cña mét thuéc tÝnh ®îc tÝnh ®Õn NÕu mét thuéc tÝnh cã sè tr¹ng th¸i lín h¬n gi¸ trÞ cña tham sè, thuËt to¸n sÏ chän sè tr¹ng th¸i b»ng gi¸ trÞ cña tham sè nµy - 10 - H×nh 4.2: Import d÷ liÖu Sau khi Import data , ta ®îc b¶ng nh sau : Tªn: dbo.Microsoft Cét kiÓu Víi c¸c trêng (gåm 2245 dßng tõ ngµy Date Datetime 13/03/2000 ®Õn ngµy 13/02/2009): Open Float Hight Float Low Float - 46 Close Float Vol Float Adj Float Close H×nh 4.3: B¶ng d÷ liÖu sau khi Import 3 Kh¸m ph¸ d÷ liÖu Dïng BI Dev Studio cho bíc nµy : Tríc tiªn ®Ó thùc hiÖn vÇn ®Ò nµy , chó ý ®Çu tiªn ®Æt chÕ ®é running cho 3 server : SQL Server Analysis Services , SQL Server , SQL Server Browser (H×nh 4.4) H×nh 4.4: ThiÕt lËp tr¹ng th¸i cho c¸c server - Do x©y dùng hai øng dông : Dù ®o¸n gi¸ cæ phiÕu cña Microsoft vµ X¸c ®Þnh ®èi tîng kh¸ch hµng cho c«ng ty Adventure Work, nªn chóng ta sÏ t¹o m« h×nh KPDL gi¸ cæ phiÕu Microsoft_Stock n»m trong cïng Project Adventure Works DW analysis services ®Ýnh kÌm bé cµi SQL Server 2005 - Ch¹y BI Dev Studio - File Open Project/Solution, vµ Browse ®Õn C:\Program Files\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project, chän file: Adventure Works.sln vµ click Open - Trong solution xuÊt hiÖn( H×nh 4.5) - 47 - H×nh 4.5: Dialog Solution - T¹o Data Suorces vµ : DownJones , sau ®ã t¹o Data Source Views: DownJones (chän b¶ng dbo.Microsoft)-C¸ch t¹o Data Soures vµ Data Views ®· tr×nh bµy ë phÇn II 4 X©y dùng m« h×nh T¹o m« h×nh Microsoft_Stock trong th môc Mining Structure cña solution Lùa chän Data Mining technique lµ MS Time Series, vµ chän b¶ng dbo.Microsoft Quay l¹i bµi to¸n ban ®Çu, ta cã c¸c thuéc tÝnh nh : Open , Close , Hight , Low , Date, Vol ë ®©y ta gi¶i quyÕt ®Æt vÊn ®· ®Æt ra trong phÇn §Þnh nghÜa vÊn ®Ò Chän c¸c cét ®Ó ph©n tÝch nh sau: Input: Hight, Low, Open (ChØ sè cña MSFT khi møc cao nhÊt, thÊp nhÊt trong 1 ngµy, lóc më cöa) Key lµ: Date Pridictable: Close H×nh 4.6: ThiÕt lËp cÊu tróc cho m« h×nh Microsoft_Stock - 48 - Trong IDE cña BI DEV Studio xuÊt hiÖn nh trong H×nh 4.7 H×nh 4.7: CÊu tróc cña m« h×nh sau khi t¹o 5 Khai th¸c vµ ®¸nh gi¸ m« h×nh B¾t ®Çu Deloy and process model víi m« h×nh ®· x©y dùng ë trªn Sau khi process , kÕt qu¶ lµ mét Decision tree vµ mét chart (H×nh 4.8 & 4.9) H×nh 4.8: C©y tù håi quy ë node l¸ cã nh·n Low-1 >= 49.218, luËt ®Õn node nµy ®îc chØ ra ë phÇn díi cña Dialog Mining Legend: gi¸ cæ phiÕu lóc ®ãng cöa hai ngµy tríc ®ã lín h¬n hoÆc b»ng 49,218 vµ nhá h¬n 72,336, th× gi¸ cæ phiÕu lóc ®ãng cöa cña ngµy tiÕp theo cã thÓ ®îc dù ®o¸n sö dông c«ng thøc håi quy sau: - 49 - Close = 0.361 -0.015 * Close(-2) + 0.640 * Close(-1) -0.028 * Open(-2) + 0.137 * Close(-3) -0.036 * High(-2) + 0.348 * Low(-1) -0.023 * High(-3) + 0.307 * Open(-3) -0.259 * Open(-1) -0.354 * Low(-3) + 0.289 * High(-1) -0.017 * Low(-2) Histogram biÓu diÔn hÖ sè t¬ng quan, nÕu vÖt xanh ë bªn ph¶i cã nghÜa lµ biÕn håi quy ®ã vµ biÕn dù ®o¸n ®îc t¬ng quan víi hÖ sè d¬ng, ngîc l¹i nÕu vÖt xanh ë bªn tr¸i cã nghÜa lµ t¸c nh©n håi quy ®ã vµ biÕn dù ®o¸n t¬ng quan víi hÖ sè ©m H×nh 4.9 hiÓn thÞ Chart tab cña Time Series viewer Cã mét ®êng th¼ng ®øng trong h×nh, ë phÝa bªn tr¸i cña ®êng nµy biÓu diÔn gi¸ trÞ c¸c serie tríc ®ã (tríc ngµy 13/02/2009) vµ ë phÝa bªn ph¶i biÓu diÔn c¸c dù ®o¸n trong t¬ng lai (sau ngµy 13/02/2009) Gi¸ trÞ dù ®o¸n ®îc chØ ra b»ng ®êng nÐt ®øt H×nh 4.9: BiÓu ®å thÓ hiÖn gi¸ cæ phiÕu thùc tÕ vµ dù ®o¸n B¹n cã thÓ sö dông combo Prediction Step ®Ó x¸c ®Þnh sè bíc dù ®o¸n trong t¬ng lai ®îc hiÓn thÞ trong biÓu ®å - 50 - §Ó ®¶m b¶o ®é tin cËy cña m« h×nh dù ®o¸n chóng ta cã thÓ kiÓm tra b»ng c¸ch sö dông dù ®o¸n trong qu¸ khø (dïng m« h×nh dù ®o¸n gi¸ cæ phiÕu tríc ngµy 13/02/2009 sau ®ã so s¸nh víi gi¸ cæ phiÕu trong CSDL) Chó ý: Thêi ®iÓm dù ®o¸n trong lÞch sö bÞ giíi h¹n bëi tham sè HISTORICAL_MODEL_COUNT vµ HISTORICAL_MODEL_GAP, ®Ó dù ®o¸n th× kho¶ng thêi gian ph¶i nhá h¬n kÕt qu¶ cña c«ng thøc: HISTORICAL_MODEL_COUNT*HISTORICAL_MODEL_GAP Trong øng dông nµy t«i ®Æt c¸c tham sè víi gi¸ trÞ nh sau: HISTORICAL_MODEL_COUNT=3 HISTORICAL_MODEL_GAP=5 (H×nh 4.10) H×nh 4.10: Gi¸ trÞ cña c¸c tham sè cña thuËt to¸n trong m« h×nh Nh v©y, chóng ta cã thÓ dù ®o¸n gi¸ cæ phiÕu cña MSFT khi sµn giao dÞch ®ãng cöa 15 ngµy tríc ®ã §Ó quan s¸t kÕt qu¶ dù ®o¸n trong qu¸ khø chóng ta check vµo check box Show historic predictions, khi ®ã ®êng nÐt ®øt bªn tr¸i ®êng th¼ng ®øng biÓu diÔn dù ®o¸n gi¸ trÞ trong qu¸ khø (H×nh 4.11) Ngoµi ra còng cã thÓ xem ®é lÖch cña dù ®o¸n trong tab Charts b»ng c¸ch check vµo check box Show Deviation, trong t¬ng lai cµng xa th× ®é lÖch cña dù ®o¸n cµn lín - 51 - H×nh 4.11: Dù ®o¸n trong lÞch sö Ta thÊy, gi¸ trÞ dù ®o¸n vµo ngµy 09/02/2009 lµ 19,62 víi ®é lÖch ± 0.53 , ta thÊy kÕ qu¶ dù ®o¸n cña m« h×nh lµ kh¸ chÝnh x¸c (v× gi¸ cæ phiÕu trong thùc tÕ lµ 19,44) 6 X©y dùng øng dông Predict Stock Microsoft Chóng ta sÏ sö dông ADOMD.NET mét giao diÖn lËp tr×nh viÕt c¸c øng dông KPDL ADOMD.NET (ActiveX Data Objects for NET) - Cung cÊp kh¶ n¨ng truy nhËp vµo c¸c ®èi tîng d÷ liÖu Analysis Services, cã thÓ dïng víi ng«n ng÷ qu¶n lý nh Visual Basic NET, C#, and J# §Ó sö dông ng«n ng÷ C#, ph¶i add vµo project c¸c references: Mmicrosoft.Aanalysisservices.Aadomdclient Vµ thªm ®o¹n code sau vµo ®Çu cña file: Using Microsoft.AnalysisServices §Ó cã kÕt qu¶ dù ®o¸n ta dïng hµm dù ®o¸n ®îc x¸c ®Þnh tríc lµ PredictTimeSeries trong ng«n ng÷ DMX DMXOpen="SELECT PredictTimeSeries([Close],"+NoDay.ToString()+") FROM [Microsoft_Stock]"; Tríc hÕt cÇn kÕt nèi tíi Analysis Services qua through ADOMD.NET, sö dông class AdomdConnection: - 52 - private AdomdConnection Adomdcon = new AdomdConnection("location=SCORPION-IT; Initial Catalog=Adventure Work DW"); Adomdcon.Open(); Khi kÕt nèi thµnh c«ng chóng ta dïng class AdomdDataAdapter ®Ó thùc hiÖn c¸c c©u lÖnh DMX, thñ tôc sau sÏ tr¶ l¹i mét DataSet chøa c¸c gi¸ trÞ dù ®o¸n trong kho¶ng thêi gian x¸c ®Þnh trong c©u lÖnh DMX truyÒn vµo private DataSet dataSet (string DMX) { DataSet DS = new DataSet(); AdomDA = new AdomdDataAdapter(DMX,Adomdcon); AdomDA.Fill(DS); return DS; } Vµ kÕt qu¶ khi ch¹y ch¬ng tr×nh: - Cöa sæ chÝnh ë tab Predict Stock cña ch¬ng tr×nh gåm trôc n»m ngang biÓu diÔn thêi gian, trôc th¼ng ®øng biÓu diÔn gi¸ cæ phiÕu, ®êng mµu hång biÓu ®iÔn gi¸ cæ phiÕu thùc tÕ ®îc thèng kª theo thêi gian - §êng biÓu ®iÔn mµu xanh ë bªn ph¶i cña ®êng th¼ng ®øng song song víi trôc th¼ng ®øng biÓu diÔn gi¸ cæ phiÓu dù ®o¸n trong tr¬ng lai Cßn ®êng mµu xanh ë bªn tr¸i ®êng nµy, biÓu diÔn gi¸ cæ phiÕu dù ®o¸n trong qu¸ khø (H×nh 4.12) - 53 - H×nh 4.12: KÕt qu¶ dù ®o¸n cña øng dông - Khi di con trá chuét qua mét thêi ®iÓm, tõ thêi ®iÓm nµy ch¬ng tr×nh sÏ x©y dùng ®êng giãng, vµ ®a ra c¸c gi¸ trÞ t¹i c¸c giao ®iÓm cña ®êng nµy víi c¸c ®êng biÓu diÔn VÝ dô di chuét ®Õn ngµy 09/02/2009, gi¸ cæ phiÕu cña MSFT khi sµn giao dÞch ®ãng cöa ®îc dù ®o¸n lµ 19,62 (giao ®iÓm cña ®êng giãng víi ®êng mµu xanh n»m bªn tr¸i ®êng th¼ng ®øng) vµ gi¸ cæ phiÕu trªn thùc tÕ lµ 19,44 (giao ®iÓm cña ®êng giãng víi ®êng mµu hång) II øng dông x¸c ®Þnh kh¸ch hµng cho c«ng ty Adventrure Work 1.§Þnh nghÜa vÊn ®Ò VÊn ®Ò ®Æt ra cña bµi to¸n cho øng dông ®îc tr×nh bµy trong phÇn II ®Ó gi¶i thÝch nguyªn t¾c cña hai thuËt to¸n Naive Bayes vµ C©y quyÕt ®Þnh: Trong chiÕn lîc qu¶ng c¸o vÒ mÉu xe ®¹p míi cña phßng Marketing thuéc c«ng ty Adventure Works Cycle, hä quyÕt ®Þnh dïng c¸ch ph¸t tê r¬i §Ó gi¶m chi phÝ, hä muèn chØ göi ®Õn nh÷ng kh¸ch hµng quan t©m ®Õn mÆt hµng nµy B»ng c¸ch x©y dùng m« h×nh dù b¸o tõ d÷ liÖu vÒ kh¸ch hµng cña c«ng ty 2 ChuÈn bÞ d÷ liÖu - 54 - D÷ liÖu vÒ kh¸ch hµng cña c«ng ty Adventure Cycle gåm 18484 kh¸ch hµng H×nh 4.13: D÷ liÖu vÒ kh¸ch hµng ®· mua hµng t¹i c«ng ty Víi c¸c thuéc tÝnh: Thuéc tÝnh DiÔn gi¶i Age Tuæi BikeBuyer Cã mua xe kh«ng? CommuteDistance K/C tõ nhµ ®Õn níi lµm viÖc CustomerKey M· kh¸ch hµng EnglishEducation Tr×nh ®é tiÕng anh Gender Giíi tÝnh HouseOwnerFlag Cã lµ chñ nhµ kh«ng? MaritalStatus T×nh tr¹ng h«n nh©n NumberCarsOwned Sè xe h¬i së h÷u NumberChildrenAtHome Sè ®øa trÎ ë nhµ EnglishOccupation ViÖc lµm víi tiÕng anh Region Vïng TotalChildren Tæng sè ®øa trÎ YearlyIncome Thu nhËp hµng n¨m B¶ng 4.1: C¸c thuéc tÝnh cña b¶ng d÷ liÖu vÒ kh¸ch hµng - 55 - 3 Kh¸m ph¸ d÷ liÖu T¬ng tù víi øng dông dù ®o¸n gi¸ cæ phiÕu tr×nh bµy ë trªn, víi ®èi tîng Data Suorces: Adventure Works.ds vµ Data Source Views: Adventure Works.dsv 4 X©y dùng m« h×nh øng dông sö dông hai m« h×nh TM Naive Bayes vµ TM Decision Tree ®îc x©y dùng s·n trong Project Adventrure Work ®Ýnh kÌm bé cµi SQL Server 2005 víi cÊu tróc nh sau: H×nh 4.14: CÊu tróc m« h×nh TM Decision Tree vµ TM NaiveBayes 5 Khai th¸c vµ ®¸nh gi¸ m« h×nh Xem phÇn nguyªn t¾c cña thuËt to¸n MS Decision vµ MS Naive Bayes 6 X©y dùng øng dông Adventure Work øng dông ®îc x©y dùng ë tab Adventure Work cña ch¬ng tr×nh Sau khi chän c¸c ®Æc ®iÓm vÒ : Age, Total children, Commute Distance, Number Cars Owned cña mét kh¸ch hµng vµ click vµo nót Dù ®o¸n, ch¬ng tr×nh sÏ ®a ra c¸c x¸c suÊt (H×nh 4.15) Víi m« h×nh NaiveBayes ®a ra: - Trong sè nh÷ng ngêi mua xe, x¸c suÊt mét ngêi cã ®Æc ®iÓm ®· chän.( h×nh 4.15: trong sè nh÷ng ngêi mua xe t¹i c«ng ty, th× x¸c - 56 - suÊt mét kh¸ch hµng cã Age=52, TotalChidre=4, Commute Distance = 2-5 Miles vµ Number Cars Owned=0 lµ 61,47% ) - Trong sè nh÷ng ngêi kh«ng mua xe t¹i c«ng ty, x¸c suÊt mét kh¸ch hµng cã nh÷ng ®Æc ®iÓm ®· chän ( h×nh 4.15: trong sè nh÷ng ngêi kh«ng mua xe, x¸c suÊt mét kh¸ch hµng cã Age=52, TotalChidre=4, Commute Distance = 2-5 Miles vµ Number Cars Owned=0 lµ 38,53%.) Víi m« h×nh Decision Tree ®a ra: - X¸c suÊt kh¸ch hµng nµy mua xe cña c«ng ty.( h×nh 4.15: X¸c suÊt mét kh¸ch hµng cã Age=52, TotalChidre=4, Commute Distance = 2-5 Miles vµ Number Cars Owned=0 sÏ mua xe lµ 39,77%) - X¸c suÊt kh¸ch hµng nµy mua xe cña c«ng ty.( h×nh 4.15: X¸c suÊt mét kh¸ch hµng cã Age=52, TotalChidre=4, Commute Distance = 2-5 Miles vµ Number Cars Owned=0 sÏ mua xe lµ 60,23%) H×nh 4.15: Giao diÖn øng dông Adventure Work Víi øng dông nµy phßng marketing cña c«ng ty Adventure Work, cã thÓ x¸c ®Þnh sÏ tËp trung giíi thiÖu lo¹i xe ®¹p míi vµo nh÷ng ®èi tîng kh¸ch hµng nµo, ®Ó gi¶m kinh phÝ cho chiÕn dÞch qu¶ng c¸o b»ng c¸ch ph¸t tê r¬i - 57 - Ch¬ng V KÕt luËn Data mining ®ang nhanh chãng trë thµnh mét kü thuËt ph©n tÝch ®îc sö dông réng r·i B¸o c¸o nµy t«i ®· tr×nh bµy ba thuËt to¸n data mining trong SQL Server 2005 Analysis Services: Microsoft Naive Bayes, Microsoft Decision Trees vµ Microsoft Time Series B¸o c¸o còng tr×nh bµy c¸ch x©y dùng c¸c m« h×nh data mining gióp gi¶i quyÕt c¸c vÊn ®Ò trong thùc tiÔn vµ c¸ch ph¸t triÓn øng dông víi ba m« m×nh khai ph¸ ®îc x©y dùng b»ng ba thuËt to¸n ®· nghiªn cøu, qua kiÓm tra ch¬ng tr×nh ®a ra kÕt qu¶ dù ®o¸n kh¸ chÝnh x¸c gióp nhµ kinh doanh cã thÓ tham kh¶o khi ®a ra c¸c quyÕt ®Þnh Víi SQL Server 2005 Analysis Services, data mining kh«ng cßn lµ ®Æc quyÒn cña c¸c nhµ thèng kª Ngêi sö dông kh«ng cÇn biÕt ®Õn c¸c phøc t¹p cña c¸c thuËt to¸n data mining Mçi ngêi ph¸t triÓn CSDL ®Òu cã kh¶ n¨ng t¹o vµ huÊn luyÖn c¸c m« h×nh data mining vµ nhóng c¸c tÝnh n¨ng n©ng cao vµo c¸c øng dông cña hä TµI LIÖU THAM KH¶O [1] ZhaoHui Tang and Jamie MacLennan, Data Mining with SQL Server 2005 [2] C¸c ý kiÕn cña c¸c chuyªn gia Data Mining trong diÔn ®µn MSDN Forums t¹i website: http://social.msdn.microsoft.com [3] Bé help ®Ýnh kÌm SQL Server 2005: SQL Server books online - 58 - ... bị liệu Khám phá liệu Xây dựng mô hình Khai thác đánh giá mô hình Triển khai mô hình nâng cấp mô hình Hình 1.1: C¸c bíc thùc hiƯn mét t¸c vơ KPDL -5- Chơng II Các giải thuật khai phá liệu SQL Server. .. đặc tính chung liệu CSDL, tác vụ khai phá dự báo thực việc suy luận liệu thời để đa dự báo Các toán thông dụng khai phá liệu Trong KPDL, toán phân thành bốn loại Bài toán thông dụng KPDL Phân... tiên tiến tích hợp sẵn dịch vụ phân tích liệu (Analysis Services) SQL Server 2005 Các bớc khai phá liệu Một tập liệu, cách mà ta có , nhằm khai thác liệu cách hiệu phục vụ cho công việc Ta tiến