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

THUẬT TOÁN K-MEANS VỚI ỨNG DỤNG WEKA TRONG BÀI TOÁN THỰC TẾ

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.07 MB, 35 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN CHUYÊN ĐỀ
MÔN HỌC : KHAI PHÁ DỮ LIỆU VÀ KHO DỮ LIỆU
ĐỀ TÀI :
THUẬT TOÁN K-MEANS VỚI ỨNG DỤNG WEKA TRONG BÀI
TOÁN THỰC TẾ
GVHD : TS ĐỖ PHÚC
HỌC VIÊN : TRẦN ANH ĐỨC
MÃ HỌC VIÊN : 1102015
LỚP : CAO HỌC K6-HN
HÀ NỘI 2014
1
MỤC LỤC
Chương 1 : 3
1.1 Giới thiệu về khai phá dữ liệu: 3
1.2 Các nhiệm vụ của khai phá dữ liệu: 5
1.3 Các loại dữ liệu được khai phá: 5
1.4 Lịch sử phát triển của Khai phá dữ liệu: 6
1.5 Ứng dụng của Khai phá dữ liệu: 6
1.6 Phân loại: 8
1.7 Một số thách thức đặt ra cho việc khai phá dữ liệu : 8
Chương 2 : 8
2.1 Quy trình Tổng quát thực hiện Khai phá dữ liệu: 9
2.2 Tiến trình khám phá tri thức khi đi vào một bài toán cụ thể : 10
3. Ứng dụng WEKA trong bài toán thực tế : 18
1.1.Mô tả tập dữ liệu (Dataset) 18
1.1.1.Nguồn gốc (UCI ARFF Repository) 18
1.1.2.Thuộc tính và ý nghĩa các thuộc tính 19
1.2.Bài toán phân lớp (Classification Problem) trên tập dữ liệu đã cho 20
2.Xây dựng mô hình huấn luyện cho bộ phân lớp (classifier) 20


2.1.Tiền xử lý dữ liệu cho tập dữ liệu vowel.arff 21
2.1.1.Vấn đề loại bỏ các thuộc tính không có liên quan đến thuộc tính phân lớp 22
2.1.2.Vấn đề phân chia mẫu dữ liệu huấn luyện và dữ liệu kiểm tra từ tập dữ liệu gốc 23
2.2.Các bộ phân lớp 25
2.2.1.Phân lớp bằng mô hình mạng Neural nhiều tầng (Multilayer Perceptron) 25
3.Thực nghiệm - Sử dụng bộ công cụ Weka 3.7.5 để thực hiện bài toán phân lớp trên tập dữ liệu
vowel.arff 27
3.1.Xây dựng mô hình phân lớp 28
3.2.Kết quả phân lớp thực nghiệm 33
Tài liệu tham khảo 35
MỞ ĐẦU
Trong những năm gần đây, việc nắm bắt được thông tin được coi là cơ sở
của mọi hoạt động sản xuất, kinh doanh. Cá nhân hoặc tổ chức nào thu thập và
hiểu được thông tin, và hành động dựa trên các thông tin được kết xuất từ các
2
thông tin đã có sẽ đạt được thành công trong mọi hoạt động. Chính vì lý do đó,
việc tạo ra thông tin, tổ chức lưu trữ và khai thác ngày càng trở nên quan trọng và
gia tăng không ngừng.
Sự tăng trưởng vượt bậc của các cơ sở dữ liệu (CSDL) trong cuộc sống như:
thương mại, quản lý và khoa học đã làm nảy sinh và thúc đẩy sự phát triển của kỹ
thuật thu thập, lưu trữ, phân tích và khai phá dữ liệu… không chỉ bằng các phép
toán đơn giản thông thường như: phép đếm, thống kê… mà đòi hỏi cách xử lý
thông minh hơn, hiệu quả hơn. Từ đó các nhà quản lý có được thông tin có ích để
tác động lại quá trình sản xuất, kinh doanh của mình… đó là tri thức. Các kỹ thuật
cho phép ta khai thác được tri thức hữu dụng từ CSDL (lớn) được gọi là các kỹ
thuật khai phá dữ liệu (DM – Data Mining). Khai phá luật kết hợp là một nội dung
quan trọng trong khai phá dữ liệu.
Khoá luận trình bày một số vấn đề về phát hiện tri thức, khai phá dữ liệu, và
trình bày rõ vấn đề khai phá luật kết hợp và ứng dụng một số thuật toán khai phá
luật kết hợp trong CSDL.

Chương 1 :
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Giới thiệu về khai phá dữ liệu:
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ể
3
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át cá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
(Knowlegde mining from database), trích lọc dữ liệu (Knowlegde extraction), phân tích
dữ liệu/mẫu (data/pattern analysis), khảo cổ dữ liệu (data archaeology), 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 (Knowledge Discovery in Databases- KDD) là
như nhau. Tuy nhiên trên thực tế khai phá dữ liệu chỉ là một bước thiết yếu trong quá
trình Khám phá tri thức trong CSDL.
Để hình dung vấn đề này ta có thể sử dụng một ví dụ đơn giản như sau: Khai phá dữ
liệu được ví như tìm một cây kim trong đống cỏ khô. Trong ví dụ này, cây kim là một
mảnh nhỏ tri thức hoặc một thông tin có giá trị và đống cỏ khô là một kho cơ sở dữ liệu
rộng lớn. Như vậy, những thông tin có giá trị tiềm ẩn trong kho cơ sở dữ liệu sẽ được
chiết xuất ra và sử dụng một cách hữu ích nhờ khai phá dữ liệu. Chức năng khai phá dữ
liệu gồm có gộp nhóm phân loại, dự báo, dự đoán và phân tích các liên kết.
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áohoặc cá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ân cụ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á 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ặc cá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ân cụ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)…
4
1.2 Các nhiệm vụ của khai phá dữ liệu:
Cho đến nay đã có rất nhiều công trình nghiên cứu và phát triển trong lĩnh vực khai
phá dữ liệu. Dựa trên những loại tri thức được khám phá, chúng ta có thể phân loại như
theo các nhiệm cụ như sau:
- Khai phá luật thuộc tính: tóm tắt những thuộc tính chung của tập dữ liệu nào đó trong
cơ sở dữ liệu. Ví dụ như những triệu chứng của một căn bệnh S thì thường có thể được
thể hiện qua một tâp các thuộc tính A.
- Khai phá những luật phân biệt: khai phá những đặc trưng, những thuộc tính để phân
biệt giữa tập dữ liệu này với tập dữ liệu khác. Ví dụ như nhằm phân biệt giữa các chứng
bệnh thì một luật phân biệt được dùng để tóm tắt những triệu chứng nhằm phân biệt
chứng bệnh xác định với những chứng bệnh khác.
- Khám phá luật kết hợp: khai phá sự kết hợp giữa những đối tượng trong một tập dữ
liệu. Giả sử hai tập đối tượng {A1, A2,… ,An} và {B1, B2,… ,Bn} thì luật kết hợp có
dạng {A1^A2^…^ An) →{B1^ B2^… ^Bn).
- Khám phá luật phân lớp: phân loại dữ liệu vào trong tập những lớp đã biết. Ví dụ như
một số chiếc xe có những đặc tính chung để phân vào các lớp dựa trên cách tiêu thụ nhiên
liệu hoặc có thể phân vào các lớp dựa trên trọng tải…
- Phân nhóm: xác định một nhóm cho một tập các đối tượng dựa trên thuộc tính của chúng. Một
số các tiêu chuẩn được sử dụng để xác định đối tượng có thuộc về nhóm hay không.
- Dự báo: dự báo giá trị có thể đúng cuỷa những dữ liệu bị thiếu hoặc sự phân bố thuộc
tính nào đó trong tập dữ liệu.

- Khám phá quy luật biến đổi: tìm những tập luật phản ánh những hành vi tiến hóa, biến
đổi chung của một tập dữ liệu. Ví dụ như luật khám phá những yếu tố chính tác động lên
sự thay đổi của những giá cổ phiếu nào đó.
1.3 Các loại dữ liệu được khai phá:
Khai phá dữ liệu thường làm việc với nhiều kiểu dữ liệu khác nhau. Hầu hết các
kiểu dữ liệu được khai phá là những kiểu sau:
- Cơ sở dữ liệu quan hệ: những cơ sở dữ liệu được tổ chức theo mô hình quan hệ. Hầu
hết những hệ quản trị cơ sở dữ liệu hiện nay đều hỗ trợ mô hình
này như: Oracle, IBM DB2, MS SQL Server, MS Access…
- Cơ sở dữ liệu đa chiều: cơ sở dữ liệu này được gọi là nhà kho dữ liệu,trong đó dữ liệu
được chọn từ nhiều ngồn khác nhau và chứa những đặc tính lịch sử thông qua thuộc tính
thời gian tường minh hay ngầm định.
5
- Cơ sở dữ liệu giao tác: đây là loại cơ sở dữ liệu được sử dụng nhiều trong siêu thị,
thương mại, tài chính, ngân hàng…
- Cơ sở dữ liệu quan hệ - hướng đố tượng: mô hình cơ sở dữ liệu này lai giữa mô hình
hướng đối tượng và mô hình cơ sở dữ liệu quan hệ.
- Cơ sở dữ liệu thời gian, không gian: chứa những thông tin về không gian địa lý hoặc
thông tin theo thời gian.
- Cơ sở dữ liệu đa phương tiện: loại dữ liệu này bao gồm: âm thanh, ảnh,video, văn bản
và nhiều kiểu dữ liệu định dạng khác. Ngày nay loại dữ liệu này được sử dụng nhiều trên
mạng Internet.
1.4 Lịch sử phát triển của Khai phá dữ liệu:
- Những năm 1960: Xuất hiện CSDL theo mô hình mạng và mô hình phân cấp.
- Những năm 1970: Thiết lập nền tẩng lý thuyết cho CSDL quan hệ, các hệ quản
trị CSDL quan hệ.
- Những năm 1980: Hoàn thiện lý thuyết về CSDL quan hệ và các hệ quản trị
CSDL quan hệ, xuất hiện các hệ quản trị CSDL cao cấp (hướng đối tượng, suy diễn, )
và hệ quản trị hướng ứng dụng trong lĩnh vực không gian, khoa học, công nghiệp, nông
nghiệp, địa lý .

- Những năm 1990-2000: phát triển Khai phá dữ liệu và kho dữ liệu, CSDL đa
phương tiện, và CSDL Web.
1.5 Ứng dụng của Khai phá dữ liệu:
Khai phá dữ liệu là một lĩnh vực liên quan tới nhiều ngành học khác như: hệ CSDL,
thống kê, trực quan hoá… hơn nưa, tuỳ vào cách tiếp cận được sử dụng, khai phá dữ liệu
còn có thể áp dụng một số kỹ thuật như mạng nơron, lý thuyết tập thô, tập mờ, biểu diễn
tri thức… So với các phương pháp này, khai phá dữ liệu có một số ưu thế rõ rệt.
• So với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ở chỗ, khai phá dữ liệu
có thể sử dụng với các CSDL chứa nhiều nhiễu, dữ liệu không đầy đủ hoặc biến đổi liên
tục. Trong khi đó phương pháp học máy chủ yếu được áp dụng trong các CSDL đầy đủ, ít
biến động và tập dữ liệu không qua lớn
• Phương pháp hệ chuyên gia: phương pháp này khác với khai phá dữ liệu ở chỗ các ví
dụ của chuyên gia thường ở mức cao hơn nhiều so với các dữ liệu trong CSDL, và chúng
thường chỉ bao hàm được các trường hợp quan trọng. Hơn nữa các chuyên gia sẽ xác
nhận giá trị và tính hữu ích của các mẫu phát hiện được.
6
• Phương pháp thống kê là một trong những nên tảng lý thuyết của khai phá dữ liệu,
nhưng khi so sánh hai phương pháp với nhau ta có thể thấy các phương pháp thống kê
còn tồn tại một số điểm yếu mà khai phá dữ liệu khắc phục được:
- Các phương pháp thống kê chuẩn không phù hợp với các kiểu dữ liệu có cấu trúc trong
rất nhiều CSDL.
- Các phương pháp thống kê hoạt động hoàn toàn theo dữ liệu, nó không sử
dụng tri thức có sẵn về lĩnh vực.
- Kết quả phân tích của hệ thống có thể sẽ rất nhiều và khó có thể làm rõ được.
- Phương pháp thống kê cần có sự hướng dẫn của người dùng để xác định phân tích dữ
liệu như thế nào và ở đâu.
* 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ân hàng:
◊ Xây dựng mô hình dự báo rủi ro tín dụng.
◊ Tìm kiếm tri thức, qui luật của thị trường chứng khoán và đầu tư bất động sản.

◊ Phát hiện dùng thẻ tín dụng giả trên mạng và là công cụ hữu ích cho dịch vụ quản lý
rủi ro cho thương mại điện tử
- Thương mại điện tử:
◊ Công cụ tìm hiểu, định hướng thúc đẩy, giao tiếp với khách hàng.
◊ Phân tích hành vi mua sắm trên mạng và cho biết thông tin tiếp thị phù hợp với loại
khách hàng trong một phân khu thị trường nhất định
- Nhân sự:
◊ Giúp nhà tuyển dụng chọn ứng viên thích hợp nhất cho nhu cầu của công ty
- Y học:
◊ Hỗ trợ bác sĩ phát hiện ra bệnh của bệnh nhân dựa trên các xét nghiệm đầu vào
- An ninh, an toàn mạng
◊ Ứng dụng trong hệ thống phát hiện xâm nhập trái phép IDS/IPS để phát hiện ra các
cuộc tấn công xâm nhập mạng trái phép.
- Một số ứng dụng của khai phá dữ liệu trong lĩnh vực kinh doanh:
BRANDAID: mô hình marketing linh hoạt tập chung vào hàng tiêu dùng đóng gói.
7
CALLPLAN: giúp nhân viên bán hàng xác định số lần viếng thăm của khách hàng
triển vọng và khách hàng hiện có.
DETAILER: xác định khách hàng nào nên viếng thăm và sản phẩm nào nên giới
thiệu trong từng chuyến viếng thăm,
GEOLINE: mô hình thiết kế địa bàn tiêu thụ và dịch vụ.
MEDIAC: Giúp người quảng cáo mua phương tiện trong một năm, lập kế hoạch
sử dụng phương tiện bao gồm phác hoạ khúc thị trường, ước tính tiềm năng .
1.6 Phân loại:
Chúng ta có thể phân lớp hệ thống khai phá dữ liệu theo các tiêu chuẩn sau:
Phân lớp dựa trên loại dữ liệu được khai phá: những hệ thống khai phá dữ liệu làm
việc với cơ sở dữ liệu quan hệ, nhà kho dữ liệu, cơ sở dữ liệu giao tác, cơ sở dữ liệu
hướng đối tượng, đa phương tiện và Web…
Phân lớp dựa trên kiểu tri thức khai phá: hệ thống khai phá dữ liệu xuất kết quả kiểu tóm
tắt, mô tả, luật kết hợp, phân lớp, phân nhóm và dự báo…

Phân lớp dựa trên loại kỹ thuật được sử dụng: hệ thống khai phá sử dụng các kỹ
thuật OLAP, kỹ thuật máy học (cây quyết định, mạng neural, thuật giải tiến hóa, tập thô
và tập mờ…).
Phân lớp dựa trên lĩnh vực áp dụng khai phá: hệ thống được dùng trong nhiều lĩnh
vực: sinh học, y khoa, thương mại và bảo hiểm…
1.7 Một số thách thức đặt ra cho việc khai phá dữ liệu :
- Các cơ sở dữ liệu lớn
- Số chiều lớn
- Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không còn phù hợp.
- Dữ liệu bị thiếu hoặc nhiễu
- Quan hệ giữa các trường phức tạp
- Giao tiếp với người sử dụng và kết hợp với các tri thức đã có.
- Tích hợp với các hệ thống khác…
Chương 2 :
QUY TRÌNH VÀ PHƯƠNG THỨC THỰC HIỆN KHAI PHÁ DỮ LIỆU
8
2.1 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) Làm sạch dữ liệu (data cleaning): Loại bỏ nhiễu hoặc các dữ liệu không thích hợp.
2) Tích hợp dữ liệu (data integration): Tích hợp dữ liệu từ các nguồn khác nhau như:
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ẽ được chuyể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ác nhó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ương phá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ễn tri 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. Ordinal
Hình 2.1: Data mining – một bước trong quá trình khám phá tri thức
9
2.2 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ình
khai 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ạn chuẩn
bị dữ liệu khai phá, giai đoạn khai phá dữ liệu và cuối cùng là giai đoạn chuyển kêt quả
khai phá sang những tri thức cho con người hiểu được. Chi tiết các bước thực hiện được
mô tả trong bảng tóm tắt như sau:
- Giai đ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ừ qua đ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á
Hình 2.2: Tổng quan tiến trình khai phá dữ liệu
- 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ết hợp…
10
- Giai đoạn 6: từ thuật toán đã chọn, mô hình hóa thuật toán để giải quyết trong trườ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ếm những
mẫu thú vị trong một hình thức thể hiện đắc thù hoặc một tập những thể 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ức thể hiện tri
thức của dữ liệu như ngôn ngữ, biểu đồ, hình cây, bảng…
Quá trình khai phá này có sự tương tác và lặp lại giữa hại bước bất kỳ, những bướ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ệc trước đây đều

tập trung ở bước 7 là giai đoạn khai phá dữ liệu. Tuy nhiên, các bước cò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ành công của toàn bộ tiến
trình khai phá dữ liệu. sau đây ta sẽ tìm hiểu chi tiết về quá trình tiền xử lý trong tiến
trình.
11
Chương 3 :
THUẬT TOÁN PHÂN CỤM K-MEANS VÀ ỨNG DỤNG WEKA
TRONG BÀI TOÁN THỰC TẾ.
1. Tìm hiểu về phân cụm
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 toá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ự đoán nhu cầu của độc giả…;
• 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ự đoá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)
12
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 toá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.
Thuật toán K-Means được mô tả như sau


Thuật toán K-Means thực hiện qua các bước chính sau:
13
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 toá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.
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)).
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)
14
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
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 4. 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:
15
Bước 5. Tính lại khoảng cách từ các đối tượng đến tâm mới

Bước 6. Nhóm các đối tượng vào nhóm
Bước 7. Tính lại tâm cho nhóm mới
16

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
Ta thấy G
2
= G
1
(Không có sự thay đổi nhóm nào của các đối tượng) nên thuật toán dừng
và kết quả phân nhóm như sau:

17
Thuật toá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 toá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 toán khoảng cách lớn khi số cụm K
và dữ liệu phân cụm lớn.
• Điểm mạnh của phương pháp gom cụm k- means
- Hiệu suất tương đối: O(nkt) với n là số đối tượng, k là số cụm, t là số lần lặp.
Thông thường k, t << n.
- Thuật toán này có ưu điểm là rõ ràng, dễ dàng cài đặt.
• Điểm yếu của phương pháp k- means
- Có thể áp dụng chỉ khi xác định được trị trung bình
- Cần chỉ định trước số các cụm- k.
- Không thể xử lý nhiễu và outliers
3. Ứng dụng WEKA trong bài toán thực tế :
1.Bài toán thực tế :
1.1. Mô tả tập dữ liệu (Dataset)
1.1.1. Nguồn gốc (UCI ARFF Repository)
Link download từ Intrenet:
Gordon Peterson và Harold Barney đã tiến hành một điều tra chi tiết về các
nguyên âm Anh - Mỹ trong bài báo [1]. Công trình này đưa ra một độ đo âm thanh
của tần số gốc (Fundalmental frequency – F0) và 9 tần số đặc trưng tiếp theo (formant
frequencies – là những tần số trong âm thanh có được do cộng hưởng của các tần số
bậc thấp hơn) đối với một tập các từ chứa các nguyên âm khác nhau. Cụ thể, đối với
mỗi nguyên âm, các tác giả đặt trong những từ khác nhau, bắt đầu bằng âm h và kết
thúc bằng âm d (Ví dụ: heed /hi:d/, hid/hId/…) và ghi nhận lại các tần số âm thanh
phát ra theo 10 đặc trưng nêu trên. Bảng 1 cho thấy dữ liệu trong thực nghiệm này:
18

Raymond Watrous [2] đã tiến hành sắp xếp lại dữ liệu tổ chức trong [1] sử dụng
tại trường đại học University of Pennsylvania. Sau một thời gian được chỉnh sửa và

hoàn thiện, dữ liệu được công bố bằng định dạng arff của weka, tên là pbvowel và
biến thể khác là vowel (hiện tại được cung cấp tại repository của uci).
1.1.2. Thuộc tính và ý nghĩa các thuộc tính
Vào những năm 50 của thế kỷ trước, Gunnar Fant đã có một đóng góp quan trọng
trong việc phát triển lý thuyết về giọng nói. Trong nghiên cứu này của ông, sóng âm
được xem xét thông qua phản ứng của hệ thống lọc âm tần đối với một hoặc một vài
nguồn âm khác nhau. Đó là nguyên lý cơ bản của những mô hình lọc âm trong quy
trình điều chế giọng nói. Trong quy trình xây dựng bộ dữ liệu Vowel, các tác giả quan
tâm đến đặc trưng tần số của âm thanh, cụ thể là tần số gốc F0 và tần số hòa âm Fn.
Fundamental frequency (F0) Tần số gốc:
Khi một nguyên âm được phát ra, dây thanh quản rung lên theo một tốc độ nhất
định và gọi là tần số gốc (tần số cơ bản) hay là F0. Trong thực nghiệm, F0 không phải
lúc nào cũng như nhau và thay đổi một cách có chủ đích hoặc không có chủ đích. Giá
trị trung bình của tần số F0 của trẻ em thường cao hơn so với người trưởng thành, và
của nữ thường cao hơn nam. Điều này có thể được kiểm chứng trong dữ liệu vowel
(trong dữ liệu này có quan tâm đến giới tính của người được tham khảo).
Liên quan đến tần số gốc, có một khái niệm tương đương là cao độ của âm thanh
(pitch). Trong công nghệ thông tin nói riêng và trong kỹ thuật xử lý tín hiệu số nói
chung, tần số gốc F0 là một thông số cực kỳ quan trọng và là dữ liệu đầu vào bắt buộc
cho mọi bài toán liên quan đến xử lý giọng nói.
Trong tập dữ liệu vowel, tần số F0 được ghi nhận trong thuộc tính F0. F0 được mô
hình hóa theo kiểu real (dữ liệu miền liên tục).
Formants (Tần số hòa âm):
19
Khác với tần số gốc F0 được tạo ra bởi nguồn âm (sự rung động của các dây thanh
quản), thì các tần số hòa âm được tạo ra bởi sự cộng hưởng âm thanh do va đập của
sóng âm với khoang miệng, môi, răng và lưỡi. Tùy thuộc vào các dạng hình khác
nhau của những yếu tố này, ta phát ra những phổ âm thanh khác nhau (âm có tần số
khác nhau).
Trong tập dữ liệu vowel, người ta đã khảo sát và chia các âm này theo các tần số

khác nhau (Từ F1 đến F9). Mỗi tần số được mô hình hóa kiểu real (miền dữ liệu liên
tục).
Tập nguyên âm mẫu:
Trong tập dữ liệu vowel, mỗi nguyên âm /X/ được coi là một thành phần của một từ
nào đó có dạng /hXd/. Các từ này được trình bày trong bảng 1. Tập các nguyên âm
được đưa vào thuộc tính Class (thuộc tính được chỉ định dùng để phân lớp). Thuộc
tính Class được cấu trúc thành dạng tập hợp 11 thành phần (tương ứng với 11 nguyên
âm tiếng Anh) như sau:
@attribute 'Class' { hid, hId, hEd, hAd, hYd, had, hOd, hod, hUd, hud, hed}
1.2. Bài toán phân lớp (Classification Problem) trên tập dữ liệu đã cho
- Dùng tập dữ liệu đã cho huấn luyện một bộ phân lớp có khả năng phân biệt các
nguyên âm tiếng Anh.
- Ngoài ra, dựa trên tập dữ liệu huấn luyện, kiểm nghiệm những nguyên lý vật lý cơ
bản về giọng nói như: Sự phụ thuộc của tần số âm hòa âm vào tần số gốc, các
nguyên âm được phát ra có được phân biệt bởi các thuộc tính hòa âm hay không.
2. Xây dựng mô hình huấn luyện cho bộ phân lớp (classifier)
Trong lĩnh vực máy học (machine Learning) và nhận dạng mẫu (pattern
recognition), bài toán phân lớp (classification) đề cập đến các thuật toán (algorithms)
nhằm xác định lớp (class) của đối tượng đã cho sẽ thuộc về lớp nào trong các lớp đã
cho trước (given categories). Khác với bài toán phân cụm (clustering), dữ liệu dùng
để xây dựng mô hình (Training Data) trong bài toán phân lớp phải được xác định lớp
trước (pre-Labeled). Ví dụ, xác định một email thuộc “spam” hoặc “non-spam”, hay
xác định loại bệnh của bệnh nhân dựa vào các triệu chứng của họ.
Điều kiện tiên quyết để xây dựng một bộ phân lớp hiệu quả là việc xử lý dữ liệu
huấn luyện. Điều này được thể hiện rõ trên hai khía cạnh. Thứ nhất, việc xử lý dữ liệu
làm dữ liệu huấn luyện ổn định, hạn chế sai sót (xử lý oulier), hạn chế tình trạng mất
mát dữ liệu. Từ đó mà bộ phân lớp trở nên ổn định hơn. Thứ hai, việc xử lý dữ liệu
bao gồm cả việc lựa chọn các thuộc tính có liên quan, loại bỏ các thuộc tính ít liên
quan trong quá trình phân lớp. Điều này làm giảm các trường dữ liệu gây nhiễu cho
quá trình huấn luyện bộ phân lớp.

Sau khi có được tập mẫu huấn luyện, ta sử dụng các thuật toán khác nhau để tạo ra
những bộ phân lớp khác nhau. Như vậy, có thể coi mỗi thuật toán thực hiện phân lớp
là đại diện của một bộ phân lớp khác nhau. Đầu vào của các bộ phân lớp này là một
20
bản ghi hoặc một tập các bản ghi mới, và đầu ra là lớp mà dữ liệu đó thuộc về. Trong
trường hợp mẫu dữ liệu chưa từng xuất hiện trong tập huấn luyện (unseen data), ta
thấy bộ phân lớp có khả năng dự đoán (predicating).
Cuối cùng, mỗi bộ phân lớp có các chỉ số để xem xét độ chính xác, tính tin cậy của
nó. Vì vậy, việc xây dựng một bộ dữ liệu để kiểm chứng là điều vô cùng cần thiết.
Các vấn đề gặp phải trong việc xử lý dữ liệu này cũng giống như đối với dữ liệu huấn
luyện (vấn đề sai sót dữ liệu và vấn đề lựa chọn thuộc tính). Do tính chất như vậy,
trong thực tế, khi dữ liệu thu thập đủ lớn thì người ta thường sử dụng một phần để làm
dữ liệu huấn luyện, phần còn lại để làm dữ liệu kiểm chứng. Điều này đảm bảo tính
đồng nhất và liên tục trong dữ liệu. Điều này là vô cùng quan trọng, đặc biệt đối với
những mẫu dữ liệu thường xuyên thay đổi theo thời gian.
Hình sau mô tả qui trình xây dựng mô hình phân lớp các đối tượng.
2.1. Tiền xử lý dữ liệu cho tập dữ liệu vowel.arff
Trong tập dữ liệu có xuất hiện các thuộc tính tần số (F0 … F9) là kiểu số thực, tức
là miền giá trị liên tục. Một số thuật toán phân lớp đòi hỏi sử dụng các giá trị miền rời
rạc (ID3, …) sẽ không thực thi được. Tuy nhiên, việc sử dụng biến thể C4.5 (J48),
multilayer-perceptron và Naïve Bayes cho phép chúng ta bỏ qua việc rời tạc hóa dữ
liệu cho các thuộc tính miền liên tục.
Xem xét ở khía cạnh khác, việc xử lý dữ liệu còn bao gồm lọc bỏ các giá trị không
mấy liên quan đến thuộc tính phân lớp và phân chia tập dữ liệu huấn luyện/kiểm tra
cho hợp lý và hiệu quả. Những vấn đề này được xem xét cụ thể như sau.
Training set
Learn
classifier
Test set
Model

21
2.1.1. Vấn đề loại bỏ các thuộc tính không có liên quan đến thuộc tính phân lớp
a. Dựa vào nhận xét chủ quan đối với bộ dữ liệu đang xét
Dựa trên kiến thức vật lý (chủ quan của sinh viên) về âm thanh và giọng nói, mỗi
nguyên âm (vowel) được phát ra sẽ có một tập các phổ tần số khác nhau, là kết quả
của tần số cơ bản F0 và các tần số hòa âm F1…F9. Tuy nhiên – cũng theo nhận thức
của sinh viên – thì âm của nguyên âm có năng lượng tập trung ở các dải âm tần tương
thấp (tức là tập trung chủ yếu vào các tần số F0, F1, F2, F3). Thực tế thì trong mẫu dữ
liệu gốc của vowel.arff là pbvowel.arff cũng chỉ quan tâm đến các tần số F0, F1, F2,
F3. Vậy, khi tách lớp, ta có thể loại bỏ các thuộc tính âm tần bậc cao (F7, F8, F9).
Weka cung cấp cho người sử dụng một phương thức rất đơn giản để loại bỏ các
thuộc tính không cần thiết bằng tay (chọn các thuộc tính muốn xóa rồi nhấn Remove).
b. Dựa vào đánh giá khách quan theo các thuật toán đo độ tương quan
Các luồng ý kiến khác cho rằng việc nhận xét về một tập dữ liệu nào đó sử dụng
tri thức đã có để tiến hành chọn các thuộc tính liên quan là không thỏa đáng. Những
người ủng hộ luồng ý kiến này cho rằng số liệu thống kê và số đo độ tương quan giữa
các thuộc tính là yếu tố quyết định xem một thuộc tính là quan trọng hay không quan
trọng đối với thuộc tính khác (ở đây là thuộc tính phân lớp). Xem xét này có thể đúng
với một số trường hợp, tuy nhiên với những dữ liệu thực tế thì lại thường không hiệu
quả, nhất là những mẫu dữ liệu “chưa đủ lớn – chưa đầy đủ, chưa đủ chuẩn hóa và
22
chưa đủ ổn định”. Lấy ví dụ, việc sử dụng các thuật toán đo độ tương quan giữa
thuộc tính “số con cái” và thuộc tính “kế hoạch sinh con” trong điều tra về việc thụ
thai (UCI Contraceptive Method Choice -
có thể sai nếu
số liệu về số con cái chưa được khảo sát đầy đủ (dữ liệu khuyết thiếu).
*) Những nhận định và phương pháp loại bỏ thuộc tính trên sẽ được thực nghiệm
trên tập dữ liệu vowel.arff, sử dụng weka. Tuy nhiên, do những hạn chế ở mỗi
phương pháp tiếp cận trên, việc phối hợp linh hoạt giữa tri thức người và đo lường
của máy là điều kiện cần để có một bộ dữ liệu huấn luyện tốt.

2.1.2. Vấn đề phân chia mẫu dữ liệu huấn luyện và dữ liệu kiểm tra từ tập dữ
liệu gốc
Dữ liệu để xây dựng mô hình: dữ liệu gốc (original dataset), dữ liệu này phải có
thuộc tính phân lớp (categorical attribute). Dữ liệu gốc sẽ được chia thành 2 phần là
Training Set (để xây dựng model) và Test Set (để kiểm định mẫu - Model).
Chia nhỏ tập dữ liệu theo phương pháp CV (Cross-Validation) trong quá trình
huấn luyện và kiểm lỗi mô hình phân lớp
Đây là kỹ thuật chủ yếu được sử dụng trong xây dựng predictive Model. Trong đó
dữ liệu gốc sẽ được chia thành n phần bằng nhau (n-fold), và quá trình Train/Test
23
Model thực hiện lặp lại n lần. Tại mỗi lần Train/Test Model, 1 phần dữ liệu dùng để
Test và (n-1) phần còn lại dùng để Train.
(Người ta đã chứng minh 10-fold Cross –Validation là giá trị tối ưu - theo GJ,
McLachlan; K.A. Do, C. Ambroise (2004). Analyzing microarray gene expression
data. Wiley)
Tính toán lỗi cho bộ phân lớp
24
2.2. Các bộ phân lớp
Như đã đề cập ở trên, mỗi bộ phân lớp được đại diện bởi một thuật toán huấn
luyện. Các thuật toán được sinh viên sử dụng trong bài tập này là: Naïve Bayes,
J48(hay C4.5) và mạng noron nhiều tầng (Multilayer Perceptron). Trong phạm vi bài
tập lớn, sinh viên xin giới thiệu thuật toán huấn luyện multilayer perceptron như là
thuật toán đại diện.
2.2.1. Phân lớp bằng mô hình mạng Neural nhiều tầng (Multilayer Perceptron)
Phỏng theo liên kết giữa các neural thần kinh trong não bộ con người, thuật toán
mạng neural là một trong những thuật toán được ứng dụng nhiều nhất trong các
nghiên cứu học máy, đặc biệt là trong các bài toán nhận dạng. Như đã đề cập ở trước,
một bộ phân lớp có khả năng nhận dạng, rất thích hợp để cài đặt thuật toán mạng
neural lên đó. Thuật toán này dựa trên việc học và tinh chỉnh các thông số của các nút
mạng (perceptron), dựa trên giải thuật lan truyền ngược như sau:

Initialize the weights in the network (often randomly)
Do
For each example e in the training set
O = neural-net-output(network, e) ; forward pass
T = teacher output for e
Calculate error (T - O) at the output units
Compute delta_wh for all weights from hidden layer to output layer ;
backward pass
Compute delta_wi for all weights from input layer to hidden layer ; backward
pass continued
Update the weights in the network
Until all examples classified correctly or stopping criterion satisfied
Return the network
Mã giả phân loại dữ liệu với mạng neural
25

×