Tải bản đầy đủ (.doc) (74 trang)

23 12 2015,KHAI PHÁ dư LIÊU HOAN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 74 trang )

1

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Từ viết tắt

Tiếng Anh

Tiếng Việt

DM

Data Mining

Khai phá dữ liệu

IG

Information Gain

Độ lợi thông tin

KDD

Knowledge Discovery in Khai phá tri thức trong cơ sở
Database
dữ liệu

KNN

K-Nearest Neighbors


K hàng xóm gần nhất

NB

Naïve Bayes

Bayes đơn giản

NN

Neural Network

Mạng nơ ron

SVM

Support Vector Machines

Máy học vector hỗ trợ

MỤC LỤC
HÌNH 1.1 – PHÁC THẢO QUÁ TRÌNH KHAI PHÁ DỮ LIỆU.............................................................8
1.2.3. Các phương pháp khai phá dữ liệu..............................................................................12


2

CHƯƠNG 2............................................................................................................................. 15
CÁC GIẢI THUẬT PHÂN LỚP DỮ LIỆU.......................................................................................15
2.1. THUẬT TOÁN K LÁNG GIỀNG GẦN NHẤT


15

2.1.1. Thuật toán k láng giềng cho bài toán phân lớp..........................................................15
BẢNG 2.1 – TẬP DỮ LIỆU MINH HỌA THUẬT TOÁN K LÁNG GIỀNG...........................................17
2.2. THUẬT TOÁN NAÏVE BAYES

21

2.2.1. Giới thiệu chung...........................................................................................................22
2.2.2. Mô tả thuật toán.........................................................................................................22
2.2.3. Ví dụ minh họa.............................................................................................................23
BẢNG 2.4 – BẢNG CƠ SỞ DỮ LIỆU THỜI TIẾT...........................................................................24
2.2.4. Cài đặt thuật toán trên ngôn ngữ R............................................................................25
2.2.5. Kết luận........................................................................................................................26
2.3. THUẬT TOÁN HỌC CÂY QUYẾT ĐỊNH

27

2.3.1. Giới thiệu về cây quyết định........................................................................................27
2.3.2. Thuật toán học cây quyết định....................................................................................28
HÌNH 2.1 - CÂY QUYẾT ĐỊNH CHO THUẬT TOÁN ID3.................................................................31
2.2.3. Cài đặt thuật toán trên ngôn ngữ R............................................................................34
HÌNH 2.2 – CÂY QUYẾT ĐỊNH TẠO RA TỪ THUẬT TOÁN HỌC CÂY QUYẾT ĐỊNH TRONG R...........36
HÌNH 2.3 – CÂY QUYẾT ĐỊNH SỬ DỤNG THUẬT TOÁN C4.5 TRONG R........................................38
CHƯƠNG 3............................................................................................................................. 39
GIẢI THUẬT GOM CỤM VÀ LUẬT KẾT HỢP................................................................................39
3.1. GIẢI THUẬT GOM CỤM KMEAN

40


3.1.1. Bài toán gom nhóm dữ liệu.........................................................................................40
3.1.2. Giải thuật gom cụm kMeans.......................................................................................40
BẢNG 3.1 – BẢNG DỮ LIỆU MINH HỌA THUẬT TOÁN KMEANS.................................................41
3.1.3. Cài đặt thuật toán với ngôn ngữ R..............................................................................44
BẢNG 3.2 – FILE DỮ LIỆU MINH HỌA THUẬT TOÁN KMEANS....................................................44
HÌNH 3.1 – ĐỒ THỊ PHÂN CỤM K-MEANS VỚI TẬP DỮ LIỆU CHO TRƯỚC..................................45
HÌNH 3.2 – HIỂN THỊ TRÊN MA TRẬN SCATTERPLOT 2 CHIỀU KẾT QUẢ GOM CỤM CỦA KMEAN
SỬ DỤNG HÀM CCLUST........................................................................................................................... 47
3.1.4. Kết luận........................................................................................................................47
3.2. GIẢI THUẬT LUẬT KẾT HỢP

48

3.2.1. Luật kết hợp trong khai phá dữ liệu............................................................................48
3.2.2. Giải thuật luật kết hợp Apriori.....................................................................................49
3.2.3. Minh họa thuật toán...................................................................................................50


3

BẢNG 3.3 – BẢNG DỮ LIỆU MINH HỌA GIẢI THUẬT LUẬT KẾT HỢP APRIORI.............................50
3.2.4. Cài đặt thuật toán với ngôn ngữ R..............................................................................52
BẢNG 3.4 - BẢNG DỮ LIỆU ĐẦU VÀO CHO GIẢI THUẬT APRIORI..............................................52
3.4. Kết luận...........................................................................................................................56
PHỤ LỤC 1:............................................................................................................................. 57
GIỚI THIỆU NGÔN NGỮ R....................................................................................................... 57
1.2. GIỚI THIỆU VỀ NGÔN NGỮ R

57


1.2.1. Tổng quan về ngôn ngữ R............................................................................................57
1.2.2. Cài đặt và chạy R.........................................................................................................58
HÌNH 1.2 - GIAO DIỆN LẬP TRÌNH CỦA NGÔN NGỮ R...............................................................59
1.2.3. Một số phép toán và hàm trong R...............................................................................59
BẢNG 1.1 – TÓM TẮT CÁC BIẾN SỐ NGẪU NHIÊN VÀ HÀM PHÂN PHỐI.....................................61
1.2.4. Lập trình với ngôn ngữ R.............................................................................................63
1.2.5. Kết luận........................................................................................................................65
PHỤ LỤC II.............................................................................................................................. 66
GIỚI THIỆU VỀ CÔNG CỤ WEKA............................................................................................... 66
2.1 GIỚI THIỆU TỔNG QUAN VỀ CÔNG CỤ WEKA

66

2.3.2Các bộ phân lớp.............................................................................................................70
TÀI LIỆU THAM KHẢO.............................................................................................................. 73
TÀI LIỆU THAM KHẢO.............................................................................................................. 73


4

LỜI MỞ ĐẦU
Trong những năm gần đây, lượng thông tin được lưu trữ trên các thiết bị điện tử (đĩa
cứng, CD-ROM, băng từ v.v…) không ngừng tăng lên. Sự tích lũy dữ liệu này xảy
ra với một tốc độ bùng nổ. Theo đánh giá của IBM, các phương pháp khai thác
thông tin truyền thống chỉ thu được khoảng 80% thông tin từ CSDL, phần còn lại
bao gồm các thông tin mang tính khái quát, thông tin có quy luật vẫn đang còn tiềm
ẩn bên trong dữ liệu. Lượng thông tin này tuy nhỏ nhưng là thông tin cốt lõi và cần
thiết cho tiến trình ra quyết định. Chính vì vậy khai phá dữ liệu đã và đang được
ứng dụng rộng rãi trong rất nhiều lĩnh vực và hiện nay đã có rất nhiều công cụ

thương mại và phi thương mại triển khai các nhiệm vụ của khai phá dữ liệu.
Hiện nay, khai phá dữ liệu đã và đang được ứng dụng rộng rãi trong rất nhiều lĩnh
vực như tài chính ngân hàng, viễn thông, thương mại, y học, an toàn thông tin,
nghiên cứu khoa học,…
Ngôn ngữ R và Weka gần đây là các công cụ rất hữu ích trong khai phá dữ
liệu. R, Weka là các ngôn ngữ máy tính đa năng nên nó có thể thực hiện được rất
nhiều mục đích khác nhau.
Mục đích của môn học là giúp người đọc có được những hình dung cơ bản về
khai phá dữ liệu là một bước quan trọng trong quá trình khám phá tri thức từ dữ
liệu; tìm hiểu về các giải thuật khai mỏ dữ liệu được sử dụng nhiều trong cộng đồng
khám phá tri thức bao gồm: luật kết hợp, k láng giềng gần nhất, phân lớp Bayes đơn
giản, học bằng cây quyết định, gom cụm kmeans với các bước của thuật toán, các ví
dụ và lời giải và cuối cùng là chạy các thuật toán này. Nội dung chính của khóa học
như sau:
Nội dung đồ án gồm có 3 chương:


5

Chương 1: Trình bày giới thiệu chung về khám phá tri thức và khai phá dữ
liệu, trong đó đề cập đến các khái niệm tri thức, dữ liệu, quá trình khai phá tri thức,
chức năng, các kỹ thuật ứng dụng của khai phá tri thức.
Chương 2: Trình bày phân lớp/dự báo
Chương 3: Trình bày phân cụm, đánh giá các giải thuật khai phá dữ liệu vào
phần mềm Weka.
Chương: Trình bày mạng nơ ron cho phân lớp/dự báo, phân cụm,


6


CHƯƠNG I

TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1

Giới thiệu về khai phá tri thức và khai phá dữ liệu

Để hiểu rõ về khai phá tri thức và khai phá dữ liệu trước tiên tìm hiểu về thông
tin, tri thức, dữ liệu thông qua hình 1.1 sau:

Hình 1.1 Biểu diễn dữ liệu, thông tin, tri thức[2].

1.1.1 Khái niệm khai phá tri thức và khai phá dữ liệu
“Khám phá tri thức là quá trình tìm ra những tri thức, đó là những mẫu tiềm ẩn,
trước đó chưa biết và là thông tin hữu ích đáng tin cậy”. Còn khai phá dữ liệu là một
bước quan trọng trong quá trình khám phá tri thức, sử dụng các thuật toán khai phá dữ
liệu chuyên dùng với một số qui định về hiệu quả tính toán chấp nhận được để chiết
xuất ra các mẫu hoặc các mô hình có ích trong dữ liệu. Nói một cách khác, mục đích
của khám phá tri thức và khai phá dữ liệu là tìm ra các mẫu hoặc mô hình đang tồn tại
trong các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu. Khai phá tri
thức trong cơ sở dữ liệu (KDD: Knowledge Discovery in Database): là một quá trình
của việc xác định giá trị, cái mới lạ, tri thức tiềm ẩn hay tri thức cuối cùng các khuôn
khổ/mô hình trong dữ liệu. Có khá nhiều định nghĩa về khai phá dữ liệu (Data Mining)
như sau:


7
Định nghĩa 1: Khai phá dữ liệu (Data Mining) là một quá trình chắt lọc hay khai phá
tri thức từ một lượng lớn dữ liệu. Thuật ngữ Data Mining ám chỉ việc tìm kiếm một tập
hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô.

Định nghĩa 2: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động
khai thác và tìm ra mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng
lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó.
Định nghĩa 3: Khai phá dữ liệu là quá trình khám phá tri thức mới và các tri thức có
ích ở dạng tiềm năng trong nguồn dữ liệu đã có.
Tóm lại, khai phá dữ liệu là công nghệ tri thức giúp khai thác những thông tin
hữu ích từ những kho dữ liệu được tích trữ trong quá trình hoạt động của một tổ chức
nào đó.
Khai phá dữ liệu gồm 7 bước như sau:
1. Làm sạch dữ liệu (Data Cleaning & Preprocessing): Loại bỏ nhiễu và dữ liệu không
cần thiết.
2. Tích hợp dữ liệu: (Data Integration): quá trình hợp nhất dữ liệu thành những kho dữ
liệu (Data Warehouses & Data Marts) sau khi đã làm sạch và tiền xử lý
3. Trích chọn dữ liệu (Data Selection): trích chọn dữ liệu từ những kho dữ liệu và sau
đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức. Quá trình này bao
gồm cả việc xử lý với dữ liệu nhiễu (Noisy Data), dữ liệu không đầy đủ (Incomplete
Data) v.v…
4. Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho quá
trình xử lý
5. Khai phá dữ liệu (Data Mining): Là một trong các bước quan trọng, trong đó sử
dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu.hữu ích
6. Ước lượng mẫu (Knowledge Evaluation): Quá trình đánh giá các kết quả tìm được
thông qua các độ đo nào đó.
7. Biểu diễn tri thức (Knowledge Presentation): Quá trình sử dụng các kỹ thuật để biểu
diễn và thể hiện trực quan cho người dùng.
Quá trình khai phá dữ liệu có thể được phác thảo qua mô hình sau:


8


Hình 1.1 – Phác thảo quá trình khai phá dữ liệu

1.1.2 Sự cần thiết của khai phá tri thức
Có rất nhiều lý do đề giải thích sự cần thiết của việc khai phá tri thức, khai phá
dữ liệu, điển hình là:
- Có rất nhiều cách tổ chức tập hợp quá nhiều dữ liệu. Con người lưu trữ dữ liệu
bởi vì họ cho rằng một số giá tri hữu ích được mã hóa hoàn toàn trong dữ liệu.
- Trong kinh doanh. Cần thu thập các thông tin về thị trường, về các đối tác, về
khách hàng. Trong sản xuất cần thu thập các dữ liệu về thời điểm hiệu quả và tối ưu
phục vụ cho cải tiến quy trình và giải quyết sự cố. Người sử dụng cuối không phải là
nhà thống kê đơn thuần; họ cần biết tri thức từ CSDL mà họ đang lưu trữ. Sự cần thiết
nhanh chóng ra quyết định và phản ứng trước các đối tác của mình.


9
- Chỉ có một phần nhỏ của dữ liệu (khoảng 5-10% là luôn được phân tích). Dữ
liệu cần tìm kiếm không tồn tại dưới dạng tường minh mà dưới dạng phi cấu trúc,
trong các quy luật tiềm ẩn.
- Sự phát triển mạnh của mạng máy tính đã gia tăng khả năng truy cập dữ liệu.
Sự gia tăng của dữ liệu cản trở các phương pháp phân tích truyền thống SQL. Giá trị
dữ liệu là quá lớn đối với các phương pháp phân tích cổ điển.
Tóm lại, với sự phát triển mạnh mẽ của công nghệ vi xử lý, công nghệ lưu trữ,
công nghệ truyền thống, ứng dụng công nghệ thông tin trong nhiều lĩnh vực; dữ liệu
tăng nhanh, bùng nổ dữ liệu thì KDD và DM thực sự cần thiết để khai phá tri thức tiềm
ẩn trong những kho dữ liệu lớn.

1.2

Quá trình KDD
Quá trình khai phá tri thức được mô tả trong hình 1.2 sau:


Hình 1.2 Hình ảnh biểu diễn quá trình KDD [8]

Quá trình phân tích dữ liệu, khám phá dữ liệu và xây dựng mô hình dữ liệu
thường lặp lại khi bạn tập trung vào và nhận ra các thông tin khác nhau để bạn có thể
trích ra. Quá trình khai phá tri thức bắt đầu bằng việc tìm hiểu lĩnh vực ứng dụng. Tiếp
theo, một mẫu đại diện được lấy từ CSDL, được tiền xử lý và được lựa chọn để sau đó
áp dụng các phương pháp và công cụ của giai đoạn khai phá dữ liệu với mục tiêu là
tìm ra các mẫu/mô hình (tri thức) trong dữ liệu đó. Tri thức này được đánh giá bằng
chất lượng hoặc sự hữu ích của nó, vì vậy nó có thể được sử dụng để hỗ trợ cho hệ trợ
giúp ra quyết định.
- Tiền xử lý dữ liệu: Tiền xử lý dữ liệu dựa vào mục tiêu đề ra của ứng dụng. Từ
các nguồn dữ liệu khác nhau chọn dữ liệu cần thiết cho mục tiêu đề ra như mẫu tin,


10
trường dữ liệu. Biểu diễn dữ liệu, chuyển đổi kiểu sao cho phù hợp với giải thuật DM
sẽ được áp dụng ở bước sau. Làm sạch dữ liệu dùng để khắc phục với trường dữ liệu
rỗng, dư thừa hoặc dữ liệu không hợp lệ nhằm có thể tinh giảm dữ liệu hơn.
- Khai phá dữ liệu: Các kỹ thuật áp dụng trong khai phá dữ liệu như máy học, trí
tuệ nhân tạo, nhận dạng, phân tích thống kê, phương pháp trực quan (hiển thị), xây
dựng mô hình, tạo tri thức về dữ liệu. Kiểm định mô hình nếu chưa đạt thì phải xây
dựng mô hình khác. Bước này rất khó và mất rất nhiều công sức.
- Đánh giá kết quả: Kiểm định dựa vào mục tiêu ban đầu của ứng dụng. Nghĩa là
chỉ có người sử dụng hoặc chuyên gia về lĩnh vực mới có khả năng đánh giá. Kết quả
có đạt được cần dễ hiểu, hiển thị, dịch kết quả. Người sử dụng hoặc chuyên gia có thể
đánh giá và hiểu được kết quả sinh ra.

1.2.1. Chức năng chính của khai phá dữ liệu
Data Mining được chia nhỏ thành một số hướng chính như sau:

• Mô tả khái niệm (Concept Description): thiên về mô tả, tổng hợp và tóm tắt khái
niệm. Ví dụ: tóm tắt văn bản. Mô tả theo các phương pháp mô tả tri thức: mô tả
bằng logic hình thức; mạng ngữ nghĩa hoặc chuyển sang dạng ma trận; mô tả bằng
luật; mô tả bằng mạng Bayes…
• Luật kết hợp (Association Rules): là dạng luật biểu diễn tri thức ở dạng khá đơn
giản. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh,
tài chính & thị trường chứng khoán, .v.v.
• Phân lớp và dự đoán (Classification & Prediction): xếp một đối tượng vào một
trong những lớp đã biết trước. Hướng tiếp cận này thường sử dụng một số kỹ thuật
của machine learning như cây quyết định (Decision Tree), mạng nơ ron nhân tạo
(Neural Network) v.v… Người ta còn gọi phân lớp là học có giám sát (học có
thầy).
• Phân cụm (Clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên
của cụm chưa được biết trước. Người ta còn gọi phân cụm là học không giám sát
(học không thầy).
• Khai phá chuỗi (Sequential/Temporal Patterns): tương tự như khai phá luật kết hợp
nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận này được ứng dụng
nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo.
1.2.2. Các kỹ thuật khai phá dữ liệu
Các kỹ thuật khai phá dữ liệu thực chất không nhiều cái mới. Nó là sự kế thừa,
kết hợp và mở rộng của các kỹ thuật cơ bản đã được nghiên cứu như học máy, nhận
dạng, thống kê (hồi quy, phân loại, phân nhóm), mô hình đồ thị, mạng Bayes, tri thức
hệ chuyên gia…Tuy nhiên, với sự kết hợp của khai phá dữ liệu, kỹ thuật này có ưu thế


11
hơn các phương pháp trước, đem lại triển vọng trong nghiên cứu, áp dụng vào thực
tiễn. Nó có thể chia thành 2 nhóm chính:
- Kỹ thuật khai phá dữ liệu mô tả (Descriptive): mô tả các tính chất hoặc các đặc
trưng chung của dữ liệu trong CSDL hiện có. Nhóm kỹ thuật này gồm các phương

pháp: phân nhóm (Clustering), tổng hợp hóa (Summerization), phát hiện sự biến đổi và
độ lệch (Change and deviation detection), phân tích luật kết hợp (Association rules)…
- Kỹ thuật khai phá dữ liệu dự đoán (Predictive): đư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. Nhóm kỹ thuật này gồm các phương pháp: phân lớp
(Classification), hồi quy (Regression), phát hiện độ lệch (Deviation Detection).
Để có một mô hình dự đoán, phải trải qua 2 giai đoạn (phase).
a) Thứ nhất: xây dựng mô hình (Training phase)

Hình 1.3 Xây dựng mô hình

b) Thứ hai: kiểm định mô hình (Testing phase)

Hình 1.4 Kiểm định mô hình

Các giải thuật được áp dụng thành công trong khai phá dữ liệu được có thể tóm
tắt trên hình 1.5:


12

Hình 1.5 Mức độ sử dụng hiệu quả của các giải thuật trong DM [8]

1.2.3. Các phương pháp khai phá dữ liệu
a. Phân loại (Classification): cho phép phân loại các sự việc, đối tượng vào một hoặc
một số lớp theo tiêu chí xác định.
b. Hồi quy (Regression): xây dựng mô hình phân loại dựa trên tập dữ liệu học có nhãn
(lớp) là giá trị liên tục.
c. Phân nhóm (Clustering): xây dựng mô hình gom cụm tập dữ liệu học (không có
nhãn) sao cho các dữ liệu cùng nhóm có các tính chất tương tự nhau và dữ liệu của 2
nhóm khác nhau có các tính chất khác nhau.

d. Tổng hợp (Summarization): là công việc liên quan đến các phương pháp tìm kiếm
một mô tả cô đọng cho tập con dữ liệu. Các kỹ thuật tổng hợp thường được á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
e. Mô hình ràng buộc (Dependency Modeling): tìm kiếm một mô hình cục bộ để mô tả
sự phụ thuộc đáng kể giữa các biến hay giữa các giá trị của một đặc tính trong một tập
dữ liệu hoặc một phần của một tập dữ liệu.
f. Dò tìm biến đổi và độ lệch (Change and Deviation Dectection): khai thác sự thay đổi
đáng kể trong tập dữ liệu. Là việc tập trung vào khám phá những thay đổi có ý nghĩa


13
trong dữ liệu dựa vào các giá trị chuẩn hay độ đo đã biết trước, phát hiện độ lệch đáng
kể giữa nội dung của tập con dữ liệu và nội dung mong đợi.

1.3 Những thách thức trong khai phá dữ liệu
 Mức độ nhiễu trong dữ liệu của khai phá dữ liệu cao. Tiêu chuẩn mạnh của giải
thuật đối với nhiễu trở nên quan trọng trong khi các tiêu chuẩn khác có thể giảm bớt.
 Kích thước lớn của các tập dữ liệu cần xử lý. Các tập dữ liệu trong khai phá dữ
liệu thường có kích thước lớn. Trong thực tế, kích thước dữ liệu trong khai phá dữ liệu
thường ở mức tera-byte. Với kích thước như thế, thời gian xử lý thường dài. Thêm vào
đó, các giải thuật học truyền thống thường yêu cầu tập dữ liệu được tải toàn bộ vào bộ
nhớ để xử lý. Mặc dù kích thước bộ nhớ trong của máy tính đã tăng nhưng không đáp
ứng kịp với việc tăng kích thước dữ liệu. Vì vậy, việc vận dụng các kỹ thuật xác suất,
lấy mẫu, đệm, song song … vào các giải thuật để tạo các phiên bản phù hợp với yêu
cầu của khai phá dữ liệu trở nên quan trọng.
 Các kỹ thuật trong khai phá dữ liệu là hướng tác vụ và hướng dữ liệu. Thay vì
tập trung vào xử lý tri thức dạng kí hiệu và khái niệm như máy học; mọi phát triển
trong khai phá dữ liệu kết chặt vào các ứng dụng thực tế và đặc tính dữ liệu cụ thể
trong các ứng dụng đó. Ví dụ, luật kết hợp là kỹ thuật khai phá dữ liệu nhằm tìm kiếm
những mối liên kết giữa các món hàng trong các hóa đơn. Giải thuật học trong kỹ thuật

này được phát triển dựa trên đặc tính về dữ liệu rất đặc thù là ở dạng nhị phân.

1.4

Ứng dụng của khai phá dữ liệu
Hiện nay, khai phá dữ liệu đang được ứng dụng rộng rãi trong như sau:

a. Phân tích dữ liệu tài chính (Financial Data Analysis) với các bài toán cụ thể như:
• Dự đoán khả năng vay và thanh toán của khách hàng, phân tích chính sách
tín dụng đối với khách hàng
• Phân tích hành vi khách hàng (vay, gửi tiền)
• Phân loại và phân nhóm khách hàng mục tiêu cho tiếp thị tài chính
• Phát hiện các hoạt động rửa tiền và tội phạm tài chính khác
b. Công nghiệp bán lẻ (Retail Industry)
Một số ứng dụng trong ngành công nghiệp bán lẻ đó là:
• Khai phá dữ liệu trên kho dữ liệu khách hàng
• Phân tích đa chiều trên kho dữ liệu khách hàng về doanh số bán hàng,
khách hàng, sản phẩm, thời gian và khu vực.
• Phân tích hiệu quả của các chiến dịch bán hàng, Marketing.
• Quản trị mối quan hệ khách hàng (CRM).
• Giới thiệu và tư vấn sản phẩm phù hợp cho khách hàng


14
Khai phá dữ liệu đóng vai trò rất quan trọng trong ngành công nghiệp bán lẻ, do
dữ liệu thu thập từ lĩnh vực này rất lớn từ doanh số bán hàng, lịch sử mua hàng của
khách hàng, vận chuyển hàng hóa, tiêu thụ và dịch vụ. Điều tự nhiên là khối lượng dữ
liệu từ ngành công nghiệp này sẽ tiếp tục tăng nhanh và dễ dàng thu thập bởi tính sẵn
có trên môi trường Web. Ứng dụng khai phá dữ liệu trong công nghiệp bán
lẻ nhằm xây dựng mô hình, giúp xác định xu hướng mua hàng của khách, giúp doanh

nghiệp cải thiện chất lượng sản phẩm dịch vụ nhằm nâng cao sự hài lòng của khách
hàng tốt.
c. Ngành công nghiệp viễn thông (Telecommunication Industry)
Khai phá dữ liệu trong ngành viễn thông giúp xác định các mô hình, các hoạt
động gian lận , sử dụng tốt nguồn tài nguyên và cải thiện chất lượng dịch vụ viễn
thông.
Một số ứng dụng chính trong ngành này là:






Phân tích dữ liệu đa chiều viễn thông.
Xây dựng các mô hình phát hiện gian lận.
Phát hiện bất thường trong giao dịch viễn thông.
Phân tích hành vi sử dụng dịch vụ viễn thông của khách hàng
Sử dụng các công cụ trực quan trong phân tích dữ liệu viễn thông

d. Phân tích dữ liệu sinh học (Biological Data Analysis)
Ngành này có một số ứng dụng như:
• Lập chỉ mục, tìm kiếm tương tự, bất thường trong cơ sở dữ liệu Gen.
• Xây dựng mô hình khai phá, các mạng di truyền và cấu trúc của
Gen, protein
• Xây dựng các công cụ trực quan trong phân tích dữ liệu di truyền.
e. Phát hiện xâm nhập bất hợp pháp (Intrusion Detection)
Xâm nhập bất hợp pháp là những hành động đe dọa tính toàn vẹn, bảo mật và
tính sẵn sàng của tài nguyên mạng. Trong thế giới của kết nối, bảo mật trở thành vấn
đề lớn đối với tồn tại của hệ thống. Với sự phát triển của internet, sự sẵn có của các
công cụ, thủ thuật trợ giúp cho xâm nhập và tấn công mạng; yêu cầu kiểm soát truy

cập bất hợp pháp là yếu tố đảm bảo ổn định của hệ thống.
Một số ứng dụng để phát hiện xâm nhập:
• Phát triển các thuật toán khai phá dữ liệu để phát hiện xâm nhập.
• Phân tích kết hợp, tương quan và khác biệt để phát hiện xâm nhập
• Phân tích dòng dữ liệu (Analysis of Stream data) để phát hiện bất thường.

1.5

Kết luận và hướng phát triển


15
KDD và DM là việc khai thác, tìm kiếm tri thức ẩn trong khối lượng lớn dữ
liệu, áp dụng trong nhiều lĩnh vực khác nhau. KDD là quá trình tiền xử lý, khai thác dữ
liệu và đánh giá kết quả. DM là cốt lõi của quá trình KDD. KDD và DM cần giải quyết
mục tiêu đặt ra của ứng dụng, khả năng làm việc tốt đối với dữ liệu lớn; đáp ứng
những rằng buộc về thời gian, thiết bị, chất lượng, kết quả; hiểu được. Mặt khác, khó
có kỹ thuật nào tốt nhất cho tất cả các trường hợp.
Hướng phát triển: tương lai KDD và DM cần xử lý nguồn dữ liệu đa phương
tiện, hỗn hợp như văn bản, hình ảnh, âm thanh, ký tự. Có thể tạo thuật toán mới hoặc
cải tiến thuật toán hiện có; tích hợp kiến thức chuyên gia, diễn dịch kết quả, mở rộng
sang các lĩnh vực khác như sinh học, kinh tế, y học, quốc phòng, thiên văn…
Trong chương này đã tìm hiểu về khai phá tri thức và khai phá dữ liệu. Để triển
khai các giải thuật của khai phá dữ liệu có thể sử dụng các phần mềm R, Weka, Matlab
(xem các phụ lục)

CHƯƠNG 2
CÁC GIẢI THUẬT PHÂN LỚP DỮ LIỆU
2.1. Thuật toán k láng giềng gần nhất
2.1.1. Thuật toán k láng giềng cho bài toán phân lớp

a. Mục đích của thuật toán
k-Nearest Neighbors algorithm (k-NN) là thuật toán được sử dụng rất phổ biến
trong lĩnh vực khai phá dữ liệu. k-NN là phương pháp để phân lớp đối tượng dựa vào
khoảng cách gần nhất giữa các đối tượng cần xếp lớp và tất cả các đối tượng trong dữ
liệu huấn luyện.
b. Phương pháp tính khoảng cách
Để xác định khoảng cách, xem xét một số phương pháp sau. Khoảng cách
được tính theo từng kiểu của dữ liệu: số, nhị phân, loại.


Với dữ liệu là kiểu số:


16
- Khoảng cách Minkowski

(2.1)
i = (xi1, xi2, …, xip) và j = (xj1, xj2, …, xjp) là 2 phần tử dữ liệu, q là số nguyên dương.
-

Khoảng cách Manhattan (từ (2.1) Nếu q = 1, d là khoảng cách Manhattan ):

(2.2)
-

Khoảng cách Euclidean (từ (2.1) Nếu q = 2, d là khoảng cách Euclid.:

(2.3)
Trình tự các bước trong thuật toán k-NN.:
1. Xác định k láng giềng gần nhất

2. Tính khoảng cách giữa các đối tượng cần phân lớp với tất cả các đối tượng
trong dữ liệu huấn luyện (thường sử dụng khoảng cách Euclid)
3. Sắp xếp khoảng cách theo thứ tự tăng dần và xác định k láng giềng gần nhất với
đối tượng cần phân lớp
4. Lấy tất cả các lớp của k láng giềng gần nhất đã xác định
5. Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho các đối
tượng cần phân lớp
c. Bài toán
Giả sử, thuộc tính X1: huyết áp, thuộc tính X2: nồng độ Cholesterol trong máu và Y thể hiện
tình trạng bệnh tim của bệnh nhân. Y có hai giá trị là + (có bệnh tim) và - (không có bệnh).
Ta có dữ liệu về 20 bệnh nhân khám có kết quả như bảng sau (Training data: dữ liệu chỉ mang
tính minh họa cho thuật toán K-NN)
Bây giờ, có một bệnh nhân đến khám bệnh (chưa biết có bị bệnh tim hay không), sau khi đo
huyết áp và nồng độ Cholesterol có giá trị lần lượt là X1= 7 và X2= 5. Sử dụng thuật toán KNN để dự đoán (phân lớp) bệnh nhân này có mắc bệnh tim hay không (hay là thuộc lớp người
đau tìm không).
2.1.2. Dùng thuật toán K-NN giải với MS Excel
Trong ví dụ trên, chọn tham số k =5 có nghĩa là lấy 5 bệnh nhân có huyết áp và nồng độ
Cholesterol gần giống nhất (láng giềng gần nhất) với bệnh cần chuẩn đoán và ta thấy rằng
trong 5 bệnh nhân gần nhất đó có 3 người không mắc bệnh tim (giá trị Y là -) và 2 người mắc


17
bệnh tim (giá trị Y là +). Vì vậy theo K-NN ta xếp bệnh nhân cần chuẩn đoán bệnh vào lớp –
(không bị bệnh tim)
Giải thích công thức trong Excel:
Công thức tính khoảng cách (Euclidean) tại ô G2 là:
=SQRT((C2-$C$22)^2+(D2-$D$22)^2)
Xác định số lượng láng giềng gần nhất (ô H23): K= 5
Chọn ra K láng giềng gần nhất của Query point (công thức tại ô H2) là:
=IF(G2<=SMALL($G$2:$G$21,$H$23),E2,"")

Dự đoán lớp của Query Point (ô H24). Trong ví dụ này lớp của Query point (7,5) được xác
định là – vì trong 5 láng giềng gần nhất với nó có 3 láng giềng thuộc lớp – (nhiều hơn số láng
giềng thuộc lớp +)
=IF(COUNTIF(H2:H21,"+")>COUNTIF(H2:H21,"-"),"+","-")
Chú ý: có thể thay đổi dữ liệu về số láng giềng K ở ô H23 cũng như thay đổi training data
hay điểm tìm kiếm: Query Point): (x1, x2 )=($c$22, $d$22)=(7, 5) để kiểm tra kết quả của
thuật toán K-NN

Trường hợp ứng dụng K-NN:

Giả sử ta có tập dữ liệu như bảng 2.1:
Bảng 2.1 – Tập dữ liệu minh họa thuật toán k láng giềng
STT
1
2
3

X1
2
6
7

X2
3
4
4

Y
+
+


D (Euclid)
4
5
5.83

STT
11
12
13

X1
8
5
7

X2
4
3
6

Y D (Euclid)
- 6.70
+ 5
+ 5.09


18
4
5

6
7
8
9
10

4
9
6
5
3
4
2

1
5
6
9
4
6
9

+
+
+
+
-

6.32
7.28

4.12
3.60
3.16
2.23
2

14
15
16
17
18
19
20
21

5
10
7
8
6
7
6
2

10
7
4
5
6
4

8
7

+
+
+
?

4.24
8
5.83
6.32
4.12
5.83
4.12

Để hiểu K-NN được dùng để phân lớp thế nào ta xem minh họa dưới đây.
Trong hình dưới đây, training Data được mô tả bởi dấu (+) và dấu (-), đối tượng
cần được xác định lớp cho nó (Query point) là hình tròn đỏ. Nhiệm vụ của chúng ta là
ước lượng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn số láng giềng gần
nhất với nó. Nói cách khác chúng ta muốn biết liệu Query Point sẽ được phân vào lớp
(+) hay lớp (-)

Hình 2.1. Mô tả Training Data trong KNN

2.1.3. Cài đặt với ngôn ngữ R cho ví dụ minh họa trong bảng 2.1

Kết quả với k=3: mẫu cần phân lớp có nhãn là (-)



19

Kết quả với k=5: mẫu cần phân lớp có nhãn là (+)

Kết quả trên cho thấy nhãn của mẫu cần phân lớp phụ thuộc rất nhiều vào k.

2.1.4. Cài đặt thuật toán với ngôn ngữ R cùng bộ dữ liệu Iris
a. Giới thiệu về bộ dữ liệu Iris
Trong các phần tiếp theo, đồ án sẽ sử dụng tập dữ liệu về hoa Iris trong các ví dụ
minh họa về các phương pháp khai mỏ dữ liệu với ngôn ngữ R. Tập dữ liệu Iris [14] là
tập dữ liệu được sử dụng bới nhà khoa học thống kê R.A. Fisher từ năm 1936 để minh
họa cho các ví dụ của các phương pháp do ông đề xuất.
Tập dữ liệu hoa Iris có tổng số 150 phần tử với 4 thuộc tính được đo bằng đơn vị
centimet (cm) đó là: chiều dài lá đài (Sepal.Length), chiều rộng của lá đài
(Sepal.Width), chiều dài cánh hoa (Petal.Length), chiều rộng cánh hoa (Petal.Width)
để phân biệt 3 loại hoa là setosa (50 phần tử mẫu), versicolor (50 phần tử mẫu),
virginica (50 phần tử mẫu). Thuộc tính Sepal.Length có độ dài nằm trong khoảng [4.3,
7.9], thuộc tính Sepal.Width có độ dài nằm trong khoảng [2, 4.4], thuộc tính
Petal.Length có độ dài trong khoảng [1, 6.9], thuộc tính Petal.Width có độ dài nằm
trong khoảng từ [0.1, 2.5]
Tập dữ liệu Iris được lựa chọn để sử dụng vì nó ngắn, khá đơn giản để có thể
minh họa cũng như kiểm chứng các kết quả của giải thuật.
b. Cài đặt giải thuật k-NN với tập dữ liệu iris
Giải thuật k láng giềng được cài đặt trong gói thư viện class của ngôn ngữ lập
trình R. Để thực hiện giải thuật k láng giềng, trong R có hàm knn() như sau:
knn (train, test, cl, k=1,…)
Trong đó: train là tập dữ liệu học (ma trận, khung dữ liệu) không chứa nhãn (lớp)
cl là nhãn của tập dữ liệu học
test là tập dữ liệu kiểm tra



20
k là số láng giềng.

Bảng 2.3 – Tập dữ liệu hoa Iris

Các tham số còn lại có thể dùng đến. Chương trình được viết như sau:

Kết quả dự đoán như sau:


21

Tính độ chính xác:

2.1.5. Kết luận
Ưu điểm:
- Đơn giản, dễ hiểu, dễ cài đặt
- Có thể làm việc trên nhiều loại dữ liệu khác nhau
- Giải quyết các vấn đề về phân loại, hồi quy, gom nhóm…
- Cho kết quả tốt
- Được ứng dụng thành công trong hầu hết các lĩnh vực tìm kiếm thông tin,
nhận dạng, phân tích dữ liệu…
Nhược điểm:
-

Khi phân loại mát nhiều thời gian do quá trình tìm kiếm k dữ liệu lân cận
sau đó phân loại bằng cách hồi quy dựa trên giá trị trung bình

-


Kết quả phụ thuộc vào việc chọn khoảng cách sử dụng

-

Cho kết quả tốt tuy nhiên độ phức tạp của quá trình phân loại là khá lớn

Thuật toán k-NN sử dụng toàn bộ thuộc tính của ví dụ để tính khoảng cách bất
kể thuộc tính đó có liên quan đến nhãn phân loại của ví dụ hay không. Nếu dữ liệu bao
gồm cả những thuộc tính không liên quan đến nhãn phân loại thì những thuộc tính này
sẽ ảnh hưởng tới khoảng cách. Bởi vì nếu dữ liệu gồm có 100 thuộc tính nhưng chỉ có
2 thuộc tính có ảnh hưởng đến nhãn phân loại. khi đó những ví dụ có 2 thuộc tính này
giống nhau nhưng vẫn có thể nằm rất xa nhau trong không gian. Vì vậy số lượng thuộc
tính lớn và không liên quan sẽ ảnh hưởng rất lớn đối với độ chính xác của k-NN.
Từ đó ta có thể khắc phục theo 2 hướng như sau:
-

Đánh trọng số cho thuộc tính sao cho trọng số ít liên quan có trọng số nhỏ và ngược
lại

-

Lựa chọn thuộc tính hay còn gọi là trích chọn đặc trưng nghĩa là chỉ những thuộc
tính liên quan được giữ lại còn những thuộc tính không liên quan bị bỏ đi

2.2. Thuật toán Naïve Bayes


22


2.2.1. Giới thiệu chung
a. Ý tưởng của thuật toán
Thuật toán phân lớp Naïve Bayes dựa trên việc xử lý số liệu thống kê với một
phân lớp xác suất dựa trên các ứng dụng định lý Bayes với giả định độc lập bền vững.
b. Mục đích của thuật toán
Phân loại Bayes đơn giản sử dụng trong trường hợp mỗi ví dụ được cho bằng
tập các thuộc tính <x1, x2,…,xn> và cần xác định nhãn phân loại y, y có thể nhận giá trị
từ một tập nhãn hữu hạn C.

2.2.2. Mô tả thuật toán
Trong giai đoạn huấn luyện, dữ liệu huấn luyện được cung cấp dưới dạng các
mẫu <xi, yi>. Sau khi huấn luyện xong, bộ phân loại cần dự đoán nhãn cho mẫu mới x.
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:

Hoặc dạng công thức như sau:

Áp dụng trong bài toán phân loại, các dữ kiện gồm có:
 D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng

 Ci: phân lớp i, với i = {1, 2,…,m}.
 Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes:

Theo tính chất độc lập điều kiện:

Trong đó:


23
là xác suất thuộc phân lớp i khi biết trước mẫu X.




xác suất là phân lớp i.



xác suất thuộc tính thứ k mang giá trị x k khi đã biết X thuộc phân lớp


i.

Hay ta có thể viết:

Tức là xác suất đồng thời quan sát thấy các thuộc tính bằng tích xác suất điều kiện của
từng đặc tính riêng lẻ.
Các bước thực hiện thuật toán Naïve Bayes:
Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính
Bước 2: Phân lớp



, ta cần tính xác suất thuộc từng phân lớp khi

đã biết trước Xnew. Xnew được gán vào lớp có xác suất lớn nhất theo công thức

Trong đó P(xk|ci) được tính từ dữ liệu huấn luyện bằng số lần
với

chia cho số lần


xuất hiện cùng

xuất hiện. Việc tính xác suất này đòi hỏi ít dữ liệu hơn nhiều

so với tính P(x1, x2,.., xk|ci).
Quá trình học Bayes đơn giản là quá trình tính các xác suất P(c i) và các xác xuất
điều kiện P(xk|ci) bằng cách đếm trên tập dữ liệu.

2.2.3. Ví dụ minh họa
a. Bài toán
Ta lấy ví dụ đối với bài toán phân chia ngày phù hợp hay không phù hợp cho
việc chơi tennis theo điều kiện thời tiết như bảng 2.4:


24

Bảng 2.4 – Bảng cơ sở dữ liệu thời tiết
Ngày
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11

D12
D13
D14

Trời
Nắng
Nắng
U ám
Mưa
Mưa
Mưa
U ám
Nắng
Nắng
Mưa
Nắng
U ám
U ám
Mưa

Nhiệt độ
Cao
Cao
Cao
Trung bình
Thấp
Thấp
Thấp
Trung bình
Thấp

Trung bình
Trung bình
Trung bình
Cao
Trung bình

Độ ẩm
Cao
Cao
Cao
Cao
Bình thường
Bình thường
Bình thường
Cao
Bình thường
Bình thường
Bình thường
Cao
Bình thường
Cao

Gió
Yếu
Mạnh
Yếu
Yếu
Yếu
Mạnh
Mạnh

Yếu
Yếu
Yếu
Mạnh
Mạnh
Yếu
Mạnh

Chơi tennis
Không
Không



Không

Không





Không

Giả sử ta xác định nhãn phân loại cho ví dụ:
< Trời = mưa, nhiệt độ= trung bình, độ ẩm= bình thường, gió = mạnh >
b. Lời giải
Ta sẽ tính các xác suất và thay vào công thức sau:

Do Ci nhận 2 giá trị “có” và “không” nên P (có) và P (không) được tính bằng tần

suất “có” và “không” trên dữ liệu huấn luyện.
P (có) = 9/14
P (không) = 5/14
Các xác suất điều kiện cũng được tính từ dữ liệu huấn luyện:
P (Trời = mưa|có) = 3/9
P (Trời = mưa|không) = 2/5
P (Nhiệt độ = Trung bình|có) = 4/9
P (Nhiệt độ = Trung bình|không) = 2/5
P (Độ ẩm = bình thường|có) = 6/9
P (Độ ẩm = bình thường|không) = 1/5
P (Gió = mạnh|có) = 3/9
P (Gió = mạnh|không) = 3/5
Thay các xác suất thành phần vào công thức Bayes đơn giản ta có:


25
P (có) P (mưa|có) P (trung bình|có) P (bình thường|có) P (mạnh|có) = 0.021
P (không) P (mưa|không) P (trung bình|không) P (bình thường|không) P (mạnh|không)
= 0.0069
Như vậy, theo phân loại Bayes đơn giản, ví dụ đang xét sẽ được phân loại là
“có”.
Tuy nhiên xác xuất thực của nhãn “có” là: 0.021/ (0.021+0.0069) = 0.75
Xác suất thực của nhãn “không” là: 0.0069/ (0.021+0.0069) = 0.25

2.2.4. Cài đặt thuật toán trên ngôn ngữ R
Để thực hiện giải thuật Bayes đơn giản, trong R có hỗ trợ hàm naiveBayes()
trong gói thư viện e1071 như sau:
naiveBayes (x, y, laplace =0,…)
Trong đó:
x là tập dữ liệu học (ma trận, khung dữ liệu) không chứa nhãn (lớp)

y là nhãn của tập dữ liệu học
laplace là ước lượng Laplace
Các tham số còn lại có thể dùng đến
Ngoài ra ta cần sử dụng thêm hàm predict() cũng nằm trong gói thư viện e1071
như sau:
predict(object, new data,…)
Trong đó:
object: mô hình học Bayes đơn giản dùng để dự đoán nhãn
new data: tập dữ liệu kiểm tra (dự đoán nhãn)
Các tham số còn lại có thể dùng đến
a. Sử dụng bộ dữ liệu Iris


×