Ƣu điểm
- Có thể xử lý đƣợc dữ liệu nhiễu. - Hiệu quả nếu tập dữ liệu học lớn. Nhƣợc điểm
- Cần xác định trƣớc giá trị của K - số láng giềng gần nhất.
- Khoảng cách cơ sở dùng để học không rõ ràng nên không biết đƣợc khoảng loại cách nào và thuộc tính nào đƣợc sử dụng sẽ cho kết quả tốt nhất. Liệu chúng ta có thể sử dụng tất cả các thuộc tính hay chỉ một số thuộc tính nào đó mà thôi?.
- Yêu cầu về tính toán là rất lớn bởi vì chúng ta cần tính tất cả khoảng cách từ các dữ liệu học đến dữ liệu mới cần phân loạ1.
CHƢƠNG 4. XÂY DỰNG CHƢƠNG TRÌNH PHÂN CỤM 4.1 PHÂN TÍCH CÁC MODULE
4.1.1 Module chuẩn bị dữ liệu
Để thực hiện đƣợc các chƣơng trình phân cụm, cần chuẩn bị dữ liệu đầu vào Module chuyển đổi dữ liệu thực hiện các chức năng đảm bảo đầu vào cho các thuật toán phân cụm, đó là:
- Xác định các thuộc tính đầu vào của các thuật toán, ở đây chính là xác định các trƣờng dữ liệu trong File.
- Chuyển đổi các kiểu trƣờng thành các kiểu thuộc tính thích hợp cho các module tính khoảng cách giữa các phần tử thuật toán phân cụm. Từ các kiểu dữ liệu thông thƣờng nhƣ chuỗi (String), số thực (Real, Double), số nguyên (Interger), kiểu logic (Boolean)… thành các kiểu dữ liệu dùng cho các thuật toán phân cụm nhƣ sau:
+ Danh nghĩa (NORMINAL )
+ Quãng tỷ lệ (INTERVAL-SCALED)
+ Biến nhị phân (BINARY) đối xứng và bất đối xứng. + Biến thứ tự (ORDINAL)
+ Biến tỷ lệ không tuyến tính (RATIO-SCALED)
4.1.2 Tinh chỉnh dữ liệu
Module tinh chỉnh dữ liệu thực hiện các chức năng làm sạch dữ liệu trƣớc khi thực hiện thuật toán phân cụm. Nó cho phép ngƣời dùng lựa chọn chuyển đổi dữ liệu từ dạng tỷ lệ không tuyến tính sang tỷ lệ tuyến tính, có loại bỏ dữ liệu khuyết thiếu khi thực hiện phân cụm hay không.
Các lựa chọn tinh chỉnh dữ liệu sẽ ảnh hƣởng trực tiếp tới kết quả thực hiện các thuật toán phân cụm về sau.
4.1.3 Hàm tính khoảng cách
Nhƣ đã trình bày tại chƣơng 1, các độ đo gần gũi hay khác biệt giữa các phần tử/các cụm sẽ quyết định cho việc phần tử sẽ thuộc vào cụm nào, do đó có thể nói các giải thuật tính khoảng cách chính là cốt lõi của các thuật toán phân cụm.
Tuỳ theo loại dữ liệu và tính chất bài toán mà có thể áp dụng các công thức tính khoảng cách khác nhau. Chẳng hạn:
Công thức Manhattan và công thức Euclide (hay tổng quát hoá là công thức Minkowsky) thƣờng đƣợc áp dụng cho các bài toán phân cụm với dữ liệu dạng số (Interval Scaled hay Ratio Scaled). Còn với các bài toán phân cụm dữ liệu hỗn hợp sẽ áp dụng công thức tính khoảng cách hỗn hợp của Kaufman và Rousseeuw.
- Công thức tính theo Euclide giữa đối tƣợng i và đối tƣợng j đƣợc định nghĩa nhƣ sau: 2 2 1 1 ) ... ( ) ( ) , (i j xi xj xip xjp d
- Công thức tính theo Manhattan đƣợc định nghĩa nhƣ sau.
| | ... | | ) , (i j xi1 xj1 xip xjp d
- Tổng quát hoá từ hai công thức trên, ta có cách tính Minkowsky nhƣ sau q jp ip j i x x x x j i d( , )(| 1 1|...| |)1/
- Công thức kết hợp các biến khác nhau vào một ma trận khác biệt đƣợc đề xuất bởi Kaufman và Rousseeuw năm 1998. Giả sử dữ liệu có chứa p biến với các thuộc tính kết hợp. Định nghĩa độ khác biệt d(i,j) giữa đối tƣợng i và j đƣợc xác định nhƣ sau:
p f f ij p f f ij f ij d j i d 1 ) ( 1 ) ( ) ( ) , ( với + f ij
= 1 khi cả hai giá trị xif và xjf của biến f không bị khuyếm khuyết. 0 trong trƣờng hợp ngƣợc lại
+
f ij
= 0 khi biến f có thuộc tính nhị phân bất đối xứng và hai đối tƣợng i và
j đều bằng 0.
+ Số d(i,j) là sự khác biệt giữa i và j.
+ Nếu biến f hoặc là nhị phân hay định danh, khi đó dij(f)đƣợc định nghĩa:
) (f ij d = 1 0 jf if jf if x x x x
+ Nếu dữ liệu là các khoảng tỷ lệ, khi đó dij(f)đƣợc định nghĩa:
f jf if f ij R x x d( ) | |
Với Rf là phạm vi của biến f, đƣợc định nghĩa nhƣ sau: Rf = kf
k x
Max - kf
k x Min
Với k là biến chạy qua tất cả các đối tƣợng không khiếm khuyết đối với biến f.
Ba hàm tính khoảng cách sẽ đƣợc xây dựng tƣơng ứng với ba công thức nêu trên.
4.2 CHƢƠNG TRÌNH MÔ PHỎNG CÁC THUẬT TOÁN 4.2.1 Giới thiệu chƣơng trình 4.2.1 Giới thiệu chƣơng trình
4.2.2 Chuyển đổi và tinh chỉnh dữ liệu a. Chuyển đổi dữ liệu a. Chuyển đổi dữ liệu
Đầu vào: File dữ liệu cần phân cụm (MS Database SQL ..)
Đầu ra: 02 text file
- 01 file chứa các thuộc tính để thực hiện thuật toán phân cụm.
- 01 file chứa dữ liệu của các trƣờng đã chọn. Mỗi một dòng trong file dữ liệu đƣợc chuyển thành một dòng trong Text file, các thuộc tính trên mỗi dòng ngăn cách nhau bởi dấu &.
Giao diện:
b. Tinh chỉnh dữ liệu
Đầu vào:
02 text file của module chuyển đổi dữ liệu.
Đầu ra:
02 text file thoả mãn các điều kiện sau:
- Tên các thuộc tính đƣợc thay thế bởi tên kiểu dữ liệu dùng cho các thuật toán phân cụm (4.1.1).
- Dữ liệu sẽ đƣợc chuyển sang dạng Log nếu chọn option chuyển sang dạng Log khi thực hiện module.
- Nếu lựa chọn option loại bỏ dữ liệu khuyết thiếu, các dòng không đủ dữ kiện sẽ bị lọc trƣớc khi thực hiện thuật toán.
Giao diện:
Module thực hiện chương trình: Phụ lục 1.
4.2.3 Thuật toán K-means
Đầu vào:
Đầu vào của thuật toán là file dữ liệu dạng Text, file chứa định dạng thuộc tính phân cụm và các tham số.
- Cách tính ma trận khoảng cách: một trong ba cách đƣợc phân tích tại 4.1.3.
- Cách tính trung bình: sẽ có hai cách tính trung bình cụm + Trung bình của các giá trị các phần tử (means)
+ Tìm phần tử có tổng khoảng cách đến các phần tử còn lại của cụm là nhỏ nhất (medians).
- Số lần chạy tối đa: số lần thử để cho kết quả phân cụm tốt nhất. - Sử dụng trọng số hay không: khi sử dụng trọng số, các thuộc tính sẽ
đƣợc tính thêm hệ số của trọng số.
- Chọn tâm cụm: chƣơng trình có thể chọn ngẫu nhiên hoặc ngƣời sử dụng nhập các giá trị tâm cụm.
Đầu ra:
Text file chứa dữ liệu đƣợc phân cụm, mỗi dòng của file chứa hai giá trị - Số dòng của file dữ liệu
- Số thứ tự của cụm mà dữ liệu đƣợc phân vào
Giao diện:
4.2.4 Thuật toán phân cụm phân cấp (Hierachical)
Đầu vào:
Thuật toán phân cấp không cần xác định trƣớc số cụm, đầu vào chỉ cần xác định các tham số
- Phƣơng pháp tính khoảng cách: một trong ba phƣơng thức (3.5.1) + Single linkage: khoảng cách giữa một cụm tới cụm khác bằng với khoảng cách ngắn nhất giữa các phần tử thuộc hai cụm đó.
+ Complete linkage: khoảng cách giữa một cụm tới cụm khác bằng với khoảng cách lớn nhất giữa các phần tử thuộc hai cụm đó.
+ Everage linkage: khoảng cách giữa một cụm tới cụm khác bằng với khoảng cách trung bình giữa các phần tử thuộc hai cụm đó.
- Sử dụng trọng số hay không: khi sử dụng trọng số, các thuộc tính sẽ đƣợc tính thêm hệ số của trọng số.
Đầu ra:
File dữ liệu đƣợc phân cấp theo dạng cây.
4.2.5 Thuật toán Fuzzy K-means
Đầu vào:
Tƣơng tự nhƣ thuật toán K-means, tuy nhiên, thuật toán Fuzzy K-means có thêm hai tham số đầu vào đó là số mũ và hằng số dừng.
- Số mũ: là số mũ của hàm thuộc khi thực hiện thuật toán
- Hằng số dừng: điều kiện để dùng thuật toán khi giá trị của hàm thuộc ở hai bƣớc gần nhau nhỏ hơn hằng số dừng.
Đầu ra:
Text file chứa dữ liệu đƣợc phân cụm, mỗi dòng của file chứa hai giá trị - Số dòng của file dữ liệu
- Số thứ tự của cụm mà dữ liệu đƣợc phân vào
CHƢƠNG 5. ỨNG DỤNG PHÂN CỤM DỮ LIỆU GIAO DỊCH ATM 5.1 PHÁT BIỂU BÀI TOÁN
Hệ thống ATM của Ngân hàng Đầu tƣ và Phát triển Việt nam (BIDV) đƣợc triển khai từ năm 2000. Trong giai đoạn thử nghiệm, hệ thống chỉ triển khai tại một số thành phố lớn nhƣ Hà Nội, TP HCM và cung cấp một số giao dịch cơ bản nhƣ rút tiền, đổi pin, vấn tin với một loại thẻ ATM duy nhất. Tuy nhiên, cho đến thời điểm này, hệ thống ATM đã đƣợc triển khai trên toàn quốc với hơn 10 loại hình giao dịch và 8 loại thẻ ATM đƣợc phát hành. Dịch vụ cung cấp cho khách hàng qua kênh ATM cũng đƣợc tăng cƣờng.
Nhằm đánh giá dịch vụ ATM một cách đúng đắn và đẩy mạnh phát triển các dịch vụ thích hợp qua kênh ATM, ngoài các thông tin tƣờng minh nhƣ số lƣợng thẻ phát hành, số tiền giao dịch, loại thẻ giao dịch … BIDV cần tìm hiểu thêm các thuộc tính ẩn nhƣ liên hệ giữa các loại thẻ và thời gian, số tiền giao dịch ra sao, các loại hình giao dịch liên quan đến vùng miền nhƣ thế nào. Bài toán phân cụm dữ liệu đƣợc áp dụng nhằm khám phá các thuộc tính ẩn đó.
5.2. ÁP DỤNG VÀO CHƢƠNG TRÌNH ĐÃ XÂY DỰNG 5.2.1 Phƣơng pháp áp dụng 5.2.1 Phƣơng pháp áp dụng
Phƣơng pháp phân cụm K-means đã đƣợc trình bày tại chƣơng 2 và chƣơng trình đã xây dựng ở chƣơng 3 sẽ đƣợc áp dụng xử lý bài toán phân cụm giao dịch ATM.
Cụ thể, chƣơng trình phân cụm sẽ thực hiện trên các thuộc tính loại thẻ, loại giao dịch, số tiền giao dịch và thời gian giao dịch.
5.2.2 Đặc tả dữ liệu và cách thức thực hiện
File giao dịch ATM của Ngân hàng ĐT&PT Việt nam có định dạng nhƣ đƣợc nêu tại phụ lục 2.
Để thực hiện thuật toán phân cụm giao dịch ATM, chƣơng trình cần tách các thuộc tính loại thẻ, loại giao dịch, số tiền giao dịch và thời gian giao dịch từ các trƣờng dữ liệu. Quá trình này có thể thực hiện bằng tay hoặc áp dụng module chuyển đổi dữ liệu của chƣơng trình.
File dữ liệu đầu vào khi đó sẽ là 02 text file nhƣ sau:
- ATM.data: chứa dữ liệu của các dòng sau khi đã chuyển đổi và tinh chỉnh, có dạng nhƣ sau: CardType&Amount&Transtype&Hour NSV001&300000&9110&19 NORM001&2000000&9110&9 NORM001&300000&9110&9 NORM001&100000&9110&7 NORM001&100000&9110&0 NORM001&1000000&9110&14 VIP001&1000000&9110&15 NSV001&100000&9110&17 VSV001&500000&9110&22
Dòng đầu tiên là tên các trƣờng hay các thuộc tính dùng để phân cụm, các dòng tiếp theo sẽ là giá trị các dòng dữ liệu. Các giá trị cách nhau bới dấu “&”
- ATM.scheme: chứa các trƣờng (04 trường) và kiểu dữ liệu phân cụm. Các giá trị cách nhau bới dấu “&”
CardType&NORMINAL Amount&INTERVAL Transtype&NORMINAL Hour&INTERVAL
5.2.3 Phân tích, đánh giá kết quả
Tổng số 0 1 2 1640 1889 1470 4999 Vấn tin 9101 0 491 287 778 Đổi Pin 9128 0 0 0 0 Rút tiền nhanh 9110 915 905 929 2749 Rút tiền thƣờng 9111 712 424 208 1344 Chuyển khoản cùng chủ 9113 0 0 0 0
Chuyển khoản cho ngƣời khác 9103 13 15 19 47
Mở sổ tiết kiệm 9119 0 54 0 54
In sao kê rút gọn 9143 0 0 27 27
Vấn tin sao kê 9115 0 0 0
Mở sổ séc 9114 0 0 0 0
PIN Verify 9131 0 0 0 0
Thanh toán hoá đơn 9136 0 0 0 0
1640 1889 1470
Etran365+ - Golden Card - Primary CardGOLD001 121 84 155 360
Etran365+ - Golden Card - Secondary CardGOLD002 13 11 12 36
Etran365+ - Normal Card - Primary CardNORM001 835 1425 0 2260
Etran365+ - Normal Card - Secondary CardNORM002 16 15 26 57
Thẻ Vạn dặm NSV001 625 332 333 1290
Etran365+ - VIP Card - Primary CardVIP001 0 0 863 863
Etran365+ - VIP Card - Secondary CardVIP002 15 14 49 78
Power Card VSV001 15 8 32 55 1640 1889 1470 1066 545 439 2050 574 91 90 755 0 667 107 774 0 586 834 1420 1640 1889 1470 0 0 0 0 1640 1889 1470 4999 0 0 0 0 0 0 0 0
Từ 6 giờ đến sau 12 giờ trƣa
Từ 12 giờ trƣa đến sau 18 giờ chiều Từ sau 18 giờ đến 24 giờ
Từ 500.000 đến dƣới 1.000.000 Từ 1.000.000 trở lên Giờ giao dịch Từ 0 đến sau 6 giờ sáng Loại thẻ Lƣợng tiền giao dịch Từ 0 đến dƣới 200.000 Từ 200.000 đến dƣới 500.000 Thuộc tính Cluster Loại giao dịch Phân tích kết quả
Từ kết quả thu đƣợc ở bảng trên, ta có thể nhận xét nhƣ sau: dựa trên các thuộc tính đã xác định trƣớc là loại giao dịch, loại thẻ, lƣợng tiền giao dịch
và thời gian giao dịch. Dữ liệu giao dịch ATM đƣợc phân thành 3 cụm với một số thuộc tính liên quan
- Cụm thứ nhất:
Khách hàng phần lớn sử dụng thẻ NORM001 và thẻ NSV001, một số sử dụng thẻ GOLD001 và chủ yếu thực hiện các giao dịch rút tiền nhanh, rút tiền bình thƣờng. Lƣợng tiền giao dịch của cụm khách hàng này nhỏ, tập trung vào khối lƣợng nhỏ hơn 200.000 và từ 200.000 đến 500.000.
- Cụm thứ 2:
Khách hàng sử dụng thẻ NORM001 và thẻ NSV001, loại giao dịch thƣờng thực hiện là vấn tin, rút tiền và rút tiền nhanh. Lƣợng tiền giao dịch của cụm này tập trung chủ yếu từ 500.000 đến 1.000.000 và hơn 1.000.000 đồng.
- Cụm thứ 3:
Ở cụm này, khách hàng sử dụng nhiều nhất là thẻ VIP001, sau đó mới đến thẻ NSV001 và các loại khác, loại giao dịch thƣờng thực hiện là rút tiền và rút tiền nhanh. Lƣợng tiền giao dịch của cụm này tập trung chủ yếu lớn hơn 1.000.000 đồng.
Về mặt thời gian thực hiện giao dịch của ba cụm: do lƣợng dữ liệu đƣa vào xử lý không nhiều nên các giao dịch đều thực hiện từ khoảng 6h sáng đến 12 giờ trƣa và không đƣa ra nhận xét nào đặc biệt.
Hạn chế của chƣơng trình
- Chƣơng trình hiện mới hoàn thành cho các thuật toán K-means và phân cấp.
- Về mặt kỹ thuật, chƣơng trình vẫn đang có một số vấn đề:
+ Tốc độ xử lý chƣa cao (nếu chạy trên 20.000 bản ghi thì cần thời gian hơn 10 phút).
+ Chƣa thực hiện đƣợc với số phần tử lớn (hạn chế của việc dùng mảng).
Do những hạn chế đó nên chƣơng trình cần cải tiến khi áp dụng vào thực tế, xử lý đƣợc lƣợng dữ liệu lớn (hàng triệu bản ghi).
KẾT LUẬN 1. TÓM TẮT KẾT QUẢ
Luận văn đã nêu khái quát về cơ sở lý thuyết phân cụm dữ liệu cũng nhƣ một số thuật toán phân cụm phổ biến nhƣ K-means, Fuzzy K-means, K-Nearest Neighbour, Sequential, Hierachical.
Luận văn cũng đã xây dựng đƣợc chƣơng trình để thực hiện các thuật toán, đó là K-means và Hierachical và một số module liên quan nhƣ các thuật toán tính khoảng cách theo các công thức khác nhau.
Đặc biệt, chƣơng trình đã đƣợc áp dụng cho việc phân cụm dữ liệu ATM của Ngân hàng ĐT&PT Việt nam và bƣớc đầu đã phát hiện đƣợc một số thuộc tính giúp Ngân hàng phân cụm khách hàng và đề xuất đƣợc những dịch vụ thích hợp để phục vụ nhu cầu của khách hàng.
Do chƣơng trình đƣợc viết tổng quát nên có thể áp dụng cho các loại hình giao dịch khác và tất cả các loại dữ liệu.
2. PHƢƠNG HƢỚNG PHÁT TRIỂN
Định hƣớng của đề tài là sẽ khắc phục một số hạn chế đã nêu ở trên và tiếp tục hoàn thành các thuật toán còn lại để có thể áp dụng vào thực tế. Cụ thể:
- Các module tiền xử lý dữ liệu sẽ đƣợc chỉnh sửa, bổ sung để tinh chỉnh dữ liệu trƣớc khi phân cụm.
- Tiếp tục hoàn thành module thực hiện thuật toán Fuzzy K-means và