Ứng dụng một số thuật toán phân cụm phân tích dữ liệu ngân hàng

106 9 0
Ứng dụng một số thuật toán phân cụm phân tích dữ liệu ngân hàng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Doãn Hiền ỨNG DỤNG MỘT SỐ THUẬT TỐN PHÂN CỤM PHÂN TÍCH DỮ LIỆU NGÂN HÀNG LUẬN VĂN THẠC SỸ Hà Nội – 2006 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CƠNG NGHỆ Nguyễn Dỗn Hiền ỨNG DỤNG MỘT SỐ THUẬT TOÁN PHÂN CỤM PHÂN TÍCH DỮ LIỆU NGÂN HÀNG Ngành: Cơng nghệ Thơng tin Mã số: 1.01.10 LUẬN VĂN THẠC SỸ Ngƣời hƣớng dẫn khoa học: PGS TSKH Bùi Công Cƣờng Hà Nội – 2006 Lời cảm ơn Sau mt thi gian nghiờn cứu nỗ lực thực hiện, luận văn “Ứng dụng số thuật tốn phân cụm phân tích liệu Ngân hàng” hoàn thành Ngoài cố gắng thân, nhận đƣợc giúp đỡ từ nhà trƣờng, thầy giáo, gia đình bạn bè Trƣớc hết, xin đƣợc cảm ơn mẹ, ngƣời động viên chăm sóc tơi q trình học tập hồn thành luận văn Tơi xin cảm ơn thầy cô giáo trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội truyền đạt kiến thức q báu cho tơi nhƣ học viên lớp Cao học Công nghệ K10T3 Đặc biệt, xin cảm ơn sâu sắc tới thầy giáo Bùi Cơng Cƣờng, ngƣời trực tiếp tận tình giúp đỡ, hƣớng dẫn tơi q trình thực luận văn Nhân đây, gửi lời cảm ơn tới bạn bè lớp K10T3 sát cánh động viên ngày học tập trƣờng Đại học Công nghệ - Đại học Quốc Gia Hà Nội MỤC LỤC MỞ ĐẦU CHƢƠNG TỔNG QUAN .7 1.1 MỤC TIÊU, NỘI DUNG VÀ PHƢƠNG PHÁP NGHIÊN CỨU 1.2 TÓM TẮT NỘI DUNG CÁC CHƢƠNG CHƢƠNG PHÂN CỤM DỮ LIỆU 10 2.1 KHÁI NIỆM PHÂN CỤM DỮ LIỆU 10 2.2 CÁC BƢỚC CƠ BẢN ĐỂ PHÂN CỤM 11 2.3 CÁC ỨNG DỤNG CỦA PHÂN CỤM 12 2.4 CÁC LOẠI ĐẶC TRƢNG 13 2.5 CÁC ĐỊNH NGHĨA PHÂN CỤM 14 2.5.1 Định nghĩa phân cụm 14 2.5.2 Định nghĩa phân cụm mờ 15 2.6 CÁC ĐỘ ĐO 16 2.6.1 Độ đo không tƣơng tự 16 2.6.2 Độ đo tƣơng tự 16 2.6.3 Độ đo gần gũi tập X 17 2.6.4 Các độ đo gần gũi hai điểm 18 2.6.5 Các hàm gần gũi điểm tập 27 2.6.6 Các hàm gần gũi hai tập 29 2.6.7 Đánh giá phân cụm 30 CHƢƠNG MỘT SỐ THUẬT TOÁN PHÂN CỤM 32 3.1 GIỚI THIỆU VỀ CÁC THUẬT TOÁN PHÂN CỤM 32 3.1.1 Số phân cụm 32 3.1.2 Phân loại thuật toán phân cụm 33 3.2 THUẬT TOÁN PHÂN CỤM TUẦN TỰ 34 3.2.1 Thuật toán phân cụm 34 3.2.2 Ƣớc lƣợng số lƣợng phân cụm 37 3.2.3 Một thuật toán BSAS cải tiến 39 3.2.4 Sơ đồ với hai ngƣỡng 41 3.2.5 Thực tinh chỉnh 45 3.3 THUẬT TOÁN PHÂN CỤM K-MEANS 47 3.3.1 Thuật toán K-means 47 3.3.2 Các bƣớc thực thuật toán K-means 47 3.3.3 Ví dụ áp dụng thuật toán K-means 49 3.3.4 Một số vấn đề ƣu, nhƣợc điểm K-means 52 3.3.5 Độ phức tạp thuật toán K-means 53 3.4 THUẬT TOÁN PHÂN CỤM MỜ K-MEANS (FKM) 53 3.4.1 Khái niệm tập mờ phân cụm mờ 53 3.4.2 Thuật toán phân cụm mờ K-means 55 3.4.3 Mơ tả thuật tốn 57 3.4.4 Độ phức tạp thuật toán 58 3.5 THUẬT TOÁN PHÂN CỤM HIERACHICAL 59 3.5.1 Nguyên lý thực 59 3.5.2 Mơ tả thuật tốn 60 3.5.3 Ví dụ thuật tốn phân cấp 61 3.5.4 Ƣu, nhƣợc điểm thuật toán 65 3.6 THUẬT TOÁN PHÂN CỤM K-LÁNG GIỀNG GẦN 66 3.6.1 Thuật toán K-láng giềng gần 66 3.6.2 Cách thức thực thuật toán KNN 66 3.6.3 Một ví dụ áp dụng thuật tốn KNN 69 3.6.4 Ƣu, nhƣợc điểm thuật toán KNN 71 CHƢƠNG XÂY DỰNG CHƢƠNG TRÌNH PHÂN CỤM 72 4.1 PHÂN TÍCH CÁC MODULE 72 4.1.1 Module chuẩn bị liệu 72 4.1.2 Tinh chỉnh liệu 72 4.1.3 Hàm tính khoảng cách 73 4.2 CHƢƠNG TRÌNH MƠ PHỎNG CÁC THUẬT TOÁN 75 4.2.1 Giới thiệu chƣơng trình 75 4.2.2 Chuyển đổi tinh chỉnh liệu 75 4.2.3 Thuật toán K-means 76 4.2.4 Thuật toán phân cụm phân cấp (Hierachical) 77 4.2.5 Thuật toán Fuzzy K-means 79 CHƢƠNG ỨNG DỤNG PHÂN CỤM DỮ LIỆU GIAO DỊCH ATM 80 5.1 PHÁT BIỂU BÀI TOÁN 80 5.2 ÁP DỤNG VÀO CHƢƠNG TRÌNH ĐÃ XÂY DỰNG 80 5.2.1 Phƣơng pháp áp dụng 80 5.2.2 Đặc tả liệu cách thức thực 81 5.2.3 Phân tích, đánh giá kết 81 KẾT LUẬN 85 TÓM TẮT KẾT QUẢ 85 PHƢƠNG HƢỚNG PHÁT TRIỂN 85 TÀI LIỆU THAM KHẢO 87 PHỤ LỤC 1: MÃ NGUỒN CHƢƠNG TRÌNH 88 MODULE TÍNH KHOẢNG CÁCH GIỮA CÁC PHẦN TỬ 88 1.1 Tính khoảng cách theo Manhattan 88 1.2 Tính khoảng cách theo cơng thức Euclide 89 1.3 Tính khoảng cách hỗn hợp (công thức Kaufman Rousseeuw) 90 MODULE THỰC HIỆN THUẬT TOÁN K-MEANS 96 MODULE THỰC HIỆN THUẬT TOÁN HIERACHICAL 99 PHỤ LỤC 2: MÔ TẢ DỮ LIỆU GIAO DỊCH 102 Cấu trúc bảng liệu 102 Danh sách mã loại thẻ 102 Danh sách mã giao dịch 103 Định dạng liệu sau chuyển đổi 103 Định dạng liệu sau phân cụm thuật toán K-means 104 Định dạng liệu sau phân cụm thuật toán Hierachical 104 Định dạng phân cấp 105 MỞ ĐẦU Đối với Ngân hàng nay, nắm đƣợc khách hàng điểm mấu chốt tạo nên thành công kinh doanh Để đạt đƣợc điều này, việc cần thiết thiết lập đƣợc chiến lƣợc khách hàng đắn để cho giành đƣợc khách hàng giữ đƣợc khách hàng có chất lƣợng cao Để đạt đƣợc mục tiêu đó, Ngân hàng xây dựng hệ thống liệu khách hàng, từ phân tích xây dựng chiến lƣợc kinh doanh cho Thực tế cho thấy rằng, thay nhắm vào tất khách hàng để đối xử, khuyến khích, Ngân hàng lựa chọn khách hàng đáp ứng tiêu chuẩn lợi nhuận dựa thuộc tính giao dịch hay thuộc tính khác khách hàng [7] Trong năm gần đây, hệ thống máy giao dịch tự động (ATM – Automatic Teller Machine) đƣợc Ngân hàng Việt Nam triển khai phát triển mạnh mẽ Hệ thống cho phép khách hàng thực giao dịch cách tiện lợi thời gian (online 24/7) nhƣ cung cấp dịch vụ (vấn tin, chuyển khoản, rút tiền, toán hoá đơn, cách dịch vụ tín dụng ) Vì vậy, nói hệ thống ATM trở thành kênh quan trọng kênh giao dịch Ngân hàng cung cấp cho khách hàng Tuy nhiên, để phát huy hiệu hệ thống này, ngồi thơng tin cố định nhƣ lƣợng thẻ, lƣợng giao dịch, số máy ATM… Ngân hàng cần biết đƣợc thuộc tính ẩn khách hàng để đề chiến lƣợc phát triển đắn cho loại hình dịch vụ Đó lý cần đến khoa học khai phá liệu mà cụ thể hơn, nghiên cứu thuật tốn phân cụm liệu để tìm thuộc tính ẩn CHƢƠNG TỔNG QUAN 1.1 MỤC TIÊU, NỘI DUNG VÀ PHƢƠNG PHÁP NGHIÊN CỨU  Mục tiêu luận văn Nắm bắt đƣợc sở lý thuyết thuật toán phân cụm, đƣa phƣơng hƣớng giải cho toán áp dụng vào thực tế để thực toán phân cụm liệu ATM Ngân hàng  Nội dung luận văn Luận văn có nội dung nhƣ sau: - Khái quát sở lý thuyết phân cụm liệu - Tìm hiểu, trình bày số thuật toán phân cụm đƣợc sử dụng giớ1 - Xây dựng chƣơng trình mơ thuật tốn phân cụm liệu - Áp dụng vào bào toán phân cụm liệu ATM Ngân hàng Đầu tƣ Phát triển Việt nam (BIDV)  Phƣơng pháp nghiên cứu - Kết hợp lý thuyết, thực nghiệm thực tế để đƣa đánh giá, kết luận - Học hỏi, nghiên cứu, phân tích lý thuyết lĩnh vực có liên quan luận văn, từ nguồn: thầy giáo, cô giáo, nhà khoa học, chuyên gia, đồng nghiệp, sách, báo, tài liệu, internet, 5.5 - Tìm hiểu thực tế yêu cầu, tiêu chuẩn đánh giá hệ thống - Xây dựng sơ đồ cấu trúc, nguyên lý cho hệ thống cho phù hợp với yêu cầu khả năng, xây dựng mơ hình thực nghiệm - Đƣa kết luận từ kết nghiên cứu 1.2 TÓM TẮT NỘI DUNG CÁC CHƢƠNG Luận văn có chƣơng phần mở đầu, kết luận:  Phần mở đầu Phần nêu lên cần thiết vấn đề phân cụm liệu nói chung việc áp dụng vào phân tích liệu Ngân hàng để từ định hƣớng cho việc mở rộng dịch vụ với dối tƣợng khách hàng hợp lý  Chƣơng một: Tổng quan Chƣơng nêu lên mục tiêu, nội dung phƣơng pháp nghiên cứu để hoàn thành luận văn  Chƣơng hai: Phân cụm liệu Chƣơng nêu lên khái niệm phân cụm liệu, bƣớc để thực thuật toán phân cụm, loại đặc trƣng phân cụm định nghĩa liên quan đến phân cụm Chƣơng hai có đề cập đến số ứng dụng việc phân cụm nội dung quan trọng thuật toán phân cụm độ đo  Chƣơng ba: Một số thuật toán phân cụm liệu Chƣơng ba giới thiệu chi tiết số thuật toán phân cụm đƣợc áp dụng phổ biến, thuật toán phân cụm (Sequence), thuật toán phân cụm phân cấp (Hierachical), thuật tốn K-trung bình (K-Means), Ktrung bình mờ (Fuzzy K-Means) thuật tốn K láng giềng gần (K-Nearest Neighbour)  Chƣơng bốn: Xây dựng chƣơng trình phân cụm Chƣơng bốn giới thiệu chƣơng trình thực số thuật toán nêu Chƣơng ba bao gồm phần phân tích module thực phần chƣơng trình thực  Chƣơng năm: Ứng dụng phân cụm liệu giao dịch ATM Chƣơng năm giới thiệu ứng dụng toán phân cụm vào việc phân tích liệu giao dịch ATM Ngân hàng, cụ thể phát biểu toán, nêu phƣơng pháp áp dụng, đặc tả liệu, phân tích đánh giá kết đầu đề xuất phƣơng hƣớng phát triển chƣơng trình  Phần kết luận Phần nêu kết luận văn định hƣớng phát triển tƣơng lai  Phục lục mã nguồn chƣơng trình Mã nguồn thực thuật toán phân cụm số hàm liên quan nhƣ chuyển đổi liệu, tinh chỉnh liệu trƣớc phân cụm, tính khoảng cách số hàm khác liên quan 91 Sum = ' Tu so ap dung cho cong thuc Total = ' Mau so ap dung cho cong thuc ReDim a(Count), b(Count), c(Count), d(Count), e(Count) As Double For i = To Count a(i) = b(i) = c(i) = d(i) = e(i) = Next i 'Doan chuong trinh kiem tra xem co phai tat ca du lieu co cung kieu khong Check = True If Arr3(0) = "UNKNOW" Then Check = False Else For i = To Count If Arr3(i) Arr3(0) Then Check = False End If Next i End If If Check = True Then 'Tinh cho mot loai du lieu dong nhat Select Case Arr3(0) Case "BINARY" 'Nhi phan doi xung For i = To Count If (Arr1(i) = Arr2(i)) Then If Arr1(i) = Then a(i) = a(i) + Else d(i) = d(i) + End If Else If Arr1(i) = Then c(i) = c(i) + Else b(i) = b(i) + End If End If Sum = Sum + b(i) + c(i) Total = Total + a(i) + b(i) + c(i) + d(i) Next i 92 Case "ABINARY" 'Nhi phan bat doi xung For i = To Count If (Arr1(i) = Arr2(i)) Then If Arr1(i) = Then a(i) = a(i) + Else d(i) = d(i) + End If Else If Arr1(i) = Then c(i) = c(i) + Else b(i) = b(i) + End If End If Sum = Sum + b(i) + c(i) Total = Total + a(i) + b(i) + c(i) Next i Case "NORMINAL" For i = To Count If Arr1(i) Arr2(i) Then Sum = Sum + End If Next i Total = Count Case "INTERVAL" 'Truong hop se ap dung cong thuc Oclit hoac Manhattan For i = To Count DArr1(i) = Val(Trim(Arr1(i))) DArr2(i) = Val(Trim(Arr2(i))) Next i Mixed_distance = Euclid_Distance(DArr1, DArr2) Exit Function Case "ORDINAL" For i = To Count Sum = Sum + Abs(Arr1(i) - Arr2(i)) Next i Total = Count End Select Else ' Cac bien co kieu khac For i = To Count Select Case Arr3(i) Case "BINARY" If Arr1(i) = Arr2(i) Then 93 d(i) = Else d(i) = End If e(i) = Case "ABINARY" If Arr1(i) = Arr2(i) Then d(i) = If Arr1(i) = Then e(i) = Else e(i) = End If Else d(i) = e(i) = End If Case "NORMINAL" If Arr1(i) = Arr2(i) Then d(i) = Else d(i) = End If e(i) = Case "INTERVAL" 'Tim max, cua cac phan tu hai mang Arr1, Arr2 Max1_ = FindMax(Arr1, Arr3, "INTERVAL") Max2_ = FindMax(Arr2, Arr3, "INTERVAL") If Max1_ > Max2_ Then Max_ = Max1_ Else Max_ = Max2_ End If Min1_ = FindMin(Arr1, Arr3, "INTERVAL") Min2_ = FindMin(Arr2, Arr3, "INTERVAL") If Min1_ > Min2_ Then Min_ = Min2_ Else Min_ = Min1_ End If 'Chuan hoa d(i) If Max_ > Then If Max_ Min_ Then 94 d(i) = Abs(Val(Trim(Arr1(i))) - Val(Trim(Arr2(i)))) / (Max_ - Min_) Else d(i) = Abs(Val(Trim(Arr1(i))) - Val(Trim(Arr2(i)))) / Max_ End If Else d(i) = End if e(i) = Case "ORDINAL" 'Tim max, cua cac phan tu hai mang Arr1, Arr2 Max1_ = FindMax(Arr1, Arr3, "ORDINAL") Max2_ = FindMax(Arr2, Arr3, "ORDINAL") If Max1_ > Max2_ Then Max_ = Max1_ Else Max_ = Max2_ End If Min1_ = FindMin(Arr1, Arr3, "ORDINAL") Min2_ = FindMin(Arr2, Arr3, "ORDINAL") If Min1_ > Min2_ Then Min_ = Min2_ Else Min_ = Min1_ End If 'Chuan hoa d(i) If Max_ Min_ Then d(i) = Abs(Val(Trim(Arr1(i))) - Val(Trim(Arr2(i)))) / (Max_ - Min_) Else d(i) = Abs(Val(Trim(Arr1(i))) - Val(Trim(Arr2(i)))) / Max_ End If e(i) = Case "RATIO" 'Tim max, cua cac phan tu hai mang Arr1, Arr2 Max1_ = FindMax(Arr1, Arr3, "RATIO") Max2_ = FindMax(Arr2, Arr3, "RATIO") If Max1_ > Max2_ Then Max_ = Max1_ Else Max_ = Max2_ End If Min1_ = FindMin(Arr1, Arr3, "RATIO") Min2_ = FindMin(Arr2, Arr3, "RATIO") If Min1_ > Min2_ Then 95 Min_ = Min2_ Else Min_ = Min1_ End If 'Chuan hoa d(i) If Max_ Min_ Then d(i) = Abs((Val(Trim(Arr1(i))) - Val(Trim(Arr2(i))))) / (Max_ - Min_) Else d(i) = Abs((Val(Trim(Arr1(i))) - Val(Trim(Arr2(i))))) / Max_ End If e(i) = Case "UNKNOW" End Select Sum = Sum + d(i) Total = Total + e(i) Next i End If If Total Then Mixed_distance = Sum / Total Else Mixed_distance = End If End Function 96 MODULE THỰC HIỆN THUẬT TOÁN K-MEANS Public Sub KMEANS() 'Chuong trinh phan cum theo thuat toan Kmeans 'ClusterNum - So luong cum can phan 'Mang luu thu tu cua cac hang la tam cac cum Dim ClustArr() As Integer ReDim ClustArr(ClustNum) As Integer 'Mang luu thu tu cua cac hang la tam cac cum sau tinh lai khoang cach Dim ClustArr1() As Integer ReDim ClustArr1(ClustNum) As Integer 'Mang luu cac khoang cach tu mot dong toi cac tam cum Dim Distance() As Double ReDim Distance(ClustNum) As Double 'Mang luu cac cum cho cac phan tu Dim Clustcenter() As String Dim Min_ As Double Dim Cluster_ As Integer 'Bien kiem tra xem co su chuyen doi cum hay khong Dim Found As Boolean Dim isStillMoving As Boolean Dim i, j, k As Integer Dim Number_ As Integer Dim iFileNumber, jFileNumber As Integer Dim ClusterFile, OldClusterFile, TempStr As String Dim Str_ As String NumberofRow = GetLine(DataFile) ' Ma tran khoang cach cua tat ca cac dong file du lieu ReDim DistMatrix(NumberofRow, NumberofRow) As Double ' Mang luu cac cum cho cac phan tu ReDim Clustcenter(NumberofRow) As String 'Ma tran chua cac phan tu file du lieu ReDim LineMatrix(NumberofRow) As String For j = To NumberofRow - LineMatrix(j) = GetLineValue(DataFile, j + 2) Next j 97 'Tinh gia tri cho ma tran khoang cach Call DistCalculate 'Khoi tao cac dong dau tien cho n cum For i = To ClustNum - ClustArr(i) = i + Next i 'Xac dinh ten file Cluster ClusterFile = GetDir(DataFile) & "Kmeans\" & Left(GetFileName(DataFile), InStr(GetFileName(DataFile), ".")) & "Cluster" OldClusterFile = GetDir(DataFile) & "Kmeans\" & Left(GetFileName(DataFile), InStr(GetFileName(DataFile), ".")) & "Cluster.old" isStillMoving = True Number_ = 'Thuc hien cho den luc khong phan tu chuyen sang cum khac Do While isStillMoving And (Number_ < MaxInterative) i=0 Do While i < NumberofRow TempStr = LineMatrix(i) Min_ = ^ 10 'So lon Str_ = "" 'Vong lap tim cum ma co khoang cach toi dong du lieu thu i la nho nhat For j = To ClustNum - 'Distance(j) = CalculateDist(i, ClustArr(j)) 'Chi can lay phan tu cua ma tran Distance(j) = DistMatrix(i, ClustArr(j)) If Min_ >= Distance(j) Then Min_ = Distance(j) Cluster_ = j End If Next j Str_ = Trim(Str(i + 1)) & "&" & Trim(Str(Cluster_)) 'Luu vao mang de giam thoi gian truy cap file Clustcenter(i) = Str_ i=i+1 Loop 'Tinh lai tam cac cum dua tren file Cluster va file du lieu For j = To ClustNum - 98 'ClustArr1(j) = AllocateCenter(ClusterFile, j) 'Thay xu ly tren File bang xu ly tren mang ClustArr1(j) = AllocateCenter(Clustcenter, j) Next j isStillMoving = False For j = To ClustNum - If ClustArr(j) ClustArr1(j) Then 'Co su thay doi phan tu tam cum isStillMoving = True End If Next j 'Gan lai mang vua tinh duoc cho ten mang cu For j = To ClustNum - ClustArr(j) = ClustArr1(j) Next j Number_ = Number_ + Loop 'Chuyen du lieu phancum vao file ClusterFile jFileNumber = FreeFile Open ClusterFile For Output As #jFileNumber For i = To NumberofRow - 'Call AppendFile(ClusterFile, Clustcenter(i)) Write #jFileNumber, LineMatrix(i) & "&" & Right(Clustcenter(i), Len(Clustcenter(i)) InStr(Clustcenter(i), "&")) Next i Close #jFileNumber End Sub 99 MODULE THỰC HIỆN THUẬT TOÁN HIERACHICAL Public Sub HIERACHICAL() Dim i As Integer Dim j As Integer Dim k As Integer Dim h As Integer Dim NodeNumber As Integer Dim iNumber, jNumber As Integer Dim StrValue As String Dim OldTempFile As String Dim Min_ As Double Dim TempArr() As Double 'Ma tran tam thoi de luu khoang cach giua cac node 'Dim CulsterHier As String 'File luu ket qua phan cum theo thuat toan Hierachical Dim Tempfile As String 'File chua du lieu tam thoi qua trinh thuc hien phan cum Dim Trap As Boolean Dim TempText, TmpStr As String NumberofRow = GetLine(DataFile) 'Ma tran khoang cach cua tat ca cac dong file du lieu ReDim DistMatrix(NumberofRow, NumberofRow) As Double 'Tinh gia tri cho ma tran khoang cach Call DistCalculate ClusterHier = Left(DataFile, InStr(DataFile, ".")) & "Hier" Tempfile = Left(DataFile, InStr(DataFile, ".")) & "Temp" OldTempFile = Left(DataFile, InStr(DataFile, ".")) & "Temp.old" 'OldCulsterHier = Left(DataFile, InStr(DataFile, ".")) & "Hier.old" 'Tao file Temp ban dau voi gia tri cac dong la Line1 LineN jNumber = FreeFile Open Tempfile For Output As #jNumber For j = To NumberofRow StrValue = "Line" & Trim(Str(j)) Print #jNumber, StrValue Next j Close #jNumber i = NumberofRow NodeNumber = Do While i >= If Not CheckFileExist(ClusterHier) Then jNumber = FreeFile Open ClusterHier For Output As #jNumber Close #jNumber 100 End If ReDim TempArr(i, i) As Double Min_ = ^ 10 'So lon For j = To i - For k = To i - 'Tinh gia tri moi cua ma tran Temparr dua tren cac file moi TempFile va ClusterHier If j k Then TempArr(j, k) = CalcHierValue(j + 1, k + 1, Tempfile) If Min_ > TempArr(j, k) Then Min_ = TempArr(j, k) End If Else TempArr(j, k) = End If Next k Next j For j = To i - For k = To i - If j k And TempArr(j, k) = Then MsgBox Str(j) & " " & Str(k) End If Next k Next j 'Tim hai cum gan nhat de tao nen mot cum moi j=0 k=0 Trap = True Do While (j < i - 1) And Trap Do While (k < i - 1) And Trap If Min_ = TempArr(j, k) And (j k) Then Trap = False End If k=k+1 Loop j=j+1 Loop j=j-1 k=k-1 'j va k la hai dong de tao nen mot cum moi 'Tim hai dong file tam Call Change_File(Tempfile, "Rename", OldTempFile) jNumber = FreeFile Open OldTempFile For Input As #jNumber iNumber = FreeFile 101 Open Tempfile For Output As #iNumber 'Bo hai dong thu j va thu k 'Them vao dong cuoi NodeX h=1 TmpStr = "Node" & Trim(Str(NodeNumber)) Do While Not EOF(jNumber) Line Input #jNumber, TempText 'Bo di hai dong OldTmpFile If h j And h k Then Print #iNumber, TempText Else TmpStr = TmpStr & TempText End If h=h+1 Loop 'Ghi them mot dong Note vao file TempFile Print #iNumber, "Node" & Trim(Str(NodeNumber)) Close #jNumber Close #iNumber 'Them mot dong vao file phan cum co cum moi bang cach xoa dong j va k, them mot Node moi 'TmpStr = "Node" & Trim(Str(NodeNumber)) Call AppendFile(ClusterHier, TmpStr) 'Sau mot vong lap, so dong file du lieu se giam di 'So thu tu cua Node tang len mot i=i-1 NodeNumber = NodeNumber + Loop End Sub 102 PHỤ LỤC 2: MÔ TẢ DỮ LIỆU GIAO DỊCH Cơ sở liệu gốc: DB2 Cấu trúc bảng liệu Stt Tên trƣờng Kiểu liệu Number Diễn giải HKEY Lƣu số thứ tự giao dịch HIXHDR Text Mã loại giao dịch HCTXTERM1 Text CARDD Text Trƣờng lƣu số giá trị nhƣ máy ATM, mã chi nhánh, địa chỉ, thời gian thực giao dịch (năm/tháng/ngày/giờ/phút/giây) Số thẻ HCTXTERM2 Text Chuỗi lƣu số tiền TRNO Text Số giao dịch HCTXTERM3 Text Loại tiền giao dịch HCTXAUT1 Text Mã loại thẻ AC1 Text Số tài khoản liên kết 10 HCTXAUT2 Text Mã máy ATM 11 SHRTNM Text Tên chủ thẻ 12 CUID Text Mã số chủ thẻ Danh sách mã loại thẻ Stt Tên Loại Diễn giải GOLD001 V1 Etran365+ - Golden Card - Primary Card GOLD002 V2 Etran365+ - Golden Card - Secondary Card NORM001 N1 Etran365+ - Normal Card - Primary Card NORM002 N2 Etran365+ - Normal Card - Secondary Card NSV001 VS Thẻ Vạn dặm VIP001 V1 Etran365+ - VIP Card - Primary Card VIP002 V2 Etran365+ - VIP Card - Secondary Card VSV001 VS Power Card 103 Danh sách mã giao dịch Stt Loại Mã Diễn giải INQ 9101 Vấn tin tài khoản CPIN 9128 Thay đổi số PIN FST 9110 Rút tiền nhanh CWD 9111 Tút tiền thƣờng TFO 9113 Chuyển khoản chủ sở hữu TFT 9103 Chuyển khoản khác chủ sở hữu TFD 9119 Gửi tiết kiệm MST 9143 In kê giao dịch STM 9115 Liệt ke giao dịch 10 CBK 9114 Phát hành sổ séc 11 PIN 9131 Kiểm tra PIN 12 STA 9136 Thanh toán hoá đơn Định dạng liệu sau chuyển đổi NORM001&0&9143&9 GOLD001&500000&9110&9 VIP001&500000&9110&9 NORM001&10000&9110&9 NORM001&90000&9111&9 GOLD001&0&9101&9 NSV001&10000&9110&9 NSV001&400000&9111&9 NSV001&2000000&9110&9 NORM002&500000&9110&9 NORM002&0&9101&9 NORM001&2000000&9110&9 NORM002&0&9101&9 NORM001&0&9101&9 NORM001&10000&9110&9 NORM001&1000000&9110&9 104 Định dạng liệu sau phân cụm thuật toán K-means (Số cuối cụm liệu) NORM001&0&9143&9&1 GOLD001&500000&9110&9&1 VIP001&500000&9110&9&2 NORM001&10000&9110&9&0 NORM001&90000&9111&9&0 GOLD001&0&9101&9&1 NSV001&10000&9110&9&0 NSV001&400000&9111&9&1 NSV001&2000000&9110&9&2 NORM002&500000&9110&9&1 NORM002&0&9101&9&1 NORM001&2000000&9110&9&1 NORM002&0&9101&9&1 NORM001&0&9101&9&1 NORM001&10000&9110&9&0 NORM001&1000000&9110&9&1 Định dạng liệu sau phân cụm thuật toán Hierachical "Node1&Line1&Line10" "Node2&Line2&Line3" "Node3&Line11&Node1" "Node4&Line6&Line8" "Node5&Line7&Line9" "Node6&Line5&Node4" "Node7&Line4&Node3" "Node8&Node2&Node6" "Node9&Node5&Node7" "Node10&Node8&Node9" "Node11&Node10" 105 Định dạng phân cấp N10 N9 N7 N8 N3 N6 N1 L1 N5 L10 L11 L4 L7 N4 L9 L6 N2 L8 Cây phân cấp sau thực thuật toán Hierachical - Li: dòng liệu thứ i (Linei) - Nj: node thứ j phân cấp L5 L2 L3 ... phân cụm nội dung quan trọng thuật toán phân cụm độ đo  Chƣơng ba: Một số thuật toán phân cụm liệu Chƣơng ba giới thiệu chi tiết số thuật toán phân cụm đƣợc áp dụng phổ biến, thuật tốn phân cụm. .. giá phân cụm 30 CHƢƠNG MỘT SỐ THUẬT TOÁN PHÂN CỤM 32 3.1 GIỚI THIỆU VỀ CÁC THUẬT TOÁN PHÂN CỤM 32 3.1.1 Số phân cụm 32 3.1.2 Phân loại thuật toán phân cụm. .. thực thuật toán phân cụm số hàm liên quan nhƣ chuyển đổi liệu, tinh chỉnh liệu trƣớc phân cụm, tính khoảng cách số hàm khác liên quan 10 CHƢƠNG PHÂN CỤM DỮ LIỆU 2.1 KHÁI NIỆM PHÂN CỤM DỮ LIỆU Phân

Ngày đăng: 16/03/2021, 12:37

Mục lục

  • BÌA

  • LỜI CẢM ƠN

  • MỞ ĐẦU

  • CHƯƠNG 1. TỔNG QUAN

  • 1.1. MỤC TIÊU, NỘI DUNG VÀ PHƢƠNG PHÁP NGHIÊN CỨU

  • 1.2. TÓM TẮT NỘI DUNG CÁC CHƢƠNG

  • CHƯƠNG 2. PHÂN CỤM DỮ LIỆU

  • 2.1 KHÁI NIỆM PHÂN CỤM DỮ LIỆU

  • 2.2 CÁC BƯỚC CƠ BẢN ĐỂ PHÂN CỤM

  • 2.3 CÁC ỨNG DỤNG CỦA PHÂN CỤM

  • 2.4 CÁC LOẠI ĐẶC TRƯNG

  • 2.5 CÁC ĐỊNH NGHĨA PHÂN CỤM

  • 2.5.1 Định nghĩa phân cụm

  • 2.5.2 Định nghĩa phân cụm mờ

  • 2.6 CÁC ĐỘ ĐO

  • 2.6.1 Độ đo không tương tự

  • 2.6.2 Độ đo tương tự

  • 2.6.3 Độ đo gần gũi giữa các tập con của X

  • 2.6.4 Các độ đo gần gũi giữa hai điểm

  • 2.6.5 Các hàm gần gũi giữa một điểm và một tập

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan