DANH MỤC CÁC BẢNG4DANH MỤC CÁC HÌNH5LỜI MỞ ĐẦU6CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU71.1.Tổng quan về khai phá dữ liệu 171.2.Quy trình tổng quát thực hiện khai phá dữ liệu71.3.Tiến trình khám phá tri thức khi đi vào một bài toán cụ thể81.4.Một số kỹ thuật dùng trong Data Mining91.4.1.Cây quyết định101.4.2.Luật kết hợp141.4.3.Khoảng cách ngắn nhất181.4.4.KLáng giềng gần nhất191.4.5.Phân cụm201.4.6.Mạng Neural221.4.7.Thuật toán di truyền24Kết chương27CHƯƠNG II: PHƯƠNG PHÁP LAI PHÁT HIỆN TẤN CÔNG SQLI VÀ CÁC KỸ THUẬT NÉ TRÁNH TINH VI282.1.Giới thiệu292.2.Các nghiên cứu liên quan302.3.Tấn công SQLi và các kỹ thuật tránh né312.3.1.Giải pháp đề xuất trong phân tích giao thức HTTP312.4.Hệ thống phòng chống Injection lai322.4.1.Mô hình học máy342.4.2.Lựa chọn vector đặc tính342.4.3.Biểu diễn yêu cầu352.4.4.Phân lớp: Mô hình phân lớp Naive Bayes352.4.5.Đánh giá362.5.Đánh giá kết quả392.6.Phân tích so sánh40KẾT CHƯƠNG40CHƯƠNG III: KẾT LUẬN42TÀI LIỆU THAM KHẢO43
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
ĐỀ TÀIPHƯƠNG PHÁP TIẾP CẬN LAI ĐỂ PHÁT HIỆN TẤN CÔNG
SQLI VÀ CÁC KỸ THUẬT TRÁNH NÉ TINH VI
HÀ NỘI, 2015
Trang 2MỤC LỤC
DANH MỤC CÁC BẢNG 4
DANH MỤC CÁC HÌNH 5
LỜI MỞ ĐẦU 6
CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 7
1.1 Tổng quan về khai phá dữ liệu [1] 7
1.2 Quy trình tổng quát thực hiện khai phá dữ liệu 7
1.3 Tiến trình khám phá tri thức khi đi vào một bài toán cụ thể 8
1.4 Một số kỹ thuật dùng trong Data Mining 9
1.4.1 Cây quyết định 10
1.4.2 Luật kết hợp 14
1.4.3 Khoảng cách ngắn nhất 18
1.4.4 K-Láng giềng gần nhất 19
1.4.5 Phân cụm 20
1.4.6 Mạng Neural 22
1.4.7 Thuật toán di truyền 24
Kết chương 27
CHƯƠNG II: PHƯƠNG PHÁP LAI PHÁT HIỆN TẤN CÔNG SQLI VÀ CÁC KỸ THUẬT NÉ TRÁNH TINH VI 28
2.1 Giới thiệu 29
2.2 Các nghiên cứu liên quan 30
2.3 Tấn công SQLi và các kỹ thuật tránh né 31
2.3.1 Giải pháp đề xuất trong phân tích giao thức HTTP 31
2.4 Hệ thống phòng chống Injection lai 32
2.4.1 Mô hình học máy 34
2.4.2 Lựa chọn vector đặc tính 34
2.4.3 Biểu diễn yêu cầu 35
2.4.4 Phân lớp: Mô hình phân lớp Naive Bayes 35
2.4.5 Đánh giá 36
2.5 Đánh giá kết quả 39
Trang 32.6 Phân tích so sánh 40
KẾT CHƯƠNG 40
CHƯƠNG III: KẾT LUẬN 42
TÀI LIỆU THAM KHẢO 43
Trang 4DANH MỤC CÁC BẢNG
Bảng 1-1 Dữ liệu chơi golf 12
Bảng 1-2 Ví dụ về một CSDL giao dịch - D 15
Bảng 1-3 Tập mục thường xuyên minsup = 50% 15
Bảng 1-4 Luật kết hợp sinh từ tập mục phổ biến ABE 17
Bảng 1-5 Mẫu dữ liệu khách hàng 18
Bảng 1-6 Một số ví dụ dùng kỹ thuật k-láng giềng 20
Bảng 2-1: Một bảng đơn giản 35
Bảng 2-2 Bảng đánh giá các giá trị của mô hình lai 39
Trang 5DANH MỤC CÁC HÌNH
Hình 1.1 Datamining – một bước trong quá trình khám phá tri thức 8
Hình 1.2 Tổng quan tiến trình khai phá dữ liệu 9
Hình 1.3 Kết quả của cây quyết định 12
Hình 1.4 Các mẫu tin biểu diễn thành điểm trong một không gian bởi các thuộc tính của chúng và khoảng cách giữa chúng có thể được đo 18
Hình 1.5 Mô hình mạng Noron tổng quát 23
Hình 1.6 Mô phỏng kiến trúc mạng neural 23
Hình 2.1 10 hiểm họa nguy hiểm nhất với ứng dụng Web theo OWASP 28
Hình 2.2 Kẻ tấn công sử dụng các kỹ thuật tinh vi để vượt qua WAF 29
Hình 2.3 Yêu cầu HTTP thô 32
Hình 2.4 Cấu trúc bộ phận phát hiện 33
Hình 2.5 Framework thu thập các dấu vết tấn công 34
Hình 2.6 Framework thu thập dấu vết tấn công 40
Trang 6LỜI MỞ ĐẦU
Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tintrong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồngnghĩa với lượng dữ liệu đã được các cơ quan 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 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ỏ của những dữ liệunà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ẽ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émvới ý nghĩ lo sợ rằng sẽ có cái gì đó quan trọng đã bị bỏ qua sau này có lúc cần đến
nó Các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống không đáp ứngđược kỳ vọng này, nên đã ra đời Kỹ thuật phát hiện tri thức và khai phá dữ liệu(KDD - Knowledge Discovery and Data bMining)
Kỹ thuật phát hiện tri thức và khai phá dữ liệu đã và đang được nghiên cứu,ứng dụng trong nhiều lĩnh vực khác nhau ở các nước trên thế giới, tại Việt Nam kỹthuật này tương đối còn mới mẻ tuy nhiên cũng đang được nghiên cứu và dần đưavào ứng dụng
Ngày nay, các ứng dụng web ngày càng đóng một vai trò quan trọng đối vớimọi tổ chức Điều này trở nên rõ ràng khi các ứng dụng web bị tấn công sẽ làm ảnhhưởng nghiêm trọng đến các chức năng hoạt động của tổ chức Trong phạm vi của
đề tài nghiên cứu này, nhóm xin được trình bày những kiến thức cơ bản về khai phá
dữ liệu và việc ứng dụng khai phá dữ liệu trong phát hiện tấn công SQLi và các kỹthuật tránh né tinh vi
Nội dung nghiên cứu:
1 Tổng quan về khai phá dữ liệu
2 Nghiên cứu phương pháp lai phát hiện tấn công SQL injection và các kỹthuật tránh né tinh vi
Sau đây sẽ trình bày chi tiết các nội dung trên
Trang 7CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1 Tổng quan về khai phá dữ liệu [1]
Khai phá dữ liệu được định nghĩa là quá trình trích xuất các thông tin có giá trịtiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các cơ sở dữ liệu, kho dữ liệu
Cụ thể hơn đó là tiến trình trích lọc, sản sinh những tri thức hoặc những mẫu tiềm ẩn,chưa biết nhưng hữu ích từ các cơ sở dữ liệu lớn Đồng thời là tiến trình khái quátcác sự kiện rời rạc trong dữ liệu thành các tri thức mang tính khái quát, tính qui luật
hỗ trợ tích cực cho các tiến trình ra quyết định Hiện nay, ngoài thuật ngữ khai phá
dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: Khai phátri thức từ CSDL, trích lọc dữ liệu, phân tích dữ liệu/mẫu, khảo cổ dữ liệu (dataarchaeology), nạo vét dữ liệu (data dredredging) Nhiều người coi khai phá dữ liệu
và một số thuật ngữ thông dụng khác là khám phá tri thức trong CSDL (KnowledgeDiscovery in Databases-KDD) là như nhau Tuy nhiên trên thực tế khai phá dữ liệuchỉ là một bước thiết yếu trong quá trình Khám phá tri thức trong CSDL
Nguồn dữ liệu phục vụ cho KTDL có thể là các CSDL lớn hay các kho dữ liệu(Datawarehouse) có hay không có cấu trúc Các tác vụ khai phá dữ liệu có thể được
phân thành hai loại: miêu tả và dự báo
- Các tác vụ khai phá miêu tả mô tả các đặc tính chung của dữ liệu trong cơ sở
dữ liệu Kỹ thuật khai phá dữ liệu mô tả: Có nhiệm vụ mô tả về các tính chất hoặccác đặc tính chung của dữ liệu trong CSDL hiện có Các kỹ thuật này gồm có: phâncụm (clustering), tóm tắt (summerization), trực quan hoá (visualiztion), phân tích sựphát triển và độ lệch (Evolution and deviation analyst), phân tích luật kết hợp(association rules)…
- Các tác vụ khai phá dự báo thực hiện việc suy luận trên dữ liệu hiện thời đểđưa ra các dự báo Kỹ thuật khai phá dữ liệu dự đoán: Có nhiệm vụ đưa ra các dựđoán dựa vào các suy diễn trên dữ liệu hiện thời Các kỹ thuật này gồm có: Phân lớp(classification), hồi quy (regression)…
Khai thác dữ liệu được ứng dụng rộng rãi trong rất nhiều lĩnh vực như: ngânhàng, thương mại điện tử, nhân sự, y học, an ninh, an toàn mạng
1.2 Quy trình tổng quát thực hiện khai phá dữ liệu
Quá trình này gồm các bước[1]:
1) Làm sạch dữ liệu (data cleaning): Loại bỏ nhiễu hoặc các dữ liệu không thíchhợp
Trang 82) Tích hợp dữ liệu (data integration): Tích hợp dữ liệu từ các nguồn khác nhaunhư: CSDL, Kho dữ liệu, file text…
3) Chọn dữ liệu (data selection): Ở bước này, những dữ liệu liên quan trực tiếpđến nhiệm vụ sẽ được thu thập từ các nguồn dữ liệu ban đầu
4) Chuyển đổi dữ liệu (data transformation): Trong bước này, dữ liệu sẽ đượcchuyển đổi về dạng phù hợp cho việc khai phá bằng cách thực hiện các thao tácnhóm hoặc tập hợp
5) Khai phá dữ liệu (data mining): Là giai đoạn thiết yếu, trong đó các phươngpháp thông minh sẽ được áp dụng để trích xuất ra các mẫu dữ liệu
6) Đánh giá mẫu (pattern evaluation): Đánh giá sự hữu ích của các mẫu biểu diễntri thức dựa vào một số phép đo
7) Trình diễn dữ liệu (Knowlegde presention): Sử dụng các kỹ thuật trình diễn vàtrực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người sử dụng
Hình 1.1 Datamining – một bước trong quá trình khám phá tri thức
1.3 Tiến trình khám phá tri thức khi đi vào một bài toán cụ thể
Chính vì mục tiêu khám phá trí thức ngầm định trong cơ sở dữ liệu nên quá trìnhkhai phá thường phải qua một số các giai đoạn cần thiết Bao gồm những giai đoạnchuẩn bị dữ liệu khai phá, giai đoạn khai phá dữ liệu và cuối cùng là giai đoạnchuyển kết quả khai phá sang những tri thức cho con người hiểu được Chi tiết cácbước thực hiện được mô tả trong bảng tóm tắt như sau[2]:
Trang 9Giai đoạn 1: đầu tiên là phát triển một sự hiểu biết về lĩnh vực ứng dụng vànhững tri thức tương ứng Xác định mục đích của tiến trình khai phá dữ liệu
từ quan điểm của người dùng
Giai đoạn 2: chuẩn bị dữ liệu để khai phá, thu thập dữ liệu và dữ liệu mẫu
Giai đoạn 3: tiền xử lý dữ liệu, xóa các thông tin bị nhiễu trong dữ liệu, loại bỏ
sự trùng lặp dữ liệu và xác định chiến lược để xử lý dữ liệu bị mất
Giai đoạn 4: chiếu dữ liệu, thu nhỏ dữ liệu và tìm những đặc trưng để khai phá
Giai đoạn 5: chọn một phương pháp khai phá dữ liệu thích hợp nhất trong sốcác phương pháp phổ biến như: tóm tắt, phân lớp, hồi quy, phân nhóm, kếthợp…
Giai đoạn 6: từ thuật toán đã chọn, mô hình hóa thuật toán để giải quyết trongtrường hợp cụ thể đang xét Lựa chọn những phương pháp tìm kiếm mẫu dữliệu, quyết định các tham số
Giai đoạn 7: đây là giai đoạn khai phá dữ liệu, sử dụng thuật toán để tìm kiếmnhững mẫu thú vị trong một hình thức thể hiện đặc thù hoặc một tập nhữngthể hiện bao gồm những luật phân lớp, cây, sự hồi quy và phân nhóm
Giai đoạn 8: thông dịch lại những mẫu đã được khai phá dưới các hình thứcthể hiện tri thức của dữ liệu như ngôn ngữ, biểu đồ, hình cây, bảng…
Hình 1.2 Tổng quan tiến trình khai phá dữ liệu
Quá trình khai phá này có sự tương tác và lặp lại giữa hai bước bất kỳ, nhữngbước cơ bản của tiến trình được minh họa trong hình trên Hầu hết những công việctrước đây đều tập trung ở bước 7 là giai đoạn khai phá dữ liệu Tuy nhiên, các bướccòn lại quan trọng không kém và những bước đó đóng góp rất nhiều vào sự thànhcông của toàn bộ tiến trình khai phá dữ liệu
Trang 101.4 Một số kỹ thuật dùng trong Data Mining
Cho tới nay đã có rất nhiều kỹ thuật có thể áp dụng trong việc khai phá dữ liệunhư: tập mờ, phương pháp Bayes, cây quyết định, lập trình tiến hóa với thuật toán ditruyền, máy học, mạng neural, kỹ thuật phân nhóm, luật kết hợp, mô hình dữ liệu đachiều, công cụ phân tích dữ liệu trực tuyến (OLAP), khoảng cách ngắn nhất, kỹthuật k-láng giềng gần nhất, luật kết hợp với giải thuật AprioriTID, học quy nạp… Ởđây chỉ trình bày sơ lược một số kỹ thuật thường được sử dụng [2] [5] [6] [9]
1.4.1 Cây quyết định
Trong lý thuyết quyết định (chẳng hạn quản lí rủi ro), một cây quyết định làmột đồ thị của các quyết định và các hậu quả có thể của nó (bao gồm rủi ro và haophí tài nguyên) Cây quyết định được sử dụng để xây dựng một kế hoạch nhằm đạtđược mục tiêu mong muốn Các cây quyết định được dùng để hỗ trợ quá trình raquyết định Cây quyết định là một dạng đặc biệt của cấu trúc cây
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo nghĩa làmột ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mụctiêu của sự vật/hiện tượng Mỗi một nút trong tương ứng với một biến, đường nốigiữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó Mỗi nút lá đạidiện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến đượcbiểu diễn bởi đường đi từ nút gốc tới nút lá đó Kỹ thuật học máy dùng trong câyquyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn làcây quyết định
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá
dữ liệu Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện chocác phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại
đó Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tậpcon dựa theo một kiểm tra giá trị thuộc tính Quá trình này được lặp lại một cách đệqui cho mỗi tập con dẫn xuất Quá trình đệ qui hoàn thành khi không thể tiếp tụcthực hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp dụng chotừng phần tử của tập con dẫn xuất Một bộ phân loại rừng ngẫu nhiên (randomforest) sử dụng một số cây quyết định để có thể cải thiện tỉ lệ phân loại
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toáncác xác suất có điều kiện Cây quyết định có thể được mô tả như là sự kết hợp củacác kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quáthóa một tập dữ liệu cho trước
Trang 11Dữ liệu được cho dưới dạng các bản ghi có dạng:
( , ) ( , , , , , )x y x x x x y k
Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phânloại hay tổng quát hóa x x x1 , , 2 3 là các biến sẽ giúp ta thực hiện công việc đó
Cây quyết định còn có hai tên khác:
Cây hồi quy (Regression tree): ước lượng các hàm giá có giá trị là số thực
thay vì được sử dụng cho các nhiệm vụ phân loại (ví dụ: ước tính giá một ngôi nhàhoặc khoảng thời gian một bệnh nhân nằm viện)
Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới tính
(nam hay nữ), kết quả của một trận đấu (thắng hay thua)
Ví dụ: Ta sẽ dùng một ví dụ để giải thích về cây quyết định:
David là quản lý của một câu lạc bộ đánh golf nổi tiếng Anh ta đang có rắc rốichuyện các thành viên đến hay không đến Có ngày ai cũng muốn chơi golf nhưng
số nhân viên câu lạc bộ lại không đủ phục vụ Có hôm, không hiểu vì lý do gì màchẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên
Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cáchdựa theo thông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf
Để thực hiện điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìmhiểu xem có cách giải thích nào cho việc đó hay không
Vậy là trong hai tuần, anh ta thu thập thông tin về:
Trời (outlook) (nắng (sunny), nhiều mây (clouded) hoặc mưa (raining)) Nhiệt
độ (temperature) bằng độ F Độ ẩm (humidity) Có gió mạnh (windy) hay không
Và tất nhiên là số người đến chơi golf vào hôm đó David thu được một bộ dữliệu gồm 14 dòng và 5 cột
Dữ liệu chơi golf Các biến độc lập
Trang 12Bảng 1-1 Dữ liệu chơi golf
Sau đó, để giải quyết bài toán của David, người ta đã đưa ra một mô hình câyquyết định
Hình 1.3 Kết quả của cây quyết định
Cây quyết định là một mô hình dữ liệu mã hóa phân bố của nhãn lớp (cũng là y)theo các thuộc tính dùng để dự đoán Đây là một đồ thị có hướng phi chu trình dướidạng một cây Nút gốc (nút nằm trên đỉnh) đại diện cho toàn bộ dữ liệu Thuật toáncây phân loại phát hiện ra rằng cách tốt nhất để giải thích biến phụ thuộc, play(chơi), là sử dụng biến Outlook Phân loại theo các giá trị của biến Outlook, ta có banhóm khác nhau: Nhóm người chơi golf khi trời nắng, nhóm chơi khi trời nhiềumây, và nhóm chơi khi trời mưa
Trang 13Kết luận thứ nhất: nếu trời nhiều mây, người ta luôn luôn chơi golf Và có một
số người ham mê đến mức chơi golf cả khi trời mưa
Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con Ta thấy rằng kháchhàng không muốn chơi golf nếu độ ẩm lên quá 70%
Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ khôngchơi golf nếu trời nhiều gió
Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại David chophần lớn nhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưagió Vì hầu như sẽ chẳng có ai chơi golf trong những ngày đó Vào những hôm khác,khi nhiều người sẽ đến chơi golf, anh ta có thể thuê thêm nhân viên thời vụ để phụgiúp công việc
Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thànhmột cấu trúc đơn giản hơn rất nhiều
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp
Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giátrị là tên thể loại Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉgồm một loại biến Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên,trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số
Cây quyết định là một mô hình hộp trắng Nếu có thể quan sát một tìnhhuống cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằnglogic Boolean Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích chokết quả quá phức tạp để có thể hiểu được
Có thể thẩm định một mô hình bằng các kiểm tra thống kê Điều này làmcho ta có thể tin tưởng vào mô hình
Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gianngắn Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong mộtthời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phântích của cây quyết định
Trang 141.4.2 Luật kết hợp
Luật kết hợp là một hướng quan trọng trong khai phá dữ liệu Luật kết hợp giúpchúng ta tìm được các mối liên hệ giữa các mục dữ liệu (items) của CSDL Luật kếthợp là dạng khá đơn giản nhưng lại mang khá nhiều ý nghĩa Thông tin mà dạng luậtnày đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết định Tìmcác luật kết hợp “quý hiếm” và mang nhiều thông tin từ CSDL tác nghiệp là mộttrong những hướng tiếp cận chính của lĩnh vực khai phá dữ liệu
Luật kết hợp là những luật có dạng “80 % khách hàng mua máy điện thoại diđộng thì mua thêm simcard, 30% có mua cả máy điện thoại di động lẫn simcard”hoặc “75 % khách hàng gọi điện liên tỉnh và sống ở các huyện thì gọi điện thoại IP
171 liên tỉnh, trong đó 25% số khách hàng vừa gọi liên tỉnh, sống ở các huyện vừagọi điện thoại IP 171 liên tỉnh” “mua máy điện thoại di động” hay gọi liên tỉnh vàsống ở các huyện” ở đây được xem là các vế trái (tiền đề) của luật, còn “muasimcard” hay “gọi điện thoại IP 171 liên tỉnh” là vế phải (kết luận) của luật Các con
số 30%, 25% là độ hỗ trợ của luật (support - số phần trăm các giao dịch chứa cả vếtrái và vế phải), còn 80%, 75% là độ tin cậy của luật (confidence - số phần trăm cácgiao dịch thoả mãn vế trái thì cũng thoả mãn vế phải)
Độ hỗ trợ (support) và độ tin cậy (confidence) là hai thước đo cho một luật kếthợp Trong luật kết hợp thứ nhất ta có thể hiểu độ hỗ trợ bằng 30% có nghĩa là
“Trong số các khách hàng thì có 30% khách hàng vừa mua điện thoại di động, vừamua simcard” Độ tin cậy của luật kết hợp này là 80% có nghĩa là “Trong số cáckhách hàng mua điện thoại di động thì sẽ có 80% khách hàng mua simcard” Ở luậtkết hợp thứ hai, độ hỗ trợ bằng 25% có nghĩa là “Trong các khách hàng có sử dụngđiện thoại thì có 25% khách hàng sử dụng điện thoại liên tỉnh và điện thoại IP 171”
Độ tin cậy bằng 75% có nghĩa là “Trong các khách hàng có sử dụng điện thoại liêntỉnh thì có 75% khách hàng sử dụng điện thoại IP 171”
- Bài toán khai phá luật kết hợp:
I = {i1, i2, …, in} là tập bao gồm n mục (Item – còn gọi là các thuộc tính attribute) X ¿ I được gọi là tập mục (itemset)
-T = {t1, t2, …, tm} là tập gồm m giao dịch (transacstion – còn gọi là bản ghi record), mỗi giao dịch được định danh bởi TID (Transaction Identification)
-R là một quan hệ nhị phân trên I và T (hay -R ¿ IxT) Nếu giao dịch t cóchứa mục i thì ta viết (i, t) ¿ R (hoặc iRt) (T, I, R) là ngữ cảnh khai thác dữ liệu.Một CSDL D, về mắt hình thức, chính là một quan hệ nhị phân R như trên Về ý
Trang 15nghĩa, một CSDL là một tập các giao dịch, mỗi giao dịch t là một tập mục, t ¿ 2I
(2I là tập cấc tập con của I)
Ví dụ về CSDL giao dịch: I = {A, B, C, D, E}, T = {1, 2, 3, 4, 5, 6}
Thông tin về các giao dịch cho ở bảng sau:
Định danh giao dịch (TID) Tập mục (itemset)
Tập mục phổ biến: Cho một tập mục X ¿ I và ngưỡng phổ biến tối thiểuminsup ¿ (0, 1],(minsup được xác định bởi người sử dụng) Một tập mục X đượcgọi là một tập phổ biến theo ngưỡng minsup nếu và chỉ nếu độ hỗ trợ của nó lớn hơnhoặc bằng một ngưỡng minsup: s(X) ¿ minsup
Ký hiệu FX(T, I, R, minsup) = {X ¿ I | s(X) ¿ minsup}
Với (T, I, R) trong ví dụ CSDL bảng 1.2, và giá trị ngưỡng minsup = 50% sẽ liệt
kê các tập mục phổ biến (frenquent-itemset) như sau:
AD, CE, DE, ABD, ADE, BCE, BDE 50%
Bảng 1-3 Tập mục thường xuyên minsup = 50%
Độ hỗ trợ s của luật kết hợp X → Y là tỷ lệ phần trăm các giao dịch trong D cóchứa X và Y là s(X → Y) = Card(X ¿ Y)/Card(D) %
Luật kết hợp có dạng X ⃗c Y trong đó:
Trang 16X, Y là các tập mục thoả mãn điều kiện X ¿ Y = Ø và c là độ tin cậy.
Độ tin cậy của luật c = s(X ¿ Y)/s(X)%: Là tỷ lệ phần trăm các giao dịch trong
D có chứa X thì chứa Y Về mặt xác suất, độ tin cậy c của một luật kết hợp là xácsuất (có điểu kiện) xảy ra Y với điều kiện đã xảy ra X
Luật kết hợp tin cậy: Một luật được xem là tin cậy nếu độ tin cậy c của nó lớnhơn hoặc bằng một ngưỡng minconf ¿ (0, 1] nào đó do người dùng xác định.Ngưỡng minconf phản ánh mức độ xuất hiện của Y khi cho trước X (( c ¿minconf) (minimum Confidence))
Luật kết hợp cần tìm là luật kết hợp thoả mãn Minsup và minconf cho trước.Chúng ta chỉ quan tâm đến các luật có độ hỗ trợ lớn hơn Độ hỗ trợ tối thiểu và độ tincậy lớn hơn Độ tin cậy tối thiểu
Hầu hết các thuật toán khai phá luật kết hợp thường chia thành 2 pha:
Pha 1: Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu tức là tìm tất cả các tậpmục X thoả s(X) ¿ minsup
Pha 2: Sinh các luật tin cậy từ các tập phổ biến đã tìm thấy ở pha 1
Nếu X là một tập mục phổ biến thì luật kết hợp được sinh ra từ X có dạng:
X’ c X \ X’
trong đó:
X’ là tập con khác rỗng của X
X\X’ là hiệu của hai tập hợp X và X’
c là độ tin cậy của luật thoả mãn c ¿ minconf
Với tập mục phổ biến trong bảng 1.3 thì chúng ta có thể sinh luật kết hợp sauđây:
Luật kết hợp Độ tin cậy c ¿ minconf ?
Trang 17AB ⃗100 % E Có
Bảng 1-4 Luật kết hợp sinh từ tập mục phổ biến ABE
Tập phổ biến tối đại: Cho M ¿ FX(T, I, R, minsup) M được gọi là tập mục phổbiến tối đại nếu không tồn tại X ¿ FX(T, I, R, minsup), M ¿ X, M ¿ X
- Các hướng tiếp cận khai phá luật kết hợp:
Luật kết hợp nhị phân (binary association rule hoặc Boolean association rule): là
hướng 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 quan đến luật kết hợp nhị phân Trong dạng luật kết hợpnày, các mục (thuộc tính) chỉ được quan tâm là có hay không xuất hiện trong giaotác của cơ sở dữ liệu chứ không quan tâm về “mức độ” xuất hiện Thuật toán tiêubiểu nhất khai phá dạng luật này là thuật toán Apriori và các 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 nhờ một sốphương pháp như rời rạc hoá, mờ hoá, v.v
Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and
categorical association rule): Các thuộc tính của cơ sở dữ liệu thực tế có kiểu rất đadạng (nhị phân – binary, số - quantitative, hạng mục – categorical…) để phát hiệnluật kết hợp với các thuộc tính này,các nhà nghiên cứu đã đề xuất một số phươngpháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để áp dụng các cácthuật toán đã có
Luật kết hợp tiếp cận theo hướng tập thô (mining association rule base on rough
set): Tìm kiếm luật kết hợp dựa trên lý thuyết tập thô
Luật kết hợp nhiều mức (multi-level association rule): Với cách tiếp cận theo luật
này sẽ tìm kiếm thêm những luật có dạng “mua mày tính PC => mua hệ điều hànhAND mua phần mềm tiện í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 hành Micorsoft Windows AND mua phầnmềm tiện ích văn phòng Microsoft Office, …” Như vậy dạng luật đầu tiên là luậttổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác nhau
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 rời rạc hoá các thuộc tính số, các nhà nghiên cứu đã đề xuất luật kết hợp
Trang 18mờ nhằm khắc phục các hạn chế trên và chuyển luật kết hợp về dạng tự nhiên hơn,gần gũi hơn với người sử dụng.
Luật kết hợp với các thuộc tính được đánh trọng số (association rule with
weighted items) Trong thực tế, các thuộc tính trong CSDL không phải lúc nào cũng
có vai trò như nhau Có một số thuộc tính được chú trọng hơn và có mức độ quantrọng cao hơn các thuộc tính khác
Khai thác luật kết hợp song song (parallel mining of association rule): Bên cạnh
khai thác luật kết hợp tuần tự, các nhà làm tin học cũng tập chung vào nghiên cứucác giải thuật song song cho 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 thước dữ liệu ngày càng lớn hơn nên đòi hỏitốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo Có rấtnhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ thuộc vàophần cứng
1.4.3 Khoảng cách ngắn nhất
Đây là phương pháp xem các mẫu tin như là những điểm trong không gian dữliệu đa chiều Áp dụng ý tưởng này có thể xác định khoảng cách giữa hai mẫu tintrong không gian dữ liệu như sau: các mẫu tin có liên hệ với nhau thì rất gần nhau.Các mẫu tin ở xa nhau thì có ít điểm chung Cơ sở dữ liệu mẫu chứa cá thuộc tínhnhư tuổi, thu nhập và tín dụng Ba thuộc tính mẫu này thành lập nên không gian dữliệu ba chiều và có thể phân tích các khoảng cách giữa các mẫu tin trong không giannày
Trang 19Hình 1.4 Các mẫu tin biểu diễn thành điểm trong một không gian bởi các thuộc
tính của chúng và khoảng cách giữa chúng có thể được đo
Ví dụ: Tuổi phạm vi: 1→ 100, trong khi thu nhập khoảng từ 0 → 100.000 dollarmỗi tháng Nếu dùng dữ liệu này mà không hiệu chỉnh cho đúng thì thu nhập sẽ làmột thuộc tính dễ phân biệt hơn rất nhiều so với tuổi và đây là điều mà chúng takhông mong muốn Vì vậy chia thu nhập cho 1000 để đạt tới một đơn vị đo độ lớnnhư là tuổi Làm tương tự cho thuộc tính tín dụng Nếu độ đo tất cả thuộc tính cùngmột độ đo, sẽ có một độ đo khoảng cách đáng tin cậy để đo các mẫu tin khác nhau.Trong ví dụ sẽ dùng độ đo Enclidean, khoảng cách giữa khách hàng 1 và khách hàng
2 là 15
1.4.4 K-Láng giềng gần nhất
Khi đã thông dịch các mẫu tin thành các điểm trong một không gian dữ liệunhiều chiều, chúng ta có thể định nghĩa khái niệm của “láng giềng”:
Các mẫu tin ở gần nhau là láng giềng của nhau
Giả sử ta muốn dự đoán thái độ của một tập khách hàng từ một cơ sở dữ liệu vớinhững mẫu tin mô tả những khách hàng này Giả thuyết cơ sở đòi hỏi để làm một dự
án là những khách hàng cùng loại sẽ có cùng thái độ Trong thuật ngữ ẩn dụ củakhông gian dữ liệu đa chiều, một kiểu chỉ là một vùng trong không gian dữ liệu này.Mặt khác, các mẫu tin cùng kiểu sẽ gần nhau trong không gian dữ liệu: chúng sẽ làláng giềng của nhau Dựa vào hiểu biết này, để phát triển một thuật toán mạnhnhưng rất đơn giản - thuật toán k-láng giềng gần nhất Lý thuyết cơ sở của k-lánggiềng gần nhất là “làm như láng giềng của bạn đã làm” Nếu muốn dự đoán thái độcủa một các nhân cụ thể, bắt đầu nhìn vào thái độ của mười người gần gũi với anh tatrong không gian dữ liệu Tính trị trung bình về thái độ của 10 người này, và trịtrung bình này sẽ là cơ sở dự đoán cho cá nhân của anh ta Chữ k trong k-láng giềnggần nhất đại diện cho số láng giềng điều tra
K-láng giềng gần nhất đơn giản thật sự không là một kỹ thuật học mà là mộtphương pháp tìm kiếm thuần túy bởi vì tập dữ liệu bản thân nó được dùng chỉ đểtham khảo Nó không thể tạo ra một lý thuyết trong lĩnh vực datamining mà giúphiểu cấu trúc tốt hơn Ví dụ như, nếu muốn ra một quyết định cho mỗi yếu tố trongtập dữ liệu chứa n mẫu tin, thì cần phải so sánh mẫu tin với các mẫu tin khác Điềunày dẫn đến độ phức tạp bậc 2, đặc biệt cho tập cơ sở dữ liệu lớn Nếu muốn làmmột sự phân tích k-láng giềng gần nhất đơn giản đối với một cơ sở dữ liệu có mộttriệu mẫu tin, phải thực hiện một ngàn tỷ phép so sánh Cách tiếp cận như vậy rõ
Trang 20ràng là không tốt mặc dầu có nhiều kết quả nghiên cứu đã giúp tăng tốc độ của quátrình tìm kiếm này Tóm lại các thuật toán data mining không nên có độ phức tạptính toán lớn hơn n*log(n) (trong đó n là số các mẫu tin) Trong thực tế chúng ta ítdùng kỹ thuật k-láng giềng gần nhất.
Một ví dụ dùng thuật toán k-láng giềng:
Tạp chí nhà (nội thất) 80% đúngTạp chí thể thao 74% đúng
dữ liệu tương tự nhau (theo một chuẩn đánh giá nào đó) thành những cụm Các điểm
dữ liệu nằm trong các cụm khác nhau có độ tương tự thấp hơn các điểm dữ liệu nằmtrong một cụm
Phân tích cụm có nhiều ứng dụng rộng rãi, bao gồm nghiên cứu thị trường, nhậndạng mẫu, phân tích dữ liệu và xử lý ảnh Trong kinh doanh, phân tích cụm có thểgiúp các nhà marketing khám phá sự khác nhau giữa các nhóm khách hàng dựa trênthông tin khách hàng và các đặc trưng của các nhóm khách hàng dựa trên các mẫumua hàng Trong sinh học, nó có thể được sử dụng để phân loại thực vật và độngvật, các mẫu gen với các chức năng tương tự nhau Phân tích cụm còn có thể phânloại đất theo công năng hoặc thực tế sử dụng để có chính sách qui hoạch phù hợp,phân loại các tài liệu trên Web
Mục tiêu đầu tiên của các thuật toán của chúng ta là tính có bao nhiêu điểm là
"gần" với từng điểm trong không gian thuộc tính Một tham số cho các thuật toán làmột bán kính w còn gọi tắt là chiều rộng cụm Đối với bất kỳ một cặp điểm x1 và x2,chúng ta xem xét hai điểm "gần" nhau, nếu khoảng cách giữa chúng là nhỏ hơn hoặcbằng w, d(x1, x2) <w với khoảng cách được xác định trong phạm vi hàm hạt nhân
Trang 21Đối với mỗi điểm x, chúng ta xác định N(x) là số điểm mà nằm trong vòng w củađiểm x Một cách hình thức hơn ta xác định như sau:
(1)Những tính toán đơn giản của N(x) cho tất cả các điểm có một phức tạp tínhtoán O(N2) trong đó N là số điểm Lý do là chúng ta phải tính đến những khoảngcách giữa các cặp tất cả các điểm Tuy nhiên, bởi vì chúng ta là chỉ quan tâm đếnviệc xác định các outliers là gì, chúng ta có thể tính toán gần đúng một cách có hiệuquả như sau Trước tiên chúng ta thực hiện phân cụm chiều rộng cố định trên toàn
bộ dữ liệu với cụm có chiều rộng w Sau đó, chúng ta gán nhãn các điểm vào trongcác cụm nhỏ như các bất thường Một thuật toán phân cụm chiều rộng cố định được
mô tả như sau Điểm đầu tiên là trung tâm đầu tiên của nhóm Đối với tất cả cácđiểm tiếp theo, nếu nó cách điểm trung tâm của cụm không quá w, nó sẽ được thêmvào cụm đó Nếu không nó là một trung tâm của một nhóm mới Lưu ý rằng một sốđiểm có thể được thêm vào nhiều cụm Thuật toán phân cụm chiều rộng cố định đòihỏi chỉ có một trải qua tập dữ liệu (only one pass through the data) Độ phức tạp củathuật toán là O(cn) có c là số cụm và n là số lượng các điểm dữ liệu Đối với một whợp lý, c sẽ nhỏ hơn n một cách đáng kể Lưu ý rằng theo định nghĩa của công thức
ở trên, cho từng nhóm, số lượng các điểm gần các trung tâm cụm, N(c), là số điểmtrong cụm c Đối với mỗi điểm x, không phải là một trung tâm của một nhóm, chúng
ta xấp xỉ N(x) bằng N(c) đối với cụm c chứa x Đối với các điểm nằm trong khu vựcdày đặc, nơi mà có rất nhiều sự chồng chéo giữa các cụm, điều này sẽ làm cho việcđánh giá không chính xác Tuy nhiên, đối với các điểm là outliers, sẽ có một số cụmchồng chéo tương đối trong các khu vực này và N(c) sẽ là một cách xấp xỉ chính xáccủa N(x) Vì chúng ta là chỉ quan tâm đến số điểm là outliers, các điểm trong khuvực dày đặc sẽ cao hơn nhiều so với ngưỡng Do đó, xấp xỉ là hợp lý trong trườnghợp của chúng ta
Với giải thuật xấp xỉ hiệu quả, có thể xử lý một tập dữ liệu lớn hơn đáng kể sovới thuật toán đơn giản bởi vì ta không cần phải thực hiện việc so sánh từng cặpđiểm
Các yêu cầu cơ bản của phân tích cụm trong KTDL:
Có khả năng làm việc hiệu quả với lượng dữ liệu lớn: Phân tích cụm trên mộtmẫu của dữ liệu lớn có thể dẫn đến các kết quả thiên lệch Cần phải có các thuậttoán phân cụm trên CSDL lớn
Trang 22 Có khả năng xử lý các dạng dữ liệu khác nhau: Nhiều thuật toán được thiết kế
để xử lý dữ liệu bằng số Tuy nhiên, các ứng dụng có thể yêu cầu phân tích cụm cácdạng dữ liệu khác, như dữ liệu nhị phân, phân loại, trật tự hay sự trộn lẫn của cáckiểu dữ liệu
Có khả năng khám phá ra các cụm với các dạng bất kỳ: Nhiều thuật toán phâncụm dựa trên các số đo khoảng cách Euclide hay Manhattan Các thuật toán dựa trêncác số đo khoảng cách có xu hướng tìm các cụm hình cầu với kích thước và mật độtương tự nhau Tuy nhiên, một cụm (cluster) có thể có hình dạng bất kỳ Do đó cầnphát triển các thuật toán để tìm các cluster hình dạng bất kỳ
Yêu cầu tối thiểu tri thức lĩnh vực nhằm xác định các tham số đầu vào: Nhiềuthuật toán phân cụm đòi hỏi người dùng nhập các tham số trong phân tích cụm Cáckết quả phân cụm có thể bị ảnh hưởng vào các tham số đầu vào Các tham số thườngkhó xác định, đặc biệt đối với các tập dữ liệu chứa các đối tượng dữ liệu nhiềuchiều
Có khả năng làm việc với dữ liệu nhiễu
Không bị ảnh hưởng vào thứ tự nhập của dữ liệu
Làm việc tốt trên CSDL có số chiều cao
Chấp nhận các ràng buộc do người dùng chỉ định
Có thể hiểu và sử dụng được các kết quả gom cụm
1.4.6 Mạng Neural
Mạng neural nhân tạo (Artificial Neural Network - ANN) là một mô hình xử
lý thông tin dựa trên cơ chế hoạt động của hệ thống thần kinh sinh học, như não bộ.Thành phần chính yếu của mô hình này là cấu trúc đặc biệt của hệ thống này Nó tậphợp một số lượng lớn các phần tử xử lý kết hợp nội tại (được gọi là các neuron) hoạtđộng hợp nhất để giải quyết các bài toán cụ thể Một ANN sẽ được cấu hình cho mộtứng dụng cụ thể nào đó, ví dụ như nhận dạng mô hình hoặc phân loại dữ liệu thôngqua quá trình học Việc học trong hệ thống nhằm mục đích điều chỉnh các kết nốithuộc kỳ tiếp hợp được phân chia trong tế bào mà đã có sẵn giữa các neuron
Neuron nhân tạo đầu tiên được tạo ra vào năm 1943 bởi nhà nghiên cứuneuron học Warren McCulloch và nhà logic học Walter Pits Nhưng kỹ thuật thời đókhông cho phép neuron phát triển được các thế mạnh của nó Mạng neuron này nay
có nhiều cải tiến cũng như đáp ứng được các yêu cầu đặt ra của các bài toán, một số
ưu điểm của mạng neuron ngày nay so với thời trước là:
1 Học thích ứng: có khả năng học cách thức thực hiện công việc dựa trên các
dữ liệu cho sẵn trong quá trình huấn luyện hoặc định các thông số ban đầu