26
111Equation Chapter 1 Section 1 BÀI TẬP LỚN : NHẬP MÔN LÝ THUYẾT NHẬN DẠNG ĐỀ TÀI: TÌM HIỂU THUẬT TOÁN GOM CỤM SỬ DỤNG LIÊN KẾT ĐƠN VÀ CÀI ĐẶT CHƯƠNG TRÌNH MINH HỌA Giáo viên hướng dẫn Lớp Nhóm thực hiện : Trần Hùng Cường : KHMT2-K3 : Nhóm 13 1. Nguyễn Huy Đông 2. Nguyễn Văn Điệp 3. Nguyễn Tuấn Nghĩa 4. Bùi Đình Hiếu 5. Nguyễn Hồng Hiếu

Tim Hieu Thuat Toan Gom Cum Su Dung Lien Ket Don Va Cai Dat Chuong Trinh Minh Hoa

Embed Size (px)

DESCRIPTION

Thuật toán Gom Cụm

Citation preview

BI TP LN :NHP MN L THUYT NHN DNG

TI: TM HIU THUT TON GOM CM S DNG LIN KT N V CI T CHNG TRNH MINH HA

Trang 17/ 17

Gio vin hng dnLpNhm thc hin: Trn Hng Cng: KHMT2-K3: Nhm 13

1. Nguyn Huy ng2. Nguyn Vn ip3. Nguyn Tun Ngha4. Bi nh Hiu5. Nguyn Hng Hiu

Mc LcMC CH NGHIN CU TI2I)VI NT TNG QUAN V BI TON NHN DNG I TNG.31.nh ngha nhn dng.32.Cc dng bi ton nhn dng c bn.3a.V d c th:3b.Cc phng php hun luyn:4II)PHN TCH BI TON GOM CM S DNG LIN KT N.51.Mc ch bi ton5M t bi ton:62.Cch gii quyt theo thut ton6T tng chnh:73.Bi ton mu7a. bi7b.Gii quyt74.Cu trc d liu9a.Biu din cc i tng d liu9b.Biu din cc cm i tng d liu10c.Biu din danh sch cc cm i tng d liu10d.Lu tr kt qu thut ton105.Thut ton chnh10III)XY DNG CHNG TRNH121.Ngn ng v cc cng c h tr122.Ci t thut ton13a.Ci t c th cu trc d liu13b.Ci t cc module quan trng143.Mt s giao din chnh v kt qu chy chng trnh164.nh gi16Mt s bi ton thc t c th p dng vo chng trnh nh:16nh gi phc tp v tnh hiu qu ca thut ton xy dng:16

MC CH NGHIN CU TIVic nghin cu tm hiu ti gm nhng mc ch sau:1. Nghin cu tng qut v bi ton nhn dng i tng v phng php hc khng gim st.2. Nghin cu cc phng php phn cm i tng v c th l tp trung vo phng php phn cm phn cp.3. Xy dng gii thut bng gi m cho thut ton phn cm phn cp s dng lin kt n, c nh gi phc tp, u nhc im ca gii thut.4. Xy dng chng trnh m phng thut ton phn cm phn cp s dng lin kt n phn cm cc i tng trong mt tp d liu vo cho trc bng phn mm Visual Studio 2008 v cc cng c khc.

I) VI NT TNG QUAN V BI TON NHN DNG I TNG.1. nh ngha nhn dng.Nhn dng i tng l mt qu trnh phn hoch i tng thnh cc i tng con, chng c gn vo tng lp nhn c i snh vi mu v i snh theo cc quy lut bit trc no .2. Cc dng bi ton nhn dng c bn.a. V d c th:C nhiu bi ton nhn dng khc nhau pht sinh trong thc t qu trnh hot ng lao ng, sn xut, qun l ca con ngi vi nhng mc ch khc nhau. V d nh bi ton phn loi c trong dy chuyn thnh cc loi khc nhau theo tiu chun v loi.Hay nh bi ton phn loi cc loi hoa qu khc nhau trong dy chuyn sn xut. Bi ton phn loi email, bi ton an ninh my tnh bng vn tayBi ton hun luyn (learning): Mt cu hi t ra l: tn ti hay khng mt phng php gii quyt trit bi ton phn loi, nhn dng? Tr li: kinh nghim nghin cu 40 nm cho thy khng tn ti mt phng php nh vy. Nguyn nhn: bi ton t ra thuc nhm ill-posed Cch tip cn: (learning) gii quyt vn da trn qu trnh hun luyn qua bn mu. Hun luyn: phng php s dng nhng thng tin kinh nghim t mi trng kt hp vi nhng gi tr tri thc c sn xy dng cc b phn loi v qu trnh hiu chnh tng bc hiu qu phn loi. Nhng thng tin kinh nghim: cc mu hun luyn. Nhng tri thc: cc bt bin, hm lin quan. Qu trnh hiu chnh tng bc hiu qu phn loi.b. Cc phng php hun luyn: Hc c gim st: (Supervised learning) L qu trnh gn nhn lp cho cc i tng trong tp d liu da trn mt b cc i tng hun luyn v cc thng tin v nhn lp bit. C thng tin i tng, thng tin phn loi km theo mu. Ni cch khc ta bit u vo v u ra. Da vo thng tin phn loi tin hnh phn loi. Mt s phng php hc c gim st nh: Hc bng phn tch (analytical learning) Mng n- ron nhn to K thut lan truyn ngc Boosting Thng k Bayes Lp lun tnh hung Hc cy quyt nh Thut ton K Mean (K lng ging gn nht) Hi quy Gauss Hc khng c gim st: (Unsupervised learning) L qu trnh phn chia mt tp d liu thnh cc lp hay cm (cluster) d liu tng t nhau m cha bit trc cc thng tin v nhn lp. Ch bit thng tin i tng, khng bit thng tin phn lp H thng phi t ng gom cc i tng Mt s phng php hc khng c gim st: Cc thut ton phn cm: Phn cm phn hoc Phn cm phn cp (trong khun kh ti s nghin cu k lng phng php ny) Phn cm da trn mt Phn cm da trn li Phn cm da trn m hnh Phn cm c rng buc Hc na gim st: (Semi- Supervised learning) L qu trnh chia mt tp d liu thnh cc lp con da trn mt s thng tin b tr cho trc. C thng tin phn hi tng phn t mi trng.

II) PHN TCH BI TON GOM CM S DNG LIN KT N.1. Mc ch bi tonChng ta tp trung xy dng giai on 1 trong thut ton phn cm phn cp, l giai on gom cm. Giai on 2 trong thut ton l tch cm hot ng ngc li vi giai on 1.M t bi ton: D liu vo: (Input)

Cho mt tp d liu D gm n i tng khc nhau trong khng gian (n 0, k>= 1). Ngha l nu x D th x= (,, ), vi R. Cho mt gi tr ngng bt k Step R. D liu ra: (Output) Nhn c mt danh sch cc cm dsCum gm m (m 0) cm d liu tha mn cc yu cu sau: Mi cm c t nht 1 i tng Mi i tng ch thuc v 1 cm duy nht Cc i tng trong mt cm th tng t ln nhau, cc i tng trong cc cm khc nhau th phi tng t ln nhau theo ngng Step

Gi s (j[0, m-1]), l tm ca cm , khi th d(, ) Step.

Mc ch ca bi ton l t mt tp d liu ban u, p dng thut ton gom cm s dng lin kt n ta thu c mt danh sch cc cm d liu tha mn cc i tng trong cng mt cm th tng t nhau, cc i tng trong cc cm khc nhau th phi tng t nhau xt theo ngha v ngng Step cho trc.2. Cch gii quyt theo thut ton

Hm tnh ton tng t gia cc i tng d liu s dng l hm Euclide: d(x, y)=, trong x, y D, x= (, , , ), y= (, , , ), vi , (i [0,k-1]) l cc thuc tnh tng ng ca cc i tng x, y.

Hm tnh ton tng t gia cc cm: s dng lin kt n gia cc cm d(, )= , vi , dsCum.T tng chnh:

Ban u mi cm cha mt i tng. Ngha l m = n, .

Sau tin hnh gom dn cc cm li vi nhau theo mt gi tr ngng c tm l ngng= gi tr Min dng trong cc d(, ), vi , dsCum. Khi gi tr ngng tm c > Step hoc cc i tng thuc cng mt cm th dng li. Danh sch cm bc trc chnh l danh sch cm cn tm.3. Bi ton mua. bi

Trong khng gian cho 7 i tng nh sau:

= (1, 1), = (1, 3), = (2, 2), = (4, 4), = (4, 5), = (5, 4), = (5, 5)Thc hin thut ton phn cm phn cp, s dng hm o tng t gia cc i tng l hm Euclide, gia cc cm s dng lin kt n.b. Gii quytGiai on gom cm: V s i tng = 7 0 nn tin hnh lp i lp li vic gom cm cho ti khi s cm = 1, nh sau:Vng lp 1: S dng hm tnh khong cch Euclide ta c c ma trn khong cch gia cc i tng nh sau:

02

55

20

0

011

5

10

1

5

1

01

110

Ngng u tin l Step 0 = 1

Nhm cc cm theo Step 0 ta c cc cm mi sau: = {}, = {}, = {}, ={, , , } V s cm = 3 1 nn chuyn sang vng lp 2.Vng lp 2: S dng hm tnh khong cch theo lin kt n ta c c ma trn khong cch gia cc cm i tng nh sau: Ngng th 2 tm c l Step 1=

Nhm cc cm theo Step 1 ta c cc cm mi sau: = {, , }, = {, , , } V s cm = 2 1nn chuyn sang vng lp 3.

02

20

0

0

Vng lp 3: S dng hm tnh khong cch theo lin kt n ta c c ma trn khong cch gia cc cm i tng nh sau:

0

0

Ngng th 3 tm c l Step 2=

Nhm cc cm theo Step 2 ta c cc cm mi sau: = {, , , , , , } V s cm = 1 nn dng thut ton ti y.Giai on tch cm: Tin hnh ngc li giai on gom cm.4. Cu trc d liua. Biu din cc i tng d liuCc i tng trong tp d liu D c biu din trong mt cu trc dng ma trn: Mi hng ca ma trn biu din 1 i tng Mi ct ca ma trn biu din 1 thuc tnh ca i tng Phn t ti hng th i, ct th j ch ra gi tr thuc tnh th j ca i tng th i.Nh vy cc i tng s c gn cho mnh mt ch s phn bit, chnh l ch s hng ca ma trn biu din i tng .b. Biu din cc cm i tng d liuCc cm l tp hp ca cc i tng. Mi cm s l mt danh sch cc i tng no . n gin chng ta ch lu danh sch cc ch s ca cc i tng. Ngha l cc ch s hng ca ma trn biu din cc i tng trong tp d liu D.c. Biu din danh sch cc cm i tng d liuDanh sch cc cm i tng s l mt danh sch tuyn tnh lu tr cc cm. Mi phn t ca danh sch cm s l 1 cm.d. Lu tr kt qu thut tonSau khi kt thc thut ton ta thu c 2 danh sch: Danh sch cc ngng: danh sch ny lu tr cc ngng c nh c tm ra theo thut ton. N l mt danh sch tuyn tnh vi kiu ca phn t l kiu s thc R (float). Danh sch cc danh sch cm: danh sch ny lu tr cc danh sch cm d liu c gom li theo cc ngng c nh c tm ra theo thut ton bn trn.Ch : C th cc cu trc s c trnh by trong phn chng trnh Demo bn di, s dng ngn ng C# biu din.5. Thut ton chnhS dng u bi trong phn Mc ch bi ton v cu trc d liu nh trn v p dng t tng chnh trnh by ta i xy dng thut ton chi tit nh sau:Input: Ma trn i tng maTranDT: cha gi tr cc thuc tnh ca cc i tng. Gi tr ngng nhp t ngi dng: Step R.Output: Nhn c mt danh sch cc cm tha mn iu kin cc i tng trong cng mt cm th tng t ln nhau v ngc li cc i tng cc cm khc nhau th phi tng t theo mt gi tr ngng no c tm ra trong thut ton.Thut ton: thut ton chia ra 5 bc nh sauBc 1: Khi to danh sch cc cm sao cho mi cm ch cha mt i tng duy nht.Bc 2: Tm ra gi tr ngng Step theo nguyn tc ly gi tr Min dng trong ma trn khong cch cc cm.Bc 3: Nhm cc cm ca danh sch cm theo gi tr ngng Step tm c to ra danh sch cm mi.Bc 4: Lp li bc 2, 3 n khi no s cm = 1 th dng li.Bc 5: Tm ra gi tr ngng trong danh sch ngng tha n l gi tr ln nht Step. Tm ra v tr ca ngng tm c trong danh sch ngng. Tr ra kt qu danh sch cm ti v tr mc tm c.Gi m:BegindsCum = KhoiTaoDanhSachCum(maTranDT);// Khi to danh sch cm sao mi cm cha mt i tngif (socum 0)BeginlistDsCum[0] = dsCum;// a dsCum vo u listDsCumdsNguong[0] = 0;// ngng u tin = 0if (soCum1)Begini = 0;While (socum 1)BegindsNguong.Length++;// tng chiu di dsNguong ln 1dsNguong[++i] = TimNguong(maTranDT,dsCum);dsCum= NhomCumTheoNguong(maTranDT,dsCum,dsNguong[i])// nhm dsCum theo ngng tm c to ra mt dsCum milistDsCum.Length++;// tng chiu di listDsCum ln 1listDsCum.Length[i] = dsCum;End;End;End;Step = TimNguong(Step, dsNguong);// Tm ra gi tr ngng ph hpmoc = TimMoc(dsNguong, Step);// Tm ra v tr ca ngng trong dsNguongreturn listDsCum[moc];// Kt qu l danh sch cm tha mn yu cu bi tonEnd;Cc module quan trng phi xy dng: KhoiTaoDanhSachCum(MaTran maTranDT) TimNguong(MaTran maTranDT, DanhSachCum dsCum) NhomCumTheoNguong(MaTran maTranDT, DanhSachCum dsCum, float Step)III) XY DNG CHNG TRNH 1. Ngn ng v cc cng c h trChng trnh c xy dng bng ngn ng C#.S dng cng c Visual Studio C# 2008, d liu c load vo t mt file dng excel (*.xls hoc *.xlsx). C th file d liu demo c t trong th mc Debug ca chng trnh c tn DU_LIEU.xls. Bn trong file ny c 2 bi ton c lp sn lm demo, c t trong 2 sheet ca file.Ln lt cc bi ton mu l: Sheet1: s i tng 7, rng khng gian i tng

= (1, 1), = (1, 3), = (2, 2), = (4, 4), = (4, 5), = (5, 4), = (5, 5) Sheet2: s i tng 5, rng khng gian i tng

= (0, 1), = (0, 2), = (1, 1), = (4, 3), = (2, 3)Chng trnh chy trn nn .NetFrameWork 3.5 hoc cao hn. 2. Ci t thut tona. Ci t c th cu trc d liu Ma trn biu din cc i tng trong tp d liu D: Cc bin thnh vin: private int soHang;// biu din s hng ca ma trn private int soCot;// biu din s ct ca ma trn private float[,] giaTri;// mng 2 chiu biu din gi tr cc thuc tnh ca tng i tng c th Cc thuc tnh v phng thc(Xin xem chi tit trong class MaTran trong chng trnh km theo) Cm cc i tng d liu: Cc bin thnh vin: private int soDT;// biu din s i tng c trong cm private int[] dsDT;// mng 1 chiu lu tr cc ch s hng biu din i tng trong ma trn i // tng. Cc thuc tnh v phng thc(Xin xem chi tit trong class Cum trong chng trnh km theo) Danh sch cc cm: Cc bin thnh vin: private int soCum;// biu din s cm c trong danh sch cm private Cum[] dsCum;// mng 1 chiu lu tr cc cm trong danh sch cm Cc thuc tnh v phng thc(Xin xem chi tit trong class DanhSachCum trong chng trnh km theo)b. Ci t cc module quan trng KhoiTaoDanhSachCum(MaTran maTranDT): nhim v chnh ca module ny l khi to ra mt danh sch cc cm, sao cho mi cm c mt i tng duy nht, mi i tng thuc mt cm duy nht.public static DanhSachCum KhoiTaoDanhSachCum(MaTran maTranDT){DanhSachCum dsCum = new DanhSachCum(); if ((maTranDT.SoHang != 0) && (maTranDT.SoCot != 0)) { dsCum.SoCum = maTranDT.SoHang; dsCum.DsCum = new Cum[dsCum.SoCum]; for (int i = 0; i < dsCum.SoCum; i++) { Cum c = new Cum(); c.SoDT = 1; c.DsDT = new int[c.SoDT]; for (int j = 0; j < c.SoDT; j++) { c.DsDT[j] = i; } dsCum.DsCum[i] = new Cum(); dsCum.DsCum[i] = c; } } return dsCum;} TimNguong(MaTran maTranDT, DanhSachCum dsCum): nhim v chnh ca module ny l tm ra gi tr ngng ti mi vng lp thut ton tin hnh gom nhm cc cm li vi nhau theo gi tr ngng tm c.public static float TimNguong(MaTran maTranDT, DanhSachCum dsCum){MaTran maTranD = TaoMaTranD(maTranDT, dsCum); return MaTran.TimMinDuong(maTranD);} NhomCumTheoNguong(MaTran maTranDT, DanhSachCum dsCum, float Step): nhim v chnh ca module ny l to ra mt danh sch cm mi bng cch nhm cc cm ca danh sch c theo gi tr ngng Step cho trc.public static DanhSachCum NhomCumTheoNguong(MaTran maTranDT, DanhSachCum dsCum, float step){#region Tim ra danh sach cac cum can ghep lai voi nhau theo tieu chi khoang cach giua chung = stepDanhSachCum ds = TimDsCumCanGhep(maTranDT, dsCum, step); #endregion #region Ghep cac cum lai co trong danh sach can ghep DanhSachCum dsC = new DanhSachCum(); Cum[] _ds = new Cum[0]; int dem = 0; int[] mang = new int[0]; int k = 0; for (int i = 0; i < ds.SoCum; i++) { if (ds.DsCum[i].SoDT != 0) { Cum c = new Cum(); for (int j = 0; j < ds.DsCum[i].SoDT; j++) { c = Cum.ghep2Cum(c, dsCum.DsCum[ds.DsCum[i].DsDT[j]]); Array.Resize(ref mang, mang.Length + 1); mang[k++] = ds.DsCum[i].DsDT[j]; } Array.Resize(ref _ds, _ds.Length + 1); _ds[dem++] = c; } } for (int i = 0; i < dsCum.SoCum; i++) { if (XuLyMang.KiemTraCo(mang, i) == false) { Array.Resize(ref _ds, _ds.Length + 1); _ds[dem++] = dsCum.DsCum[i]; } } dsC.SoCum = _ds.Length; dsC.DsCum = _ds; return dsC; #endregion} GomCumLkDon(MaTran maTranDT): y l module cui quan trng nht, ni m tt c cng vic bt u v kt thc, module ny s to ra 2 danh sch: danh sch cc ngng v danh sch cc danh sch cm tng ng vi danh sch ngng .public void GomCumLkDon(MaTran maTranDT){DanhSachCum dsCum = KhoiTaoDanhSachCum(maTranDT); if (dsCum.SoCum != 0) { this.listDsCum = new DanhSachCum[1]; this.listDsCum[0] = dsCum; this.dsNguong = new float[1]; this.dsNguong[0] = 0; this.soBuocLap = 1; if (dsCum.SoCum != 1) { int i = 0; while (dsCum.SoCum != 1) { Array.Resize(ref dsNguong, dsNguong.Length + 1); dsNguong[++i] = TimNguong(maTranDT, dsCum); dsCum = NhomCumTheoNguong(maTranDT, dsCum, dsNguong[i]); dsCum.DsCum = SapXepDsCum(dsCum.DsCum); Array.Resize(ref listDsCum, listDsCum.Length + 1); listDsCum[i] = dsCum; } } } } 3. Mt s giao din chnh v kt qu chy chng trnh

4. nh gi Cu trc d liu s dng trong chng trnh l n gin, d hiu v d ci t v ch s dng n cc mng 1 chiu v 2 chiu. Kt qu chy thut ton c trnh by r rng, mch lc trn mt Datagridview luoiKetQua v cc textbox khc nh textbox s cm txtSoCum, textbox s bc lp txtSoBuocLapV y l chng trnh demo nn chng em ch xy dng vic tnh ton trn tp d liu s lm mu. Trong thc t chng ta c th s dng nhiu phng php khc nhau trong vic trch chn c trng d liu (nh PCA, LDA, CCA, ICA, KLDA, KERNEL) vo to ra cc vecto c trng v ri a vo thut ton. Khi chng ta cn xy dng thm 2 module na l module trich chn c trng v module trch xut d liu sang d liu thc t.Mt s bi ton thc t c th p dng vo chng trnh nh: Bi ton phn loi h s bnh n ca bnh nhn theo triu chng bnh, theo bnh Bi ton phn loi cc nhm khch hng tim nng trong kinh doanh ca mt doanh nghip. Bi ton phn loi th in t gip ngi dng d rng qun l hp th ca mnh nh gi phc tp v tnh hiu qu ca thut ton xy dng:Do s dng vic phn cm theo cc ngng bt k vi cc tp d liu dng s bt k nn thut ton c kh nng khm ph ra cc cm khc nhau vi hnh dng bt k, kch thc bt k. Vic phn cm theo cc ngng ch khng ph thuc vic ngi dng yu cu s cm nht nh gip chng trnh linh hot hn trong vic phn cm cc tp d liu ln. phc tp ca thut ton ci t l O(Tnk), vi T l s ln lp, n l s i tng, k l kch thc ca khng gian i tng. Khi kim nghim trn thc t chng trnh chy kh nhanh, mt khong 2.5 s cho tp d liu 50x7.