Tải bản đầy đủ (.docx) (90 trang)

Bao cao le minh dung bui cong son

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 (2.29 MB, 90 trang )

LỜI NĨI ĐẦU
Cơng nghệ thơng tin đã phát triển vượt bậc, tin học đã và đang phát triển ở
hầu hết mọi ngành, mọi lĩnh vực trong đời sống. Các công ty, doanh nghiệp, trường
học,… cũng đã mạnh dạn ứng dụng tin học hóa nhằm nâng cao hiệu quả trong cơng
việc quản lý, kinh doanh,…. Máy tính đã giúp con người rất nhiều từ tối ưu hóa
cơng việc, giảm thời gian làm việc, tăng hiệu suất và mang lại hiệu quả cao.
Ngày nay, quảng cáo, giới thiệu sản phẩm qua internet là xu thế của xã hội.
Internet đã gần như là thiết yếu của cuộc sống chúng ta, hầu hết ai ai cũng biết vào
mạng để mua xắm, đọc báo, giải trí, xem tin tức …Các cửa hàng, cơng ty, doanh
nghiệp… muốn quảng bá sản phẩm của mình đều phải có website để tất cả mọi
người có thể xem thơng tin sản phẩm.
Các website quảng cáo, giới thiệu, mua bán sản phẩm cơ sở dữ liệu thường
nhiều, khơng có chọn lọc. Người dùng đa dạng, mỗi người dùng lại có nhu cầu mua
sắm một số loại hàng, sản phẩm khác nhau. Hầu hết các website đều giới thiệu sản
phẩm cho người một cách tràn lan, khơng hiệu quả.
Xuất phát từ tình hình thực tế đó và vận dụng kiến thức đã học tập ở trường
vào quá trình thực tập để đi sâu vào “Xây dựng trang web bán hàng sử dụng
Khai phá dữ liệu” cho cửa hàng Cánh Cụt Shop.
Chúng em chân thành cảm ơn Thầy Trần Thanh Hùng đã dạy bảo, hướng dẫn
chúng em nhiều kiến thức quý giá, cũng như hướng dẫn nhiệt tình để chúng em có
thể nâng cao chất lượng bài thực tập tốt nghiệp này. Tuy đã cố gắng hết sức song
không thể tránh khỏi những sai sót nhỏ khi làm bài. Mong Thầy bỏ qua và góp ý
thêm cho chúng em.
Em xin chân thành cảm ơn!

1


TÓM TẮT ĐỀ TÀI
Mục đích: Thiết kế Website bán hàng sử dụng thuật tốn khai phá dữ liệu, với
những tính năng độc đáo và thân thiện với người sử dụng như tích hợp quảng cáo


sản phẩm cùng loại, có xu hướng mua cùng
Mục tiêu:
1. Tìm hiểu cơng nghệ lập trình ASP.NET
2. Tìm hiểu thuật tốn phân cụm dữ liệu KMeans, khái niệm phân cụm dữ liệu, tư tưởng
thuật toán, cách cài đặt và đưa vào ứng dụng thực tế.
3. Tìm hiểu thuật tốn khai phá luật kết hợp Apriori, tìm ra các mối quan hệ giữa các đối
tượng trong khối lượng lớn dữ liệu
4. Cải tiến thuật tốn tìm kiếm sản phẩm nhanh Text Mining và AutoComplate

Kết luận:
Đồ án đã giải quyết được các vấn đề lớn sau:
1. Tìm hiểu và xây dựng được một ứng dụng thực thế bằng cơng nghệ lập trình ASP.NET
2. Cài đặt thành cơng thuật toán phân cụm dữ liệu Kmeans và khai phá luật kết hợp
Apriori vào ứng dụng web.
3. Cải thiện thuật toán tìm kiếm để mang lại sự hài lòng cho người dùng.

Purpose: Website Design sales using data mining algorithms , with unique features
and user -friendly as integrated advertising similar products , tend to buy the same
Objective :
1. Learn ASP.NET programming technology
2. Find out data clustering algorithms KMeans , the concept of data clustering ,
algorithms thought , how to install and put into practical application .
3. Understanding mining algorithms Apriori association rules, to find out the relationship
between objects in large volumes which data
4. Improved search algorithm fast Text Mining products and AutoComplate

Conclusion:
1. Do police have resolved the major issues the following :
2. Explore and build an application entity ice ASP.NET programming technology
3. Successful installation data clustering algorithm Kmeans and Apriori association rule

mining on web applications .
4. Improved search algorithm to bring satisfaction to users .

2


MỤC LỤC

3


DANH SÁCH HÌNH VẼ

4


DANH SÁCH CÁC BẢNG BIỂU
ơ

Bảng 3 - 1: Dữ liệu ví dụ
Bảng 3 - 2: Dữ liệu thuật tốn lấy ra
Bảng 3 - 3: Thuật toán đưa ra dữ liệu

5


DANH SÁCH CÁC TỪ VIẾT TẮT
Từ viết tắt
CSDL
K-Mean

QL
DL
SP
KPDL

Ý nghĩa
Cơ sở dữ liệu
Số lượng cụm
Quản lý
Dữ liệu
Sản phẩm
Khai phá dữ liệu

6


PHẦN 1 – MỞ ĐẦU
1 – Tên đề tài
Xây dựng trang web bán hàng sử dụng Khai phá dữ liệu

2 – Lý do chọn đề tài
Với sự phát triển như vũ bảo của cơng nghệ thơng tin nói chung và kinh
doanh mạng nói riêng, việc phát triển này mang đến cho chúng ta những lợi ích như
sự nhanh chóng, tiện lợi. Công nghệ thông tin len lõi vào khắp mọi nơi, trong hầu
hết tất cả các lĩnh vực trong cuộc sông của chúng ta. Trước kia những thông tin về
cuộc sống quanh ta đều phải qua truyền miệng, việc kinh doanh nhất định phải có
cửa hàng và chỉ quanh một vùng nhất định… Ngày nay thì khác, cơng nghệ thơng
tin phát triển, báo mạng đầy dãy một thông tin cách chúng ta cả nửa vòng trái đất,
khi đăng lên mạng thì gần như tồn thế giới đều biết. Các cửa hàng thì khơng phải
mất cơng quảng bá sản phẩm bằng miệng, chỉ cần tạo một website trên internet thì

hầu hết bất cứ ai, ở bất cứ đâu có internet đều có thể xem hàng và trực tiếp đặt hàng
sản phẩm. Từ khi có internet thì khoảng cách của chúng ta gần hơn. Một người có
thể gọi điện, nói chuyện với nhau, thậm chí có thể nhìn mặt nhau cách nhau cả nửa
vòng trái đất.
Những năm gần đầy công nghệ thông tin đã và đang đạt được những bước
phát triển tích cực, cùng với sự phát triển mạnh mẽ của cơ sở hạ tầng đặc biệt là hệ
thống mạng Internet. Những ứng dụng Web phổ biến nhờ vào sự có mặt bất cứ nơi
đâu của một chương trình. Khả năng cập nhật và bảo trì ứng dụng Web mà khơng
phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự
phổ biến của nó. Chính nhờ vào sự phổ biến trên mà các ứng dụng Web giờ đây
không chỉ là những ứng dụng đơn giản nữa, mà việc xây dựng các ứng dụng Web đã
trở nên phức tạp hơn rất nhiều. Các ứng dụng Web được dùng để thực hiện bán
hàng trực tuyến, đấu giá trực tuyến, quản trị quan hệ khách hàng,...
Các website hằng ngày đều ít nhiều thực hiện các thao tác như thêm, sửa,
xóa. Dữ liệu của nó càng ngày càng lớn dường như rất khó chọn lọc, khó đốn biết
được khuynh hướng chọn mua của từng người. Vì vậy chúng ta sử dụng các thuật
toán khai phá dữ liệu để phân loại người mua để quảng cáo cho họ những sản phẩm
mà họ có xu hướng mua

3 – Mục tiêu đề tài
-

-

Xây dựng website bán hàng trực tuyến
o Xây dựng trang chủ đẹp
o Xây dựng trang admin đầy đủ chức năng, dễ thao tác
Tìm hiểu về khai phá dữ liệu
Tìm hiểu các thuật toán khai phá dữ liệu
Cài đặt các thuật toán

Ứng dụng bài toán vào website

7


4 – Nội dung đề tài
Chương 1: Cơ sử lý thuyết
Tìm hiểu tổng quan về khai phá dữ liệu và một số thuật toán khai phá dữ liệu
Chương 2: Website bán hàng
Thiết kế, xây dựng website bán hàng
Chương 3: Khai phá dữ liệu áp dụng Website bán hàng
Cài đặt các thuật toán khai phá dữ liệu
Chương 4: Thiết kế giao diện và cài đặt chương trình
Thiết kế, cài đặt chương trình

8


PHẦN 2 – NỘI DUNG
CHƯƠNG 1 - CƠ SỞ LÝ THUYẾT
1.1 – Khai phá dữ liệu
1.1.1 - Tại sao lại cần khai phá dữ liệu (Data mining)?
Khoảng hơn một thập kỷ trở lại đâ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ổ. Người ta ước đốn rằng lượng thơng
tin trên tồn cầu tăng gấp đơi sau khoảng hai năm và theo đó số lượng cũng như
kích cỡ của các cơ sở dữ liệu (CSDL) cũng tăng lên một cách nhanh chóng. Nói một
cách hình ảnh là chúng ta đang “ngập” trong dữ liệu nhưng lại “đói” tri thức. Câu
hỏi đặt ra là liệu chúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng
chừng như“bỏ đi” ấy không ?

“Necessity is the mother of invention”- Data Mining ra đời như một hướng
giải quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên. Khá nhiều định nghĩa về Data
Mining và sẽ được đề cập ởphần sau, tuy nhiên có thể tạm hiểu rằng Data Mining
như là một 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 suốt q trình hoạt động của một cơng ty, tổ chức nào đó.
1.1.2 - Khai phá dữ liệu là gì?
Khai phá dữ liệu (datamining) được định nghĩa như 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. Một ví dụ hay được sử dụng là là
việc khai thác vàng từ đá và cát, Dataming được ví như cơng việc “Đãi cát tìm
vàng” trong một tập hợp lớn các dữ liệu cho trước. Thuật ngữ Dataminig á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ơ. Có
nhiều thuật ngữ hiện được dùng cũng có nghĩa tương tự với từ Datamining như
Knowledge Mining (khai phá tri thức), knowledge extraction (chắt lọc tri thức),
data/patern analysis (phân tích dữ liệu/mẫu), data archaeoloogy (khảo cổ dữ liệu),
datadredging(nạo vét dữ liệu),...
Định nghĩa: 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 các 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ồ (Big Data) 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 đó. Khai phá dữ liệu là một bước trong bảy bước của quá trình KDD
(Knowleadge Discovery in Database) và KDD được xem như 7 quá trình khác nhau
theo thứ tự sau:
1. Làm sạch dữ liệu (data cleaning & preprocessing): Loại bỏ nhiễu và các
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ý
(data cleaning & preprocessing).
3. Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu

9



và sau đó chuyển đổi về dạng thích hợp cho q trình khai thác tri thức. Q 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 nhất,
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.
6. Ước lượng mẫu (knowledge evaluation): Q 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 này sử dụng các kỹ
thuật để biểu diễn và thể hiện trực quan cho người dùng.

Hình 1 - 1: Các bước trong Data Mining & KDD
1.1.3 - Các 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.
• Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá
đơn giản. Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ
sẽ mua thêm thịt bò khô”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính
doanh, y học, tin-sinh, tài chính & thị trường chứng khốn, .v.v.
• Phân lớp và dự đốn (classification & prediction): xếp một đối tượng vào
một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết.
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
10


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 khốn vì nó có tính dự báo
cao.
1.1.4 - Ứng dụng của khai phá dữ liệu
Data Mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự
quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn
của nó. Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:
• Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support)
• Điều trị y học (medical treatment)
• Text mining & Web mining
• Tin-sinh (bio-informatics)
• Tài chính và thị trường chứng khốn (finance & stock market)
• Bảo hiểm (insurance)
• Nhận dạng (pattern recognition)
• v.v..

1.2 - Tḥt tốn Apriori khai phá ḷt kết hợp
1.2.1 - Luật kết hợp trong khai phá dữ liệu (Association Rule in Data Mining)
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule AR) là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu. Nội
dung cơ bản của luật kết hợp được tóm tắt như dưới đây.
Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn.
T = {t1, t2, …, tn}. T gọi là cơ sở dữ liệu giao dịch (Transaction
Database)
Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)
I = {i1, i2, …, im}. Một itemset gồm k items gọi là k-itemset

Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan
(correlation) giữa các items. Những luật kết hợp này có dạng X =>Y
Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người
mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y. (X và Y
gọi là itemset).
Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết
hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng
thường mua Cherry và Durian.
11


Theo quan điểm thống kê, X được xem là biến độc
lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent variable)
Độ hỗ trợ (Support) và độ tin cây (Confidence) là 2 tham số dùng để đo
lường luật kết hợp.
Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất
cả các items trong cả hai tập X và Y. Ví dụ, support của luật X =>Y là 5% có nghĩa
là 5% các giao dịch X và Y được mua cùng nhau.
Công thức để tính support của luật X =>Y như sau:

Trong đó: N là tổng số giao dịch.
Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã
biết X. Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa
là 80% khách hàng mua Apple cũng mua Banana.
Cơng thức để tính độ tin cậy của luật kết hợp X =>là xác suất có điều kiện Y
khi đã biết X như sau :

Trong đó: n(X) là số giao dịch chứa X
Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum
support (min_sup) và minimum confidence (min_conf)

Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng)
cả Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rule)
Minimum support và Minimum confidence gọi là các giá trị ngưỡng
(threshold) và phải xác định trước khi sinh các luật kết hợp.
Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequent
itemsets
Một số loại luật kết hợp
Binary association rules (luật kết hợp nhị phân): Apple => Banana
Quantitative association rules (luật kết hợp định lượng):
weight in [70kg – 90kg] => height in [170cm – 190cm]
Fuzzy association rules (Luật kết hợp mờ): weight in HEAVY => height in
TALL
Thuật tốn phổ biến nhất tìm các luật kết hợp là Apriori sử dụng Binary
association rules.

12


1.2.2 - Thuật toán sinh các luật kết hợp Apriori (by Agrawal and Srikant 1994)
Tư tưởng chính của thuật tốn Apriori là:
- Tìm tất cả frequent itemsets:
k-itemset (itemsets gờm k items) được dùng để tìm (k+1) - itemset.
Đầu tiên tìm 1-itemset (ký hiệu L1). L1 được dùng để tìm L2 (2-itemsets).
L2 được dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi khơng có k-itemset
được tìm thấy.
- Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa
mãn 2 tham số min_sup và min_conf)
Apriori Algorithm
1. Duyệt (Scan) tồn bộ transaction database để có được support S của 1itemset, so sánh S với min_sup, để có được 1-itemset (L1)
2. Sử dụng Lk-1 nối (join) Lk-1 để sinh ra candidate k-itemset. Loại bỏ các

itemsets không phải là frequent itemsets thu được k-itemset
3. Scan transaction database để có được support của mỗi candidate kitemset, so sánh S với min_sup để thu được frequent k –itemset (Lk)
4. Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (khơng tìm thấy
frequent itemsets)
5. Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I
6. Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin
cậy (Confidence) của nó > =min_conf
Chẳn hạn với I= {A1,A2,A5},các tập con của I:
{A1}, {A2}, {A5}, {A1,A2},{A1,A5},{A2,A5}
sẽ có các luật sau
{A1} => {A2,A5},{A2} =>{A1,A5},{A5} =>{A1,A2}
{A1,A2} =>{A5},{A1,A5} =>{A2},{A2,A5} => {A1}
Ví dụ: Giả sử ta có có sở dữ liệu giao dịch (Transaction Database -TDB) như sau :

Hình 1 - 2: Dữ liệu ví dụ Apriori
13


Thuật tốn Apriori khai phá luật kết hợp được mơ tả qua các bước sau

Hình 1 - 3: Các bước thực hiện thuật tốn Apriori
Ta có frequent itemsets I ={B,C,E}, với min_conf =80% ta có 2 luật kết hợp là
{B,C} => {E} và {C,E} => {B}

.
Hình 1 - 4: Kết quả Apriori
Giả sử có cơ sở dữ liệu giao dịch bán hàng gờm 5 giao dịch như sau:

Hình 1 - 5: CSDL ví dụ
14



Thuật tốn Apriori tìm các luật kết hợp trong giao dịch bán hàng trên như
sau:
Hình 1 - 6: Lặp lại

Kết quả ta có các luật kết hợp sau (với min_sup= 40%, min_conf=70%)
15


R1: Beer => Diaper (support =60%, confidence = 75%)
R2: Diaper =>Beer (support =60%,confidence = 75%)
R3: Milk =>Beer (support =40%, confidence = 100%)
R4: Baby Powder => Diaper (support =40%,confidence = 100%)
Từ kết quả các luật được sinh ra bởi giao dịch bán hàng trên, ta thấy rằng có
luật có thể tin được (hợp lý) như Baby Powder => Diaper, có luật cần phải phân tích
thêm như Milk =>Beer và có luật có vẻ khó tin như Diaper =>Beer.Ví dụ này sinh
ra các luật có thể khơng thực tế vì dữ liệu dùng để phân tích (transaction database)
hay còn gọi là tranining data rất nhỏ.
Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định
(Positive Rule X=>Y) nhị phân (Binary Association Rules) chứ không thể phát hiện
các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳn hạn như các kết
hợp dạng “Khách hàng mua mặt hàng A thường KHÔNG mua mặt hàng B” hoặc
“Nếu ủng hộ quan điểm A thường KHÔNG ủng hộ quan điểm B”. Khai phá các luật
kết hợp dạng phủ định (Mining Negative Association Rules) có phạm vi ứng dụng
rất rộng và thú vị nhất là trong Marketing, Health Care và Social Network Analysis.

1.3 - Thuật toán K-Means với bài toán phân cụm dữ liệu
1.3.1 - Giới thiệu về kỹ thuật phân cụm trong Khai phá dữ liệu (Clustering
Techniques in Data Mining)

Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các
phương pháp Unsupervised Learning trong Machine Learning. Có rất nhiều định
nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân cụm là các
qui trình tìm cách nhóm các đối tượng đã cho vào các cụm (clusters), sao cho các
đối tượng trong cùng 1 cụm tương tự (similar) nhau và các đối tượng khác cụm thì
khơng tương tự (Dissimilar) nhau.
Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu.
Các thuật tốn phân cụm (Clustering Algorithms) đều sinh ra các cụm (clusters).
Tuy nhiên, khơng có tiêu chí nào là được xem là tốt nhất để đánh hiệu của của phân
tích phân cụm, điều này phụ thuộc vào mục đích của phân cụm như: data reduction,
“natural clusters”, “useful” clusters, outlier detection
Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như:


Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách
hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản
phẩm hay dịch vụ của công ty để giúp cơng ty có chiến lược kinh doanh
hiệu quả hơn;



Biology: Phận nhóm động vật và thực vật dựa vào các thuộc tính của
chúng;



Libraries: Theo dõi độc giả, sách, dự đốn nhu cầu của độc giả…;

16





Insurance, Finance: Phân nhóm các đối tượng sử dụng bảo hiểm và các
dịch vụ tài chính, dự đốn xu hướng (trend) của khách hàng, phát hiện
gian lận tài chính (identifying frauds);



WWW: Phân loại tài liệu (document classification); phân loại người dùng
web (clustering weblog);…

Các kỹ thuật phân cụm được phân loại như sau (xem hình)

Hình 1 - 7: Phân loại thuật toán phân cụm dữ liệu
1.3.2 - Thuật Toán K-Means
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ
thuật phân cụm. Tư tưởng chính của thuật tốn K-Means là tìm cách phân nhóm các
đối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K
nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm
nhóm (centroid ) là nhỏ nhất.

17


Hình 1 - 8: Mơ tả Thuật tốn K-Means

Thuật tốn K-Means thực hiện qua các bước chính sau:
1. Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster). Mỗi cụm được đại
diện bằng các tâm của cụm.

2. Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng
khoảng cách Euclidean)
3. Nhóm các đối tượng vào nhóm gần nhất
4. Xác định lại tâm mới cho các nhóm
5. Thực hiện lại bước 2 cho đến khi khơng có sự thay đổi nhóm nào của các đối
tượng

Ví dụ minh họa thuật tốn K-Mean:
Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi 2 đặc
trưng X và Y như sau. Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm (K=2)
dựa vào các đặc trưng của chúng.

Hình 1 - 9: Dữ liệu ví dụ thuật toán K-Mean
Bước 1. Khởi tạo tâm (centroid) cho 2 nhóm. Giả sử ta chọn A là tâm của
nhóm thứ nhất (tọa độ tâm nhóm thứ nhất c1(1,1)) và B là tâm của nhóm thứ 2 (tạo
độ tâm nhóm thứ hai c2 (2,1)).

18


Hình 1 - 10: Mơ tả bước 1 thuật tốn K-Mean

Bước 2. Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảng
cách Euclidean)

Mỗi cột trong ma trận khoảng cách (D) là một đối tượng (cột thứ nhất tương
ứng với đối tượng A, cột thứ 2 tương ứng với đối tượng B,…). Hàng thứ nhất trong
ma trận khoảng cách biểu diễn khoảng cách giữa các đối tượng đến tâm của nhóm
thứ nhất (c1) và hàng thứ 2 trong ma trận khoảng cách biểu diễn khoảng cách của
các đối tượng đến tâm của nhóm thứ 2 (c2).

Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâm
c2(2,1) là 2.83 được tính như sau:

Bước 3. Nhóm các đối tượng vào nhóm gần nhất

19


Ta thấy rằng nhóm 1 sau vòng lặp thứ nhất gờm có 1 đối tượng A và nhóm 2
gờm các đối tượng còn lại B,C,D.
Bước 5. Tính lại tọa độ các tâm cho các nhóm mới dựa vào tọa độ của các
đối tượng trong nhóm. Nhóm 1 chỉ có 1 đối tượng A nên tâm nhóm 1 vẫn khơng
đổi, c1(1,1). Tâm nhóm 2 được tính như sau:

Hình 1 - 11: Mơ tả bước tiếp theo thuật tốn K-Mean
Bước 6. Tính lại khoảng cách từ các đối tượng đến tâm mới

Bước 7. Nhóm các đối tượng vào nhóm
20


Bước 8. Tính lại tâm cho nhóm mới

Hình 1 - 12: Mơ tả kết quả thuật tốn K-Mean
Bước 8. Tính lại khoảng cách từ các đối tượng đến tâm mới

Bước 9. Nhóm các đối tượng vào nhóm

21



Ta thấy G2 = G1 (Khơng có sự thay đổi nhóm nào của các đối tượng) nên
thuật tốn dừng và kết quả phân nhóm như sau:

Hình 1 - 13: Dữ liệu kết quả thuật tốn K-Means

Thuật tốn K-Means có ưu điểm là đơn giản, dễ hiểu và cài đặt. Tuy nhiên,
một số hạn chế của K-Means là hiệu quả của thuật tốn phụ thuộc vào việc chọn số
nhóm K (phải xác định trước) và chi phí cho thực hiện vòng lặp tính tốn khoảng
cách lớn khi số cụm K và dữ liệu phân cụm lớn.

1.4 – Khai phá dữ liệu văn bản (Text mining)
Khai phá dữ liệu văn bản (Text mining) hay phát hiện tri thức từ các cơ sở dữ
liệu văn bản để cập nhập tiếng trình trích lọc các mẫu hình thơng tin hay tri thức
đáng quan tâm hoặc có giá trị từ các tài liệu văn bản phi cấu trúc. Q trình này có
thể được gọi là việc mở rộng kỹ thuật Khai phá dữ liệu truyền thống, vì như chúng
ta đã thấy kỹ thuật Khai phá dữ liệu truyển thống hướng tới việc phát hiện tri thức
từ các cơ sở dữ liệu có cấu trúc
Thơng tin được lưu trức dưới dạng nguyên sơ nhất chính là văn bản. Thậm
chí ta có thể thấy dữ liệu tờn tại dưới dạng văn bản còn có khối lượng lớn hơn nhiều
so với các dữ liệu có cấu trúc khác. Thực tế, những nghiên cứu gần đây đã cho thấy
rằng có đến 80% thơng tin của một tổ chức nằm dưới dạng văn bản. Đó có thể là
các cơng văn giấy tờ, các biểu mẫu điều tra, các phiếu đặt hàng, các yêu cầu khiếu
nại, giải quyết quyền lợi, các thư tín điện tử (email), các thơng tin trên các website
thương mại… Khi các nghiên cứu về cơ sở dữ liệu ra đời vào năm 60, người ta
tuowgr rằng có thể lưu mọi loại thơng tin dạng dữ liệu có mức cấu trúc. Nhưng trên
thực tế sau gần 50 năm phát triển, người ta vẫn dùng các hệ thống lưu trữ ở dạng
văn bản và thậm trí còn có xu hướng thường xuyên hơn. Từ đó người ta có thể tin
rằng các sản phẩm Khai phs dữ liệu văn bản có thể có giá trị thương mại cao hơn rất
nhiều so với sản phẩm Khai phá dữ liệu truyền thống khác. Tuy nhiên ta cũng có thể

thấy ngay rằng các kỹ thuật Khai phá dữ liệu văn bản phức tạp hơn nhiều so với các
kỹ thuật Khai phá dữ liệu truyền thống bởi vì phải thực hiện trên dữ liệu văn bản
vốn đã ở dạng phi cấu trúc và có thính mờ (fuzzy).
Một ví dụ cho bài tốn khai phá dữ liệu văn bản, khi phân tích các bài báo
nghiên cứu khoa học, ta có các thơng tin sau
- “stress là một bệnh liên quan tới đau đầu”
22


“stress xuất hiện có thể do thiếu Magie trong máu”
“Canxi có thể ngăn cản một số chứng đau đầu”
“Magie là một nguyên tố điều hòa canxi tự nhiên trong máu”
Sau khi phân tích các thơng tin quan trọng này, hệ thống cần phải đưa ra các
suy luận cụ thể mang tính cách mạng:
- “Thiếu hụt Magie có thể gây ra một số bệnh đau đầu”
Rõ ràng ở đây có sự phân tích suy luận ở mức độ cao. Để đạt được khả năng
như vậy cần phải có những cơng trình nghiên cứu về trí tuệ nhân tạo tiên tiến hơn
Bài toán khai phá dữ liệu văn bản là một bài tốn nghiên cứu đa lĩnh vực,
bao gờm rất nhiều kỹ thuật cũng như các hướng nghiên cứu khác nhau: thu thập
thơng tin, phân tích văn bản, chiết xuất thơng tin, lập đoạn, phân đoạn văn bản, hiển
thị trực quan, công nghiệ cơ sở dữ liệu, học máy và bản thân các kỹ thuật Khai phá
dữ liệu
Với một hệ thống Khai phá văn bản thương bao gờm ba bước chính
- Bước tiền xử lý: Ở bước này, hệ thống sẽ chuyển văn bản từ dạng phi
cấu trúc về dạng có cấu trúc. Ví dụ, với văn bản Tổ chức này to lắm,
hệ thống sẽ cố gắng phân tích thành Tổ chức/này/to/lắm. Các từ được
lưu riêng rẽ một các có cấu trúc để tiện cho việc xử lý
- Loại bỏ các thông tin khơng cần thiết. Ở bước này, bộ phân tích tìm
cách loại bỏ các thơng tin vơ ích từ văn bản. Bước này phụ thuộc rất
nhiều vào ngôn ngữ đang được phân tích và kỹ thuật sẽ được dùng để

phân tích ở bưới tiếp theo. Ví dụ, nếu kỹ thuật phân tích văn bản chỉ
dựa vào xác xuất hiện từ khóa, khi đó ta có thể loại bỏ các phụ từ như:
nếu, thì, thế, nhưng, như vậy…
- Khai phá dữ liệu đã được giản lược với các kỹ thuật khai phá dữ liệu
truyền thống
Có rất nhiều kỹ thuật và phương pháp tốt được sử dụng cho Text mining để tìm ra
các kiến trúc mới, các mẫu mới, và các liên kết mới. Các bước tiền xử lý là các kỹ
thuật rất phức tạp nhằm phân tích một phân lớp đặc biệt thành các thuộc tính đặc
biệt, sau đó tiến hành áp dụng các phương pháp khai phá dữ liệu kinh điển tức là
phân tích thống kê và phân tích các liên kết. Các bước còn lại sẽ khai phá cả văn
bản đầy đủ từ tập các văn bản, ví dụ như phân lớp văn bản.
Mục tiêu cuối cùng của Text Mining thường là đường lối hiệu quả, hoàn
thiện, và đặc trưng để trình diễn và tìm kiếm các tập hợp rộng lớn của các văn bản.
Do đó, các kỹ thuật chính của Text Mining có thể được phân ra thành các nhiệm vụ
mà chúng thực hiện xử lý khai phá văn bản: loại thơng tin mà chúng có thể trích ra
và phân tích được thực hiện bởi chúng.
Các loại thơng tin được trích ra có thể là:
- Các nhãn: Giả sử, được liên kết với mỗi văn bản là tập các nhãn các thao tác
khai phá tri thức được thực hiện trên các nhãn của mỗi văn bản. Nói chung,
có thể giả sử các nhãn tương ứng với các từ khóa, mỗi một từ khóa có quan
hệ với một chủ đề cụ thể nào đó.
- Các từ: Ở đây giả sử rằng một văn bản được gán nhãn với từng từ xuất hiện
trong văn bản đó.
-

23


Các thuật ngữ: Ở đây với mỗi văn bản tìm thấy các chuỗi từ, chuỗi từ đó
thuộc về một lĩnh vực nào đó và do đó việc tìm khai phá văn bản được thực

hiện trên các khái niệm được gán nhãn cho mỗi văn bản. Ưu điểm của
phương pháp này là các thuật ngữ được tách ra ít có xu hương tập trung vào
các thông tin quan trọng của văn bản hơn hai phương pháp trước đây.
Các loại kết hợp:
- Kết hợp thơng thường: Một số thuật tốn trước đây giả sử rằng dữ liệu
nguyên mẫu được tạo lập chú dân để trợ giúp cho các kỹ thuật xử lý ngơn
ngữ tự nhiên. Các cấu trúc có chú dẫn trên thực tế có thể được sử dụng như
một cơ sở cho việc xử lý khai phá tri thức.
- Các phân cấp thuật ngữ: Ở đây mỗi văn bản được đính với các thuật ngữ lấy
ra từ một phân cấp các thuật ngữ. Sau đó, một hệ thống sẽ phân tích sự phân
bố nội dung của các thuật ngữ hậu duệ của từng thuật ngữ liên quan đến các
hậu duệ khác do các phân bố liên kết và các phép đo khác nhằm khai thác
các quan hệ mới giữa chúng. Loại liên kết này có thể cũng được sử dụng để
lọc và tổng hợp chủ đề của các tin tức.
- Khai phá văn bản đầy đủ: Không giống như loại liên kết thông thường thực
hiện thao tác mù quáng trên các chú dẫn của văn bản, kỹ thuật này sử dụng
lợi thế của nội dung nguyên mẫu của các văn bản. Kỹ thuật này được gọi là
“ trích văn bản nguyên mẫu”
-

1.5 – Thuật toán KNN (K- Nearest Neighbors)
1.5.1 - Giới thiệu thuật toán K-Nearest Neighbors
K-Nearest Neighbors algorithm (K-NN) được sử dụng rất phổ biến trong lĩnh vực
Data Mining. K-NN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần
nhất giữa đối tượng cần xếp lớp (Query point) và tất cả các đối tượng trong Training Data.
Một đối tượng được phân lớp dựa vào K láng giềng của nó. K là số nguyên dương được
xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng cách Euclidean để
tính khoảng cách giữa các đối tượng.

1.5.2 - Mơ tả thuật tốn

1. Xác định giá trị tham số K (số láng giềng gần nhất)
2. Tính khoảng cách giữa đối tượng cần phân lớp (Query Point) với tất cả các
đối tượng trong training data (thường sử dụng khoảng các Euclidean)
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 Query Point
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 Query
Point
24


Để 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 (-)

Ta thấy rằng:
1-Nearest neighbor : Kết quả là + (Query Point được xếp vào lớp dấu +)
2-Nearest neighbors : không xác định lớp cho Query Point vì số láng giềng
gần nhất với nó là 2 trong đó 1 là lớp + và 1 là lớp – (khơng có lớp nào có số đối
tượng nhiều hơn lớp kia)
5-Nearest neighbors : Kết quả là - (Query Point được xếp vào lớp dấu – vì
trong 5 láng giềng gần nhất với nó thì có 3 đối tượng thuộc lớp - nhiều hơn lớp +
chỉ có 2 đối tượng).

1.6 – Tḥt tốn Nạve Bayes:
1.6.1 - Giới thiệu thuật tốn Nạve Bayes:
Nạve Bayes (NB) là phương pháp phân loại dựa vào xác suất được sử dụng

rộng rãi trong lĩnh vực máy học [Mitchell, 1996] [Joachims, 1997] [Jason, 2001],
được sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm 1961
[Maron, 1961] sau đó trở nên phổ biến dùng trong nhiều lĩnh vực như trong các
công cụ tìm kiếm [Rijsbergen et al, 1970], các bộ lọc email [Sahami et al, 1998]…
1.6.2 - Thuật tốn Nạve Bayes:
Thuật tốn Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:
Áp dụng trong bài toán phân loại, các dữ kiện gờm có:
25


×