Tương tự như giải thuật DataCubeSimpleGenFrequentItemsets ta có giải thuật DataCubeSimpleMining khai phá trực tiếp luật kết hợp mạnh từ Data-cube và nó cũng chỉ đơn giản là một truy vấn SQL như sau:
Bảng 2.15: Thuật toán DataCubeSimpleMining.
Input: Data-cube n chiều DataCube[d1, ..., dn], ngưỡng độ hỗ trợ cực tiểu minsup, ngưỡng độ tin
cậy tối thiểu minconf.
Output: Tập R chứa mọi luật kết hợp mạnh. select t1.ItemList as LeftRule
, (t.ItemList \ t1.ItemList) as RightRule , t.Value as SupportFrequency
, (t.Value / t1.Value) as Confidence into R
from DataCube as t
inner join DataCube as t1 on (t1.ItemList t.ItemList) where
t.Value >= minsup
and t.Value / t1.Value >= minconf ;
Ở đây để tăng hiệu năng của thuật toán DataCubeSimpleMining, ta chỉ cần thực hiện sắp xếp hoặc đặt chỉ mục (Indexing) cho trường Value và ItemList của DataCube là đủ.
2.5.3. Đánh giá
Trong trường hợp khai phá luật kết hợp trực tiếp dựa trên Data-cube, chúng ta cũng dễ thấy tính đúng đắn của thuật toán. Còn về độ phức tạp, ta thấy thuật toán gồm có 2 pha:
- Pha đầu là xây dựng Data-cube, độ phức tạp là O(s).
- Pha sau là khai phá tập luật kết hợp mạnh trực tiếp từ Data-cube, độ phức tạp là
k*O(s*log(s)). Đây chính là độ phức tạp khi thực hiện phép join 2 bảng đã được chỉ mục hoá.
Trong đó s là kích thước của Data-cube, s = |d1| * ... * |dn|, và 0 < k < 1.
Về mặt lý thuyết, trong trường hợp xấu nhất thì pha sau có độ phức tạp lớn hơn, tuy nhiên trong thực tế k << 1, thậm chí k*log(s) << 1 nên độ phức tạp chủ yếu vẫn tập trung vào pha đầu với độ phức tạp O(s). Do đó như đã phân tích ở trên, việc khai phá dữ liệu dựa trên Data-cube chỉ áp dụng trong trường hợp người sử dụng thực hiện khai phá nhiều lần trên cùng một CSDL mà chỉ thay đổi minsup và minconf mà thôi, và nó thường được áp dụng trong khai phá dữ liệu trực tuyến (Online mining) và khai phá dữ liệu trong Data warehouse.
43
Chương 3: XÂY DỰNG ỨNG DỤNG MINH HOẠ 3.1. Giới thiệu
Như đã trình bày trong phần Mở đầu, mong muốn của đề tài là trình bày cơ sở lý thuyết và sau đó là xây dựng được ứng dụng thực tiễn cho phép khai phá dữ liệu phát hiện luật kết hợp từ kho dữ liệu của ngân hàng.
Chúng ta cũng thấy rằng hệ thống giao dịch hàng ngày của Ngân hàng là hệ thống OLTP. Sau một thời gian hoạt động, dữ liệu lịch sử của hệ thống này cần được làm sạch, trích chọn và lưu trữ vào Kho dữ liệu theo một khuôn dạng chuẩn để tiện cho công tác bảo trì, đối chiếu và tạo các báo cáo cần thiết. Do vậy Kho dữ liệu của Ngân hàng thường lưu trữ một lượng dữ liệu khổng lồ về lịch sử giao dịch của khách hàng (tối thiểu cũng cỡ hàng tỉ bản ghi) và vấn đề là từ lượng dữ liệu khổng lồ nhưng lại hàm chứa rất ít tri thức này, chúng ta có thể trích rút ra những tri thức phục vụ cho việc quản lý hay không ? Câu trả lời là hoàn toàn có thể, chúng ta có thể nêu một số ứng dụng thực tiễn như:
(1)Đưa ra các tri thức giúp dự đoán cung tiền và cầu về tiền tại mỗi thời kỳ.
Điều này có ý nghĩa quan trọng trong việc cân bằng giữa cung và cầu tiền tệ của bản thân ngân hàng, đặc biệt khi có các yếu tố tác động như: Ngân hàng trung ương tăng / giảm tỉ lệ dự trữ bắt buộc, khi chỉ số giá tiêu dùng biến động, khi các ngân hàng cạnh tranh đồng loạt tăng / giảm lãi suất, .... Thật vậy, khi cung tiền nhiều hơn cầu về tiền, tiền trong ngân hàng sẽ dư thừa, lãng phí, trong khi lãi suất vẫn phải trả cho người gửi. Ngược lại khi cầu tiền nhỏ hơn cung tiền, ngân hàng sẽ đánh mất đi cơ hội của chính mình, thậm chí trong một số trường hợp phải chấp nhận đi vay nóng từ các tổ chức tín dụng khác với lãi suất cao để đảm bảo uy tín và tính thanh khoản của bản thân ngân hàng.
(2)Đưa ra các tri thức liên quan tới thói quen sử dụng tiền của các loại khách hàng. Điều này đặc biệt có ý nghĩa quan trọng trong việc huy động vốn - giúp đảm bảo nguồn cung tiền ổn định, cũng như giúp xác định được khi nào và nơi nào khách hàng cần tiền để kịp thời cho vay – giúp đảm bảo cầu về tiền ổn định. Ví dụ: những người độ tuổi trung niên thường có một lượng vốn nhàn rỗi tương đối lớn, họ cũng là người không có xu hướng tiêu dùng nhiều, đây chính là đối tượng lý tưởng cho ngân hàng hướng họ tới những sản phẩm tiền gửi mang tính dài hạn và do vậy đảm bảo về lượng cung tiền. Ngược lại những người trẻ tuổi lại là những người có xu hướng tiêu dùng lớn, họ chính là đối tượng lý tưởng để ngân hàng phát hành các thẻ tín dụng hỗ trợ thấu chi tín chấp, với loại thẻ này họ có thể nhanh chóng mua được những hàng hoá mà họ thích thậm chí vượt quá cả số dư trong tài khoản (thấu chi). Tất nhiên điều kiện thấu chi cũng khá chặt chẽ: khách hàng phải chứng minh được khả năng tài chính và tính ổn định của nguồn thu nhập của mình, ....
Ngoài ra còn nhiều ứng dụng thực tiễn khác, nhưng tựu chung lại các ứng dụng liên quan đều hướng tới việc đưa ra các tri thức hỗ trợ việc ra quyết định của các cấp quản lý. Trên tinh thần như vậy luận văn rất mong muốn đưa ra một ứng dụng gần gũi và có thể áp dụng trực tiếp tại một ngân hàng nhất định, tuy nhiên thực tế gặp phải một số vấn đề khó khăn về mặt thu thập và công bố thông tin:
- Việc thu thập dữ liệu thực tế của một ngân hàng gặp khó khăn do ngân hàng là một pháp nhân có trách nhiệm giữ bí mật về toàn bộ thông tin liên quan tới khách hàng. - Trong trường hợp việc thu thập và có được thông tin là hợp pháp thì cũng chỉ được
ứng dụng trong nội bộ ngân hàng mà không được công bố ra ngoài.
Do đó trong chương này tạm dừng lại ở việc xây dựng khung ứng dụng (Framework) từ chuẩn hoá dữ liệu, khai phá luật kết hợp từ Data-cube cho tới cài đặt triển khai khung ứng dụng này trên một CSDL mẫu. Khung ứng dụng được triển này được viết bằng ngôn ngữ lập trình C#.Net kết hợp với hệ quản trị CSDL Sql Server, đây là những công cụ rất mạnh và nổi tiếng của Microsoft với engine mạnh mẽ (đặc biệt là OLAP-engine của Sql Server), rất tin cậy và giao diện đồ hoạ tốt.