29.01.2015 Views

Tổng quan về khai phá dữ liệu - Đại học Duy Tân

Tổng quan về khai phá dữ liệu - Đại học Duy Tân

Tổng quan về khai phá dữ liệu - Đại học Duy Tân

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

TRƢỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM<br />

KHOA CÔNG NGHỆ THÔNG TIN<br />

BỘ MÔN HỆ THỐNG THÔNG TIN<br />

-----***-----<br />

BÀI GIẢNG<br />

KHAI PHÁ DỮ LIỆU<br />

TÊN HỌC PHẦN: KHAI PHÁ DỮ LIỆU<br />

MÃ HỌC PHẦN: 17409<br />

TRÌNH ĐỘ ĐÀO TẠO : ĐẠI HỌC CHÍNH QUY<br />

DÙNG CHO SV NGÀNH: CÔNG NGHỆ THÔNG TIN<br />

HẢI PHÒNG - 2011


MỤC LỤC<br />

2<br />

Nội dung<br />

Trang<br />

Chƣơng 1. Tổng <strong>quan</strong> kho dữ liệu (Data warehouse) 5<br />

1.1. Các chiến lược xử lý và <strong>khai</strong> thác thông tin 5<br />

1.2. Định nghĩa kho dữ liệu 6<br />

1.3. Mục đích của kho dữ liệu 7<br />

1.4. Đặc tính của dữ liệu trong kho dữ liệu 8<br />

1.5. Phân biệt kho dữ liệu với các cơ sở dữ liệu tác nghiệp 10<br />

Chƣơng 2. Tổng <strong>quan</strong> về <strong>khai</strong> phá dữ liệu 13<br />

2.1. Khai phá dữ liệu là gì 13<br />

2.2. Phân loại các hệ thống <strong>khai</strong> phá dữ liệu 13<br />

2.3. Những nhiệm vụ chính 14<br />

2.4. Tích hợp hệ thống <strong>khai</strong> phá dữ liệu với cơ sở dữ liệu hoặc kho 16<br />

2.5. Các phương pháp <strong>khai</strong> phá dữ liệu 17<br />

2.6. Lợi thế của <strong>khai</strong> phá dữ liệu so với phương pháp cơ bản 21<br />

2.7. Lựa chọn phương pháp 23<br />

2.8. Những thách thức trong ứng dụng và nghiên cứu trong kỹ thuật <strong>khai</strong> phá dữ liệu 24<br />

Chƣơng 3. Tiền xử lý dữ liệu 28<br />

3.1. Mục đích 28<br />

3.2. Làm sạch dữ liệu 29<br />

3.3. Tích hợp và biến đổi dữ liệu 31<br />

Chƣơng 4. Khai phá dựa trên các mẫu phổ biến và luật kết hợp 40<br />

4.1. Khái niệm cơ bản 40<br />

4.2. Luật kết hợp 41<br />

4.3. Phát biểu bài toán phát hiện luật kết hợp 44<br />

4.4. Phát hiện luật kết hợp dựa trên hệ thông tin nhị phân 45<br />

4.5. Khai phá luật kết hợp trên hệ thông tin mờ 51<br />

Chƣơng 5. Phân lớp và dự đoán 68<br />

5.1. Khái niệm cơ bản 68<br />

5.2. Phân lớp dựa trên cây quyết định 70


3<br />

Tên học phần: Khai phá dữ liệu Loại học phần: 2<br />

Bộ môn phụ trách giảng dạy: Hệ thống Thông tin Khoa phụ trách: CNTT.<br />

Mã học phần: 17409 Tổng số TC: 2<br />

Tổng số tiết Lý thuyết Thực hành/ Xemina Tự học Bài tập lớn Đồ án môn học<br />

45 30 15 0 không không<br />

Học phần học trƣớc: Cơ sở dữ liệu; Cơ sở dữ liệu nâng cao; Hệ quản trị CSDL<br />

Học phần tiên quyết: Không yêu cầu.<br />

Học phần song song: Không yêu cầu.<br />

Mục tiêu của học phần:<br />

Cung cấp các kiến thức cơ bản về kho dữ liệu lớn và các kỹ thuật <strong>khai</strong> phá dữ liệu.<br />

Nội dung chủ yếu:<br />

Tổng <strong>quan</strong> về kho dữ liệu và <strong>khai</strong> phá dữ liệu; Phương pháp tổ chức lưu trữ dữ liệu lớn, và<br />

các kỹ thuật <strong>khai</strong> phá dữ liệu; Phân tích dữ liệu sử dụng phương pháp phân cụm; Ứng dụng kỹ<br />

thuật <strong>khai</strong> phá dữ liệu.<br />

Nội dung chi tiết:<br />

PHÂN PHỐI SỐ TIẾT<br />

TS LT TH BT KT<br />

TÊN CHƢƠNG MỤC<br />

Chƣơng 1. Tổng <strong>quan</strong> kho dữ liệu (Data warehouse) 6 4 2<br />

1.1. Các chiến lược xử lý và <strong>khai</strong> thác thông tin<br />

1.2. Định nghĩa kho dữ liệu<br />

1.3. Mục đích của kho dữ liệu<br />

1.4. Đặc tính của dữ liệu trong kho dữ liệu<br />

1.5. Phân biệt kho dữ liệu với các cơ sở dữ liệu tác<br />

nghiệp<br />

Chƣơng 2. Tổng <strong>quan</strong> về <strong>khai</strong> phá dữ liệu 9 6 3<br />

2.1. Khai phá dữ liệu là gì<br />

2.2. Phân loại các hệ thống <strong>khai</strong> phá dữ liệu<br />

2.3. Những nhiệm vụ chính<br />

2.4. Tích hợp hệ thống <strong>khai</strong> phá dữ liệu với cơ sở dữ liệu<br />

hoặc kho<br />

2.5. Các phương pháp <strong>khai</strong> phá dữ liệu<br />

2.6. Lợi thế của <strong>khai</strong> phá dữ liệu so với phương pháp cơ<br />

bản<br />

2.7. Lựa chọn phương pháp<br />

2.8. Những thách thức trong ứng dụng và nghiên cứu<br />

trong kỹ thuật <strong>khai</strong> phá dữ liệu<br />

Chƣơng 3. Tiền xử lý dữ liệu 9 6 3<br />

3.1. Mục đích<br />

3.2. Làm sạch dữ liệu<br />

3.3. Tích hợp và biến đổi dữ liệu<br />

Chƣơng 4. Khai phá dựa trên các mẫu phổ biến và<br />

luật kết hợp<br />

12 8 4<br />

4.1. Khái niệm cơ bản<br />

4.2. Luật kết hợp<br />

4.3. Phát biểu bài toán phát hiện luật kết hợp<br />

4.4. Phát hiện luật kết hợp dựa trên hệ thông tin nhị phân<br />

4.5. Khai phá luật kết hợp trên hệ thông tin mờ<br />

Chƣơng 5. Phân lớp và dự đoán 9 6 3<br />

5.1. Khái niệm cơ bản<br />

5.2. Phân lớp dựa trên cây quyết định


4<br />

Nhiệm vụ của sinh viên:<br />

Tham dự các buổi học lý thuyết và thực hành, làm các bài tập được giao, làm các bài thi giữa<br />

học phần và bài thi kết thúc học phần theo đúng quy định.<br />

Tài liệu học tập:<br />

1. J. Han, M. Kamber, Data Mining: Concepts and Techniques, 2 nd edition, Morgan<br />

Kaufmann, 2006.<br />

2. P. N. Tan, M. Steinbach, V. Kumar, Introduction to Data Mining, Addison-Wesley, 2006.<br />

3. Paulraj Ponnian, Data Warehousing Fundamentals, John Wiley.<br />

Hình thức và tiêu chuẩn đánh giá sinh viên:<br />

- Hình thức thi: tự luận hoặc trắc nghiệm.<br />

- Tiêu chuẩn đánh giá sinh viên: căn cứ vào sự tham gia học tập của sinh viên trong các buổi<br />

học lý thuyết và thực hành, kết quả làm các bài tập được giao, kết quả của các bài thi giữa học phần<br />

và bài thi kết thúc học phần.<br />

Thang điểm: Thang điểm chữ A, B, C, D, F.<br />

Điểm đánh giá học phần: Z = 0,3X + 0,7Y.<br />

Bài giảng này là tài liệu chính thức và thống nhất của Bộ môn Hệ thống Thông tin, Khoa<br />

Công nghệ Thông tin và được dùng để giảng dạy cho sinh viên.<br />

Ngày phê duyệt: / /<br />

Trƣởng Bộ môn


5<br />

Chương 1. Tổng <strong>quan</strong> về kho dữ liệu (Datawarehouse)<br />

1.1. Các chiến lƣợc xử lý và <strong>khai</strong> thác thông tin<br />

Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh<br />

vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng nghĩa với lượng dữ liệu đã được<br />

các cơ <strong>quan</strong> thu thập và lưu trữ ngày một tích luỹ nhiều lên. Họ lưu trữ các dữ liệu này vì cho rằng<br />

trong nó ẩn chứa những giá trị nhất định nào đó. Tuy nhiên, theo thống kê thì chỉ có một lượng nhỏ<br />

của những dữ liệu này (khoảng từ 5% đến 10%) là luôn được phân tích, số còn lại họ không biết sẽ<br />

phải làm gì hoặc có thể làm gì với chúng nhưng họ vẫn tiếp tục thu thập rất tốn kém với ý nghĩ lo sợ<br />

rằng sẽ có cái gì đó <strong>quan</strong> trọng đã bị bỏ qua sau này có lúc cần đến nó. Một vấn đề đặt ra là làm thế<br />

nào để tổ chức, <strong>khai</strong> thác những khối lượng dữ liệu khổng lồ và đa dạng đó được<br />

Về phía người sử dụng, các khó khăn gặp phải thường là:<br />

Không thể tìm thấy dữ liệu cần thiết<br />

Dữ liệu rải rác ở rất nhiều hệ thống với các giao diện và công cụ khác nhau, khiến<br />

tốn nhiều thời gian chuyền từ hệ thống này sang hệ thống khác.<br />

Có thể có nhiều nguồn thông tin đáp ứng được đòi hỏi, nhưng chúng lại có những<br />

khác biệt và khó phát hiện thông tin nào là đúng.<br />

Không thể lấy ra được dữ liệu cần thiết<br />

Thường xuyên phải có chuyên gia trợ giúp, dẫn đến công việc bị dồn đống.<br />

Có những loại thông tin không thể lấy ra được nếu không mở rộng khả năng làm<br />

việc của hệ thống có sẵn.<br />

Không thể hiểu dữ liệu tìm thấy<br />

Mô tả dữ liệu nghèo nàn và thường xa rời với các thuật ngữ nghiệp vụ quen thuộc.<br />

Không thể sử dụng được dữ liệu tìm thấy<br />

Kết quả thường không đáp ứng về bản chất dữ liệu và thời gian tìm kiếm.<br />

Dữ liệu phải chuyên đổi bằng tay vào môi trường làm việc của người sử dụng.<br />

Những vấn đề về hệ thống thông tin:<br />

“Phát triển các chương trình ứng dụng khác nhau là không đơn giản”.<br />

Một chức năng được thể hiện ở rất nhiều chương trình, nhưng việc tổ chức và sử<br />

dụng nó là rất khó khăn do hạn chế về kỹ thuật.<br />

Chuyển đổi dữ liệu từ các khuôn dạng tác nghiệp khác nhau để phù hợp với người sử<br />

dụng là rất khó khăn.<br />

“<strong>Duy</strong> trì những chương trình này gặp rất nhiều vấn đề”<br />

Một thay đổi ở một ứng dụng sẽ ảnh hưởng đến các ứng dụng khác có liên <strong>quan</strong>.


6<br />

Thông thường sự phụ thuộc lẫn nhau giữa các chương trình không rõ ràng hoặc là<br />

không xác định được.<br />

Do sự phức tạp của công việc chuyển đổi cũng như toàn bộ quá trình bảo trì dẫn đến<br />

mã nguồn của các chương trình trở nên hết sức phức tạp.<br />

“Khối lượng dữ liệu lưu trữ tăng rất nhanh”<br />

Không kiểm soát được khả năng chồng chéo dữ liệu trong các môi trường thông tin<br />

dẫn đến khối lượng dữ liệu tăng nhanh.<br />

“Quản trị dữ liệu phức tạp”<br />

Thiếu những định nghĩa chuẩn, thống nhất về dữ liệu dẫn đến việc mất khả năng<br />

kiểm soát môi trường thông tin.<br />

Một thành phần dữ liệu tồn tại ở nhiều nguồn khác nhau.<br />

Giải pháp cho tất cả các vấn đề nêu trên chính là việc xây dựng một kho dữ liệu (Data<br />

Warehouse) và phát triển một khuynh hướng kỹ thuật mới đó là kỹ thuật phát hiện tri thức và <strong>khai</strong><br />

phá dữ liệu (KDD - Knowledge Discovery and Data Mining).<br />

kho dữ liệu…<br />

Trước hết, chúng ta nhắc lại một vài khái niệm cơ bản liên <strong>quan</strong> đến dữ liệu, cơ sở dữ liệu,<br />

1.2. Định nghĩa kho dữ liệu<br />

Thông thường chúng ta coi dữ liệu như một dãy các bit, hoặc các số và các ký hiệu, hoặc các<br />

“đối tượng” với một ý nghĩa nào đó khi được gửi cho một chương trình dưới một dạng nhất định.<br />

Chúng ta sử dụng các bit để đo lường các thông tin và xem nó như là các dữ liệu đã được lọc bỏ các<br />

dư thừa, được rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu. Chúng ta có thể<br />

xem tri thức như là các thông tin tích hợp, bao gồm các sự kiện và các mối <strong>quan</strong> hệ giữa chúng. Các<br />

mối <strong>quan</strong> hệ này có thể được hiểu ra, có thể được phát hiện, hoặc có thể được học. Nói cách khác,<br />

tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao .<br />

Theo John Ladley, kỹ nghệ kho dữ liệu (DWT - Data Warehouse Technology) là tập các<br />

phương pháp, kỹ thuật và các công cụ có thể kết hợp, hỗ trợ nhau để cung cấp thông tin cho người<br />

sử dụng trên cơ sở tích hợp từ nhiều nguồn dữ liệu, nhiều môi trường khác nhau.<br />

Kho dữ liệu (Data Warehouse), là tuyển chọn các cơ sở dữ liệu tích hợp, hướng theo các<br />

chủ đề nhất định, được thiết kế để hỗ trợ cho chức năng trợ giúp quyết định, mà mỗi đơn vị dữ liệu<br />

liên <strong>quan</strong> đến một khoảng thời gian cụ thể.<br />

Terabytes.<br />

Kho dữ liệu thường có dung lượng rất lớn, thường là hàng Gigabytes hay có khi tới hàng<br />

Kho dữ liệu được xây dựng để tiện lợi cho việc truy cập từ nhiều nguồn, nhiều kiểu dữ liệu<br />

khác nhau sao cho có thể kết hợp được cả những ứng dụng của các công nghệ hiện đại và vừa có thể<br />

kế thừa được từ các hệ thống đã có từ trước. Dữ liệu được phát sinh từ các hoạt động hàng ngày và<br />

được thu thập xử lý để phục vụ công việc nghiệp vụ cụ thể của một tổ chức, vì vậy thường được gọi


7<br />

là dữ liệu tác nghiệp và hoạt động xử lý dữ liệu này gọi là xử lý giao dịch trực tuyến (OLPT - On<br />

Line Transaction Processing).<br />

như sau:<br />

Dòng dữ liệu trong một tổ chức (cơ <strong>quan</strong>, xí nghiệp, công ty, vv…) có thể mô tả khái quát<br />

Dữ liệu tác nghiệp<br />

HỆ THỐNG<br />

DI SẢN<br />

(có sẵn)<br />

Kho dữ liệu<br />

Kho dữ liệu cục bộ<br />

Kho dữ liệu cá nhân<br />

Siêu dữ liệu<br />

Hình 1.1. Luồng dữ liệu trong một tổ chức<br />

Dữ liệu cá nhân không thuộc phạm vi quản lý của hệ quản trị kho dữ liệu. Nó chứa các<br />

thông tin được trích xuất ra từ các hệ thống dữ liệu tác nghiệp, kho dữ liệu và từ những kho dữ liệu<br />

cục bộ của những chủ đề liên <strong>quan</strong> bằng các phép gộp, tổng hợp hay xử lý theo một cách nào đó.<br />

1.3. Mục đích của kho dữ liệu<br />

Mục tiêu chính của kho dữ liệu nhằm đáp ứng các tiêu chuẩn cơ bản:<br />

Phải có khả năng đáp ứng mọi yêu cầu về thông tin của người sử dụng.<br />

Hỗ trợ để các nhân viên của tổ chức thực hiên tốt, hiệu quả công việc của mình, như có<br />

những quyết định hợp lý, nhanh và bán được nhiều hàng hơn, năng suất cao hơn, thu được<br />

lợi nhuận cao hơn ..v..v..<br />

Giúp cho tổ chức xác định, quản lý và điều hành các dự án, các nghiệp vụ một cách hiệu quả<br />

và chính xác.<br />

Tích hơp dữ liệu và siêu dữ liệu từ nhiều nguồn khác nhau.<br />

Muốn đạt được những yêu cầu trên thì DW phải:<br />

Nâng cao chất lượng dữ liệu bằng các phương pháp làm sạch và tinh lọc dữ liệu theo những<br />

hướng chủ đề nhất định.<br />

Tổng hợp và kết nối dữ liệu.<br />

Đồng bộ hoá các nguồn dữ liệu với DW.<br />

Phân định và đồng nhất các hệ quản trị cơ sở dữ liệu tác nghiệp như là các công cụ chuẩn để<br />

phục vụ cho DW.


8<br />

Quản lí siêu dữ liệu (metadata)<br />

Cung cấp thông tin được tích hợp, tóm tắt hoặc được liên kết, tổ chức theo các chủ đề.<br />

Các kết quả <strong>khai</strong> thác kho dữ liệu được dùng trong hệ thống hỗ trợ quyết định (Decision<br />

Support System - DSS), các hệ thống thông tin tác nghiệp hoặc hỗ trợ cho các truy vấn đặc biệt.<br />

Mục tiêu cơ bản của mọi tổ chức là lợi nhuận và điều này được mô tả như sau:<br />

Lợi nhuận<br />

Lợi tức<br />

Chi phí<br />

Bán hàng<br />

Xác định giá<br />

Chi phí cố định<br />

Chi phí biến đổi<br />

Đề xuất kinh doanh<br />

Chi phí trong sản xuất<br />

Hình 1.2. Mối <strong>quan</strong> hệ về cách nhìn nhận trong hệ thống<br />

Để thực hiện chiến lược kinh doanh hiệu quả, các nhà lãnh đạo vạch ra phương hướng kinh<br />

doanh hàng hoá. Việc xác định giá của hàng hoá và quá trình bán hàng sẽ sản sinh lợi tức. Tuy<br />

nhiên, để có được hàng hóa kinh doanh thì cần phải mất các khoản chi phí. Lợi tức trừ đi chi phí sẽ<br />

cho lợi nhuận của đơn vị.<br />

1.4. Đặc tính của dữ liệu trong kho dữ liệu<br />

Đặc điểm cơ bản của kho dữ liệu là một tập hợp dữ liệu có các đặc tính sau :<br />

- Tính tích hợp<br />

- Tính hướng chủ đề<br />

- Tính ổn định<br />

- Dữ liệu tổng hợp<br />

1.4.1. Tính tích hợp (Intergration)<br />

Dữ liệu trong kho dữ liệu được tổ chức theo nhiều cách khác nhau sao cho phù hợp với các<br />

quy ước đặt tên, thống nhất về số đo, cơ cấu mã hoá và cấu trúc vật lý của dữ liệu, ..v..v.. Một kho<br />

dữ liệu là một khung nhìn thông tin mức toàn bộ đơn vị sản xuất kinh doanh đó, thống nhất toàn bộ<br />

các khung nhìn khác nhau thành một khung nhìn theo một chủ điểm nào đó. Ví dụ, hệ thống xử lý<br />

giao dịch trực tuyến (OLAP) truyền thống được xây dựng trên một vùng nghiệp vụ. Một hệ thống<br />

bán hàng và một hệ thống tiếp thị (marketing) có thể có chung một dạng thông tin khách hàng. Tuy<br />

nhiên, các vấn đề về tài chính cần có một khung nhìn khác về khách hàng. Khung nhìn đó bao gồm<br />

các phần dữ liệu khác nhau về tài chính và marketing.


9<br />

Tính tích hợp thể hiện ở chỗ: dữ liệu tập hợp trong kho dữ liệu được thu thập từ nhiều<br />

nguồn được trộn ghép với nhau thành một thể thống nhất.<br />

1.4.2. Tính hướng chủ đề<br />

Dữ liệu trong kho dữ liệu được tổ chức theo chủ đề phục vụ cho tổ chức dễ dàng xác định<br />

được các thông tin cần thiết trong từng hoạt động của mình. Ví dụ, trong hệ thống quản lý tài chính<br />

cũ có thể có dữ liệu được tổ chức cho các chức năng: cho vay, quản lý tín dụng, quản lý ngân sách,<br />

..v..v.. Ngược lại, trong kho dữ liệu về tài chính, dữ liệu được tổ chức theo chủ điểm dựa vào các<br />

đối tượng: khách hàng, sản phẩm, các xí nghiệp, ..v..v.. Sự khác nhau của 2 cách tiếp cận trên dẫn<br />

đến sự khác nhau về nội dung dữ liệu lưu trữ trong hệ thống.<br />

* Kho dữ liệu không lưu trữ dữ liệu chi tiết, chỉ cần lưu trữ dữ liệu mang tính tổng hợp phục<br />

vụ chủ yếu cho quá trình phân tích để trợ giúp quyết định.<br />

* CSDL trong các ứng dụng tác nghiệp lại cần xử lý dữ liệu chi tiết, phục vụ trực tiếp cho<br />

các yêu cầu xử lý theo các chức năng của lĩnh vực ứng dụng hiện thời. Do vậy, các hệ thống ứng<br />

dụng tác nghiệp (Operational Application System - OAS) cần lưu trữ dữ liệu chi tiết. Mối <strong>quan</strong> hệ<br />

của dữ liệu trong hệ thống này cũng khác, đòi hỏi phải có tính chính xác, có tính thời sự, ..v..v..<br />

* Dữ liệu cần gắn với thời gian và có tính lịch sử. Kho chứa dữ liệu bao hàm một khối<br />

lượng lớn dữ liệu có tính lịch sử. Dữ liệu được lưu trữ thành một loạt các snapshot (ảnh chụp dữ<br />

liệu). Mỗi bản ghi phản ánh những giá trị của dữ liệu tại một thời điểm nhất định thể hiện khung<br />

nhìn của một chủ điểm trong một giai đoạn. Do vậy cho phép khôi phục lại lịch sử và so sánh tương<br />

đối chính xác các giai đoạn khác nhau. Yếu tố thời gian có vai trò như một phần của khoá để đảm<br />

bảo tính đơn nhất của mỗi sản phẩm hàng hoá cà cung cấp đặc trưng về thời gian cho dữ liệu. Ví dụ,<br />

trong hệ thống quản lý kinh doanh cần có dữ liệu lưu trữ về đơn giá cuả mặt hàng theo ngày (đó<br />

chính là yếu tố thời gian). Cụ thể mỗi mặt hàng theo một đơn vị tính và tại một thời điểm xác định<br />

phải có một đơn giá khác nhau (sự biến động về giá cả mặt hàng xăng dầu trong thời gian qua là<br />

một minh chứng điển hình).<br />

Dữ liệu trong OAS thì cần phải chính xác tại thời điểm truy cập, còn ở DW thì chỉ cần có<br />

hiệu lực trong khoảng thời gian nào đó, trong khoảng 5 đến 10 năm hoặc lâu hơn. Dữ liệu của<br />

CSDL tác nghiệp thường sau một khoảng thời gian nhất định sẽ trở thành dữ liệu lịch sử và chúng<br />

sẽ được chuyển vào trong kho dữ liệu. Đó chính là những dữ liệu hợp lý về những chủ điểm cần lưu<br />

trữ.


10<br />

So sánh về CSDL tác nghiệp và ảnh chụp dữ liệu, ta thấy:<br />

CSDL tác nghiệp<br />

Ảnh chụp dữ liệu<br />

Thời gian ngắn (30 – 60 ngày)<br />

Thời gian dài (5 – 10 năm)<br />

Có thể có yếu tố thời gian hoặc không Luôn có yếu tố thời gian<br />

Dữ liệu có thể được cập nhật<br />

Khi dữ liệu được chụp lại thì không cập<br />

nhật được<br />

Bảng 1.1. Tính thời gian của dữ liệu<br />

1.4.3. Dữ liệu có tính ổn định (nonvolatility)<br />

Dữ liệu trong DW là dữ liệu chỉ đọc và chỉ có thể được kiểm tra, không thể được thay đổi<br />

bởi người dùng đầu cuối (terminal users). Nó chỉ cho phép thực hiện 2 thao tác cơ bản là nạp dữ<br />

liệu vào kho và truy cập vào các cung trong DW. Do vậy, dữ liệu không biến động.<br />

Thông tin trong DW phải được tải vào sau khi dữ liệu trong hệ thống điều hành được cho là<br />

quá cũ. Tính không biến động thể hiện ở chỗ: dữ liệu được lưu trữ lâu dài trong kho dữ liệu. Mặc dù<br />

có thêm dữ liệu mới nhập vào nhưng dữ liệu cũ trong kho dữ liệu vẫn không bị xoá hoặc thay đổi.<br />

Điều đó cho phép cung cấp thông tin về một khoảng thời gian dài, cung cấp đủ số liệu cần thiết cho<br />

các mô hình nghiệp vụ phân tích, dự báo. Từ đó có được những quyết định hợp lý, phù hợp với các<br />

quy luật tiến hoá của tự nhiên.<br />

1.4.4. Dữ liệu tổng hợp<br />

Dữ liệu tác nghiệp thuần tuý không được lưu trữ trong DW. Dữ liệu tổng hợp được tích hợp<br />

lại qua nhiều giai đoạn khác nhau theo các chủ điểm đã nêu ở trên.<br />

1.5. Phân biệt kho dữ liệu với các cơ sở dữ liệu tác nghiệp<br />

Trên cơ sở các đặc trưng của DW, ta phân biệt DW với những hệ quản trị CSDL tác nghiệp<br />

truyền thống:<br />

Kho dữ liệu phải được xác định hướng theo chủ đề. Nó được thực hiện theo ý đồ của người<br />

sử dụng đầu cuối. Trong khi đó các hệ CSDL tác nghiệp dùng để phục vụ các mục đích áp<br />

dụng chung.<br />

Những hệ CSDL thông thường không phải quản lý những lượng thông tin lớn mà quản lý<br />

những lượng thông tin vừa và nhỏ. DW phải quản lý một khối lượng lớn các thông tin được<br />

lưu trữ trên nhiều phương tiện lưu trữ và xử lý khác nhau. Đó cũng là đặc thù của DW.<br />

DW có thể ghép nối các phiên bản (version) khác nhau của các cấu trúc CSDL. DW tổng<br />

hợp thông tin để thể hiện chúng dưới những hình thức dễ hiểu đối với người sử dụng.<br />

DW tích hợp và kết nối thông tin từ nhiều nguồn khác nhau trên nhiều loại phương tiện lưu<br />

trữ và xử lý thông tin nhằm phục vụ cho các ứng dụng xử lý tác nghiệp trực tuyến.<br />

DW có thể lưu trữ các thông tin tổng hợp theo một chủ đề nghiệp vụ nào đó sao cho tạo ra<br />

các thông tin phục vụ hiệu quả cho việc phân tích của người sử dụng.


11<br />

DW thông thường chứa các dữ liệu lịch sử kết nối nhiều năm trước của các thông tin tác<br />

nghiệp được tổ chức lưu trữ có hiệu quả và có thể được hiệu chỉnh lại dễ dàng. Dữ liệu trong<br />

CSDL tác nghiệp thường là mới, có tính thời sự trong một khoảng thời gian ngắn.<br />

Dữ liệu trong CSDL tác nghiệp được chắt lọc và tổng hợp lại để chuyển sang môi trường<br />

DW. Rất nhiều dữ liệu khác không được chuyển về DW, chỉ những dữ liệu cần thiết cho<br />

công tác quản lý hay trợ giúp quyết định mới được chuyển sang DW.<br />

Nói một cách tổng quát, DW làm nhiệm vụ phân phát dữ liệu cho nhiều đối tượng (khách hàng),<br />

xử lý thông tin nhiều dạng như: CSDL, truy vấn dữ liệu (SQL query), báo cáo (report) ..v..v..


12<br />

BÀI TẬP:<br />

LÝ THUYẾT:<br />

1. Kho dữ liệu là gì<br />

2. Cho ví dụ về các hệ thống hoặc lĩnh vực nào đó có đủ điều kiện để xây dựng các kho<br />

dữ liệu lớn<br />

3. Một bảng dữ liệu có 50.000 bản ghi liệu có thể được gọi là một kho dữ liệu lớn hay<br />

chưa Lý giải cho câu trả lời<br />

4. Cho ví dụ về một nguồn dữ liệu lưu trữ có cấu trúc bảng, cấu trúc semi-structured,<br />

hoặc không cấu trúc<br />

5. Phân biệt kho dữ liệu với cơ sở dữ liệu tác nghiệp<br />

THỰC HÀNH:<br />

1. Cài đặt bộ ứng dụng Microsoft Visual Studio 2005<br />

2. Cài đặt và tìm hiệu dịch vụ Data analysis<br />

3. Quan sát và tìm hiểu cơ sở dữ liệu NorthWind


13<br />

Chương 2: Tổng <strong>quan</strong> về <strong>khai</strong> phá dữ liệu<br />

2.1. Khai phá dữ liệu<br />

Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong CSDL. Quá trình<br />

này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động<br />

sản xuất, ... Khai phá dữ liệu làm giảm chi phí về thời gian so với phương pháp truyền thống trước<br />

kia (ví dụ như phương pháp thống kê).<br />

Sau đây là một số định nghiã mang tính mô tả của nhiều tác giả về <strong>khai</strong> phá dữ liệu.<br />

Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương pháp được dùng trong<br />

tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối <strong>quan</strong> hệ và các mẫu chưa biết bên trong<br />

dữ liệu”<br />

Định nghĩa của Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết định, trong đó chúng<br />

ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn”<br />

Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm thường nhận ra<br />

những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”.<br />

2.2. Các ứng dụng của <strong>khai</strong> phá dữ liệu<br />

Phát hiện tri thức và <strong>khai</strong> phá dữ liệu liên <strong>quan</strong> đến nhiều ngành, nhiều lĩnh vực: thống kê,<br />

trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán, tính toán song song và tốc độ cao, thu thập tri thức cho<br />

các hệ chuyên gia, <strong>quan</strong> sát dữ liệu... Đặc biệt phát hiện tri thức và <strong>khai</strong> phá dữ liệu rất gần gũi với<br />

lĩnh vực thống kê, sử dụng các phương pháp thống kê để mô hình dữ liệu và phát hiện các mẫu, luật<br />

... Ngân hàng dữ liệu (Data Warehousing) và các công cụ phân tích trực tuyến (OLAP- On Line<br />

Analytical Processing) cũng liên <strong>quan</strong> rất chặt chẽ với phát hiện tri thức và <strong>khai</strong> phá dữ liệu.<br />

Khai phá dữ liệu có nhiều ứng dụng trong thực tế, ví dụ như:<br />

Bảo hiểm, tài chính và thị trường chứng khoán: phân tích tình hình tài chính và dự báo giá của<br />

các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín<br />

dụng, phát hiện gian lận, ...<br />

Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định. Ví dụ như bảng sau:<br />

Năm<br />

Dân số thế giới<br />

(triệu ngƣời)<br />

Năm<br />

Dân số thế giới<br />

(triệu ngƣời)<br />

Năm<br />

Dân số thế giới<br />

(triệu ngƣời)<br />

1950 2555 1970 3708 1990 5275<br />

1951 2593 1971 3785 1991 5359<br />

1952 2635 1972 3862 1992 5443<br />

1953 2680 1973 3938 1993 5524


1954 2728 1974 4014 1994 5604<br />

14<br />

1955 2779 1975 4087 1995 5685<br />

1956 2832 1976 4159 1996 5764<br />

1957 2888 1977 4231 1997 5844<br />

1958 2945 1978 4303 1998 5923<br />

1959 2997 1979 4378 1999 6001<br />

1960 3039 1980 4454 2000 6078<br />

1961 3080 1981 4530 2001 6153<br />

1962 3136 1982 4610 2002 6228<br />

1963 3206 1983 4690<br />

1964 3277 1984 4769<br />

1965 3346 1985 4850<br />

1966 3416 1986 4932<br />

1967 3486 1987 5017<br />

1968 3558 1988 5102<br />

1969 3632 1989 5188<br />

Nguồn: U.S. Bureau of the Census, International Data Base. Cập nhật ngày 10/10/2002.<br />

Bảng 2.1. Dân số thế giới tính tại thời điểm giữa năm<br />

Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu trong các hệ thống<br />

quản lý bệnh viện. Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương<br />

pháp điều trị (chế độ dinh dưỡng, thuốc, ...)<br />

Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố.<br />

Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn bản,...<br />

Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so sánh<br />

các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh di truyền, ...<br />

Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố, chất lượng<br />

dịch vụ, ...<br />

2.3. Các bƣớc của quá trình <strong>khai</strong> phá dữ liệu<br />

Quy trình phát hiện tri thức thường tuân theo các bước sau:


15<br />

Hình 2.1. Quy trình phát hiện tri thức<br />

Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán. Là tìm hiểu lĩnh vực ứng dụng<br />

từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn thành. Bước này sẽ quyết định cho<br />

việc rút ra được các tri thức hữu ích và cho phép chọn các phương pháp <strong>khai</strong> phá dữ liệu thích hợp<br />

với mục đích ứng dụng và bản chất của dữ liệu.<br />

Bước thứ hai: Thu thập và tiền xử lý dữ liệu. Là thu thập và xử lý thô, còn được gọi là tiền<br />

xử lý dữ liệu nhằm loại bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu dữ liệu (làm giàu dữ liệu), biến<br />

đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn<br />

bộ qui trình phát hiện tri thức. Do dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất, …<br />

có thể gây ra các nhầm lẫn. Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hoá.<br />

Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức. Là <strong>khai</strong> phá dữ liệu, hay nói cách khác là<br />

trích ra các mẫu hoặc/và các mô hình ẩn dưới các dữ liệu. Giai đoạn này rất <strong>quan</strong> trọng, bao gồm<br />

các công đoạn như: chức năng, nhiệm vụ và mục đích của <strong>khai</strong> phá dữ liệu, dùng phương pháp <strong>khai</strong><br />

phá nào Thông thường, các bài toán <strong>khai</strong> phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa<br />

ra tính chất chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy diễn<br />

dựa trên dữ liệu hiện có. Tuỳ theo bài toán xác định được mà ta lựa chọn các phương pháp <strong>khai</strong> phá<br />

dữ liệu cho phù hợp.<br />

Bước thứ tư: Sử dụng các tri thức phát hiện được. Là hiểu tri thức đã tìm được, đặc biệt là<br />

làm sáng tỏ các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được<br />

có thể được lấy trung bình trên tất cả các lần thực hiện. Các kết quả của quá trình phát hiện tri thức<br />

có thể được đưa và ứng dụng trong các lĩnh vực khác nhau. Do các kết quả có thể là các dự đoán<br />

hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hoá<br />

quá trình này.<br />

Tóm lại: KDD là một quá trình kết xuất ra tri thức từ kho dữ liệu mà trong đó <strong>khai</strong> phá dữ<br />

liệu là công đoạn <strong>quan</strong> trọng nhất.


16<br />

2.4. Nhiệm vụ chính trong <strong>khai</strong> thác dữ liệu<br />

Quá trình <strong>khai</strong> phá dữ liệu là quá trình phát hiện ra mẫu thông tin. Trong đó, giải thuật <strong>khai</strong><br />

phá tìm kiếm các mẫu đáng <strong>quan</strong> tâm theo dạng xác định như các luật, phân lớp, hồi quy, cây quyết<br />

định, ...<br />

2.4.1. Phân lớp (phân loại - classification)<br />

Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các lớp đã được biết<br />

trước đó. Mục tiêu của thuật toán phân lớp là tìm ra mối <strong>quan</strong> hệ nào đó giữa thuộc tính dự báo và<br />

thuộc tính phân lớp. Như thế quá trình phân lớp có thể sử dụng mối <strong>quan</strong> hệ này để dự báo cho các<br />

mục mới. Các kiến thức được phát hiện biểu diễn dưới dạng các luật theo cách sau: “Nếu các thuộc<br />

tính dự báo của một mục thoả mãn điều kiện của các tiền đề thì mục nằm trong lớp chỉ ra trong kết<br />

luận”.<br />

Ví dụ: Một mục biểu diễn thông tin về nhân viên có các thuộc tính dự báo là: họ tên, tuổi,<br />

giới tính, trình độ học vấn, … và thuộc tính phân loại là trình độ lãnh đạo của nhân viên.<br />

2.4.2. Hồi qui (regression)<br />

Là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán có giá trị thực.<br />

Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính để dự báo<br />

là liên tục chứ không phải rời rạc. Việc dự báo các giá trị số thường được làm bởi các phương pháp<br />

thống kê cổ điển, chẳng hạn như hồi quy tuyến tính. Tuy nhiên, phương pháp mô hình hoá cũng<br />

được sử dụng, ví dụ: cây quyết định.<br />

Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát <strong>quan</strong>g hiện thời<br />

trong khu rừng bằng cách dò tìm vi sóng bằng các thiết bị cảm biến từ xa; ước lượng sác xuất người<br />

bệnh có thể chết bằng cách kiểm tra các triệu chứng; dự báo nhu cầu của người dùng đối với một<br />

sản phẩm, …<br />

2.4.3. Phân nhóm (clustering)<br />

Là việc mô tả chung để tìm ra các tập hay các nhóm, loại mô tả dữ liệu. Các nhóm có thể<br />

tách nhau hoặc phân cấp hay gối lên nhau. Có nghĩa là dữ liệu có thể vừa thuộc nhóm này lại vừa<br />

thuộc nhóm khác. Các ứng dụng <strong>khai</strong> phá dữ liệu có nhiệm vụ phân nhóm như phát hiện tập các<br />

khách hàng có phản ứng giống nhau trong CSDL tiếp thị; xác định các <strong>quan</strong>g phổ từ các phương<br />

pháp đo tia hồng ngoại, … Liên <strong>quan</strong> chặt chẽ đến việc phân nhóm là nhiệm vụ đánh giá dữ liệu,<br />

hàm mật độ xác suất đa biến/ các trường trong CSDL.<br />

2.4.4. Tổng hợp (summarization)<br />

Là công việc liên <strong>quan</strong> đến các phương pháp tìm kiếm một mô tả tập con dữ liệu [1, 2, 5].<br />

Kỹ thuật tổng hợp thường áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động.<br />

Nhiệm vụ chính là sản sinh ra các mô tả đặc trưng cho một lớp. Mô tả loại này là một kiểu tổng<br />

hợp, tóm tắt các đặc tính chung của tất cả hay hầu hết các mục của một lớp. Các mô tả đặc trưng thể


17<br />

hiện theo luật có dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất cả<br />

các thuộc tính đã nêu trong kết luận”. Lưu ý rằng luật dạng này có các khác biệt so với luật phân<br />

lớp. Luật phát hiện đặc trưng cho lớp chỉ sản sinh khi các mục đã thuộc về lớp đó.<br />

2.4.5. Mô hình hoá sự phụ thuộc (dependency modeling)<br />

Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính theo hai mức:<br />

Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị). Trong đó, các biến phụ thuộc bộ phận<br />

vào các biến khác. Mức định lượng mô hình mô tả mức độ phụ thuộc. Những phụ thuộc này thường<br />

được biểu thị dưới dạng theo luật “nếu - thì” (nếu tiền đề là đúng thì kết luận đúng). Về nguyên tắc,<br />

cả tiền đề và kết luận đều có thể là sự kết hợp logic của các giá trị thuộc tính. Trên thực tế, tiền đề<br />

thường là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính. Hơn nữa hệ thống có thể<br />

phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng<br />

chỉ ra trong kết luận.<br />

Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes. Đó là đồ thị có<br />

hướng, không chu trình. Các nút biểu diễn thuộc tính và trọng số của liên kết phụ thuộc giữa các nút<br />

đó.<br />

2.4.6. Phát hiện sự biến đổi và độ lệch (change and deviation dectection)<br />

Nhiệm vụ này tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết<br />

trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội<br />

dung mong đợi. Hai mô hình độ lệch hay dùng là lệch theo thời gian hay lệch theo nhóm. Độ lệch<br />

theo thời gian là sự thay đổi có ý nghĩa của dữ liệu theo thời gian. Độ lệch theo nhóm là sự khác<br />

nhau của giữa dữ liệu trong hai tập con dữ liệu, ở đây tính cả trường hợp tập con dữ liệu này thuộc<br />

tập con kia, nghĩa xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn<br />

bộ đối tượng không Theo cách này, sai sót dữ liệu hay sai lệch so với giá trị thông thường được<br />

phát hiện.<br />

Vì những nhiệm vụ này yêu cầu số lượng và các dạng thông tin rất khác nhau nên chúng<br />

thường ảnh hưởng đến việc thiết kế và chọn phương pháp <strong>khai</strong> phá dữ liệu khác nhau. Ví dụ như<br />

phương pháp cây quyết định (sẽ được trình bày dưới đây) tạo ra được một mô tả phân biệt được các<br />

mẫu giữa các lớp nhưng không có tính chất và đặc điểm của lớp.<br />

2.5. Các phƣơng pháp <strong>khai</strong> phá dữ liệu<br />

Khai phá dữ liệu là lĩnh vực mà con người luôn tìm cách đạt được mực đích sử dụng thông<br />

tin của mình. Quá trình <strong>khai</strong> phá dữ liệu là quá trình phát hiện mẫu, trong đó phương pháp <strong>khai</strong> phá<br />

dữ liệu để tìm kiếm các mẫu đáng <strong>quan</strong> tâm theo dạng xác định. Có thể kể ra đây một vài phương<br />

pháp như: sử dụng công cụ truy vấn, xây dựng cây quyết định, dựa theo khoảng cách (K-láng giềng<br />

gần), giá trị trung bình, phát hiện luật kết hợp, … Các phương pháp trên có thể được phỏng theo và<br />

được tích hợp vào các hệ thống lai để <strong>khai</strong> phá dữ liệu theo thống kê trong nhiều năm nghiên cứu.


18<br />

Tuy nhiên, với dữ liệu rất lớn trong kho dữ liệu thì các phương pháp này cũng đối diện với thách<br />

thức về mặt hiệu quả và quy mô.<br />

2.5.1. Các thành phần của giải thuật <strong>khai</strong> phá dữ liệu<br />

Giải thuật <strong>khai</strong> phá dữ liệu bao gồm 3 thành phần chính như sau: biểu diễn mô hình, kiểm<br />

định mô hình và phương pháp tìm kiếm.<br />

Biểu diễn mô hình: Mô hình được biểu diễn theo một ngôn ngữ L nào đó để miêu tả các mẫu<br />

có thể <strong>khai</strong> thác được. Mô tả mô hình rõ ràng thì học máy sẽ tạo ra mẫu có mô hình chính xác cho<br />

dữ liệu. Tuy nhiên, nếu mô hình quá lớn thì khả năng dự đoán của học máy sẽ bị hạn chế. Như thế<br />

sẽ làm cho việc tìm kiếm phức tạp hơn cũng như hiểu được mô hình là không đơn giản hoặc sẽ<br />

không thể có các mẫu tạo ra được một mô hình chính xác cho dữ liệu. Ví dụ mô tả cây quyết định<br />

sử dụng phân chia các nút theo 1 trường dữ liệu, chia không gian đầu vào thành các siêu phẳng song<br />

song với trục các thuộc tính. Phương pháp cây quyết định như vậy không thể <strong>khai</strong> phá được dữ liệu<br />

dạng công thức X = Y dù cho tập học có quy mô lớn thế nào đi nữa. Vì vậy, việc <strong>quan</strong> trọng là<br />

người phân tích dữ liệu cần phải hiểu đầy đủ các giả thiết miêu tả. Một điều cũng khá <strong>quan</strong> trọng là<br />

người thiết kế giải thuật cũng phải diễn tả được các giả thiết mô tả nào được tạo ra bởi giải thuật<br />

nào. Khả năng miêu tả mô hình càng lớn thì càng làm tăng mức độ nguy hiểm do bị học quá và làm<br />

giảm đi khả năng dự đoán các dữ liệu chưa biết. Hơn nữa, việc tìm kiếm sẽ càng trở lên phức tạp<br />

hơn và việc giải thích mô hình cũng khó khăn hơn.<br />

Mô hình ban đầu được xác định bằng cách kết hợp biến đầu ra (phụ thuộc) với các biến độc<br />

lập mà biến đầu ra phụ thuộc vào. Sau đó phải tìm những tham số mà bài toán cần tập trung giải<br />

quyết. Việc tìm kiếm mô hình sẽ đưa ra được một mô hình phù hợp với tham số được xác định dựa<br />

trên dữ liệu (trong một số trường hợp khác thì mô hình và các tham số lại thay đổi để phù hợp với<br />

dữ liệu). Trong một số trường hợp, tập các dữ liệu được chia thành tập dữ liệu học và tập dữ liệu<br />

thử. Tập dữ liệu học được dùng để làm cho tham số của mô hình phù hợp với dữ liệu. Mô hình sau<br />

đó sẽ được đánh giá bằng cách đưa các dữ liệu thử vào mô hình và thay đổi các tham số cho phù<br />

hợp nếu cần. Mô hình lựa chọn có thể là phương pháp thống kê như SASS, … một số giải thuật học<br />

máy (ví dụ như cây quyết định và các quyết định học có thầy khác), mạng neuron, suy diễn hướng<br />

tình huống (case based reasoning), các kỹ thuật phân lớp.<br />

Kiểm định mô hình (model evaluation): Là việc đánh giá, ước lượng các mô hình chi tiết,<br />

chuẩn trong quá trình xử lý và phát hiện tri thức với sự ước lượng có dự báo chính xác hay không<br />

và có thoả mãn cơ sở logic hay không Ước lượng phải được đánh giá chéo (cross validation) với<br />

việc mô tả đặc điểm bao gồm dự báo chính xác, tính mới lạ, tính hữu ích, tính hiểu được phù hợp<br />

với các mô hình. Hai phương pháp logic và thống kê chuẩn có thể sử dụng trong mô hình kiểm<br />

định.<br />

Phương pháp tìm kiếm: Phương pháp này bao gồm hai thành phần: tìm kiếm tham số và tìm<br />

kiếm mô hình. Trong tìm kiếm tham số, giải thuật cần tìm kiếm các tham số để tối ưu hóa các tiêu


19<br />

chuẩn đánh giá mô hình với các dữ liệu <strong>quan</strong> sát được và với một mô tả mô hình đã định. Việc<br />

tìm kiếm không cần thiết đối với một số bài toán khá đơn giản: các đánh giá tham số tối ưu có thể<br />

đạt được bằng các cách đơn giản hơn. Đối với các mô hình chung thì không có các cách này, khi đó<br />

giải thuật “tham lam” thường được sử dụng lặp đi lặp lại. Ví dụ như phương pháp giảm gradient<br />

trong giải thuật lan truyền ngược (backpropagation) cho các mạng neuron. Tìm kiếm mô hình xảy<br />

ra giống như một vòng lặp qua phương pháp tìm kiếm tham số: mô tả mô hình bị thay đổi tạo nên<br />

một họ các mô hình. Với mỗi một mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để<br />

đánh giá chất lượng mô hình. Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật tìm<br />

kiếm heuristic vì kích thước của không gian các mô hình có thể thường ngăn cản các tìm kiếm tổng<br />

thể, hơn nữa các giải pháp đơn giản (closed form) không dễ đạt được.<br />

2.5.2. Phương pháp suy diễn / quy nạp<br />

Một cơ sở dữ liệu là một kho thông tin nhưng các thông tin <strong>quan</strong> trọng hơn cũng có thể được<br />

suy diễn từ kho thông tin đó. Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp.<br />

Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các thông tin trong cơ sở<br />

dữ liệu. Ví dụ như toán tử liên kết áp dụng cho bảng <strong>quan</strong> hệ, bảng đầu chứa thông tin về các nhân<br />

viên và phòng ban, bảng thứ hai chứa các thông tin về các phòng ban và các trưởng phòng. Như vậy<br />

sẽ suy ra được mối <strong>quan</strong> hệ giữa các nhân viên và các trưởng phòng. Phương pháp suy diễn dựa trên<br />

các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ. Mẫu chiết xuất được bằng cách<br />

sử dụng phương pháp này thường là các luật suy diễn.<br />

Phương pháp quy nạp: phương pháp quy nạp suy ra các thông tin được sinh ra từ cơ sở dữ<br />

liệu. Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức<br />

đã biết trước. Các thông tin mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao<br />

diễn tả về các đối tượng trong cơ sở dữ liệu. Phương pháp này liên <strong>quan</strong> đến việc tìm kiếm các mẫu<br />

trong CSDL. Trong <strong>khai</strong> phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật.<br />

2.5.3. Phương pháp ứng dụng K-láng giềng gần<br />

Sự miêu tả các bản ghi trong tập dữ liệu khi trỏ vào không gian nhiều chiều là rất có ích đối<br />

với việc phân tích dữ liệu. Việc dùng các miêu tả này, nội dung của vùng lân cận được xác định,<br />

trong đó các bản ghi gần nhau trong không gian được xem xét thuộc về lân cận (hàng xóm – láng<br />

giềng) của nhau. Khái niệm này được dùng trong khoa học kỹ thuật với tên gọi K-láng giềng gần,<br />

trong đó K là số láng giềng được sử dụng. Phương pháp này rất hiệu quả nhưng lại đơn giản. Ý<br />

tưởng thuật toán học K-láng giềng gần là “thực hiện như các láng giềng gần của bạn đã làm”.<br />

Ví dụ: Để dự đoán hoạt động của cá thể xác định, K-láng giềng tốt nhất của cá thể được xem<br />

xét, và trung bình các hoạt động của các láng giềng gần đưa ra được dự đoán về hoạt động của cá<br />

thể đó.


20<br />

Kỹ thuật K-láng giềng gần là một phương pháp tìm kiếm đơn giản. Tuy nhiên, nó có một<br />

số mặt hạn chế giới là hạn phạm vi ứng dụng của nó. Đó là thuật toán này có độ phức tạp tính toán<br />

là luỹ thừa bậc 2 theo số bản ghi của tập dữ liệu.<br />

Vấn đề chính liên <strong>quan</strong> đến thuộc tính của bản ghi. Một bản ghi gồm hiều thuộc tính độc<br />

lập, nó bằng một điểm trong không gian tìm kiếm có số chiều lớn. Trong các không gian có số<br />

chiều lớn, giữa hai điểm bất kỳ hầu như có cùng khoảng cách. Vì thế mà kỹ thuật K-láng giềng<br />

không cho ta thêm một thông tin có ích nào, khi tất cả các cặp điểm đều là các láng giềng. Cuối<br />

cùng, phương pháp K-láng giềng không đưa ra lý thuyết để hiểu cấu trúc dữ liệu. Hạn chế đó có thể<br />

được khắc phục bằng kỹ thuật cây quyết định.<br />

2.5.4. Phương pháp sử dụng cây quyết định và luật<br />

Với kỹ thuật phân lớp dựa trên cây quyết định, kết quả của quá trình xây dựng mô hình sẽ<br />

cho ra một cây quyết định. Cây này được sử dụng trong quá trình phân lớp các đối tượng dữ liệu<br />

chưa biết hoặc đánh giá độ chính xác của mô hình. Tương ứng với hai giai đoạn trong quá trình<br />

phân lớp là quá trình xây dựng và sử dụng cây quyết định.<br />

Quá trình xây dựng cây quyết định bắt đầu từ một nút đơn biểu diễn tất cả các mẫu dữ liệu.<br />

Sau đó, các mẫu sẽ được phân chia một cách đệ quy dựa vào việc lựa chọn các thuộc tính. Nếu các<br />

mẫu có cùng một lớp thì nút sẽ trở thành lá, ngược lại ta sử dụng một độ đo thuộc tính để chọn ra<br />

thuộc tính tiếp theo làm cơ sở để phân chia các mẫu ra các lớp. Theo từng giá trị của thuộc tính vừa<br />

chọn, ta tạo ra các nhánh tương ứng và phân chia các mẫu vào các nhánh đã tạo. Lặp lại quá trình<br />

trên cho tới khi tạo ra được cây quyết định, tất cả các nút triển <strong>khai</strong> thành lá và được gán nhãn.<br />

Quá trình đệ quy sẽ dừng lại khi một trong các điều kiện sau được thỏa mãn:<br />

- Tất cả các mẫu thuộc cùng một nút.<br />

- Không còn một thuộc tính nào để lựa chọn.<br />

- Nhánh không chứa mẫu nào.<br />

Phần lớn các giải thuật sinh cây quyết định đều có hạn chế chung là sử dụng nhiều bộ nhớ.<br />

Lượng bộ nhớ sử dụng tỷ lệ thuận với kích thước của mẫu dữ liệu huấn luyện. Một chương trình<br />

sinh cây quyết định có hỗ trợ sử dụng bộ nhớ ngoài song lại có nhược điểm về tốc độ thực thi. Do<br />

vậy, vấn đề tỉa bớt cây quyết định trở nên <strong>quan</strong> trọng. Các nút lá không ổn định trong cây quyết<br />

định sẽ được tỉa bớt.<br />

Kỹ thuật tỉa trước là việc dừng sinh cây quyết định khi chia dữ liệu không có ý nghĩa.<br />

2.5.5. Phương pháp phát hiện luật kết hợp<br />

Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sở<br />

dữ liệu. Mẫu đầu ra của giải thuật <strong>khai</strong> phá dữ liệu là tập luật kết hợp tìm được. Ta có thể lấy một ví<br />

dụ đơn giản về luật kết hợp như sau: sự kết hợp giữa hai thành phần A và B có nghĩa là sự xuất hiện<br />

của A trong bản ghi kéo theo sự xuất hiện của B trong cùng bản ghi đó: A => B.


21<br />

Cho một lược đồ R={A<br />

1<br />

, …, A<br />

p<br />

} các thuộc tính với miền giá trị {0,1}, và một <strong>quan</strong> hệ r<br />

trên R. Một luật kết hợp trên r được mô tả dưới dạng X=>B với X R và B R\X. Về mặt trực<br />

giác, ta có thể phát biểu ý nghĩa của luật như sau: nếu một bản ghi của bảng r có giá trị 1 tại mỗi<br />

thuộc tính thuộc X thì giá trị của thuộc tính B cũng là 1 trong cùng bản ghi đó. Ví dụ như ta có tập<br />

cơ sở dữ liệu về các mặt hàng bán trong siêu thị, các dòng tương ứng với các ngày bán hàng, các<br />

cột tương ứng với các mặt hàng thì giá trị 1 tại ô (20/10, bánh mì) xác định rằng bánh mì đã bán<br />

ngày hôm đó cũng kéo theo sự xuất hiện giá trị 1 tại ô (20/10, bơ).<br />

Cho W R, đặt s(W,r) là tần số xuất hiện của W trong r được tính bằng tỷ lệ của các hàng<br />

trong r có giá trị 1 tại mỗi cột thuộc W. Tần số xuất hiện của luật X=>B trong r được định nghĩa là<br />

s(X {B}, r) còn gọi là độ hỗ trợ của luật, độ tin cậy của luật là s(X {B}, r)/s(X, r). Ở đây X có<br />

thể gồm nhiều thuộc tính, B là giá trị không cố định. Nhờ vậy mà không xảy ra việc tạo ra các luật<br />

không mong muốn trước khi quá trình tìm kiếm bắt đầu. Điều đó cũng cho thấy không gian tìm<br />

kiếm có kích thước tăng theo hàm mũ của số lượng các thuộc tính ở đầu vào. Do vậy cần phải chú ý<br />

khi thiết kế dữ liệu cho việc tìm kiếm các luật kết hợp.<br />

Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các luật X=>B sao cho tần số<br />

của luật không nhỏ hơn ngưỡng σ cho trước và độ tin cậy của luật không nhỏ hơn ngưỡng θ cho<br />

trước. Từ một cơ sở dữ liệu ta có thể tìm được hàng nghìn và thậm chí hàng trăm nghìn các luật kết<br />

hợp.<br />

Ta gọi một tập con X R là thường xuyên trong r nếu thỏa mãn điều kiện s(X, r)≥σ. Nếu<br />

biết tất cả các tập thường xuyên trong r thì việc tìm kiếm các luật rất dễ dàng. Vì vậy, giải thuật tìm<br />

kiếm các luật kết hợp trước tiên đi tìm tất cả các tập thường xuyên này, sau đó tạo dựng dần các luật<br />

kết hợp bằng cách ghép dần các tập thuộc tính dựa trên mức độ thường xuyên.<br />

Các luật kết hợp có thể là một cách hình thức hóa đơn giản. Chúng rất thích hợp cho việc tạo<br />

ra các kết quả có dữ liệu dạng nhị phân. Giới hạn cơ bản của phương pháp này là ở chỗ các <strong>quan</strong> hệ<br />

cần phải thưa theo nghĩa không có tập thường xuyên nào chứa nhiều hơn 15 thuộc tính. Giải thuật<br />

tìm kiếm các luật kết hợp tạo ra số luật ít nhất phải bằng với số các tập phổ biến và nếu như một tập<br />

phổ biến có kích thước K thì phải có ít nhất là 2 K tập phổ biến. Thông tin về các tập phổ biến được<br />

sử dụng để ước lượng độ tin cậy của các tập luật kết hợp.<br />

2.6. Lợi thế của <strong>khai</strong> phá dữ liệu so với phƣơng pháp cơ bản<br />

Như đã phân tích ở trên, ta thấy phương pháp <strong>khai</strong> phá dữ liệu không có gì là mới và hoàn<br />

toàn dựa trên các phương pháp cơ bản đã biết. Vậy <strong>khai</strong> phá dữ liệu có gì khác so với các phương<br />

pháp đó Và tại sao <strong>khai</strong> phá dữ liệu lại có ưu thế hơn hẳn chúng Các phân tích sau đây sẽ giải đáp<br />

các câu hỏi này.<br />

2.6.1. Học máy (Machine Learning)


22<br />

Mặc dù người ta đã cố gắng cải tiến các phương pháp học máy để có thể phù hợp với mục<br />

đích <strong>khai</strong> phá dữ liệu nhưng sự khác biệt giữa cách thiết kế, các đặc điểm của cơ sở dữ liệu đã làm<br />

cho phương pháp học máy trở nên không phù hợp với mục đích này, mặc dù cho đến nay, phần lớn<br />

các phương pháp <strong>khai</strong> phá dữ liệu vẫn đựa trên nền tảng cơ sở của phương pháp học máy. Những<br />

phân tích sau đây sẽ cho thấy điều đó.<br />

Trong quản trị cơ sở dữ liệu, một cơ sở dữ liệu là một tập hợp được tích hợp một cách logic<br />

của dữ liệu được lưu trong một hay nhiều tệp và được tổ chức để lưu trữ có hiệu quả, sửa đổi và lấy<br />

thông tin liên <strong>quan</strong> được dễ dàng. Ví dụ như trong CSDL <strong>quan</strong> hệ, dữ liệu được tổ chức thành các<br />

tệp hoặc các bảng có các bản ghi có độ dài cố định. Mỗi bản ghi là một danh sách có thứ tự các giá<br />

trị, mỗi giá trị được đặt vào một trường. Thông tin về tên trường và giá trị của trường được đặt<br />

trong một tệp riêng gọi là thư viện dữ liệu (data dictionary). Một hệ thống quản trị cơ sở dữ liệu sẽ<br />

quản lý các thủ tục (procedures) để lấy, lưu trữ, và xử lý dữ liệu trong các cơ sở dữ liệu đó.<br />

Trong học máy, thuật ngữ cơ sở dữ liệu chủ yếu đề cập đến một tập các mẫu (instance hay<br />

example) được lưu trong một tệp. Các mẫu thường là các vector đặc điểm có độ dài cố định. Thông<br />

tin về các tên đặc điểm, dãy giá trị của chúng đôi khi cũng được lưu lại như trong từ điển dữ liệu.<br />

Một giải thuật học còn sử dụng tập dữ liệu và các thông tin kèm theo tập dữ liệu đó làm đầu vào và<br />

đầu ra biểu thị kết quả của việc học (ví dụ như một khái niệm).<br />

Với so sánh cơ sở dữ liệu thông thường và CSDL trong học máy như trên, có thể thấy là học<br />

máy có khả năng được áp dụng cho cơ sở dữ liệu, bởi vì không phải học trên tập các mẫu mà học<br />

trên tệp các bản ghi của CDSL.<br />

Tuy nhiên, phát hiện tri thức trong cơ sở dữ liệu làm tăng thêm các vấn đề vốn đã là điển<br />

hình trong học máy và đã quá khả năng của học máy. Trong thực tế, cơ sở dữ liệu thường động,<br />

không đầy đủ, bị nhiễu, và lớn hơn nhiều so với tập các dữ liệu học máy điển hình. Các yếu tố này<br />

làm cho hầu hết các giải thuật học máy trở nên không hiệu quả trong hầu hết các trường hợp. Vì vậy<br />

trong <strong>khai</strong> phá dữ liệu, cần tập trung rất nhiều công sức vào việc vượt qua những khó khăn, phức<br />

tạp này trong CSDL.<br />

2.6.2. Phương pháp hệ chuyên gia<br />

Các hệ chuyên gia cố gắng nắm bắt các tri thức thích hợp với bài toán nào đó. Các kỹ thuật<br />

thu thập giúp cho việp háp đó là một cách suy diễn các chuyên gia con người. Mỗi phương pháp đó<br />

là một cách suy diễn các luật từ các ví dụ và giải pháp đối với bài toán chuyên gia đưa ra. Phương<br />

pháp này khác với <strong>khai</strong> phá dữ liệu ở chỗ các ví dụ của chuyên gia thường ở mức chất lượng cao<br />

hơn rất nhiều so với các dữ liệu trong cơ sở dữ liệu, và chúng thường chỉ bao được các trường hợp<br />

<strong>quan</strong> trọng. Hơn nữa, các chuyên gia sẽ xác nhận tính giá trị và hữu dụng của các mẫu phát hiện<br />

được. Cũng như với các công cụ quản trị cơ sở dữ liệu, ở các phương pháp này đòi hỏi có sự tham<br />

gia của con người trong việc phát hiện tri thức<br />

2.6.3. Phát kiến khoa học


23<br />

Khai phá dữ liệu rất khác với phát kiến khoa học ở chỗ <strong>khai</strong> phá trong CSDL ít có chủ<br />

tâm và có điều kiện hơn. Các dữ liệu khoa học có ừ thực nghiệm nhằm loại bỏ một số tác động của<br />

các tham số để nhấn mạnh độ biến thiên của một hay một số tham số đích. Tuy nhiên, các cơ sở dữ<br />

liệu thương mại điển hình lại ghi một số lượng thừa thông tin về các dự án của họ để đạt được một<br />

số mục đích về mặt tổ chức. Độ dư thừa này (hay có thể gọi là sự lẫn lộn – confusion) có thể nhìn<br />

thấy và cũng có thể ẩn chứa trong các mối <strong>quan</strong> hệ dữ liệu. Hơn nữa, các nhà khoa học có thể tạo lại<br />

các thí nghiệm và có thể tìm ra rằng các thiết kế ban đầu không thích hợp. Trong khi đó, các nhà<br />

quản lý cơ sở dữ liệu hầu như không thể xa xỉ đi thiết kế lại các trường dữ liệu và thu thập lại dữ<br />

liệu.<br />

2.6.4. Phương pháp thống kê<br />

Một câu hỏi hiển nhiên là <strong>khai</strong> phá dữ liệu khác gì so với phương pháp thống kê. Một câu hỏi<br />

hiển nhiên là <strong>khai</strong> phá dữ liệu khác gì so với phương pháp thống kê. Từ nhiều năm nay, con người<br />

đã sử dụng phương pháp thống kê một cách rất hiệu quả để đạt được mục đích của mình.<br />

Mặc dù các phương pháp thống kê cung cấp một nền tảng lý thuyết vững chắc cho các bài toàn<br />

phân tích dữ liệu nhưng chỉ có tiếp cận thống kê thuần túy thôi chưa đủ. Thứ nhất, các phương pháp<br />

thống kê chuẩn không phù hợp đối với các kiểu dữ liệu có cấu trúc trong rất nhiều các CSDL. Thứ<br />

hai, thống kê hoàn toàn theo dữ liệu (data driven), nó không sử dụng tri thức sẵn có về lĩnh vực.<br />

Thứ ba, các kết quả phân tích thống kê có thể sẽ rất nhiều và khó có thể làm rõ được. Cuối cùng,<br />

các phương pháp thống kê cần có sự hướng dẫn của người dùng để xác định phân tích dữ liệu như<br />

thế nào và ở đâu.<br />

Sự khác nhau cơ bản giữa <strong>khai</strong> phá dữ liệu và thống kê là ở chỗ <strong>khai</strong> phá dữ liệu là một phương<br />

tiện được dùng bởi người sử dụng đầu cuối chứ không phải là các nhà thống kê. Khai phá dữ liệu tự<br />

động quá trình thống kê một cách có hiệu quả, vì vậy làm nhẹ bớt công việc của người dùng đầu<br />

cuối, tạo ra một công cụ dễ sử dụng hơn. Như vậy, nhờ có <strong>khai</strong> phá dữ liệu, việc dự đoán và kiểm<br />

tra rất vất vả trước đây có thể được đưa lên máy tính, được tính, dự đoán và kiểm tra một cách tự<br />

động.<br />

2.7. Lựa chọn phƣơng pháp<br />

Các giải thuật <strong>khai</strong> phá dữ liệu tự động vẫn mới chỉ ở giai đoạn phát triển ban đầu. Người ta<br />

vẫn chưa đưa ra được một tiêu chuẩn nào trong việc quyết định sử dụng phương pháp nào và trong<br />

trường hợp hợp nào thì có hiệu quả.<br />

Hầu hết các kỹ thuật <strong>khai</strong> phá dữ liệu đều mới đối với lĩnh vực kinh doanh. Hơn nữa lại có<br />

rất nhiều kỹ thuật, mỗi kỹ thuật được sử dụng cho nhiều bài toán khác nhau. Vì vậy, ngay sau câu<br />

hỏi “<strong>khai</strong> phá dữ liệu là gì” sẽ là câu hỏi “vậy thì dùng kỹ thuật nào”. Câu trả lời tất nhiên là<br />

không đơn giản. Mỗi phương pháp đều có điểm mạnh và yếu của nó, nhưng hầu hết các điểm yếu<br />

đều có thể khắc phục được. Vậy thì phải làm như thế nào để áp dụng kỹ thuật một cách thật đơn<br />

giản, dễ sử dụng để không cảm thấy những phức tạp vốn có của kỹ thuật đó.


24<br />

Để so sánh các kỹ thuật cần phải có một tập lớn các quy tắc và các phương pháp thực<br />

nghiệm tốt. Thường thì quy tắc này không được sử dụng khi đánh giá các kỹ thuật mới nhất. Vi vậy<br />

mà những yêu cầu cải thiện độ chính xác không phải lúc nào cũng thực hiện được.<br />

Nhiều công ty đã đưa ra những sản phẩm sử dụng kết hợp nhiều kỹ thuật <strong>khai</strong> phá dữ liệu<br />

khác nhau với hy vọng nhiều kỹ thuật sẽ tốt hơn. Nhưng thực tế cho thấy nhiều kỹ thuật chỉ thêm<br />

nhiều rắc rối và gây khó khăn cho việc so sánh giữa các phương pháp và các sản phẩm này. Theo<br />

nhiều đánh giá cho thấy, khi đã hiểu được các kỹ thuật và nghiên cứu tính giống nhau giữa chúng,<br />

người ta thấy rằng nhiều kỹ thuật lúc đầu thì có vẻ khác nhau nhưng thực chất ra khi hiểu được các<br />

kỹ thuật này thì thấy chúng hoàn toàn giống nhau. Tuy nhiên, đánh giá này cũng chỉ để tham khảo<br />

vì cho đến nay, <strong>khai</strong> phá dữ liệu vẫn còn là kỹ thuật mới chứa nhiều tiềm năng mà người ta vẫn<br />

chưa <strong>khai</strong> thác hết.<br />

2.8. Những thách thức trong ứng dụng và nghiên cứu trong kỹ thuật <strong>khai</strong> phá dữ liệu<br />

Ở đây, ta đưa ra một số khó khăn trong việc nghiên cứu và ứng dụng kỹ thuật <strong>khai</strong> phá dữ<br />

liệu. Tuy nhiên, thế không có nghĩa là việc giải quyết là hoàn toàn bế tắc mà chỉ muốn nêu lên rằng<br />

để <strong>khai</strong> phá được dữ liệu không phải đơn giản, mà phải xem xét cũng như tìm cách giải quyết<br />

những vấn đề này. Ta có thể liệt kê một số khó khăn như sau:<br />

2.8.1. Các vấn đề về cơ sở dữ liệu<br />

Đầu vào chủ yếu của một hệ thống <strong>khai</strong> thác tri thức là các dữ liệu thô trong cơ sở phát sinh<br />

trong <strong>khai</strong> phá dữ liệu chính là từ đây. Do các dữ liệu trong thực tế thường động, không đầy đủ, lớn<br />

và bị nhiễu. Trong những trường hợp khác, người ta không biết cơ sở dữ liệu có chứa các thông tin<br />

cần thiết cho việc <strong>khai</strong> thác hay không và làm thế nào để giải quyết với sự dư thừa những thông tin<br />

không thích hợp này.<br />

• Dữ liệu lớn: Cho đến nay, các cơ sở dữ liệu với hàng trăm trường và bảng, hàng triệu bản<br />

ghi và với kích thước đến gigabytes đã là chuyện bình thường. Hiện nay đã bắt đầu xuất hiện các cơ<br />

sở dữ liệu có kích thước tới terabytes. Các phương pháp giải quyết hiện nay là đưa ra một ngưỡng<br />

cho cơ sở dữ liệu, lấu mẫu, các phương pháp xấp xỉ, xử lý song song (Agrawal et al, Holsheimer et<br />

al).<br />

• Kích thước lớn: không chỉ có số lượng bản ghi lớn mà số các trường trong cơ sở dữ liệu<br />

cũng nhiều. Vì vậy mà kích thước của bài toán trở nên lớn hơn. Một tập dữ liệu có kích thước lớn<br />

sinh ra vấn đề làm tăng không gian tìm kiếm mô hình suy diễn. Hơn nữa, nó cũng làm tăng khả<br />

năng một giải thuật <strong>khai</strong> phá dữ liệu có thể tìm thấy các mẫu giả. Biện pháp khắc phục là làm giảm<br />

kích thước tác động của bài toán và sử dụng các tri thức biết trước để xác định các biến không phù<br />

hợp.<br />

• Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội dung của chúng thay<br />

đổi liên tục. Dữ liệu có thể thay đổi theo thời gian và việc <strong>khai</strong> phá dữ liệu cũng bị ảnh hưởng bởi<br />

thời điểm <strong>quan</strong> sát dữ liệu. Ví dụ trong cơ sở dữ liệu về tình trạng bệnh nhân, một số giá trị dữ liệu


25<br />

là hằng số, một số khác lại thay đổi liên tục theo thời gian (ví dụ cân nặng và chiều cao), một số<br />

khác lại thay đổi tùy thuộc vào tình huống và chỉ có giá trị được <strong>quan</strong> sát mới nhất là đủ (ví dụ nhịp<br />

đập của mạch). Vậy thay đổi dữ liệu nhanh chóng có thể làm cho các mẫu <strong>khai</strong> thác được trước đó<br />

mất giá trị. Hơn nữa, các biến trong cơ sở dữ liệu của ứng dụng đã cho cũng có thể bị thay đổi, bị<br />

xóa hoặc là tăng lên theo thời gian. Vấn đề này được giải quyết bằng các giải pháp tăng trưởng để<br />

nâng cấp các mẫu và coi những thay đổi như là cơ hội để <strong>khai</strong> thác bằng cách sử dụng nó để tìm<br />

kiếm các mẫu bị thay đổi.<br />

• Các trường không phù hợp: Một đặc điểm <strong>quan</strong> trọng khác là tính không thích hợp của dữ<br />

liệu, nghĩa là mục dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc <strong>khai</strong> thác. Một<br />

khía cạnh khác đôi khi cũng liên <strong>quan</strong> đến độ phù hợp là tính ứng dụng của một thuộc tính đối với<br />

một tập con của cơ sở dữ liệu. Ví dụ trường số tài khoản Nostro không áp dụng cho các tác nhân.<br />

• Các giá trị bị thiếu: Sự có mặt hay vắng mặt của giá trị các thuộc tính dữ liệu phù hợp có<br />

thể ảnh hưởng đến việc <strong>khai</strong> phá dữ liệu. Trong hệ thống tương tác, sự thiếu vắng dữ liệu <strong>quan</strong><br />

trọng có thể dẫn đến việc yêu cầu cho giá trị của nó hoặc kiểm tra để xác định giá trị của nó. Hoặc<br />

cũng có thể sự vắng mặt của dữ liệu được coi như một điều kiện, thuộc tính bị mất có thể được coi<br />

như một giá trị trung gian và là giá trị không biết.<br />

Các trường bị thiếu: Một <strong>quan</strong> sát không đầy đủ cơ sở dữ liệu có thể làm cho các dữ liệu có<br />

giá trị bị xem như có lỗi. Việc <strong>quan</strong> sát cơ sở dữ liệu phải phát hiện được toàn bộ các thuộc tính có<br />

thể dùng để giải thuật <strong>khai</strong> phá dữ liệu có thể áp dụng nhằm giải quyết bài toán. Giả sử ta có các<br />

thuộc tính để phân biệt các tình huống đáng <strong>quan</strong> tâm. Nếu chúng không làm được điều đó thì có<br />

nghĩa là đã có lỗi trong dữ liệu. Đối với một hệ thống học để chuẩn đoán bệnh sốt rét từ một cơ sở<br />

dữ liệu bệnh nhân thì trường hợp các bản ghi của bệnh nhân có triệu chứng giống nhau nhưng lại có<br />

các chẩn đoán khác nhau là do trong dữ liệu đã bị lỗi. Đây cũng là vấn đề thường xảy ra trong cơ sở<br />

dữ liệu kinh doanh. Các thuộc tính <strong>quan</strong> trọng có thể sẽ bị thiếu nếu dữ liệu không được chuẩn bị<br />

cho việc <strong>khai</strong> phá dữ liệu.<br />

Độ nhiễu và không chắc chắn: Đối với các thuộc tính đã thích hợp, độ nghiêm trọng của lỗi<br />

phụ thuộc vào kiểu dữ liệu của các giá trị cho phép. Các giá trị của các thuộc tính khác nhau có thể<br />

là các số thực, số nguyên, chuỗi và có thể thuộc vào tập các giá trị định danh. Các giá trị định danh<br />

này có thể sắp xếp theo thứ tự từng phần hoặc đầy đủ, thậm chí có thể có cấu trúc ngữ nghĩa.<br />

Một yếu tố khác của độ không chắc chắn chính là tính kế thừa hoặc độ chính xác mà dữ liệu<br />

cần có, nói cách khác là độ nhiễu crên các phép đo và phân tích có ưu tiên, mô hình thống kê mô tả<br />

tính ngẫu nhiên được tạo ra và được sử dụng để định nghĩa độ mong muốn và độ dung sai của dữ<br />

liệu. Thường thì các mô hình thống kê được áp dụng theo cách đặc biệt để xác định một cách chủ<br />

<strong>quan</strong> các thuộc tính để đạt được các thống kê và đánh giá khả năng chấp nhận của các (hay tổ hợp<br />

các) giá trị thuộc tính. Đặc biệt là với dữ liệu kiểu số, sự đúng đắn của dữ liệu có thể là một yếu tố<br />

trong việc <strong>khai</strong> phá. Ví dụ như trong việc đo nhiệt độ cơ thể, ta thường cho phép chênh lệch 0.1 độ.


26<br />

Nhưng việc phân tích theo xu hướng nhạy cảm nhiệt độ của cơ thể lại yêu cầu độ chính xác cao<br />

hơn. Để một hệ thống <strong>khai</strong> thác có thể liên hệ đến xu hướng này để chuẩn đoán thì lại cần có một độ<br />

nhiễu trong dữ liệu đầu vào.<br />

Mối <strong>quan</strong> hệ phức tạp giữa các trường: các thuộc tính hoặc các giá trị có cấu trúc phân cấp,<br />

các mối <strong>quan</strong> hệ giữa các thuộc tính và các phương tiện phức tạp để diễn tả tri thức về nội dung của<br />

cơ sở dữ liệu yêu cầu các giải thuật phải có khả năng sử dụng một cách hiệu quả các thông tin này.<br />

Ban đầu, kỹ thuật <strong>khai</strong> phá dữ liệu chỉ được phát triển cho các bản ghi có giá trị thuộc tính đơn giản.<br />

Tuy nhiên, ngày nay người ta đang tìm cách phát triển các kỹ thuật nhằm rút ra mối <strong>quan</strong> hệ giữa<br />

các biến này.<br />

2.8.2. Một số vấn đề khác<br />

“Quá phù hợp” (Overfitting) Khi một giải thuật tìm kiếm các tham số tốt nhất cho đó sử<br />

dụng một tập dữ liệu hữu hạn, nó có thể sẽ bị tình trạng “quá độ” dữ liệu (nghĩa là tìm kiếm quá<br />

mức cần thiết gây ra hiện tượng chỉ phù hợp với các dữ liệu đó mà không có khả năng đáp ứng cho<br />

các dữ liệu lạ), làm cho mô hình hoạt động rất kém đối với các dữ liệu thử. Các giải pháp khắc phục<br />

bao gồm đánh giá chéo (cross-validation), thực hiện theo nguyên tắc nào đó hoặc sử dụng các biện<br />

pháp thống kê khác.<br />

Đánh giá tầm <strong>quan</strong> trọng thống kê: Vấn đề (liên <strong>quan</strong> đến overfitting) xảy ra khi một hệ<br />

thống tìm kiếm qua nhiều mô hình. Ví dụ như nếu một hệ thống kiểm tra N mô hình ở mức độ <strong>quan</strong><br />

trọng 0,001 thì với dữ liệu ngẫu nhiên trung bình sẽ có N/1000 mô hình được chấp nhận là <strong>quan</strong><br />

trọng. Để xử lý vấn đề này, ta có thể sử dụng phương pháp điều chỉnh thống kê trong kiểm tra như<br />

một hàm tìm kiếm, ví dụ như điều chỉnh Bonferroni đối với các kiểm tra độc lập.<br />

• Khả năng biểu đạt của mẫu: Trong rất nhiều ứng dụng, điều <strong>quan</strong> trọng là những điều <strong>khai</strong><br />

thác được phải cáng dễ hiểu với con người càng tốt. Vì vậy, các giải pháp thường bao gồm việc<br />

diễn tả dưới dạng đồ họa, xây dựng cấu trúc luật với các đồ thị có hướng (Gaines), biểu diễn bằng<br />

ngôn ngữ tự nhiên (Matheus et al.) và các kỹ thuật khác nhằm biểu diễn tri thức và dữ liệu.<br />

Sự tương tác với người sử dụng và các tri thức sẵn có: rất nhiều công cụ và phương pháp<br />

<strong>khai</strong> phá dữ liệu không thực sự tương tác với người dùng và không dễ dàng kết hợp cùng với các tri<br />

thức đã biết trước đó. Việc sử dụng tri thức miền là rất <strong>quan</strong> trọng trong <strong>khai</strong> phá dữ liệu. Đã có<br />

nhiều biện pháp nhằm khắc phục vấn đề này như sử dụng cơ sở dữ liệu suy diễn để phát hiện tri<br />

thức, những tri thức này sau đó được sử dụng để hướng dẫn cho việc tìm kiếm <strong>khai</strong> phá dữ liệu<br />

hoặc sử dụng sự phân bố và xác suất dữ liệu trước đó như một dạng mã hóa tri thức có sẵn.<br />

Bài tập:<br />

1. Kỹ thuật <strong>khai</strong> phá dữ liệu là gì<br />

2. Nhiệm vụ chính của quá trình <strong>khai</strong> phá dữ liệu


27<br />

3. Trình bày các nét khác nhau cơ bản giữa kỹ thuật <strong>khai</strong> phá dữ liệu với các phương pháp<br />

như máy học, thống kê<br />

4. Các bước của quá trình <strong>khai</strong> phá dữ liệu<br />

5. Hãy cho ví dụ ứng dụng kỹ thuật <strong>khai</strong> phá dữ liệu trong thực tế


28<br />

Chương 3: Tiền xử lý dữ liệu<br />

3.1. Mục đích<br />

Các Kỹ thuật datamining đều thực hiện trên các cơ sở dữ liệu, nguồn dữ liệu lớn. Đó là kết<br />

quả của quá trình ghi chép liên tục thông tin phản ánh hoạt động của con người, các quá trình tự<br />

nhiên… Tất nhiên các dữ liệu lưu trữ hoàn toàn là dưới dạng thô, chưa sẵn sàng cho việc phát hiện,<br />

khám phá thông tin ẩn chứa trong đó. Do vậy chúng cần phải được làm sạch cũng như biến đổi về<br />

các dạng thích hợp trước khi tiến hành bất kỳ một phân tích nào.<br />

Để thực hiện được việc trích rút thông tin hữu ích, hay áp dụng các phương pháp <strong>khai</strong> phá<br />

như phân lớp, dự đoán thì nguồn dữ liệu thô ban đầu cần phải trải qua nhiều công đoạn biến đổi.<br />

Các công đoạn này có rất nhiều cách thực hiện tùy thuộc vào nhu cầu ví dụ như: Giảm thiểu kích<br />

thước, chích chọn các dữ liệu thực sự <strong>quan</strong> trọng, giới hạn phạm vi của các dữ liệu thời gian thực,<br />

hoặc thay đổi, điều chỉnh các dữ liệu sao cho phù hợp nhất với yêu cầu đặt ra. Tất nhiên không nên<br />

quá kỳ vọng vào việc áp dụng máy tính để tìm ra các tri thức hữu ích mà không có sự trợ giúp của<br />

con người, cũng như không thể mong muốn rằng một nguồn dữ liệu sau khi biến đổi của bài toán<br />

này lại có thể phù hợp với một bài toán <strong>khai</strong> phá khác.<br />

Ví dụ, Một Công ty điện tử đưa ra yêu cầu phân tích dữ liệu bán hàng tại các chi nhánh. Khi<br />

đó nhân viên phân tích cần phải kiểm tra kỹ lưỡng cơ sở dữ liệu bán hàng của toàn công ty cũng<br />

như kho xưởng để xác định và lựa chọn các thuộc tính hoặc chiều thông tin đưa vào phân tích như:<br />

Chủng loại mặt hàng, mặt hàng, giá cả, chi nhánh bán ra. Tuy nhiên không thể tránh khỏi việc các<br />

giao dịch thường nhật có những sai lỗi nhất định trong quá trình ghi chép của nhân viên bán hàng.<br />

Các sai lỗi đó rất đa dạng từ việc không ghi lại thông tin cho đến việc ghi sai thông tin so với quy<br />

định, quy chuẩn bình thường. Do vậy công việc phân tích sẽ khó thể triển <strong>khai</strong> được nếu giữ nguyên<br />

nguồn dữ liệu ban đầu ở trạng thái chưa đầy đủ (thiếu giá trị thuộc tính hoặc các thuộc tính nhất<br />

định chỉ chứa các dữ liệu tổng hợp), nhiễu (có chứa lỗi, hoặc biên của giá trị khác so với dự kiến),<br />

và không phù hợp (ví dụ, có sự khác biệt trong mã số chi nhánh được sử dụng để phân loại).<br />

Những điều nêu trong ví dụ trên là hoàn toàn có thực trong thế giới hiện tại, đơn giản là vào<br />

thời điểm thu thập chúng không được coi là <strong>quan</strong> trọng, các dữ liệu liên <strong>quan</strong> không được ghi lại do<br />

một sự hiểu nhầm, hoặc do trục trặc thiết bị. Ngoài ra còn có các trường hợp các dữ liệu đã ghi sau<br />

khi qua một quá trình xem xét nào trước đó đã bị xóa đi, cũng như việc ghi chép sự biến đổi mang<br />

tính lịch sử của các giao dịch có thể bị bỏ qua mà chỉ giữ lại những thông tin tổng hợp vào thời<br />

điểm xét. Do vậy, làm phát sinh nhu cầu làm sạch dữ liệu là để tìm (điền) thêm các giá trị thiếu,<br />

làm mịn các dữ liệu nhiễu hoặc loại bỏ các giá trị không ý nghĩa, dữ liệu gây mâu thuẫn.<br />

Quá trình chuẩn bị dữ liệu phục vụ <strong>khai</strong> phá dữ liệu thông thường gồm:<br />

- Làm sạch dữ liệu;


- Tích hợp dữ liệu;<br />

- Biến đổi dữ liệu;<br />

- Rút gọn dữ liệu.<br />

29<br />

3.2. Làm sạch dữ liệu<br />

3.2.1. Thiếu giá trị<br />

Hãy xem xét một kho dữ liệu bán hàng và quản lý khách hàng. Trong đó có thể có một hoặc<br />

nhiều giá trị mà khó có thể thu thập được ví dụ như thu nhập của khách hàng. Vậy làm cách nào để<br />

chúng ta có được các thông tin đó, hãy xem xét các phương pháp sau.<br />

- Bỏ qua các bộ: Điều này thường được thực hiện khi thông tin nhãn dữ liệu bị mất. Phương<br />

pháp này không phải lúc nào cũng hiệu quả trừ khi các bộ có chứa một số thuộc tính không thực sự<br />

<strong>quan</strong> trọng.<br />

- Điền vào các giá trị thiếu bằng tay: Phương pháp này thường tốn thời gian và có thể không<br />

khả thi cho một tập dữ liệu nguồn lớn với nhiều giá trị bị thiếu.<br />

- Sử dụng các giá trị quy ước để điền vào cho giá trị thiệu: Thay thế các giá trị thuộc tính<br />

thiếu bởi cùng một hằng số quy ước, chẳng hạn như một nhãn ghi giá trị “Không biết” hoặc “∞”.<br />

Tuy vậy điều này cũng có thể khiến cho chương trình <strong>khai</strong> phá dữ liệu hiểu nhầm trong một số<br />

trường hợp và đưa ra các kết luận không hợp lý.


30<br />

- Sử dụng các thuộc tính có nghĩa là để điền vào cho giá trị thiếu: Ví dụ, ta biết thu nhập<br />

bình quân đầu người của một khu vực lầ 800.000đ, giá trị này có thể được dùng thể thay thế cho giá<br />

trị thu nhập bị thiếu của khách hàng trong khu vực đó.<br />

- Sử dụng các giá trị của các bộ cùng thể loại để thay thế cho giá trị thiếu: Ví dụ, nếu khách<br />

hàng A thuộc cùng nhóm phân loại theo rủi ro tín dụng với một khách hàng B khác trong khi đó<br />

khách hàng này có thông tin thu nhập bình quân. Ta có thể sử dụng giá trị đó để điền vào cho giá trị<br />

thu nhập bình quân của khách hàng A .<br />

- Sử dụng giá trị có tỉ lệ xuất hiện cao để điền vào cho các giá trị thiếu.: Điều này có thể xác<br />

định bằng phương pháp hồi quy, các công cụ suy luận dựa trên lý thuyết Bayersian hay cây quyết<br />

định<br />

3.2.2. Dữ liệu nhiễu<br />

Nhiễu dữ liệu là một lỗi ngẫu nhiên hay do biến động của các biến trong quá trình thực<br />

hiện, hoặc sự ghi chép nhầm lẫn ko được kiểm soát… Ví dụ cho thuộc tính như giá cá, làm cách<br />

nào để có thể làm mịn thuộc tính này để loại bỏ dữ liệu nhiễu. Hãy xem xét các kỹ thuật làm mịn<br />

sau:<br />

Mảng lƣu giá các mặt hàng: 4, 8, 15, 21, 21, 24, 25, 28, 34<br />

Phân thành các bin<br />

Bin 1: 4, 8 , 15<br />

Bin 2: 21, 21, 24<br />

Bin 3: 25, 28, 34<br />

Làm mịn sử dụng phƣơng pháp trung vị<br />

Bin 1: 9, 9 ,9<br />

Bin 2: 22, 22, 22<br />

Bin 3: 29, 29, 29<br />

Làm mịn biên<br />

Bin 1: 4, 4, 15<br />

Bin 2: 21, 21, 24<br />

Bin 3: 25, 25, 34<br />

Bảng 3.1. Ví dụ về phƣơng pháp làm mịn Binning<br />

a. Binning: Làm mịn một giá trị dữ liệu được xác định thông qua các giá trị xung <strong>quan</strong>h nó.<br />

Ví dụ, các giá trị giá cả được sắp xếp trước sau đó phân thành các dải khác nhau có cùng kích thước<br />

3 (tức mỗi “Bin” chứa 3 giá trị).


31<br />

- Khi làm mịn trung vị trong mỗi bin, các giá trị sẽ được thay thế bằng giá trị trung bình<br />

các giá trị có trong bin<br />

- Làm mịn biên: các giá trị nhỏ nhất và lớn nhất được xác định và dùng làm danh giới của<br />

bin. Các giá trị còn lại của bin sẽ được thay thế bằng một trong hai giá trị trên tùy thuộc vào độ lệch<br />

giữa giá trị ban đầu với các giá trị biên đó.<br />

Ví dụ, bin 1 có các giá trị 4, 8, 15 với giá trị trung bình là 9. Do vậy nếu làm mịn trung vị<br />

các giá trị ban đầu sẽ được thay thế bằng 9. Còn nếu làm mịn biên giá trị 8 ở gần giá trị 4 hơn nên<br />

nó được thay thế bằng 4.<br />

b. Hồi quy: Phương pháp thường dùng là hồi quy tuyến tính, để tìm ra được một mối <strong>quan</strong><br />

hệ tốt nhất giữa hai thuộc tính (hoặc các biến), từ đó một thuộc tính có thể dùng để dự đoán thuộc<br />

tính khác. Hồi quy tuyến tính đa điểm là một sự mở rộng của phương pháp trên, trong đó có nhiều<br />

hơn hai thuộc tính được xem xét, và các dữ liệu tính ra thuộc về một miền đa chiều.<br />

Hình 3.1. Phân cụm dữ liệu khách hàng dựa trên thông tin địa chỉ<br />

c. Nhóm cụm: Các giá trị tương tự nhau được tổ chức thành các nhóm hay “cụm" trực <strong>quan</strong>.<br />

Các giá trị rơi ra bên ngoài các nhóm này sẽ được xem xét để làm mịn để đưa chúng<br />

3.3. Tích hợp và biến đổi dữ liệu<br />

3.3.1. Tích hợp dữ liệu<br />

Trong nhiều bài toán phân tích, chúng ta phải đồng ý rằng nguồn dữ liệu dùng để phân tích<br />

không thông nhất. Để có thể phân tích được, các dữ liệu này cần phải được tích hợp, kết hơp thành<br />

một kho dữ liệu thống nhất. Về dạng thức, các nguồn dữ liệu có thể được lưu trữ rất đa dạng từ: các<br />

cơ sở dữ liệu phổ dụng, các tập tin flat-file, các dữ liệu khối …. Vấn đề đặt ra là làm thế nào có thể<br />

tích hợp chúng mà vẫn đảm bảo tính tương đương của thông tin giữa các nguồn.


32<br />

Ví dụ, làm thế nào mà người phân tích dữ liệu hoặc máy tính chắc chắn rằng thuộc tính id<br />

của khách hàng trong một cơ sở dữ liệu A và số hiệu cust trong một flat-file là các thuộc tính giống<br />

nhau về tính chất<br />

Việc tích hợp luôn cần các thông tin diễn tả tính chất của mỗi thuộc tính (siêu dữ liệu) như:<br />

tên, ý nghĩa, kiểu dữ liệu, miền xác định, các quy tắc xử lý giá trị rỗng, bằng không …. Các siêu dữ<br />

liệu sẽ được sử dụng để giúp chuyển đổi các dữ liệu. Do vậy bước này cũng liên <strong>quan</strong> đến quá trình<br />

làm sạch dữ liệu.<br />

Dƣ thừa dữ liệu: Đây cũng là một vấn đề <strong>quan</strong> trọng, ví dụ như thuộc tính doanh thu hàng<br />

năm có thể là dư thừa nếu như nó có thể được suy diễn từ các thuộc tính hoặc tập thuộc tính khác.<br />

Một số dư thừa có thể được phát hiện thông qua các phân tích tương <strong>quan</strong>, Giả sử cho hai<br />

thuộc tính, việc phân tích tương <strong>quan</strong> có thể chỉ ra mức độ một thuộc tính phụ thuộc vào thuộc tính<br />

kia, dựa trên các dữ liệu có trong nguồn. Với các thuộc tính số học, chúng ta có thể đánh giá sự<br />

tương <strong>quan</strong> giữa hai thuộc tính A và B bằng cách tính toán độ tương <strong>quan</strong> như sau:<br />

Trong đó:<br />

- N là số bộ<br />

- ai và bi là các giá trị của thuộc tính A và B tại bộ thứ i<br />

- và biểu diễn ý nghĩa các giá trị của A và B<br />

- và biểu diễn độ lệch chuẩn của A và B<br />

- là tổng của tích AB (với mỗi bộ, giá trị của thuộc tính A được nhân với giá trị<br />

của thuộc tính b trong bộ đó)<br />

- Lưu ý rằng<br />

Nếu<br />

lớn hơn 0, thì A và B có khả năng có mối liên hệ tương <strong>quan</strong> với nhau, nghĩa là<br />

nếu giá trị A tăng thì giá trị cua B cũng tăng lên. Giá trị này càng cao thì mối <strong>quan</strong> hệ càng chặt chẽ.<br />

Và hệ quả là nếu giá trị<br />

đủ cao thì một trong hai thuộc tính A (hoặc B) có thể được loại bỏ.<br />

Nếu<br />

Nếu<br />

bằng 0 thì A và B là độc lập với nhau và giữa chúng không có mối <strong>quan</strong> hệ nào.<br />

nhỏ hơn 0 thì A và B có mối <strong>quan</strong> hệ tương <strong>quan</strong> nghịch, khi đó nếu một thuộc<br />

tính tăng thì giá trị của thuộc tính kia giảm đi.<br />

Chú ý rằng, nếu giữa A và B có mối <strong>quan</strong> hệ tương <strong>quan</strong> thì không có nghĩa chúng có mối<br />

<strong>quan</strong> hệ nhân quả, nghĩa là A hoặc B biến đổi là do sự tác độ từ thuộc tính kia. Ví dụ có thể xem xét<br />

mối <strong>quan</strong> hệ tương <strong>quan</strong> giữa số bệnh viện và số vụ tai nạn ô tô ở một địa phương. Hai thuộc tính


33<br />

này thực sự không có <strong>quan</strong> hệ nhân quả trực tiếp mà chúng <strong>quan</strong> hệ nhân quả với một thuộc tính<br />

thứ 3 là dân số.<br />

Với nguồn dữ liệu rời rạc, một mối <strong>quan</strong> hệ tương <strong>quan</strong> giữa hai thuộc tính A và B có thể<br />

được khám phá ra qua phép kiểm 2. Giả sử A có c giá trị không lặp được ký hiệu là a 1 , a 2 , …, a c . B<br />

có r giá trị không lặp, ký hiệu b 1 , b 2 , …, b r . Bảng biểu diễn mối <strong>quan</strong> hệ A và B có thể được xây<br />

dựng như sau:<br />

- c giá trị của A tạo thành cột<br />

- r giá trị của B tạo hành hàng.<br />

- Gọi (Aj, Bj) biểu diễn các trường hợp mà thuộc tính A nhận giá trị a i , B nhận giá trị b i<br />

Giá trị 2 được tính như sau<br />

Trong đó:<br />

- là tần xuất <strong>quan</strong> sát được các trường hợp (Aj, Bj)<br />

- là tần xuất dự kiến các trường hợp (Aj, Bj)<br />

Với N là tổng số bộ, là số bộ có chứa giá trị ai cho thuộc tính A,<br />

là tổng số bộ có chứa trị bj cho thuộc tính B.<br />

Ví dụ: phân tích tương <strong>quan</strong> của các thuộc tính sử dụng phương pháp 2<br />

Giả sử có một nhóm 1500 người được khảo sát. Giới tính của họ được ghi nhận sau đó họ sẽ<br />

được hỏi về thể loại sách yêu thích thuộc hai dạng hư cấu và viễn tưởng. Như vậy ở đây có hai<br />

thuộc tính “giới tính” và “sở thích đọc”. Số lần xuất hiện của các trường hợp được cho trong bảng<br />

sau<br />

Nam Nữ Tổng<br />

Hư cấu 250 (90) 200 (360) 450<br />

Viễn tưởng 50 (210) 1000 (840) 1050<br />

Tổng 300 1200 1500<br />

Vậy chúng ta tính được


34<br />

Chú ý trên mỗi dòng tổng số các tần xuất xuất hiện dự kiến được ghi trong cặp ngoặc ()<br />

và tổng số tần xuất dự kiến trên mỗi cột bằng với tổng số tần xuất <strong>quan</strong> sát được trên cột đó.<br />

Từ bảng dữ liệu cho thấy bậc tự do (r-1)(c-1) = (2-1)(2-1) = 1. Với 1 bậc tự do, giá trị<br />

cần<br />

để bác bỏ giả thiết này ở mức 0.001 là 10.828. Và với giá trị tính được như trên 507.93 cho thấy<br />

giải thuyết sở thích đọc là độc lập với giới tính là không chắc chắn, hai thuộc tính này có một <strong>quan</strong><br />

hệ tương <strong>quan</strong> khá mạnh trong nhóm người được khảo sát.<br />

3.3.2. Biến đổi dữ liệu<br />

Trong phần này các dữ liệu sẽ được biến đổi sang các dạng phù hợp cho việc <strong>khai</strong> phá dữ<br />

liệu. Các phương pháp thường thấy như:<br />

- Làm mịn: Phương pháp này loại bỏ các trường hợp nhiễu khỏi dữ liệu ví dụ như các<br />

phương pháp binning, hồi quy, nhóm cụm.<br />

- Tổng hợp: trong đó tổng hợp hoặc tập hợp các hành động được áp dụng trên dữ liệu. Ví dụ<br />

thấy rằng doanh số bán hàng hàng ngày có thể được tổng hợp để tính toán hàng tháng và hàng năm.<br />

Bước này thường được sử dụng để xây dựng một khối dữ liệu cho việc phân tích.<br />

- Khái quát hóa dữ liệu, trong đó các dữ liệu mức thấp hoặc thô được thay thế bằng các khái<br />

niệm ở mức cao hơn thông qua kiến trúc <strong>khai</strong> niệm. Ví dụ, các thuộc tính phân loại ví dụ như<br />

“Đường phố” có thể khái quát hóa lên mức cao hơn thành “Thành phố” hay “Quốc gia”. Tương tự<br />

như vậy các giá trị số, như tuổi có thể được ánh xạ lên khái niệm cao hơn như “Trẻ”, “Trung niên”,<br />

“Có tuổi”<br />

- Chuẩn hóa, trong đó các dữ liệu của thuộc tính được quy về các khoảng giá trị nhỏ hơn ví<br />

dụ như từ -1.0 đến 1.0, hoặc từ 0.0 đến 1.0<br />

- Xác định thêm thuộc tính, trong đo các thuộc tính mới sẽ được thêm vào nguồn dữ liệu để<br />

giúp cho quá trình <strong>khai</strong> phá.<br />

Trong phần này chúng ta sẽ xem xét phƣơng pháp chuẩn hóa làm chủ đạo<br />

Một thuộc tính được chuẩn hóa bằng cách ánh xạ một cách có tỉ lệ dữ liệu về một khoảng<br />

xác định ví dụ như 0.0 đến 1.0. Chuẩn hóa là một phần hữu ích của thuật toán phân lớp trong mạng<br />

noron, hoặc thuật toán tính toán độ lệch sử dụng trong việc phân lớp hay nhóm cụm các phần tử liền<br />

kề. Chúng ta sẽ xem xét ba phương pháp: min-max, z-score, và thay đổi số chữ số phần thập phân<br />

(decimal scaling)<br />

a. Min-Max


35<br />

Thực hiện một biến đổi tuyến tính trên dữ liệu ban đầu. Giả sử rằng min A và max A là giá<br />

trị tối thiểu và tối đa của thuộc tính A. Chuẩn hóa min-max sẽ ánh xạ giá trị v của thuộc tính A<br />

thành v‟ trong khoảng [new_min A , new_max A ] bằng cách tính toán<br />

Ví dụ: Giả sử giá trị nhỏ nhất và lớn nhất cho thuộc tính “thu nhập bình quân” là 500.000 và<br />

4.500.000. Chúng ta muốn ánh xạ giá trị 2.500.000 về khoảng [0.0, 1.0] sử dụng chuẩn hóa minmax.<br />

Giá trị mới thu được là<br />

b. z-score<br />

Với phương pháp này, các giá trị của một thuộc tính A được chuẩn hóa dựa vào độ lệch tiêu<br />

chuẩn và trung bình của A. Một giá trị v của thuộc tính A được ánh xạ thành v‟ như sau:<br />

Với ví dụ phía trên: Giả sử thu nhập bình quân có độ lệch tiêu chuẩn và trung bình là:<br />

1.000.000 và 500.000. Sử dụng phương pháp z-score thì giá trị 2.500.000 được ánh xạ thành<br />

c. Thay đổi số chữ số phần thập phân (decimal scale)<br />

Phương pháp này sẽ di chuyển dấu phân các phần thập phân của các giá trị của thuộc tính A.<br />

Số chữ số sau dấu phân cách phần thập phân được xác định phụ thuộc vào giá trị tuyệt đối lớn nhất<br />

có thể có của thuộc tính A. Khi đó giá trị v sẽ được ánh xạ thành v‟ bằng cách tính<br />

Trong đó j là giá trị nguyên nhỏ nhất thỏa mãn Max(|v‟|) < 1<br />

Ví dụ: Giả sử rằng các giá trị của thuộc tính A được ghi nhận nằm trong khoảng -968 đến<br />

917. Giá trị tuyệt đối lớn nhất của miền là 986. Để thực hiện chuẩn hóa theo phương pháp ánh này,<br />

trước đó chúng ta mang các giá trị chia cho 1.000 (j = 3). Như vậy giá trị -986 sẽ chuyển thành -<br />

0.986 và 917 được chuyển thành 0.917<br />

3.3.3. Thu nhỏ dữ liệu<br />

Việc <strong>khai</strong> phá dữ liệu luôn được tiến hành trên các kho dữ liệu khổng lồ và phức tạp. Các kỹ<br />

thuật <strong>khai</strong> phá khi áp dụng trên chúng luôn tốn thời gian cũng như tài tuyên của máy tính. Do vậy<br />

đòi hỏi chúng cần được thu nhỏ trước khi áp dụng các kỹ thuật <strong>khai</strong> phá. Một số chiến lược thu nhỏ<br />

dữ liệu như sau:


36<br />

- Tổng hợp khối dữ liệu, trong đó các hành động tổng hợp được áp dụng trên dữ liệu để<br />

hình thành các khối.<br />

- Lựa chọn tập thuộc tính con, trong đó các thuộc tính không thích hợp, yếu hoặc dư thừa<br />

hay các chiều sẽ được loại bỏ<br />

- Rút gọn chiều, trong đó các cơ chế mã hóa sẽ rút gọn kích thước dữ liệu<br />

- Rút gọn số học, trong đó các dữ liệu sẽ được thay thế bằng các dữ liệu phụ nhỏ hơn nhưng<br />

cùng biểu diễn vấn đề.<br />

- Rời rạc và phân cấp khái niệm , trong đó cá giá trị của các thuộc tính được thay thế bằng<br />

các dải khái niệm ở mức cao hơn. Dạng thức rời rạc hóa dữ liệu sử dụng rút gọn số học thường rất<br />

hữu dụng cho việc tự động phát sinh các dải phân cấp khái niệm. Phương pháp này cho phép việc<br />

<strong>khai</strong> phá dữ liệu diễn ra ở các mức trừu tượng.<br />

a. Tổng hợp khối dữ liệu<br />

Hãy xem xét dữ liệu bán hàng của một đơn vị, các dữ liệu đó được tổ chức báo cáo theo<br />

hàng quý cho các năm từ 2008 đến 2010. Tuy nhiên việc <strong>khai</strong> phá dữ liệu lại <strong>quan</strong> tâm hơn đến các<br />

báo cáo bán hàng theo năm chứ không phải theo từng quý. Do đó các dữ liệu nên được tổng hợp<br />

thành báo cáo tổng về tình hình bán hàng theo năm hơn là theo quý.<br />

Hình 3.2. Dữ liệu bán hàng


37<br />

Hình 3.3. Dữ liệu tổng hợp<br />

Phân cấp khái niệm có thể tồn tại ở mỗi thuộc tính, nó cho phép phân tích dữ liệu ở nhiều<br />

mức trừu tượng. Ví dụ, phân cấp chi nhánh cho phép các chi nhánh được nhóm lại theo thừng vùng<br />

dựa trên địa chỉ. Khối dữ liệu cho phép truy cập nhanh đến các dữ liệu đã tính toán, tống hợp do vậy<br />

nó khá phù hợp với các quá trình khái phá.<br />

Các khối dữ liệu được tạo ở mức trừu tượng thấp thường được gọi là cuboid. Các cuboid<br />

tương ứng với một tập thực thể nào đó ví dụ như người bán hàng, khách hàng. Các khối này cung<br />

cấp nhiều thông tin hữu dụng cho quá trình phân tích. Khối dữ liệu ở mức trừu tượng cao gọi là<br />

apex cuboid, trong hình 3.3 trên thể hiện dữ liệu bán hàng cho cả 3 năm, tất cả các loại mặt hàng và<br />

các chi nhánh. Khối dữ liệu được tạo từ nhiều mức trừu tượng thường được gọi là cuboids, do vậy<br />

khối dữ liệu thường được gọi bằng tên khác là lưới cuboids.<br />

b. Lựa chọn tập thuộc tính con<br />

Nguồn dữ liệu dùng phân tích có thể chứa hàng trăm thuộc tích, rất nhiều trong số đó có thể<br />

không cần cho việc phân tích hoặc chúng là dư thừa. Ví dụ nếu nhiệm vụ phân tích chỉ liên <strong>quan</strong><br />

đến việc phân loại khách hàng xem họ có hoặc không muốn mua một đĩa nhạc mới hay không. Khi<br />

đó thuộc tính điện thoại của khách hàng là không cần thiết khi so với các thuộc tính như độ tuổi, sở<br />

thích âm nhạc. Mặc dù vậy việc lựa chọn thuộc tính nào cần <strong>quan</strong> tâm là một việc khó khăn và mất<br />

thời gian đặt biệt khi các đặc tính của dữ liệu là không rõ ràng. Giữ các thuộc tình cần, bỏ các thuộc<br />

tính không hữ ích cũng sẽ có thể gây nhầm lẫn, và sai lệch kết quả của các thuật toàn <strong>khai</strong> phá dữ<br />

liệu.<br />

Phương pháp này rút gọn kích thước dữ liệu bằng cách loại bỏ các thuộc tính không hữu ích<br />

hoặc dư thừa (hoặc loại bỏ các chiều). Mục đích chính là tìm ra tập thuộc tính nhỏ nhất sao cho khi<br />

áp dụng các phương pháp <strong>khai</strong> phá dữ liệu thì kết quả thu được là gần sát nhất với kết quả khi sử<br />

dụng tất cả các thuộc tính.


38<br />

Vậy làm cách nào để tìm ra một tập thuộc tính con đủ tốt từ tập thuộc tính ban đầu. Nhớ<br />

rằng với N thuộc tính chúng ta sẽ có 2 n tập thuộc tính con. Việc phát sinh và xem xét hết các tập<br />

này là khá tốn công sức cũng như tài nguyên đặc biệt khi N và số các lớp dữ liệu tăng lên. Do vậy<br />

cần có các phương pháp khác, một trong số đó là phương pháp tìm kiếm tham lam, nó sẽ duyệt qua<br />

không gian thuộc tính và tìm kiếm các lựa chọn tốt nhất vào thời điểm xét.<br />

Lựa chọn tăng dần Loại bớt Cây quyết định<br />

Tậpthuộc tính ban đầu<br />

{A1, A2, A3, A4, A5, A6}<br />

Tập rút gọn ban đầu<br />

{}<br />

=> {A1}<br />

=> {A1, A4}<br />

=> Kết quả {A1, A4, A6}<br />

Tậpthuộc tính ban đầu<br />

{A1, A2, A3, A4, A5, A6}<br />

=> {A1, A3, A4, A5, A6}<br />

=> {A1, A4, A5, A6}<br />

=> Kết quả {A1, A4, A6}<br />

Tậpthuộc tính ban đầu<br />

{A1, A2, A3, A4, A5, A6}<br />

Bảng 3.2. Ví dụ kỹ thuật rút gọn<br />

=> Kết quả {A1, A4, A6}<br />

Việc lựa chọn ra thuộc tính tốt (xấu) được xác định thông qua các phép kiểm thống kê, trong<br />

đó giả sử rằng thuộc tính đang xét là độc lập với các thuộc tính khác hoặc phương pháp đánh giá<br />

thuộc tính sử dụng độ đo thông tin thường được dùng trong việc xây dựng cây quyết định phân lớp.<br />

Các kỹ thuật lựa chọn thường dùng như:<br />

1. Lựa chọn tăng dần: Xuất phát từ một tập rỗng các thuộc tính, các thuộc tính tốt nhất mỗi<br />

khi xác định được sẽ được thêm vào tập này. Lặp lại bước trên cho đến khi không thêm được thuộc<br />

tính nào nữa.<br />

2. Loại bớt: Xuất phát từ tập có đầy đủ các thuộc tính. Ở mỗi bước loại ra các thuộc tính tồi<br />

nhất.<br />

3. Kết hợp giữa phương pháp loại bớt và lựa chọn tăng dần bằng cách tại mỗi bước ngoài<br />

việc lựa chọn thêm các thuộc tính tốt nhất đưa vào tập thì cũng đồng thời loại bỏ đi các thuộc tính<br />

tồi nhất khỏi tập đang xét.<br />

4. Cây quyết đinh: Khi sử dụng, cây được xây dựng từ nguồn dữ liệu ban đầu. Tất cả các<br />

thuộc tính không xuất hiện trên cây được coi là không hữu ích. Tập các thuộc tính có trên cây sẽ là<br />

tập thuộc tính rút gọn


39<br />

Bài tập:<br />

1. Nếu một thuộc tính trong nguồn dữ liệu Điểm-Sinh viên có các giá trị A, B, C, D, F thì kiểu<br />

dữ liệu dự kiến của thuộc tính đó trong quá trình tiền xử lý là gì<br />

2. Cho mảng một chiều X = {−5.0, 23.0, 17.6, 7.23, 1.11}, hãy chuẩn hóa mảng sử dụng<br />

a. Decimal scaling: trong khoảng [−1, 1].<br />

b. Min-max: trong khoảng [0, 1].<br />

c. Min-max: trong khoảng [−1, 1].<br />

d. Phương pháp độ lệch<br />

e. So sánh kết quả của các dạng chuẩn trên và cho nhận xét về ưu nhược điểm của các<br />

phương pháp<br />

3. Làm mịn dữ liệu sử dụng kỹ thuật làm tròn cho tập sau:<br />

Y = {1.17, 2.59, 3.38, 4.23, 2.67, 1.73, 2.53, 3.28, 3.44}<br />

Sau đó biểu diễn tập thu được với các độ chính xác:<br />

a. 0.1<br />

b. 1.<br />

4. Cho tập mẫu với các giá trị bị thiếu<br />

o X1 = {0, 1, 1, 2}<br />

o X2 = {2, 1, −, 1}<br />

o X3 = {1, −, −, 0}<br />

o X4 = {−, 2, 1, −}<br />

Nếu miền xác định của tất cả các thuộc tính là [0, 1, 2], hãy xác định các giá trị bị thiếu biết<br />

rằng các giá trị đó có thể là một trong số các xác trị của miền xác định Hãy giải thích<br />

những cái được và mất nếu rút gọn chiều của kho dữ liệu lớn trong quá trình tiền xử lý dữ<br />

liệu


40<br />

Chương 4: Luật kết hợp<br />

4.1. Khái niệm cơ bản<br />

Từ khi được giới thiệu từ năm 1993, bài toán <strong>khai</strong> thác luật kết hợp nhận được rất nhiều sự<br />

<strong>quan</strong> tâm của nhiều nhà khoa học. Ngày nay việc <strong>khai</strong> thác các luật như thế vẫn là một trong những<br />

phương pháp <strong>khai</strong> thác mẫu phổ biến nhất trong việc khám phá tri thức và <strong>khai</strong> thác dữ liệu (KDD:<br />

Knowledge Discovery and Data Mining).<br />

Mục đích chính của <strong>khai</strong> phá dữ liệu là các tri thức được kết xuất ra sẽ được sử dụng trong<br />

dự báo thông tin trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa học.<br />

Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các nhà<br />

quản lý rất thích có được các thông tin mang tính thống kê như: “90% phụ nữ có xem máy màu đỏ<br />

và đeo đồng hồ Thuỵ Sỹ thì dùng nước hoa hiệu Chanel” hoặc “70% khách hàng là công nhân khi<br />

mua TV thường mua loại TV 21 inches”. Những thông tin như vậy rất hữu ích trong việc định<br />

hướng kinh doanh. Vậy vấn đề đặt ra là liệu có tìm được các luật như vậy bằng các công cụ <strong>khai</strong><br />

phá dữ liệu hay không Câu trả lời là hoàn oàn có thể. Đó chính là nhiệm vụ <strong>khai</strong> phá luật kết hợp.<br />

Giả sử chúng ta có một cơ sở dữ liệu D. Luật kết hợp cho biết phạm vi mà trong đó sự xuất<br />

hiện của tập các thuộc tính S nào đó trong các bản ghi của D sẽ kéo theo sự xuất hiện của một tập<br />

những thuộc tính khác U cũng trong những record đó. Mỗi luật kết hợp được đặc trưng bởi một cặp<br />

tỉ lệ (ration) hỗ trợ. Mỗi tỉ lệ hỗ trợ được biểu diễn bằng tỉ lệ % những bản ghi trong D chứa cả S và<br />

U.<br />

Vấn đề khám phá luật kết hợp được phát biểu như sau:<br />

• Cho trước tỉ lệ hỗ trợ (support ration) và độ tin cậy (confidence) <br />

• Đánh số tất cả các luật trong D có các giá trị tỉ lệ hỗ trợ và tin cậy lớn hơn và tương<br />

ứng.<br />

Ví dụ: D là CSDL mua bán và với = 40%, = 90%. Vấn đề phát hiện luật kết hợp KH được thực<br />

hiện như sau:<br />

• Liệt kê (đếm) tất cả những qui luật chỉ ra sự xuất hiện một số các mục sẽ kéo theo một<br />

số mục khác.<br />

• Chỉ xét những qui luật mà tỉ lệ hỗ trợ lớn hơn 40% và độ tin cậy lớn hơn 90%.<br />

Hay chúng ta hãy tưởng tượng, một công ty bán hàng qua mạng Internet. Các khách hàng<br />

được yêu cầu điền vào các mẫu bán hàng để công ty có được một CSDL về các yêu cầu của khách<br />

hàng. Giả sử công ty <strong>quan</strong> tâm đến mối <strong>quan</strong> hệ "tuổi, giới tính, nghề nghiệp => sản phẩm". Khi đó<br />

có thể có rất nhiều câu hỏi tương ứng với luật trên. Ví dụ: trong lứa tuổi nào thì những khách hàng


41<br />

nữ là công nhân đặt mua mặt hàng gì đó, ví dụ áo dài chẳng hạn là nhiều nhất (thoả mãn một<br />

ngưỡng nào đó)<br />

4.2. Luật kết hợp<br />

4.2.1. Lý thuyết về luật kết hợp<br />

Cho một tập I = {I 1 , I 2 , ...,I m } các tập m khoản mục (item), một giao dịch (transaction) T<br />

được định nghĩa như một tập con (subset) của các khoản mục trong I (T I). Tương tự như khái<br />

niệm tập hợp, các giao dịch không được trùng lặp, nhưng có thể nới rộng tính chất này của tập hợp<br />

và trong các thuật toán sau này, người ta đều giả thiết rằng các khoản mục trong một giao dịch và<br />

trong tất cả các tập mục (item set) khác, có thể coi chúng đã được sắp xếp theo thứ tự từ điển của<br />

các item.<br />

Gọi D là CSDL của n giao dịch và mỗi giao dịch được đánh nhãn với một định danh duy<br />

nhất (Unique Transasction Identifier). Nói rằng, một giao dịch T D hỗ trợ (support) cho một tập<br />

X I nếu nó chứa tất cả các item của X, nghã là X T, trong một số trường hợp người ta dùng ký<br />

hiệu T(X) để chỉ tập các giao dịch hỗ trợ cho X. Kí hiệu support(X) (hoặc sup(X), s(X)) là tỷ lệ<br />

phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch trong D, nghĩa là:<br />

T D X T <br />

sup(X) = (2.1.1)<br />

D<br />

Độ hỗ trợ tối thiểu (minimum support) minsup là một giá trị cho trước bởi người sử dụng.<br />

Nếu tập mục X có sup(X) minsup thì ta nói X là một tập các mục phổ biến (hoặc large itemset).<br />

Một tập phổ biến được sử dụng như một tập đáng <strong>quan</strong> tâm trong các thuật toán, ngược lại, những<br />

tập không phải tập phổ biến là những tập không đáng <strong>quan</strong> tâm. Trong các trình bày sau này, ta sẽ<br />

sử dụng những cụm từ khác như “X có độ hỗ trợ tối thiểu”, hay “X không có độ hỗ trợ tối thiểu”<br />

cũng để nói lên rằng X thỏa mãn hay không thỏa mãn support(X) minsup.<br />

Một khoản mục X được gọi là k- itemset nếu lực lượng của X bằng k, tức là<br />

X k .<br />

4.2.2. Định nghĩa luật kết hợp<br />

Một luật kết hợp có dạng R: X => Y, trong đó X, Y là tập các mục, X, Y I và X Y = .<br />

X được gọi là tiên đề và Y được gọi là hệ quả của luật.<br />

Luật X => Y tồn tại một độ tin cậy c (confidence-conf). Độ tin cậy c được định nghĩa là khả năng<br />

giao dịch T hỗ trợ X thì cúng hỗ trợ Y. Ta có công thức tính độ tin cậy c như sau:<br />

p(<br />

Y T X T) sup( X Y)<br />

conf(X =>Y) = p(Y I | X I ) =<br />

<br />

(2.1.2)<br />

p(<br />

X T)<br />

sup( X )<br />

Tuy nhiên, không phải bất cứ luật kết hợp nào có mặt trong tập các luật có thể được sinh ra<br />

cũng đều có ý nghĩa trên thực tế. Mà các luật đều phải thoả mãn một ngưỡng hỗ trợ và tin cậy cụ<br />

thể. Thực vậy, cho một tập các giao dịch D, bài toán phát hiện luật kết hợp là sinh ra tất cả các luật<br />

kết hợp mà có độ tin cậy conf lớn hơn độ tin cậy tối thiểu mincon và độ hỗ trợ sup lớn hơn độ hỗ


42<br />

trợ tối thiểu minsup tương ứng do người dùng xác định. Khai phá luật kết hợp được phân thành<br />

hai bài toán con:<br />

Bài toán 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tốt thiểu do người<br />

dùng xác định. Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập mục phổ biến.<br />

Bài toán 2: Dùng các tập mục phổ biến để sinh ra các luật mong muốn. Ý tưởng chung là<br />

nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng ta có thể xác định luật nếu AB =><br />

CD giữ lại với tỷ lệ độ tin cậy:<br />

sup( ABCD )<br />

conf (2.1.3)<br />

sup( AB)<br />

nếu conf ≥ mincon thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối thiểu vì ABCD là<br />

phổ biến)<br />

4.2.3. Một số tính chất liên <strong>quan</strong> đến các hạng mục phổ biến (frequent itemset):<br />

Tính chất 1. Độ hỗ trợ (support) cho tất cả các tập con (subset): nếu A B, A, B là tập các<br />

mục thì sup(A)sup(B) vì tất cả các giao dịch của D hỗ trợ B thì cũng hỗ trợ A.<br />

Tính chất 2. Nếu một mục trong A không có độ hỗ trợ tối thiểu trên D nghĩa là support(A)<<br />

minsup thì một tập con B của A sẽ không phải là một tập phổ biến vì support(B)support(A) <<br />

minsup.<br />

Tính chất 3. Nếu mục B là mục phổ biến trên D, nghĩa là support(B) minsup thì mọi tập<br />

con A của B là tập phổ biến trên D vì support(A) support(B) > minsup.<br />

4.2.4. Một số hƣớng tiếp cận trong <strong>khai</strong> phá luật kết hợp<br />

Lĩnh vực <strong>khai</strong> thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều<br />

hướng khác nhau. Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm<br />

kiếm luật có ý nghĩa hơn… và có một số hướng chính sau đây.<br />

Luật kết hợp nhị phân (binary association rule hoặc boolean association rule) : là hướng<br />

nghiên cứu đầu tiên của luật kết hợp. Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên<br />

<strong>quan</strong> đến luật kết hợp nhị phân. Trong dạng luật kết hợp này, các mục (thuộc tính) chỉ được <strong>quan</strong><br />

tâm là có hay không xuất hiện trong giao tác của cơ sở dữ liệu chứ không <strong>quan</strong> tâm về “mức độ“<br />

xuất hiện. Ví dụ: Trong hệ thống tính cước điện thoại thì việc gọi 10 cuộc điện thoại và 1 cuộc được<br />

xem là giống nhau. Thuật toán tiêu biểu nhất <strong>khai</strong> phá dạng luật này là thuật toán Apriori và các<br />

biến thể của nó. Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này<br />

nhờ một số phương pháp như rời rạc hoá, mờ hoá, … Một ví dụ về dạng luật này : “gọi liên tỉnh=<br />

„yes‟ AND gọi di động= „yes‟ => gọi quốc tế= „yes‟ AND gọi dịch vụ 108 = „yes‟, với độ hỗ trợ<br />

20% và độ tin cậy 80%”<br />

Luật kết hợp có thuộc tính số và thuộc tính hạng mục (<strong>quan</strong>titative and categorial<br />

association rule) : Các thuộc tính của các cơ sở dữ liệu thực tế có kiểu rất đa dạng (nhị phân -<br />

binary, số - <strong>quan</strong>titative, hạng mục - categorial,…). Để phát hiện luật kết hợp với các thuộc tính


43<br />

này, các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hoá nhằm chuyển dạng luật này<br />

về dạng nhị phân để có thể áp dụng các thuật toán đã có. Một ví dụ về dạng luật này “phương thức<br />

gọi = „Tự động‟ AND giờ gọi IN [„23:00:39.. 23:00:59‟] AND Thời gian đàm thoại IN [„200.. 300‟]<br />

=> gọi liên tỉnh =‟có‟ , với độ hỗ trợ là 23. 53% , và độ tin cậy là 80%”.<br />

Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on rough set) : Tìm<br />

kiếm luật kết hợp dựa trên lý thuyết tập thô.<br />

Luật kết nhiều mức (multi-level association rule) : Với cách tiếp cận theo luật này sẽ tìm<br />

kiếm thêm những luật có dạng “ mua máy tính PC => mua hệ điều hành AND mua phần mềm tiện<br />

ích văn phòng, …” thay vì chỉ những luật quá cụ thể như “mua máy tính IBM PC => mua hệ điều<br />

hành Microsoft Windows AND mua phần mềm tiện ích văn phòng Microsoft Office, …”. Như vậy<br />

dạng luật đầu là dạng luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác nhau.<br />

Luật kết hợp mờ (fuzzy association rule) : Với những hạn chế còn gặp phải trong quá trình<br />

rời rạc hoá các thuộc tính số (<strong>quan</strong>titave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp mờ<br />

nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với<br />

người sử dụng một ví dụ của dạng này là : “thuê bao tư nhân = ‘yes’ AND thời gian đàm thoại lớn<br />

AND cước nội tỉnh = ‘yes’ => cước không hợp lệ = ‘yes’, với độ hỗ trợ 4% và độ tin cậy 85%”.<br />

Trong luật trên, điều kiện thời gian đàm thoại lớn ở vế trái của luật là một thuộc tính đã được mờ<br />

hoá.<br />

Luật kết với thuộc tính được đánh trọng số (association rule with weighted items) : Trong<br />

thực tế, các thuộc tính trong cơ sở dữ liệu không phải lúc nào cũng có vai trò như nhau. Có một số<br />

thuộc tính được chú trọng hơn và có mức độ <strong>quan</strong> trọng cao hơn các thuộc tính khác. Ví dụ khi<br />

khảo sát về doanh thu hàng tháng, thông tin về thời gian đàm thoại, vùng cước là <strong>quan</strong> trọng hơn<br />

nhiều so với thông tin về phương thức gọi... Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời<br />

gian gọi, vùng cước các trọng số lớn hơn thuộc tính phương thức gọi. Đây là hướng nghiên cứu rất<br />

thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này. Với luật kết hợp có<br />

thuộc tính được đánh trọng số, chúng ta sẽ <strong>khai</strong> thác được những luật “hiếm” (tức là có độ hỗ trợ<br />

thấp, nhưng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa).<br />

Khai thác Luật kết hợp song song (parallel mining of association rules): Bên cạnh <strong>khai</strong> thác<br />

luật kết hợp tuần tự, các nhà làm tin học cũng tập trung vào nghiên cứu các thuật giải song song cho<br />

quá trình phát hiện luật kết hợp. Nhu cầu song song hoá và xử lý phân tán là cần thiết bởi kích<br />

thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống<br />

phải được đảm bảo. Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ<br />

thuộc vào phần cứng.<br />

Bên cạnh những nghiên cứu về những biến thể của luật kết hợp, các nhà nghiên cứu còn chú<br />

trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ cơ sở dữ liệu.


44<br />

Ngoài ra, còn có một số hướng nghiên cứu khác về <strong>khai</strong> thác luật kết hợp như: <strong>khai</strong> thác<br />

luật kết hợp trực tuyến, <strong>khai</strong> thác luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều<br />

(Multidimensional data, data warehouse) thông qua công nghệ OLAP (Online Analysis Processing),<br />

MOLAP (multidimensional OLAP), ROLAP (Relational OLAP), ADO (Active X Data Object) for<br />

OLAP..v..v..<br />

4.3. Phát biểu bài toán phát hiện luật kết hợp<br />

Xét ví dụ trong giao dịch các mặt hàng được khách hàng mua tại siêu thị. Tập các mặt hàng<br />

(ở đây coi là tập các mục) I = {Bánh mì, Bơ, Sữa, Trứng} và số các giao dịch mua hàng là 4 giao<br />

dịch (|T| = 4), trong đó T = {1, 2, 3, 4} – ký hiệu các giao dịch TID.<br />

TID<br />

Từ bảng giao dịch trên ta rút ra:<br />

Tập các mục trong giao dịch<br />

1 Bánh mì, Bơ, Trứng<br />

2 Bơ, Sữa, Trứng<br />

3 Bơ<br />

4 Bánh mì, Bơ<br />

TT Tập các mục trong giao dịch Độ hỗ trợ tƣơng ứng<br />

1 Ø (không có mặt hàng nào) 0 %<br />

2 Bánh mì 50 %<br />

3 Bơ 100 %<br />

4 Sữa 25 %<br />

5 Trứng 50 %<br />

6 Bánh mì, Bơ 50 %<br />

7 Bánh mì, Sữa 0 %<br />

8 Bánh mì, Trứng 0 %<br />

9 Bơ, Sữa 25 %<br />

10 Bơ, Trứng 50 %<br />

11 Sữa, Trứng 25 %<br />

12 Bánh mì, Bơ, Sữa 0 %<br />

13 Bánh mì, Bơ, Trứng 25 %<br />

14 Bánh mì, Sữa, Trứng 25 %<br />

15 Bơ, Sữa, Trứng 25 %<br />

16 Bánh mì, Bơ, Sữa, Trứng 0 %


Với giá trị độ hỗ trợ tối thiểu minsup = 50 % thì tập mục phổ biến là:<br />

TT Tập các mục phổ biến Độ hỗ trợ tƣơng ứng<br />

1 Bánh mì 50 %<br />

2 Bơ 100 %<br />

3 Trứng 50 %<br />

4 Bánh mì, Bơ 50 %<br />

5 Bơ, Trứng 50 %<br />

45<br />

Nếu cho độ tin cậy tối thiểu là mincon = 60 % thì ta có các luật sau:<br />

TT Luật Độ tin cậy Thoả mãn ≥ 60%<br />

1 Bánh mì => Bơ 100 % Có<br />

2 Bơ => Bánh mì 50 % Không<br />

3 Bơ =>Trứng 50 % Không<br />

4 Trứng => Bơ 100 % Có<br />

Bảng 2.1. Minh hoạ bài toán phát hiện luật kết hợp<br />

4.4. Phát hiện luật kết hợp dựa trên hệ thông tin nhị phân<br />

4.4.1. Các định nghĩa hình thức trên hệ thông tin nhị phân<br />

Định nghĩa 2.2.3.1: Hệ thông tin nhị phân<br />

Cho các tập sau:<br />

O ={o 1 , o 2 , …, o n } là một tập hữu hạn gồm n đối tượng,<br />

D = {d 1 , d 2 , …, d m } là một tập hữu hạn gồm m chỉ báo,<br />

B = {0, 1}<br />

Hệ thông tin nhị phân được định nghĩa là S B = (O, D, B, ) trong đó là ánh xạ :O x D →<br />

B, (o,d) = 1 nếu đối tượng o có chỉ báo d và (o,d) = 0 nếu ngược lại.<br />

Định nghĩa 2.2.3.2: Các ánh xạ thông tin nhị phân<br />

Cho hệ thông tin nhị phân S B = (O, D, B, ). Cho P(O) là các tập con của O, P(D) là các tập<br />

con của D. Các ánh xạ thông tin nhị phân B và B được định nghĩa như sau:<br />

B : P(D) P(O) với ý nhĩa:<br />

cho S D, B (S) = {o O| d S, (o, d) = 1}<br />

B : P(O) P(D) với ý nhĩa:<br />

cho X O, B (X) = {d D| o X, (o, d) = 1}<br />

Định nghĩa 2.2.3.3: Tập chỉ báo phổ biến nhị phân<br />

Cho hệ thông tin nhị phân S B = (O, D, B, ) và một ngưỡng (0, 1).<br />

Cho S D, S là tập chỉ báo phổ biến nhị phân với ngưỡng nếu:


card( B (S)) ≥ *card(O)<br />

Cho L B là một tập gồm tất cả các tập chỉ báo phổ biến nhị phân đã phát hiện từ S B , chúng có<br />

thuộc tính như sau: S L B , T S thì T L B .<br />

Trong đó L B,h là tập con của L B nếu X L B,h thì card(X) = h (với h là số nguyên dương).<br />

Định nghĩa 2.2.3.4: Các luật kết hợp phổ biến nhị phân và hệ số tin cậy<br />

Cho hệ thông tin nhị phân S B = (O, D, B, ) và một ngưỡng (0, 1). Cho L là một phần tử<br />

của L B , X và Y là hai tập con của L, trong đó:<br />

L = X Y, X ≠ {}, Y ≠ {} và X Y = {}<br />

Chúng ta xác định các luật kết hợp nhị phân giữa tập chỉ số X và tập chỉ số Y là một ánh xạ<br />

thông tin: X Y. Hệ số tin cậy của luật này được biểu diễn là:<br />

card ( B<br />

( X ) B<br />

( Y))<br />

CF B<br />

( X Y)<br />

<br />

(2.2.3.1)<br />

card ( ( X ))<br />

B<br />

Ta biểu diễn R B, là tập tất cả các luật kết hợp phổ biến nhị phân được phát hiện tự S B .<br />

Trong đó CF B (r) ≥ , r R B,<br />

Định nghĩa 2.2.3.5: Các vectơ chỉ báo nhị phân và các phép toán<br />

Cho hệ thông tin nhị phân S B = (O, D, B, ) trong đó O ={o 1 , o 2 , …, o n } là một tập hữu hạn<br />

gồm n đối tượng, D = {d 1 , d 2 , …, d m } là một tập hữu hạn gồm m chỉ báo.<br />

Vectơ chỉ báo nhị phân<br />

Vectơ chỉ báo nhị phân v B (X) = {X 1 , X 2 , … , X n } trong đó: X D là một vectơ với n thành<br />

phần, mỗi thành phần X j chiếm một giá trị trong B. Cho VS B là tập tất cả các vectơ chỉ báo<br />

nhị phân của S B , nếu card(X) = 1 thì X là bộ chỉ báo của S B và X j = (o, X)<br />

Định nghĩa 2.2.3.6: Tích vectơ chỉ báo nhị phân<br />

Cho X 1 , X 2 D, v B (X 1 ) = (X 11 , X 12 , … , X 1n ), v B (X 2 ) = (X 21 , X 22 , … , X 2n ) là các phần tử<br />

của VS B . Tích vectơ chỉ báo nhị phân v B (X 1 ) và v B (X 2 ) được biểu hiện là v B (X 3 ) = v B (X 1 ) B<br />

v B (X 2 ). Trong đó:<br />

v B (X 3 ) = (X 31 , X 32 , … , X 3n ) với X 3j = min(X 1j , X 2j ), j = 1n<br />

X 3 = X 1 X 2 D<br />

Từ vectơ v B (X 3 ), chúng ta biết tất cả các đối tượng hiện có trong tập chỉ báo X 1 và X 2 .<br />

Chúng ta dùng v B (X 1 ) để trình diễn B (X 1 ), v B (X 2 ) để trình diễn B (X 2 ) và v B (X 3 ) để trình diễn<br />

B (X 3 ).<br />

Định nghĩa 2.2.3.7: Độ hỗ trợ các vectơ chỉ báo nhị phân<br />

Cho X 1 D, độ hỗ trợ của v B (X 1 ) biểu diễn sup B (v B (X 1 )) được định nghĩa là: sup B (v B (X 1 ))<br />

= {o O| d X 1 , (o, d) = 1} (1)<br />

Dễ thấy rằng: card(sup B (v B (X 1 ))) = card( B (X 1 ))<br />

46


47<br />

Tính card( B (S))<br />

Cho S = {s 1 , s 2 , … , s k } là tập con của D. Trong đó s j là bộ chỉ báo của S B , j = 1 k. Mỗi<br />

s j tương ứng với vectơ chỉ báo nhị phân v B ({s j }). Các yếu tố của B (S) được tính bằng:<br />

card( B (S)) = card(sup B (v B {s 1 }) B sup B (v B {s 2 }) B … sup B (v B {s k })) (2)<br />

Chúng ta biểu diễn VS B,h là tập con của VS B chứa chỉ vectơ v B (X) trong đó X D và<br />

card(X) = h (h là số nguyên dương cho trước).<br />

4.4.2. Thuật toán phát hiện tập chỉ báo và luật kết hợp nhị phân<br />

Thuật toán phát triển từ thuật toán Apriori-Tid. Để phát hiện các tập chỉ báo nhị phân phổ<br />

biến từ các luật kết hợp nhị phân từ hệ thông tin nhị phân. Thuật toán này làm việc với các bit trong<br />

bộ nhớ và không làm việc với cơ sở dữ liệu trên đĩa, vì thế có thể cải tiến tốc độ quá trình phát hiện<br />

luật. Cho một CSDL và hai ngưỡng độ hỗ trợ tối thiểu minsup và độ tin cậy tối thiểu mincomf của<br />

luật kết hợp. Thuật toán Apriori-Tid có hai pha:<br />

Pha 1: Phát hiện các tập chỉ báo phổ biến dựa trên ngưỡng minsup cho trước.<br />

Pha 2: Xây dựng các luật kết hợp dựa trên một ngưỡng mincom cho trước.<br />

Cho ma trận thông tin nhị phân S B = (O, D, B, ) và một ngưỡng , (0, 1). Trong đó là<br />

minsup và là mincon.<br />

Chi tiết thuật toán Apriori-Tid như sau:<br />

Pha 1: Phát hiện tập chỉ báo phổ biến nhị phân<br />

1. TraLoi = ;<br />

2. Sinh L B,1 từ S B theo thủ tục 1.a. dưới đây ;<br />

3. for (k = 2; L B,k {}; k++)<br />

4.{ Sinh L B,k từ L B,k-1 theo thủ tục 2.a. dưới đây ;<br />

5. TraLoi = k L B,k-1 ;<br />

6. }<br />

7. Return TraLoi ;<br />

// = = = = = = = =<br />

1.a. Sinh L B,1<br />

1. L B,1 = ;<br />

2. for (i = 1; i * card(O))<br />

4. { SaveLargeSet({d i }, VS B,1 ) ;<br />

5. SaveDescriptorVector(v B ({d i }, VS B,1 )) ;<br />

6. }<br />

7. TraLoi = L B , 1 ;


8. Return TraLoi ;<br />

// Trong đó m = card(D) là lực lượng của lập D.<br />

48<br />

2.a. Sinh L B,1<br />

Dựa trên thuộc tính S L B , T S thì T L B , chúng sinh ra L B,k từ L B,k-1 . Kết quả như<br />

sau:<br />

Tạo một ma trận có các dòng và cột là các thành phần của L B, k-1<br />

1. L B,k = ;<br />

2. for (Mỗi X L B,k-1 && XY)<br />

3. { T = X Y ;<br />

4. if(card(sup B (v B (T)) > *card(O)) && card(T) ==k)<br />

5. { SaveLargeSet(T, L B,k ) ;<br />

6. SaveDescriptorVector(v B (T), VS B,k )) ;<br />

7. }<br />

8. }<br />

9. TraLoi = L B,k ;<br />

10. Return TraLoi ;<br />

Trong đó:<br />

SaveLargeSet(T, L B,k ) là một hàm để ghi một tập chỉ báo phổ biến nhị phân T vào L B,k .<br />

SaveDescriptorVector(v B (T), VS B,k )) là một hàm để lưu một vectơ chỉ báo phổ biến nhị<br />

phân v B (T) vào VS B,k .<br />

Dựa vào (1) và (2), ta có thể tính rất nhanh sup B (v B (T)) tại bước thứ k của vòng lặp ở<br />

trên, từ các phần tử của VS B,k-1 .<br />

Pha 2: Phát hiện các luật phổ biến nhị phân<br />

1. R B, = ; // Khởi tạo tập luật ban đầu là rỗng<br />

2. for (Mỗi L L B )<br />

3. { for(Mỗi X, Y L và XY ={})<br />

4. { if(CF B (X=>Y) )<br />

5. SaveRule(X=>Y, R B, ); // ghi luật X=>Y vào R B,<br />

6. if(CF B (Y=>X) )<br />

7. SaveRule(Y=>X, R B, ); // ghi luật Y=>X vào R B,<br />

8. }<br />

9. }<br />

10. TraLoi = R B, ;<br />

11. Return R B, ; // Kết thúc


49<br />

4.4.3. Ví dụ minh hoạ<br />

Cho hệ thống các mặt hàng D = {d 1 , d 2 , d 3 , d 4 , d 5 } và số các giao tác mua bán O = {o 1 , o 2 ,<br />

o 3 , o 4 }. Ký hiệu trong giao tác mua bán cho như bảng sau (mặt hàng nào được mua thì đánh số 1,<br />

ngược lại đánh số 0).<br />

d 1 d 2 d 3 d 4 d 5<br />

o 1 1 0 1 1 0<br />

o 2 0 1 1 0 1<br />

o 3 1 1 1 0 1<br />

o 4 0 1 0 0 1<br />

Và = 0,5, = 0,5. Hãy tìm các tập phổ biến và rút ra các luật kết hợp.<br />

Bảng 2.2. Hệ thông tin nhị phân mua bán hàng hoá<br />

Minh hoạ cụ thể thuật toán như sau:<br />

Ta thấy hệ thống các giao tác mua các mặt hàng tương đương như hệ thông tin nhị phân S B<br />

= (O, D, B, ). Từ hệ thông tin nhị phân ta có:<br />

O = {o 1 , o 2 , o 3 , o 4 } và D = {d 1 , d 2 , d 3 , d 4 , d 5 }<br />

Ta suy ra: card(O) = 4, card(D) = 5<br />

Từ S B ta có các vectơ chỉ báo nhị phân như sau:<br />

v B ({d 1 }) = (1, 0, 1, 0)<br />

v B ({d 2 }) = (0, 1, 1, 1)<br />

v B ({d 3 }) = (1, 1, 1, 0)<br />

v B ({d 4 }) = (1, 0, 0, 0)<br />

v B ({d 5 }) = (0, 1, 1, 1)<br />

Lặp 0: Tạo L B,1 :<br />

Tính card(sup B (v B ({d i }))) (số lượng các đối tượng có trong vectơ chỉ báo nhị phân<br />

v B ({d i })) với i = 1 5 ta có<br />

card(sup B (v B ({d 1 }))) = 2<br />

card(sup B (v B ({d 2 }))) = 3<br />

card(sup B (v B ({d 3 }))) = 3<br />

card(sup B (v B ({d 4 }))) = 1<br />

card(sup B (v B ({d 5 }))) = 3<br />

Với minsup = 0,5 và mincon = 0,5 ta có: Các tập chỉ báo phổ biến là:<br />

L B,1 = {{d 1 }, {d 2 }, {d 3 }, {d 5 }}<br />

Lặp 1: Tạo L B,2 từ L B,1 :<br />

Từ L B,1 ta xây dựng một ma trận biểu diễn ánh xạ f: L B,1 L B,1 R như sau:<br />

Cho (X, Y) L B,1 L B,1 và X Y, T = XY


Giá trị của f(X, Y) = card(sup B (v B (T))) với:<br />

card(T) = 2, minsup = 0,5 ta có:<br />

card(sup B (T)) = card(sup B (v B (X) B v B (Y))) minsup*card(O) = 2<br />

( trong bài toán này X, Y {{d 1 }, {d 2 }, {d 3 }, {d 5 }} )<br />

50<br />

Chú ý: Khi tính sup B (v B (T)) ta sử dụng các v B (X) (cũng là các v B (Y)) đã được ghi trong VS B,1<br />

để tăng tốc độ tính toán.<br />

Giá trị của f(X, Y) được tính trong bảng sau:<br />

(các giá trị f(X, X) ta không <strong>quan</strong> tâm)<br />

{d 1 } {d 2 } {d 3 } {d 5 }<br />

{d 1 } 2 2 2 1<br />

{d 2 } 1 3 2 3<br />

{d 3 } 2 2 3 2<br />

{d 5 } 1 3 2 3<br />

( Các ô mà giá trị được đánh số đậm thì thoả mãn, nhưng ta chỉ lấy 1 lần vì theo lý thuyết tập hợp<br />

thì {X, Y} {Y, X} )<br />

Cuối cùng, ta có L B,2 = {{d 1 , d 2 }, {d 1 , d 3 }, {d 2 , d 5 }, {d 3 , d 5 }}<br />

Trong VS B,2 ta có các vectơ chỉ báo sau:<br />

v B ({d 1 , d 2 }) = v B ({d 1 }) B v B ({d 2 }) = (1, 0, 1, 0)<br />

v B ({d 1 , d 3 }) = v B ({d 1 }) B v B ({d 2 }) = (0, 1, 1, 0)<br />

v B ({d 2 , d 5 }) = v B ({d 1 }) B v B ({d 2 }) = (0, 1, 1, 1)<br />

v B ({d 3 , d 5 }) = v B ({d 1 }) B v B ({d 2 }) = (0, 1, 1, 0)<br />

Lặp 2: Tạo L B,3 từ L B,2 :<br />

Từ L B,2 ta xây dựng một ma trận biểu diễn ánh xạ f: L B,2 L B,2 R<br />

Cho (X, Y) L B,2 L B,2 và X Y, T = XY<br />

Giá trị của f(X, Y) = card(sup B (v B (T))) với:<br />

card(T) = 3, minsup = 0,5 ta có:<br />

card(sup B (T)) = card(sup B (v B (X) B v B (Y))) minsup*card(O)<br />

{d 1 , d 2 } {d 1 , d 3 } {d 2 , d 5 } {d 3 , d 5 }<br />

{d 1 , d 2 } 2 1 1 1<br />

{d 1 , d 3 } 1 2 2 2<br />

{d 2 , d 5 } 1 2 3 2<br />

{d 3 , d 5 } 1 2 2 2<br />

Chú ý: Khi tính sup B (v B (T)) ta sử dụng các v B (X) (cũng là các v B (Y)) đã được ghi trong VS B,s để<br />

tăng tốc độ tính toán.


Cuối cùng ta có L B,3 = {d 2 , d 3 , d 5 }<br />

và VS B,3 chứa chỉ một vectơ chỉ báo v B ({d 2 , d 3 , d 5 }) = (0, 1, 1, 0)<br />

Lặp 3: Tạo L B,4 từ L B,3 :<br />

Từ L B,3 ta xây dựng một ma trận biểu diễn ánh xạ f: L B,3 L B,3 R<br />

{d 2 , d 3 , d 5 }<br />

{d 2 , d 3 , d 5 } 2<br />

51<br />

Ta có tập L B,4 = {}. Dừng thủ tục. Cuối cùng, ta có:<br />

L B = L B,1 L B,2 L B,3 hay<br />

L B = {{d 1 }, {d 2 }, {d 3 }, {d 5 }, {d 1 , d 2 }, {d 1 , d 3 }, {d 2 , d 5 }, {d 3 , d 5 },<br />

{d 2 , d 3 , d 5 }<br />

}<br />

Như vậy, các luật kết hợp mà ta có thể rút ra là (có 14 luật):<br />

TT Luật TT Luật<br />

1 d 1 => d 2 8 d 5 => d 3<br />

2 d 1 => d 3 9 d 2 => d 3 , d 5<br />

3 d 2 => d 1 10 d 3 => d 2 , d 5<br />

4 d 3 => d 1 11 d 5 => d 2 , d 3<br />

5 d 2 => d 5 12 d 2 , d 3 => d 5<br />

6 d 5 => d 2 13 d 2 , d 5 => d 3<br />

7 d 3 => d 5 14 d 3 , d 5 => d 2<br />

Bảng 2.3. Các luật kết hợp từ hệ thông tin nhị phân mua bán hàng hoá<br />

4.5. Khai phá luật kết hợp trên hệ thông tin mờ<br />

4.5.1. Các định nghĩa về tập mờ<br />

Trong lý thuyết tập hợp kinh điển hàm thuộc hoàn toàn tương đương với việc xác định một<br />

tập hợp A bất kỳ, cho tập A ta có thể xác định được hàm thuộc (x)<br />

, ngược lại từ hàm thuộc<br />

(x) ta có thể hoàn toàn xác định tập A, mặt khác giá trị của (x ) chỉ gồm 0 và 1.<br />

A<br />

Cách biểu diễn hàm thuộc như vậy sẽ không phù hợp với những tập được mô tả “mờ” như<br />

tập B gồm các số thực dương nhỏ hơn nhiều so với 6, ta có thể biểu diễn như sau:<br />

B = { xR / x


52<br />

Mặt khác nếu đã không khẳng định được x= 3,5 có thuộc B hay không thì cũng không<br />

khẳng định được là số thực x=3,5 không thuộc B. Vậy thì x=3,5 thuộc B bao nhiêu phần trăm Giả<br />

sử có câu trả lời thì lúc này hàm thuộc (x)<br />

tại điểm x=3,5 phải có một giá trị trong khoảng<br />

A<br />

[0,1] tức là 0 (x)<br />

1. Tương tự như vậy với giá trị x = 2,5 thuộc C bao nhiêu phần trăm<br />

A<br />

Khái niệm mở rộng cho các trường hợp trên đã được Zadeh L. nêu lên lần đầu tiên vào năm 1965.<br />

Tập mờ A trong tập không gian nền X đƣợc định nghĩa nhƣ sau :<br />

A = {(x, (x) | x X}<br />

(x) là hàm thuộc (membership function) xác định “mức độ thuộc” (membership value) nằm<br />

trong khoảng [0, 1] của mỗi giá trị x ( Dx) . Ví dụ : cho x là một thuộc tính với miền xác định Dx,<br />

hàm thuộc (x) có dạng sau :<br />

(x) : D x → [0, 1] (2.3.1)<br />

Hàm thuộc có một số dạng thông dụng như sau :<br />

Hàm thuộc tam giác (2.3.2)<br />

0<br />

<br />

<br />

x a<br />

b<br />

a<br />

(<br />

x;<br />

a,<br />

b,<br />

c)<br />

<br />

c<br />

x<br />

c<br />

b<br />

<br />

0<br />

nếu x < a<br />

nếu x [a, b]<br />

nếu x (b, c]<br />

nếu x > c<br />

(x; a,b,c) = max{min[(x-a)/(b-a),(c-x)/(c-b)],0} .<br />

1<br />

0<br />

a b c<br />

Hàm thuộc hình thang (2.3.3)<br />

0<br />

<br />

<br />

x a<br />

b<br />

a<br />

(<br />

x;<br />

a,<br />

b,<br />

c)<br />

1<br />

d<br />

x<br />

<br />

d<br />

c<br />

<br />

0<br />

nếu x < a<br />

nếu x [a, b)<br />

nếu x [b, c]<br />

nếu x (c, d]<br />

nếu x > d<br />

(x; a,b,c,d) = max{min[(x-a)/(b-a),1,(d-x)/(d-c)],0} .<br />

1<br />

0<br />

a b c d<br />

Hàm thuộc –S


0<br />

<br />

2<br />

x<br />

a<br />

<br />

2. <br />

c<br />

a<br />

(<br />

x;<br />

a,<br />

b,<br />

c)<br />

<br />

x<br />

a<br />

1<br />

2. <br />

<br />

c a <br />

<br />

1<br />

53<br />

nếu x ≤ a<br />

nếu x [a, b]<br />

nếu x (b, c]<br />

nếu x > c<br />

với b = (a+c)/2<br />

4.5.2. Các phép toán cơ bản trên tập logic mờ<br />

Những phép toán cơ bản trên tập mờ là phép hợp, phép giao và phép bù giống như định<br />

nghĩa về tập mờ các phép toán trên tập mờ cũng sẽ được định nghĩa thông qua các hàm liên thuộc<br />

được xây dựng tương tự như các hàm thuộc của các phép hợp, giao, bù giữa hai tập hợp kinh điển.<br />

Nói cách việc xây dựng các phép toán trên tập mờ được hiểu là việc xác định các hàm liên thuộc<br />

cho phép hợp AB , giao AB, bù A …từ những tập mờ A, B.<br />

Một nguyên tắc cơ bản trong việc xây dựng các phép toán trên tập mờ là không được mâu<br />

thuẫn với những phép toán đã có trong lý thuyết tập hợp kinh điển. Mặc dù không giống tập hợp<br />

kinh điển, hàm liên thuộc của các tập mờ AB, giao A B , bù A… được định nghĩa cùng với tập<br />

mờ, song sẽ không mâu thuẫn với các phép toán tương tự của tập hợp kinh điển nếu như chúng thoả<br />

mãn những tính chất tổng quát được phát biểu như “tiên đề” của lý thuyết tập hợp kinh điển. Đó là<br />

các “tiên đề” cho phép giao AB, phép hợp và phép bù.<br />

4.5.2.1. Phép hợp hai tập mờ<br />

Các tính chất của phép hợp hai tập hợp cho thấy một cách tổng <strong>quan</strong> những điều kiện cơ bản<br />

của hàm thuộc (x)<br />

của hợp hai tập hợp kinh điển A, B.<br />

AB<br />

Như đã đề cập do trong định nghĩa về tập mờ hàm liên thuộc giữ vai trò như một thành phần<br />

cấu thành tập mờ nên các tính chất sẽ không là điều hiển nhiên nữa. Thay vào đó cũng được sử<br />

dụng như những tiên đề để xây dựng phép hợp trên tập hợp mờ.<br />

Trong các định nghĩa sau các tập A, B, C thuộc cùng không gian nền X.<br />

Định nghĩa. Hợp của hai tập mờ A và B là một tập mờ AB cùng xác định trong không gian nền X<br />

có hàm liên thuộc (x)<br />

thoả mãn:<br />

AB<br />

1. Chỉ phụ thuộc vào (x)<br />

và (x )<br />

A<br />

2. Nếu (x) 0 với mọi x thì (x)<br />

= (x)<br />

B<br />

B<br />

AB<br />

3. Có tính giao hoán (x) (x)<br />

AB<br />

BA<br />

4. Có tính kết hợp (x) (x)<br />

( AB)<br />

C<br />

A(BC)<br />

5. Có tính không giảm (đồng biến). Nếu A 1 A 2 thì A 1 B A 2 B :<br />

2<br />

A


(x) (x) => (x) (x)<br />

A 1<br />

A 2<br />

A1<br />

B<br />

Có thể dễ thấy được sẽ có nhiều công thức khác nhau được dùng để tính hàm liên thuộc<br />

(x) cho hợp hai tập mờ. Chẳng hạn 5 công thức sau đều có thể được sử dụng để định nghĩa<br />

AB<br />

hàm liên thuộc (x)<br />

cho phép hợp hai tập mờ :<br />

AB<br />

1) (x) Max{ (x), (x)}<br />

2)<br />

AB<br />

<br />

A B<br />

(x) <br />

<br />

<br />

<br />

<br />

<br />

A<br />

B<br />

1 nÕu Min{ (x), (x)} 0<br />

A2 B<br />

Max{ (x), (x)} nÕu Min{ (x), (x)} 0<br />

3) (x) Min{1, (x) (x)}<br />

4)<br />

<br />

AB<br />

AB<br />

(x) (x)<br />

A<br />

B<br />

(x) <br />

1<br />

(x) (x)<br />

A<br />

A<br />

A<br />

B<br />

A<br />

B<br />

B<br />

B<br />

A<br />

(Phép hợp theo Lukasiewicz)<br />

(Tổng Einstein)<br />

5) (x) (x) (x) (x). (x)<br />

AB<br />

A<br />

B<br />

A<br />

B<br />

B<br />

(Tổng trực tiếp)<br />

54<br />

4.5.2.2. Phép giao<br />

Cũng như việc xây dựng phép hợp của hai tập mờ, việc xây dựng phép giao phải bảo đảm<br />

không mâu thuẫn với các định nghĩa cổ điển. Tương tự như phép hợp ta có thể định nghĩa như sau:<br />

Định nghĩa. Giao của hai tập mờ A và B là một tập mờ AB xác định trong không gian nền X có<br />

hàm liên thuộc (x)<br />

thoả mãn:<br />

AB<br />

1. Chỉ phụ thuộc vào (x)<br />

và (x )<br />

A<br />

2. Nếu (x) 1 với mọi x thì (x)<br />

= (x )<br />

B<br />

B<br />

AB<br />

3. Có tính giao hoán (x) (x)<br />

AB<br />

BA<br />

4. Có tính kết hợp (x) (x)<br />

( AB)<br />

C<br />

A(BC)<br />

5. Có tính không giảm (đồng biến). Nếu A1 A2 thì A1B A2B :<br />

(x) (x) => (x) (x)<br />

A 1<br />

A 2<br />

A1<br />

B<br />

Có thể dễ thấy được sẽ có nhiều công thức khác nhau được dùng để tính hàm liên thuộc<br />

(x) cho giao hai tập mờ. Chẳng hạn 5 công thức sau đều có thể được sử dụng để định nghĩa<br />

AB<br />

hàm liên thuộc (x)<br />

của phép giao của hai tập mờ :<br />

AB<br />

1) (x) Min{ (x), (x)}<br />

AB<br />

A<br />

B<br />

A<br />

A 2 B


2)<br />

x) <br />

<br />

<br />

<br />

Min{ <br />

A(x),<br />

B<br />

(x)} nÕu Max{ <br />

A(x),<br />

(x)} 1<br />

0<br />

nÕu Max{ (x), (x)} 1<br />

B<br />

(<br />

A B<br />

A B<br />

3) (x) Max{0, (x) (x) 1}<br />

<br />

A B<br />

A<br />

B<br />

55<br />

4) <br />

AB<br />

(x) <br />

2 <br />

5) (x) (x). (x)<br />

AB<br />

A<br />

A<br />

(x) (x)<br />

(x) (x) ( (x) (x))<br />

B<br />

B<br />

A<br />

B<br />

A<br />

B<br />

4.5.2.3. Phép bù<br />

Phép bù của một tập mờ cũng được xây dựng trên cơ sở phép bù của tập kinh điển.<br />

Định nghĩa 1. Tập bù của tập mờ A trên nền X là một tập mờ (A, ) xác định trên không gian nền<br />

X với hàm liên thuộc thoả mãn các điều kiện sau :<br />

a) (x)<br />

chỉ phụ thuộc vào (x )<br />

A<br />

b) Nếu (x) 1 thì (x) 0<br />

A<br />

c) Nếu (x) 0 thì (x) 1<br />

A<br />

d) Nếu A B thì có (x) (x)<br />

A<br />

A<br />

A<br />

A<br />

B<br />

Do hàm liên thuộc (x)<br />

chỉ phụ thuộc vào (x ) nên có thể coi (x)<br />

như một hàm<br />

A<br />

của A [0,1]. Từ đó ta đưa ra định nghĩa tổng quát hơn cho phép lây phần bù của tập mờ.<br />

Định nghĩa 2. Tập bù của tập mờ A trên nên X là một tập mờ (A, ) xác định trên không gian nền<br />

X với hàm liên thuộc (<br />

) : [0,1] [0,1] thoả mãn các điều kiện sau:<br />

a) ( 1) 0<br />

b) ( 0) 1<br />

c) (<br />

) (<br />

)<br />

A<br />

B<br />

Nếu hàm một biến ( ) còn thoả mãn<br />

d) Liên tục và<br />

A<br />

e) (<br />

) (<br />

)<br />

A<br />

B<br />

A<br />

A<br />

A<br />

B<br />

B<br />

Thì phép bù trên còn gọi là phép bù mờ chặt. Một phép bù mờ chặt được gọi là phép bù mờ<br />

mạnh nếu<br />

f)<br />

( (<br />

)) tức là A A<br />

A A<br />

Hàm liên thuộc ( ) của phép bù mờ mạnh được gọi là hàm phủ định mạnh.<br />

A<br />

A<br />

A<br />

A<br />

A


56<br />

4.5.2.4. Phép bằng nhau<br />

Tập mờ A bằng tập mờ B, ký hiệu A = B (A) = (B)<br />

4.5.2.5. Tập con<br />

Cho hai tập mờ A, B. Ta có A B A (x) ≤ B (x)<br />

4.5.2.6. Luật DeMorgan<br />

Như trên đã trình bày việc xây dựng hàm liên cho các phép toán các tập mờ thoả mãn các điều<br />

kiện nhất định hoàn toàn độc lập nhau, tuy nhiên công thức Demorgan không phải luôn đúng cho<br />

mọi cặp hàm liên thuộc của phép hợp và giao.<br />

Ví dụ khi phép hợp ta chọn theo công thức Max thì công thức giao tương ứng là Min, ta có<br />

Với công thức A B A B trong tập kinh điển thì<br />

<br />

<br />

A<br />

AB<br />

(x) 1- (x) 1<br />

Max( (x), (x)) Min(1 (x),1<br />

(x))<br />

B<br />

AB<br />

A B<br />

A<br />

B<br />

Min( (x), (x)) <br />

A B<br />

AB<br />

Với công thức A B A B trong tập kinh điển thì<br />

(x) 1- (x) 1<br />

Min( (x), (x)) Max(1 (x),1<br />

(x))<br />

A<br />

AB<br />

Max( (x), (x)) <br />

B<br />

AB<br />

A<br />

B<br />

Tương tự như vậy nếu ta lấy hàm liên thuộc công thức (4) trong phép hợp hai tập mờ tương<br />

ứng với công thức (4) trong phép giao hai tập mờ, ta có<br />

<br />

AB<br />

(x) 1- <br />

AB<br />

(x) (x) 1<br />

(x) (x) (x) (x)<br />

A<br />

B<br />

A B<br />

A<br />

B<br />

(x) 1<br />

<br />

1<br />

(x) (x) 1<br />

(x) (x)<br />

(x) (x)<br />

A B<br />

(x) <br />

<br />

A B 2 (x) (x) (x) (x )<br />

A<br />

B<br />

(1<br />

(x)(1<br />

(x))<br />

A<br />

B<br />

<br />

<br />

2 (1<br />

(x))(1<br />

(x)) (1<br />

(x)) (1<br />

(x))<br />

A<br />

1<br />

(x) (x) (x) (x)<br />

A B<br />

A<br />

B<br />

<br />

1<br />

(x) (x)<br />

A<br />

B<br />

B<br />

A<br />

A<br />

A<br />

B<br />

B<br />

B<br />

A<br />

A<br />

B<br />

B<br />

So sánh vế phải của hai biểu thức trên ta có (x) (x)<br />

AB<br />

AB<br />

4.5.3. Áp dụng tập mờ để rời rạc hoá dữ liệu và ƣu điểm của phƣơng pháp này<br />

4.5.3.1. Phương pháp áp dụng


57<br />

Theo lý thuyết tập mờ, một phần tử thuộc vào một tập nào đó với một “mức độ thuộc”<br />

(membership value) nằm trong khoảng [0, 1]. Giá trị này được xác định dựa vào hàm thuộc<br />

(membership function) tương ứng với mỗi tập mờ. Bây giờ, chúng ta áp dụng khái niệm tập mờ vào<br />

việc rời rạc hoá dữ liệu để giải quyết một số vấn đề còn vướng mắc nêu trên.<br />

Đối với những thuộc tính hạng mục A (bao gồm cả thuộc tính nhị phân ) có các tập giá trị {V 1 , V 2 ,.<br />

. . , V k } và k không quá lớn thì gắn với mỗi giá trị V i một tập mờ A_Vi (A là tên thuộc tính) có<br />

hàm thuộc A-Vi xác định như sau:<br />

A-Vi = 1 (nếu x = V i )<br />

Và A-Vi = 1 (nếu x V i )<br />

Thực ra A_Vi giống như tập rõ vì giá trị hàm thuộc của nó chỉ là 0 hoặc 1.<br />

Trường hợp k quá lớn, chúng ta có thể chia và gán tập mờ cho từng khoảng.<br />

4.5.3.2. Các ưu điểm của áp dụng tập mờ để rời rạc hoá dữ liệu<br />

Ưu điểm thứ nhất: Giải quyết được vấn đề “điểm biên gãy” nhờ tập mờ có thể phân khoảng<br />

mịn hơn nhờ vào “độ trơn” của hàm thuộc.<br />

Ưu điểm thứ hai: Rời rạc hoá bằng phân khoảng đôi khi tạo ra số khoảng rất lớn và do đó số<br />

thuộc tính nhị phân cũng rất lớn. Còn khi sử dụng tập mờ thì số lượng tập mờ gắn với mỗi thuộc<br />

tính là không đáng kể. Ví dụ, áp dụng phân khoảng cho thuộc tính giờ bắt đầu gọi trong ngày chúng<br />

ta sẽ thu được 24 khoảng trong [0, 23] mỗi khoảng tương ứng cách nhau một giờ, còn khi áp dụng<br />

tập mờ thì ta chỉ cần hai tập mờ là giờ_thấp_điểm và giờ_cao_điểm.<br />

Ưu điểm thứ ba: Tập mờ cho phép chúng ta biểu diễn luật kết hợp dưới dạng tự nhiên hơn<br />

và gần gũi hơn với người sử dụng.<br />

Ưu điểm thứ tư: Giá trị thuộc tính sau khi rời rạc hoá (sau khi tính qua hàm phụ thuộc) biến<br />

thiên trong khoảng [0, 1] cho biết “mức độ thuộc” ít hay nhiều trong khi đó các thuộc tính nhị phân<br />

trước đây chỉ có một trong hai giá trị 0, 1.<br />

Điều này cho chúng ta khả năng ước lượng chính xác hơn “độ đóng góp” của các bản ghi<br />

trong cơ sở dữ liệu vào một tập phổ biến nào đó.<br />

Ưu điểm thứ năm: Các thuộc tính mặc dầu đã được mờ hoá, nhưng vẫn giữ nguyên được<br />

một số tính chất của thuộc tính nhị phân, do đó vẫn có thể áp dụng các thuật toán <strong>khai</strong> phá luật kết<br />

hợp nhị phân vào <strong>khai</strong> phá luật kết hợp mờ với một vài thay đổi. Ví dụ tính chất “ mọi tập con khác<br />

rỗng của tập phổ biến cũng là tập phổ biến và mọi tập chứa tập không phổ biến đều là tập không<br />

phổ biến” vẫn còn đúng nếu chúng ta chon được phép toán T-norm (T-chuẩn) phù hợp.<br />

Một ưu điểm nữa đối với rời rạc hoá dựa vào tập mờ là nó có thể áp dụng tốt cho cả hai<br />

dạng cơ sở dữ liệu: cơ sở dữ liệu <strong>quan</strong> hệ (relation databases) và cơ sở dữ liệu dạng giao tác<br />

(transactional databases).<br />

4.5.4. Luật kết hợp trên hệ thông tin mờ (luật kết hợp mờ)<br />

4.5.4.1. Các định nghĩa hình thức trên hệ thông tin mờ


58<br />

a.Hệ thông tin mờ<br />

Cho O ={o 1 ,...,o n } là một tập hữu hạn có n đối tượng và D = {d 1 ,...,d m } là một tập hữu hạn<br />

m chỉ báo, cho F = (0, 1) là tập con của tập số thực. Một hệ thông tin mờ là S F = (O, D, F, ). Ánh<br />

xạ được định nghĩa là : O D F.<br />

Trong đó, (o, d) F biểu diễn mức độ của đối tượng o có chỉ báo d.<br />

b.Các ánh xạ thông tin mờ<br />

Cho một hệ thông tin mờ S F =(O, D, F, ) và một ngưỡng F, ta định nghĩa các ánh xạ<br />

thông tin mờ F , F như sau:<br />

F : P(D) P(O) và F : P(O) P(D)<br />

cho S D, F (S) = {o O / d S, (o, d) 0 }<br />

cho X O, F (S) = {d D / o X, (o, d) }<br />

c. Các tập chỉ báo phổ biến mờ<br />

Cho hệ thống thông tin mờ S F = (O, D, F, ) và một ngưỡng T.<br />

Cho S D, S là tập chỉ báo phổ biến mờ với ngưỡng nếu:<br />

Card(p F (S)) * Card(O)<br />

Cho L F là tập của tất cả các tập chỉ báo phổ biến mờ đã phát hiện từ S F , Chúng có các thuộc<br />

tính sau: S L F , T S T L F<br />

Ta biểu thị L F, h , là một tập con của L F , nếu X L F, h , card(X) = h (h là 1 số nguyên dương).<br />

Các luật kết hợp mờ và hệ số tin cậy<br />

Cho ma trận thông tin mờ S F = (O, D, F, ) và một ngưỡng T. Cho S là một phần tử của<br />

L F , X và Y là một tập con của S trong đó S = X Y và X Y = {}.<br />

Ta xác định kết hợp giữa các tập chỉ báo X và Y và được hiển thị là X Y. Hệ số tin<br />

cậy của luật này được tính bằng:<br />

<br />

X<br />

<br />

F<br />

Y<br />

<br />

<br />

X<br />

<br />

card <br />

F<br />

<br />

card<br />

F<br />

(5)<br />

Ta biểu thị R B, là tập hợp tất cả Luật kết hợp mờ r đã được phát hiện từ S F và CF F (r) .<br />

d.Các véc tơ chỉ báo mờ và các phép toán trên véc tơ đó<br />

Cho một hệ thông tin mờ S F = (O, D, F, ) trong đó O = {o 1 ,...,o n }là một tập hữu hạn n đối<br />

tượng và D={d 1 ,...,d m }là tập hữu hạn m chỉ báo.<br />

d1) Các véc tơ chỉ báo mờ<br />

Cho X là một tập con của D, chúng ta xác định một véc tơ chỉ báo mờ v F (X) để trình diễn X.<br />

Một véc tơ chỉ báo mờ v F (X) = (X 1 ,...,X n ) là một véc tơ với n thành phần, mỗi thành phần X 1 chiếm<br />

một giá trị trong F. Cho VS F là một tập gồm tất cả các véc tơ chỉ báo mờ của S F . Nếu card(X) = 1,<br />

X là một thành phần của D, trong đó X j = (o j ,X).<br />

d2) Tích véc tơ mờ


59<br />

Cho V F (d 1 ) = (d 11 ,...,d 1n ) và v F (d 2 ) = (d 21 ,...,d 2n ) là các phần tử của VS F .<br />

Tích véc tơ mờ V F (d 1 ) và V F (d 2 ) là một véc tơ V F (d 3 ) = (d 31 ,...,d 3n ) của VS F . Trong đó : d 3j =<br />

min(d 1j , d 2j ), j = 1 n. tích véc tơ mờ được biểu diễn là:<br />

v F (Z) = v F (X) F v F (Y) (6)<br />

d3) Độ hỗ trợ của véc tơ chỉ báo mờ<br />

Cho v(d 1 ) = (d 11 , ..., d 1n ) là một phần tử của VS F là một ngưỡng cho trước T.Một độ hỗ trợ của<br />

véc tơ mờ v(d 1 ) được định nghĩa là:<br />

Sup F (v F (d 1 )) = {o j O: (o j, ,d 1 ) } với j = 1 n. (7)<br />

d4) Tính các yếu tố của F (S)<br />

Cho S = {s 1 ,...,s k } là một tập con của D, trong đó s j là một thành phần của D, với j = 1 k. Mỗi s j<br />

tương đương với một véc tơ v(s j ) của V F . Các thành phần của p 1 (S) được tính bằng:<br />

Card( 1 (d) = Card(sup F (v F (S k ))) (8)<br />

v F (d) = v F (S 1 ) F ... F v F (S k ).<br />

Ta biểu diễn VS F,h là một tập con của VS F chỉ chứa véctơ v F (d) với d P(D) và card(d) = h.<br />

4.5.4.2. Ví dụ minh hoạ<br />

Giả sử ta có một bảng. Trong đó mỗi dòng là một giao dịch và mỗi cột là một mục. Đặc<br />

trưng của giao dịch này được trình bày trong bảng sau:<br />

d 1 d 2 d 3 d 4 d 5 d 6<br />

o 1 20 45 35 0 0 0<br />

o 2 22 40 35 0 0 0<br />

o 3 24 40 39 41 25 10<br />

o 4 17 25 41 41 30 16<br />

o 5 0 0 1 45 40 12<br />

o 6 0 0 1 41 30 16<br />

Bảng 2.3.4.1. Quan hệ của giao dịch và các chỉ mục<br />

Phần tử b i,j của bảng này là số lượng mục mua bán d j trong giao dịch o i . Cho o là tập các<br />

giao dịch và D là tập các chỉ mục. Chúng ta định nghĩa ánh xạ : O D {0, 1}. Trong đó, (o, d)<br />

= 1 nếu giao o có chỉ mục d từ bảng trên, ta xây dựng trong bảng sau với ngưỡng = 0.6 (60 %),<br />

tập {d 1 , d 2 , d 3 } và {d 4 , d 5 , d 6 } là tập các chỉ báo phổ biến nhị phân và các luật kết hợp nhị phân như<br />

{d 1 , d 2 } {d 3 }.<br />

d 1 d 2 d 3 d 4 d 5 d 6<br />

d 1 1 1 1 0 0 0<br />

d 2 1 1 1 0 0 0


d 3 1 1 1 1 1 1<br />

d 4 1 1 1 1 1 1<br />

d 5 0 0 1 1 1 1<br />

d 6 0 0 1 1 1 1<br />

60<br />

Bảng 2.3.4.2. Bảng hệ thông tin nhị phân<br />

Ma trận thông tin nhị phân, mỗi (o, d) bằng 1 hoặc 0. Trình diễn này không xem xét số<br />

lượng các chỉ mục mua trong giao dịch vì nếu giao dịch o 1 có 35 chỉ mục của d 3 và giao dịch o 5 chỉ<br />

có một chỉ mục của d 3 mà (o 1 , d 3 ) = (o 5 , d 3 ) = 1. Nếu d 3 là một chỉ mục mà có giá cao, việc bán<br />

hàng của một số lượng nhỏ của d 3 và số lượng lớn của d 3 có sự khác nhau lớn.<br />

Ta dùng các tập mờ MANY, AVERAGE, FEW đối với mỗi chỉ mục mờ. Các hàm thành<br />

viên của các tập mờ này được thích hợp với chỉ mục d là:<br />

d MANY, d AVERAGE , d FEW . Cho d1 MANY,..., dn MANY là n hàm thành viên của n tập mờ<br />

MANY đã thích hợp với n chỉ mục. Chúng ta mờ hoá bằng thông tin trong bảng 2.1 và kết quả được<br />

trình bày trong sau:<br />

d 1 d 2 d 3 d 4 d 5 d 6<br />

d 1 0.8 0.9 0.8 0 0 0<br />

d 2 0.8 0.8 0.8 0 0 0<br />

d 3 0.9 0.8 0.7 0.6 0.6 0.3<br />

d 4 0.6 0.6 0.9 0.6 0.7 0.5<br />

d 5 0 0 0.1 0.7 0.8 0.4<br />

d 6 0 0 0.1 0.6 0.7 0.5<br />

Bảng 2.3.4.3 Bảng hệ thông tin mờ<br />

Trong đó: MANY : O D (0, 1)<br />

Với = 0.5 (50 %), =0.6 (60%). Ta có thể phát hiện từ ma trận thông tin mờ đối với khái<br />

niệm MANY của n mục như {d 1 , d 2 , d 3 }, {d 4 , d 5 }. Tập {d 1 , d 2 , d 3 } có nghĩa là Luật kết hợp mờ<br />

{d 1 , d 2 } {d 3 }, CF F của luật này bằng 1 hay 0 có nghĩa là: “ Có 100 % khách hàng mua MANY<br />

{d 1 , d 2 }, mua MANY d 3 ”.<br />

4.5.4.3. Thuật toán phát hiện tập chỉ báo và các luật kết hợp mờ<br />

Cho ma trận thông tin mờ S F = (O, D, F, ) và các ngưỡng , (0, 1),<br />

Trong đó là MINSUP và là MINCONF. Cho L F là tập của tất cả các tập chỉ báo mờ phổ<br />

biến của S F , L F,k là tập con của L F nếu X L F,k , card(X) = k và R F, là tập tất cả các Luật kết


61<br />

hợp mờ có độ tin cậy lớn hơn ngưỡng cho trước . Thuật toán để phát hiện các tập chỉ báo mờ<br />

và Luật kết hợp mờ được trình bày như sau:<br />

* Thuật toán phát hiện tập chỉ báo phổ biến mờ<br />

1. Traloi = ;<br />

2. Sinh L F,1 từ S F ;// thực hiện như trình bày trong mục a dưới đây.<br />

3. for ( k=2; L B,k {};k ++ )<br />

4. Sinh L F,k từ L F,k-1 ;// theo cách được trình bày trong mục b dưới đây.<br />

5. Traloi = k L F,k ;<br />

6. Return Traloi;<br />

a.Sinh L F,k-1<br />

1. L F,1 = ;<br />

2. for (i=1; i * Card(O))<br />

4. { SaveLargeSet({d 1 }, VS F,1 );// Lưu tập chỉ báo d 1 vào VS F,1<br />

5. SaveDecriptorVectơ (V F ({d 1 }, VS F,1 ));// Lưu V F ({d 1 } vào VS F,1<br />

6. }<br />

7. Traloi = L F,1 ;<br />

8. Return Traloi<br />

// Trong đó : m = card (D)<br />

b. Tạo L F,k từ L F,k-1<br />

Dựa trên thuộc tính S L F , T S T L F , chúng sinh ra L F,k từ L F,k-1<br />

Kết quả tạo ra một ma trận có các dòng và các cột là các thành phần<br />

của L F,k-1<br />

1. L F,k = ;<br />

2. for ( Mỗi X L F,k-1 && X Y)<br />

3. { T= X Y;<br />

4. if( card( sup F (V F (T)) > * Card(O)) && card (T) ==k)<br />

5. { SaveLargeSet(T, L F,k );<br />

6. SaveDecriptorVectơ (V F (T),VS F,k ); k<br />

7. }<br />

8. }<br />

9. Traloi = L F,k ;<br />

10.Return Traloi;


62<br />

// Trong đó:<br />

SaveLargeSet(T, L F,k ): là một hàm để ghi một tập chỉ báo phổ biến mờ T vào L F,k .<br />

SaveDecriptorVectơ (V F (T),VS F,k ): là một hàm để ghi một vectơ chỉ báo phổ biến mờ<br />

V F (T) vào VS F,k .<br />

Ta có thể tính rất nhanh sup F (V F (T)) tại bước thứ k của vòng lặp ở trên từ các phần tử của VS F,k-1 .<br />

* Thuật toán phát hiện các luật mờ<br />

1. R F, = ; // Khởi tạo tập rỗng<br />

2. for(mỗi l L F )<br />

3. { for (mỗi X,Y L && X Y = {})<br />

4. { if (Cf F (X Y) <br />

5. Saverule( X Y, R F, );// Lưu lại luật X Y vào R F,<br />

6. if(CFF(Y X) )<br />

7. Saverule( Y X, R F, );// Lưu lại luật YX vào R F,<br />

8. }<br />

9. }<br />

10. Traloi=R F, // Tập luật kết quả thu được<br />

// Saverule( X Y, R F, ) là hàm để ghi luật kết hợp mờ vào R F,<br />

4.5.5. Thuật toán Apriori<br />

4.5.5.1. Ý tưởng thuật toán Apriori<br />

Thuật toán được tỉa bớt những tập ứng cử viên có tập con không phổ biến trước khi tính độ<br />

hỗ trợ.<br />

Thuật toán Apriori tính tất cả các tập ứng cử của tập k trong một lần duyệt CSDL. Apriori<br />

dựa vào cấu trúc cây băm (hashtree). Tìm kiếm đi xuống trên cấu trúc cây mỗi khi ta chạm lá, ta tìm<br />

được một tập ứng cử viên có tiền tố chung được bao gồm trong giao dịch. Sau đó các tập ứng cử<br />

này được tìm trong giao dịch đã được ánh xạ trước đó. Trong trường hợp tìm thấy biến đếm được<br />

tăng lên 1.<br />

4.5.5.2. Thuật toán Apriori<br />

Input: CSDL D minsup.<br />

Output: Tập các tập mục phổ biến.<br />

1. L 1 = {Các 1 - itemset phổ biến};<br />

2. k=2;<br />

3. While( L k-1 ! = )<br />

4. { C k = apriori_gen(L k-1 , minsup);// các ứng cử mới theo chương trình con ở dưới đây.<br />

5. for( giao dịch t D)<br />

6. { C t =Subset (C k ,t);// ứng cử viên được chứa trong t


63<br />

7. for ( ứng cử c C t )<br />

8. c.count ++;<br />

10. }<br />

11. L k ={ c C k c.count minsup}<br />

12. K ++ ;<br />

13. }<br />

14. Return L= k L k' ;<br />

// sinh ữngcử viên mới (**)<br />

Void apriori_gen(L k-1 , minsup )<br />

1. { for ( itemset l 1 L k-1 )<br />

2. for ( itemset l 2 L k-1 )<br />

3. if((L 1 (1)== L 2 (1)&&L 1 (2) == L 2 (2)&&...&& L 1 (k-2) == L 2 (k-2)) &&L 1 (k-1)<br />

== L 2 (k-1))<br />

4. { c= L 1 kết nối L 2 ;<br />

5. if( hasinrequent_subset(c, L k-1 )) delete c;<br />

6. else add c to C k ;<br />

7. }<br />

8. return C k<br />

9.}<br />

Void has_infrequent_subset(c,L k-1 )<br />

1.{ for ( (k-1)-subset s c)<br />

2. if(s L k-1 ) return TRUE;<br />

3. else return FALSE ;<br />

4.}<br />

Giải thích:<br />

Lần duyệt đầu tiên, sẽ tính số lần xuất hiện của mỗi mục để xác định các 1- itemset phổ<br />

biến. Lần duyệt thứ k (k 2) sẽ bao gồm 2 giai đoạn:<br />

* Giai đoạn 1:<br />

Tập phổ biến L k-1 đã tìm thấy ở lần duyệt thứ k-1 được sử dụng để sinh ra các tập ứng cử<br />

viên C k bằng việc sử dụng hàm Apriori_gen.<br />

* Giai đoạn 2:<br />

Dựa vào Cơ sở dữ liệu, tính độ hỗ trợ của các ứng của viên trong C k . Các ứng cử viên trong<br />

C k mà được chứa trong giao dịch t có thể được xác định một cách hiệu quả bằng việc sử dụng cây<br />

băm được mô tả như sau:


64<br />

Trong giai đoạn 2 (giai đoạn sửa, tỉa): xoá bỏ các tập c C k sao cho một vài (k-1) – tập con của<br />

c không nằm trong L k-1 . Thủ tục này là đầy đủ bởi đối với bất kì tập nào L k với độ hỗ trợ tối thiểu<br />

thì các tập con kích cỡ (k-1) cũng có độ hỗ trợ tối thiểu, do đó nếu ta mở rộng mỗi tập trong L k-1<br />

với tất cả các tập mục có thể và sau đó xoá tất cả các tập mà (k-1) – tập con của nó không nằm<br />

trong L k-1 , ta sẽ nhận được tấp các tập trong L k.<br />

Việc kết nối là tương đương với việc mở rộng L k-1 với mỗi mục nằm trong cơ sở dữ liệu và<br />

sau đó xoá bỏ các tập này mà đối với nó (k-1) –itemset nhận được bằng việc xoá đi mục thứ (k-1)<br />

không nằm trong L k-1 . Ở giai đoạn này C k L k . Với lập luận như vậy, giai đoạn tỉa là giai đoạn<br />

người ta xoá khỏi C k tất cả các tập mà các (k-1) tập con của nó không nằm trong L k-1 , cũng không<br />

xoá bất kỳ một tập nào có thể nằm trong L k .<br />

Hàm Subset: Các tập ứng cử viên C k được lưu trữ trong một cây băm. Một nút của cây này<br />

hoặc là chứa một danh sách của các tập (nút lá) hoặc bảng băm ( một nút trong). Trong mỗi một<br />

nút trong, mỗi bucket của bảng băm chỉ đến một nút khác. Gốc của cây băm được xem ở độ sâu là<br />

1. Một nút trong ở độ sâu d sẽ dẫn đến nút ở độ sâu d+1. Các tập được lưu trữ trong các lá. Khi ta<br />

bổ sung thêm một tập c, ta bắt từ nút gốc và đi xuống cây cho đến khi ta chạm vào một lá. Tại một<br />

nút ở độ sâu d, ta quyết định sẽ đi theo cành nào bằng việc áp dụng hàm băm đối với mục thứ d của<br />

tập đó và theo con trỏ trong Bucket tương ứng. Tất cả các nút ban đầu được tạo ra như là nút lá. Khi<br />

số các tập trong một nút lá vượt quá ngưỡng được chọn, nút lá này được chuyển thành một nút<br />

trong.<br />

Bắt đầu từ nút gốc, hàm Subset tìm tất cả các ứng cử viên được chứa trong giao dịch t như<br />

sau: Nếu ta bắt đầu tại một lá, ta tìm những tập trong nút lá này được chứa trong giao dịch t và bổ<br />

sung các mối <strong>quan</strong> hệ với chúng đối với tập kết quả mong muốn. Nếu ta đang ở một nút trong và ta<br />

đến được nó bằng việc băm mục i, ta băm trên mỗi mục đi sau i trong t và áp dụng một cách đệ quy<br />

thủ tục đó đối với nút này trong Bucket tương ứng. Đối với nút gốc, ta băm theo mỗi mục trong t.<br />

Để thấy được tại sao hàm Subset trả lại tập các tham khảo mong muốn hãy để ý đến những<br />

gì sẽ xảy ra tại nút gốc. Đối với bất kỳ tập c nào được chứa trong giao dịch t, mục đầu tiên cần phải<br />

có trong t. Tại nút gốc, việc băm mọi mục trong t đảm bảo được rằng ta chỉ không biết các tập mà<br />

nó bắt đầu với một mục không nằm trong t. Những lí luận tương tự áp dụng cho các mức sâu hơn.<br />

Vì các mục trong bất kì tập nào cũng được sắp thứ tự, nếu ta đến được một nút hiện tại bằng việc<br />

băm mục i, ta chỉ cần <strong>quan</strong> tâm đến những mục trong t nó xuất hiện sau i.<br />

// Bước tỉa: Xoá bớt tất cả các tập mục c C k mà (k-1) tập con của c không phụ thuộc L k-1 .<br />

1. for ( tập mục c C k )<br />

2. for ( (k-1) – tập con s của c)<br />

3. if(s L k-1 )<br />

4. delete c khỏi C k ;


65<br />

4.5.5.3. Ví dụ minh hoạ thuật toán Apriori<br />

L 1<br />

CSDL<br />

TID Mục<br />

100 1 3 4<br />

200 2 3 5<br />

300 1 2 3 5<br />

400 2 5<br />

C 1<br />

Mục Hỗ trợ<br />

{1} 2<br />

{2} 3<br />

{3} 3<br />

{4} 1<br />

{5} 3<br />

! 1<br />

TID Tập các mục<br />

100 {{1}, {3}, {4}}<br />

200 {{2}, {3}, {5}}<br />

300 {{1}, {2}, {3}, {5}}<br />

400 {{2},{5}}<br />

Mục<br />

Hỗ trợ<br />

{1}<br />

{2}<br />

{3}<br />

{5}<br />

2<br />

3<br />

3<br />

3<br />

C 2<br />

Mục<br />

{1 2}<br />

{1 3}<br />

{1 5}<br />

{2 3}<br />

{2 5}<br />

Hỗ trợ<br />

1<br />

2<br />

1<br />

2<br />

3<br />

! 2<br />

TID Tập các mục<br />

100 {{1 3}}<br />

200 {{2 3},{2 5},{3 5}<br />

300 {{1 2},{1 3},{1 5},{2 3},{2 5},{3 5}}<br />

400 {{2 5}}<br />

{3 5}<br />

2<br />

L 2<br />

ItemSet Support<br />

{1 3}<br />

{2 3}<br />

{2 5}<br />

{3 5}<br />

2<br />

2<br />

3<br />

2 ! 3<br />

TID Tập các mục<br />

200<br />

300<br />

{{2 3 5 }}<br />

{{2 3 5}}<br />

C 3<br />

ItemSet Support<br />

{2 3 5} 2<br />

L 3<br />

ItemSet Support<br />

{2 3 5 } 2


Bài tập:<br />

LÝ THUYẾT:<br />

1. Các giá trị thông thường được sử dụng làm tham số cho độ support và confidence trong<br />

thuật toán Apriori<br />

2. Tại sao quá trình khám phá luật kết lợp khá đơn giản khi so sánh nó với việc phát sinh một<br />

lượng lớn itemset trong cơ sở dữ liệu giao dịch<br />

3. Cho cơ sở dữ liệu giao dịch như sau:<br />

X: TID Items<br />

66<br />

T01 A, B, C, D<br />

T02 A, C, D, F<br />

T03 C, D, E, G, A<br />

T04 A, D, F, B<br />

T05 B, C, G<br />

T06 D, F, G<br />

T07 A, B, G<br />

T08 C, D, F, G<br />

a. Sử dụng các giá trị ngưỡng support = 25% và confidence = 60%, tìm:<br />

1. Tất cả các tập itemsets trong cơ sở dữ liệu X.<br />

2. Các luật kết hợp đáng tin cậy.<br />

5. Cho cơ sở dữ liệu giao dịch như sau:<br />

Y: TID Items<br />

T01 A1, B1, C2<br />

T02 A2, C1, D1<br />

T03 B2, C2, E2<br />

T04 B1, C1, E1<br />

T05 A3, C3, E2<br />

T06 C1, D2, E2<br />

a. Sử dụng các ngưỡng support s = 30% và confidence c = 60%, tìm:<br />

1. Tất cả các tập itemset trong Y.


THỰC HÀNH:<br />

67<br />

2. Nếu các tập itemset được cấu trúc sao cho A + {A1, A2, A3}, B= {B1,<br />

B2}, C = {C1, C2, C3}, D = {D1, D2} và E = {E1, E2}, hãy tìm các tập<br />

itemset được định nghĩa trên mức độ khái niệm<br />

3. Tìm các luật kết hợp đáng tin cậy cho các tập itemset ở câu trên.<br />

1. Sử dụng thuật toán Apriori để tìm kiếm các tập itemset trong cơ sở dữ liệu<br />

Northwind


68<br />

Chương 5: Phân lớp và dự đoán<br />

5.1. Khái niệm cơ bản<br />

Kho dữ liệu luôn chứa rất nhiều các thông tin hữu ích có thể dùng cho việc ra các quyết định<br />

liên <strong>quan</strong> đến điều hành, định hướng của một đơn vị, tổ chức. Phân lớp và dự đoán là hai dạng của<br />

quá trình phân tích dữ liệu được sử dụng để trích rút các mô hình biểu diễn các lớp dữ liệu <strong>quan</strong><br />

trọng hoặc dự doán các dữ liệu phát sinh trong tương lai. Kỹ thuật phân tích này giúp cho chúng ta<br />

hiểu kỹ hơn về các kho dữ liệu lớn. Ví dụ chúng ta có thể xây dựng một mô hình phân lớp để xác<br />

định một giao dịch cho vay của ngân hàn là an toàn hay có rủi ro, hoặc xây dựng mô hình dự đoán<br />

để phán đoán khả năng chi tiêu của các khách hàng tiềm năm dựa trên các thông tin liên <strong>quan</strong> đến<br />

thu nhập của họ. Rất nhiều các phương pháp phân lớp và dự đoán được nghiên cứu trong các lĩnh<br />

vực máy học, nhận dạng mẫu và thông kê. Hầu hết các thuật toán đều có hạn chế về bộ nhớ với các<br />

giả định là kích thước dữ liệu đủ nhỏ. Kỹ thuật <strong>khai</strong> phá dữ liệu gần đây đã được phát triển để xây<br />

dựng các phương pháp phân lớp và dự đoán phù hợp hơn với nguồn dữ liệu có kích thước lớn.<br />

5.1.1. Phân lớp<br />

Quá trình phân lớp thực hiện nhiệm vụ xây dựng mô hình các công cụ phân lớp giúp cho<br />

việc gán nhãn phân loại cho các dữ liệu. Ví dụ nhãn “An toàn” hoặc “Rủi ro” cho các yêu cầu vay<br />

vốn; “Có” hoặc “Không” cho các thông tin thị trường…. Các nhãn dùng phân loại được biểu diễn<br />

bằng các giá trị rời rạc trong đó việc sắp xếp chùng là không có ý nghĩa.<br />

Phân lớp dữ liệu gồm hai quá trình. Trong quá trình thứ nhất một công cụ phân lớp sẽ được<br />

xây dựng để xem xét nguồn dữ liệu. Đây là quá trình học, trong đó một thuật toán phân lớp được<br />

xây dựng bằng cách phân tích hoặc “học” từ tập dữ liệu huấn luyện được xây dựng sẵn bao gồm<br />

nhiều bộ dữ liệu. Một bộ dữ liệu X biểu diễn bằng một vector n chiều, X = (x1, x2,…, xn) , đây là<br />

các giá trị cụ thể của một tập n thuộc tính của nguồn dữ liệu {A1, A2, …, An}. Mỗi bộ được giả sử<br />

rằng nó thuộc về một lớp được định nghĩa trước với các nhãn xác định.


69<br />

Hình 5.1. Quá trình học<br />

Hình 5.2. Quá trình phân lớp<br />

Quá trình đầu tiên của phân lớp có thể được xem như việc xác định ánh xạ hoặc hàm y =<br />

f(X), hàm này có thể dự đoán nhãn y cho bộ X. Nghĩa là với mỗi lớp dữ liệu chúng ta cần học (xây<br />

dựng) một ánh xạ hoặc một hàm tương ứng.<br />

Trong bước thứ hai, mô hình thu được sẽ được sử dụng để phân lớp. Để đảm bảo tính khách<br />

<strong>quan</strong> nên áp dụng mô hình này trên một tập kiểm thử hơn là làm trên tập dữ liệu huấn luyện ban<br />

dầu. Tính chính xác của mô hình phân lớp trên tập dữ liệu kiểm thử là số phần trăm các bộ dữ liệu<br />

kiểm tra được đánh nhãn đúng bằng cách so sánh chúng với các mẫu trong bộ dữ liệu huấn luyện.


70<br />

Nếu như độ chính xác của mô hình dự đoán là chấp nhận được thì chúng ta có thể sử dụng nó<br />

cho các bộ dữ liệu với thông tin nhãn phân lớp chưa xác định.<br />

5.1.2. Dự đoán<br />

Dự đoán dữ liệu là một quá trình gồm hai bước, nó gần giống với quá trình phân lớp. Tuy<br />

nhiên để dự đoán, chúng ta bỏ qua khái niệm nhãn phân lớp bởi vì các giá trị được dự đoán là liên<br />

tục (được sắp xếp) hơn là các giá trị phân loại. Ví dụ thay vì phân loại xem một khoản vay có là an<br />

toàn hay rủi do thì chúng ta sẽ dự đoán xem tổng số tiền cho vay của một khoản vay là bao nhiêu thì<br />

khoản vay đó là an toàn.<br />

Có thể xem xét việc dự đoán cũng là một hàm y = f(X), trong đó X là dữ liệu đầu vào, và<br />

đầu ra là một giá trị y liên tục hoặc sắp xếp được. Việc dự đoán và phân lớp có một vài điểm khác<br />

nhau khi sử dụng các phương pháp xây dựng mô hình. Giống với phân lớp, tập dữ liệu huấn luyện<br />

sử dụng để xây dựng mô hình dự đoán không được dùng để đánh giá tính chính xác. Tính chính xác<br />

của mô hình dự đoán được đánh giá dựa trên việc tính độ lệch giá các giá trị dự đoán với các giá trị<br />

thực sự nhận được của mỗi bộ kiểm tra X.<br />

5.2. Phân lớp sử dụng cây quyết định<br />

5.2.1. Cây quyết định<br />

Cuối những năm 70 đầu những năm 80, J.Ross Quinlan đã phát triển một thuật toán sinh cây<br />

quyết định. Đây là một tiếp cận tham lam, trong đó nó xác định một cây quyết dịnh được xây dựng<br />

từ trên xuống một cách đệ quy theo hướng chia để trị. Hầu hết các thuật toán sinh cây quyết định<br />

đều dựa trên tiếp cận top-down trình bày sau đây, trong đó nó bắt đầu từ một tập các bộ huấn luyện<br />

và các nhãn phân lớp của chúng. Tập huấn luyện được chia nhỏ một các đệ quy thành các tập con<br />

trong quá trình cây được xây dựng.<br />

Generate_decision_tree: Thuật toán sinh cây quyết định từ các bộ dữ liệu huấn luyện của<br />

nguồn dữ liệu D<br />

Đầu vào:<br />

- Nguồn dữ liệu D, trong đó có chứa các bộ dữ liệu huấn luyện và các nhãn phân lớp<br />

- Attribute_list - danh sách các thuộc tính<br />

- Attribute_selection_method, một thủ tục để xác định tiêu chí phân chia các bộ dữ liệu một<br />

các tốt nhất thành các lớp. Tiêu chí này bao gồm một thuộc tính phân chia splitting_attribute, điểm<br />

chia split_point và tập phân chia splitting_subset.<br />

Đầu ra: Một cây quyết định<br />

Nội dung thuật toán:<br />

1. Tạo nút N<br />

2. If các bộ trong D đều có nhãn lớp C then<br />

3. Trả về N thành một nút lá với nhãn lớp C<br />

4. If danh sách thuộc tính attribute_list là rỗng then


71<br />

5. Trả về N thành một nút là với nhãn là lớp chiếm đa số trong D (Việc này thực hiện<br />

qua gọi hàm Attribute_selection_method(D, attribute_list) để tìm ra tiêu chí phân chia tốt<br />

nhất splitting_criterion và gán nhãn cho N tiêu chí đó)<br />

6. If splitting_attribute là một giá trị rời rạc và có nhiều cách chia then<br />

7. Attribute_list = attribute_list – splitting_attribute // Loại bỏ thuộc tính<br />

splitting_attribute<br />

8. Foreach j in splitting_criterion<br />

// Phân chia các bộ xây dựng cây cho các phân chia đó<br />

9. Đặt D j là tập các bộ trong D phù hợp với tiêu chí j<br />

10. If D j là rỗng then<br />

11. Gắn nhãn cho nút N với nhãn phổ biến trong D<br />

12. Else Gắn nút được trả về bởi hàm Generate_decision_tree(D j , attribute_list) cho nút N<br />

13. Endfor<br />

14. Return N<br />

5.2.2. Lựa chọn thuộc tính<br />

Việc lựa chọn thuộc tính thực hiện nhờ việc lựa chọn các tiêu chí phân chia sao cho việc<br />

phân nguồn dữ liệu D đã cho một cách tốt nhất thành các lớp phân biệt. Nếu chúng ta chia D thành<br />

các vùng nhỏ hơn dựa trên các kết quả tìm được của tiêu chí phân chia, thì mỗi vùng sẽ khá là thuần<br />

chủng (Nghĩa là các tập các vùng đã phân chia có thể hoàn toàn thuộc về cùng một lớp). Điều này<br />

giúp xác định cách các bộ giá trị tại một nút xác định sẽ được chia thế nào. Cây được tạo cho phân<br />

vùng D được gán nhãn với tiêu chí phân chia, các nhánh của nó được hình thành căn cứ vào các kết<br />

quả phân chia của các bộ.<br />

Giả sử D là một phân vùng dữ liệu chứa các bộ huấn luyện được gán nhãn. Các nhãn có m<br />

giá trị phân biệt xác định m lớp, Ci (với i = 1,..,m). Gọi C i,D là tập các bộ của lớp C i trong D<br />

Thông tin cần thiết để phân lớp một bộ trong D cho bởi<br />

Trong đó p i là khả năng một bộ trong D thuộc về lớp C i được xác định bởi |C i,D | /|D|.<br />

Giờ giả sử chúng ta phân chia các bộ D dựa trên một số thuộc tính A có v giá trị phân biệt<br />

{a1, .., av}. Thuộc tính A có thể dùng để chia D thành v phân vùng hoặc tập con {D1, D2, …, Dv}<br />

trong đó D j chứa các bộ trong D có kết quả đầu ra a j . Các phân vùng đó sẽ tương đương với các<br />

nhánh của nút N.<br />

Thông tin xác định xem việc phân chia đã gần tiếp cận đến một phân lớp được cho như sau


72<br />

là trọng lượng của phân vùng thứ j. InfoA(D) thể hiện thông tin cần thiết để phân lớp<br />

một bộ của D dựa trên phân lớp theo A. Giá trị thông tin nhỏ nhất sẽ cho ra phân vùng thuần túy<br />

tương ứng.<br />

Độ đo thông tin thu được được cho<br />

Gain(A) sẽ cho chúng ta biết bao nhiêu nhánh có thể thu nhận được từ A. Thuộc tính A với<br />

độ đo thông tin thu được lớn nhất sẽ được dùng làm thuộc tính phân chia của nút N.


MỘT SỐ ĐỀ THI MẪU<br />

73


Trƣờng Đại Học Hàng Hải Việt Nam<br />

Khoa Công nghệ Thông tin<br />

BỘ MÔN HỆ THỐNG THÔNG TIN<br />

-----***-----<br />

74<br />

THI KẾT THÚC HỌC PHẦN<br />

Tên học phần:<br />

Năm học: x<br />

KHAI PHÁ DỮ LIỆU<br />

Đề thi số:<br />

x<br />

Ký duyệt đề:<br />

x<br />

Thời gian: 60 phút<br />

Câu 1: (2 điểm)<br />

Trình bày khái niệm <strong>khai</strong> phá dữ liệu<br />

Câu 2: (4 điểm)<br />

Cho bảng tổng hợp sau biểu diễn dữ liệu tổng hợp kết quả bán hàng của một siêu thị,<br />

trong đó hot-dogs thể hiện số giao dịch có chứa hot-dog trong danh sách mặt hàng,<br />

thể hiện số giao dịch không có chứa hot-dog trong danh sách, tương tự như vậy<br />

đối với hamburgers.<br />

Hot-dogs<br />

Hamburgers 2.000 500 2.500<br />

1.000 1.500 2.500<br />

3.000 2.000 5.000<br />

a. Giả sử luật kết hợp đã được <strong>khai</strong> phá. Cho min_sup =<br />

25% và min_conf = 50%. Luật trên có phải là luật kết hợp mạnh hay không Giải<br />

thích<br />

b. Dựa trên các dữ liệu đã cho, hãy cho biết việc mua hot-dog có độc lập với việc mua<br />

humbergers hay không Nếu không hãy cho biết mối <strong>quan</strong> hệ tương <strong>quan</strong> giữa hai<br />

mặt hàng trên<br />

Câu 3: (2 điểm)<br />

Hãy trình bày ý nghĩa của tiền xử lý dữ liệu trong kỹ thuật <strong>khai</strong> phá dữ liệu<br />

Câu 4: (2 điểm)<br />

Cho tập dữ liệu dùng để phân tích về độ tuổi được sắp xếp tăng dần như sau: {13,<br />

15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46,<br />

52, 70}<br />

a. Sử dụng phương pháp làm mịn biên với độ rộng bin là 5. Minh họa các bước thực<br />

hiện<br />

b. Sử dụng phương phương pháp chuẩn hóa min-mã để biến đổi giá trị tuổi 35 về<br />

khoảng [0.0, 1.0].<br />

----------------------------***HẾT***----------------------------<br />

Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi


Trƣờng Đại Học Hàng Hải Việt Nam<br />

Khoa Công nghệ Thông tin<br />

BỘ MÔN HỆ THỐNG THÔNG TIN<br />

-----***-----<br />

75<br />

Tên học phần: KHAI PHÁ DỮ LIỆU<br />

Năm học: x<br />

Thời gian: 60 phút<br />

THI KẾT THÚC HỌC PHẦN<br />

Đề thi số:<br />

x<br />

Ký duyệt đề:<br />

x<br />

Câu 1: (2 điểm)<br />

Trình bày thuật toán Apriori<br />

Câu 2: (4 điểm)<br />

Cho một cơ sở dữ liệu với 5 giao dịch, giả sử độ min_sup = 60% và min_conf= 80%<br />

TID<br />

Mặt hàng<br />

T100 {M, O, N, K, E, Y}<br />

T200 {D, O, N, K, E, Y}<br />

T300 {M, A, K, E}<br />

T400 {M, U, C, K, Y}<br />

T500 {C, O, O, K, I, E}<br />

a. Tìm tất cả tất cả các tập phổ biến Itemsets sử dụng thuật toán Apriori <br />

b. Liệt kê tất cả các luật kết hợp mạnh (với độ support s, và confidence c) đáp ứng tân<br />

từ sau, trong đó X là biến biểu diễn khách hàng và item i là các biến biểu diễn các mặt<br />

hàng (ví dụ A, B, …)<br />

Câu 3: (2 điểm)<br />

Trình bày các điểm khác biệt giữa kho dữ liệu và một cơ sở dữ liệu thông thường<br />

Câu 4: (2 điểm)<br />

Cho tập dữ liệu dùng để phân tích về độ tuổi được sắp xếp tăng dần như sau: {13,<br />

15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46,<br />

52, 70}<br />

a. Sử dụng phương pháp làm mịn trung vị với độ rộng bin là 3. Minh họa các bước<br />

thực hiện<br />

b. Sử dụng phương phương pháp chuẩn hóa decimal-scale để biến đổi giá trị tuổi 35.<br />

----------------------------***HẾT***----------------------------<br />

Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi


Trƣờng Đại Học Hàng Hải Việt Nam<br />

Khoa Công nghệ Thông tin<br />

BỘ MÔN HỆ THỐNG THÔNG TIN<br />

-----***-----<br />

76<br />

Tên học phần: KHAI PHÁ DỮ LIỆU<br />

Năm học: x<br />

Thời gian: 60 phút<br />

THI KẾT THÚC HỌC PHẦN<br />

Đề thi số:<br />

x<br />

Ký duyệt đề:<br />

x<br />

Câu 1: (2 điểm)<br />

Cho ví dụ về một nguồn dữ liệu lưu trữ có cấu trúc bảng, cấu trúc semi-structured,<br />

hoặc không cấu trúc<br />

Câu 2: (4 điểm)<br />

Cho một cơ sở dữ liệu với 5 giao dịch, giả sử độ min_sup = 60% và min_conf= 80%<br />

TID<br />

Mặt hàng<br />

T100 {M, O, N, K, E, Y}<br />

T200 {D, O, N, K, E, Y}<br />

T300 {M, A, K, E}<br />

T400 {M, U, C, K, Y}<br />

T500 {C, O, O, K, I, E}<br />

a. Tìm tất cả tất cả các tập phổ biến Itemsets sử dụng thuật toán Apriori <br />

b. Liệt kê tất cả các luật kết hợp mạnh (với độ support s, và confidence c) đáp ứng tân<br />

từ sau, trong đó X là biến biểu diễn khách hàng và item i là các biến biểu diễn các mặt<br />

hàng (ví dụ A, B, …)<br />

Câu 3: (2 điểm)<br />

Các bước của quá trình <strong>khai</strong> phá dữ liệu<br />

Câu 4: (2 điểm)<br />

Làm mịn dữ liệu sử dụng kỹ thuật làm tròn cho tập sau:<br />

Y = {1.17, 2.59, 3.38, 4.23, 2.67, 1.73, 2.53, 3.28, 3.44}<br />

Sau đó biểu diễn tập thu được với các độ chính xác:<br />

a. 0.1<br />

b. 1.<br />

----------------------------***HẾT***----------------------------<br />

Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi


Trƣờng Đại Học Hàng Hải Việt Nam<br />

Khoa Công nghệ Thông tin<br />

BỘ MÔN HỆ THỐNG THÔNG TIN<br />

-----***-----<br />

77<br />

Tên học phần: KHAI PHÁ DỮ LIỆU<br />

Năm học: x<br />

Thời gian: 60 phút<br />

THI KẾT THÚC HỌC PHẦN<br />

Đề thi số:<br />

x<br />

Ký duyệt đề:<br />

x<br />

Câu 1: (2 điểm)<br />

Nhiệm vụ chính của quá trình <strong>khai</strong> phá dữ liệu<br />

Câu 2: (4 điểm)<br />

Cho bảng tổng hợp sau biểu diễn dữ liệu tổng hợp kết quả bán hàng của một siêu thị,<br />

trong đó hot-dogs thể hiện số giao dịch có chứa hot-dog trong danh sách mặt hàng,<br />

thể hiện số giao dịch không có chứa hot-dog trong danh sách, tương tự như vậy<br />

đối với hamburgers.<br />

Hot-dogs<br />

Hamburgers 2.000 500 2.500<br />

1.000 1.500 2.500<br />

3.000 2.000 5.000<br />

a. Giả sử luật kết hợp đã được <strong>khai</strong> phá. Cho min_sup =<br />

30% và min_conf = 70%. Luật trên có phải là luật kết hợp mạnh hay không Giải<br />

thích<br />

b. Dựa trên các dữ liệu đã cho, hãy cho biết việc mua hot-dog có độc lập với việc mua<br />

humbergers hay không Nếu không hãy cho biết mối <strong>quan</strong> hệ giữa hai mặt hàng trên<br />

Câu 3: (2 điểm)<br />

Trình bày các điểm khác biệt giữa hai phương pháp phân lớp và phân cụm dữ liệu<br />

Câu 4: (2 điểm)<br />

Cho tập mẫu với các giá trị bị thiếu<br />

o X1 = {0, 1, 1, 2}<br />

o X2 = {2, 1, −, 1}<br />

o X3 = {1, −, −, 0}<br />

o X4 = {−, 2, 1, −}<br />

Nếu miền xác định của tất cả các thuộc tính là [0, 1, 2], hãy xác định các giá trị bị thiếu biết<br />

rằng các giá trị đó có thể là một trong số các xác trị của miền xác định Hãy giải thích<br />

những cái được và mất nếu rút gọn chiều của kho dữ liệu lớn<br />

----------------------------***HẾT***----------------------------<br />

Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi


78<br />

Trƣờng Đại Học Hàng Hải Việt Nam<br />

Khoa Công nghệ Thông tin<br />

BỘ MÔN HỆ THỐNG THÔNG TIN<br />

-----***-----<br />

THI KẾT THÚC HỌC PHẦN<br />

Tên học phần: KHAI PHÁ DỮ LIỆU<br />

Năm học: x<br />

Thời gian: 60 phút<br />

Đề thi số:<br />

x<br />

Ký duyệt đề:<br />

x<br />

Câu 1: (2 điểm)<br />

Kỹ thuật <strong>khai</strong> phá dữ liệu bao gồm những điểm cơ bản nào<br />

Câu 2: (4 điểm)<br />

Cho một cơ sở dữ liệu với 5 giao dịch, giả sử độ min_sup = 60% và min_conf= 80%<br />

TID<br />

Mặt hàng<br />

T100 {M, O, N, K, E, Y}<br />

T200 {D, O, N, K, E, Y}<br />

T300 {M, A, K, E}<br />

T400 {M, U, C, K, Y}<br />

T500 {C, O, O, K, I, E}<br />

a. Tìm tất cả tất cả các tập phổ biến Itemsets sử dụng thuật toán Apriori <br />

b. Liệt kê tất cả các luật kết hợp mạnh (với độ support s, và confidence c) đáp ứng tân<br />

từ sau, trong đó X là biến biểu diễn khách hàng và item i là các biến biểu diễn các mặt<br />

hàng (ví dụ A, B, …)<br />

Câu 3: (2 điểm)<br />

Trình bày khái niệm dự đoán, cho ví dụ và phân tích<br />

Câu 4: (2 điểm)<br />

Nếu các tập itemset được cấu trúc sao cho A + {A1, A2, A3}, B= {B1, B2}, C = {C1, C2, C3},<br />

D = {D1, D2} và E = {E1, E2}<br />

a. Hãy tìm các tập itemset được định nghĩa trên mức độ khái niệm<br />

b. Tìm các luật kết hợp đáng tin cậy cho các tập itemset ở câu trên.<br />

----------------------------***HẾT***----------------------------<br />

Lưu ý: - Không sửa, xóa đề thi, nộp lại đề sau khi thi

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!