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

Đồ án tốt nghiệp đại học tìm hiểu và cài đặt thuật toán phân lớp dữ liệu và ứng dụng trong phân tích kết quả học tập của sinh viên

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 (812.81 KB, 91 trang )

MỤC LỤC
1.2 Những thách thức trong Khai phá dữ liệu..........................................................................9
1.3 Những vấn đề được chú trọng trong Khai phá dữ liệu.....................................................11
CHƯƠNG II: PHÂN LỚP DỮ LIỆU.................................................................................................12
2.1 Bài toán phân lớp............................................................................................................12
2.1.1 Phát biểu bài toán......................................................................................................12
2.1.2 Một số ứng dụng của bài toán phân lớp....................................................................12
2.2 Các kỹ thuật phân lớp.......................................................................................................13
2.2.1 Kỹ thuật sử dụng khoảng cách...................................................................................13
2.2.2 Kỹ thuật phân lớp theo tiếp cận thống kê xác xuất...................................................17
2.2.3 Cây quyết định...........................................................................................................30
2.2.4 Mạng neural ..............................................................................................................40
2.2.5 Các kỹ thuật khác.......................................................................................................54

Bảng từ viết tắt
Từ hoặc cụm từ

Từ viết tắt

Từ tiếng Anh

Cơ sở dữ liệu

CSDL

Database

Khai phá dữ liệu

KPDL


Data Mining

1


LỜI NÓI ĐẦU
Trong thời đại ngày nay, Internet phát triển rộng lớn khắp toàn cầu,
cùng với sự bùng nổ của ngành Công nghệ thông tin và những điều kiện
phát triển của nó, các cơng nghệ lưu trữ dữ liệu và phục hồi dữ liệu ngày
càng phát triển nhanh chóng tạo điều kiện cho các đơn vị thu thập dữ liệu
nhiều hơn và tốt hơn. Chính vì lý do này mà cơ sở dữ liệu ở các cơ quan,
doanh nghiệp, đơn vị, trường học ngày càng nhiều thông tin tiềm ẩn, phong
phú và đa dạng; đặc biệt trong việc học tập các môn học của học viên, các
nhà trường đã nhận thức được tầm quan trọng của việc nắm bắt và xử lý
thông tin, sử dụng những tri thức được chiết xuất từ cơ sở dữ liệu để phục
vụ cho việc dự đoán phân loại học viên trong các môn học tiếp theo trong
quá trình học tập của học viên tại nhà trường.
Trước những điều kiện và yêu cầu đặt ra của nhiệm vụ đào tạo, đòi
hỏi phải có những phương pháp nhanh, phù hợp, tự động, chính xác và có
hiệu quả để lấy được thơng tin có giá trị. Khai phá dữ liệu là một kỹ thuật
được áp dụng rất hiệu quả phục vụ cho mục đích này; là một khâu trong
quá trình khám phá tri thức, khai phá dữ liệu làm nhiệm vụ trích xuất các
thơng tin có giá trị tiềm ẩn trong những kho dữ liệu; hiện nay, kỹ thuật này
đang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh
và đời sống khác nhau như: y tế, marketing, ngân hàng, viễn thông,
Internet,…. Không ai có thể phủ nhận những lợi ích to lớn mà nhờ áp dụng
kỹ thuật khai phá đem lại.
Nhận thấy tầm quan trọng của vấn đề này, trong nội dung đờ án tớt
nghiệp của mình em đã nghiên cứu về kỹ thuật khai phá dữ liệu, trong đó
tập trung đi sâu nghiên cứu lĩnh vực phân lớp dữ liệu và tìm luật kết hợp

của khai phá dữ liệu với mục đích dựa trên kết quả học tập của các học
viên, sinh viên mà cụ thể là các dữ liệu điểm của các mơn học để phân lớp
học viên và tìm mối liên hệ giữa các mơn học, tìm sự phụ thuộc của các

2


môn học. Cung cấp thêm thông tin về việc học tập của học viên, về các sở
thích, sự say mê, ham học hỏi của học viên cho giáo viên, nhà trường; giúp
họ có được những thông tin cần thiết, quan trọng; giảm bớt thời gian tìm
hiểu, phân tích, đánh giá, có được cơ sở tin cậy, chính xác giúp ích trong
việc học tập và giảng dạy.
Em xin chân thành cảm ơn thầy giáo hướng dẫn đã tận tình hướng
dẫn, chỉ bảo, giúp đỡ cho em trong q trình làm đờ án để cho em hồn
thành đờ án tớt nghiệp của mình.

3


CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Khai phá dữ liệu
Khai phá dữ liệu là quá trình khai thác những thơng tin tiềm ẩn có
tính dự đốn, những thơng tin có nhiều ý nghĩa từ những cơ sở dữ liệu lớn,
nó được coi như là một bước trong quá trình khám phá tri thức (Knowledge
Discovery in Databases – KDD). Khai phá dữ liệu là giai đoạn quan trọng
nhất trong tiến trình khám phá tri thức từ cơ sở dữ liệu, các tri thức này có
rất nhiều ý nghĩa, là cơ sở hỗ trợ trong việc ra quyết định trong khoa học và
kinh doanh.
Các bước trong quá trình khám phá tri thức:
- Làm sạch dữ liệu (Data cleaning): loại bỏ dữ liệu nhiễu hoặc dữ

liệu khơng thích hợp.
- Tích hợp dữ liệu (Data Intergration): Tích hợp dữ liệu từ các nguồn
khác nhau như CSDL, kho dữ liệu, file text,....
- Trích chọn dữ liệu (data selection): trích chọn những tập dữ liệu
cần được khai phá từ các tập dữ liệu lớn ban đầu (database, data
warehouses,…) theo một số tiêu chí nhất định.
- Biến đổi dữ liệu (data transformation): chuẩn hoá và làm mịn dữ
liệu, đưa dữ liệu về dạng thuận lợi nhất, 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.
- Khai phá dữ liệu (data mining): là giai đoạn thiết yếu, đây là bước
quan trọng và tốn nhiều thời gian nhất của tồn bộ q trình khám phá tri
thức, đây là bước áp dụng những kỹ thuật khai phá để khai thác, trích xuất
thơng tin có ích, những mẫu điển hình, những mối liên hệ đặc biệt có nhiều
giá trị, mang nhiều ý nghĩa từ dữ liệu.
- Đá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.

4


- Trình diễn dữ liệu (knowledge presentation): sử dụng các kỹ thuật
trình diễn và trực quan hố dữ liệu để biểu diễn tri thức khai phá được cho
người sử dụng.

Hình 1.1 Các bước trong q trình khám phá trí thức.

Khai phá dữ liệu là một lĩnh vực liên quan tới rất nhiều ngành học khác
như: hệ Cơ sở dữ liệu, thống kê, trực quan hoá. 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ô hoặc 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, cụ thể:
 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 hệ chuyên gia thường ở mức chất lượng cao
hơn nhiều so với các dữ liệu trong cơ sở dữ liệu và chúng thường chỉ
bao hàm được các trường hợp quan trọng. Ngoài ra, 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.
 So sánh 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 cơ sở dữ liệu chứa nhiều
nhiễu, dữ liệu không đầy đủ hoặc biến đổi liên tục. Trong khi đó,

5


phương pháp học máy chủ yếu được áp dụng trong các cơ sở dữ liệu
đầy đủ, ít biến động và tập dữ liệu không quá lớn.
 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 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 các cơ sở dữ liệu.
 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 sẵn có về lĩnh vực.
 Kết quả phân tích của thống kê 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.
Các kỹ thuật khai phá dữ liệu được chia làm 2 nhóm chính:
- Kỹ thuật khai phá dữ liệu mơ tả: mơ tả về các tính chất hoặc các
đặc tính chung của dữ liệu trong CSDL, các kỹ thuật này gồm có: phân
cụm (clustering), tóm tắt (sumerization), trực quan hố (visualization),

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),…
- Kỹ thuật khai phá dữ liệu dự đoán: đư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),…
Các bài tốn chính trong khai phá dữ liệu: 3 bài tốn thơng dụng và
phổ biến nhất là:
- Bài tốn phân lớp dữ liệu và hồi quy: Mục tiêu của phương pháp
phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá trình phân
lớp dữ liệu thường gồm 2 bước: xây dựng mơ hình và sử dụng mơ hình để
phân lớp.

6


+ Xây dựng mơ hình: một mơ hình sẽ được xây dựng trên việc phân
tích các mẫu dữ liệu sẵn có. Mỗi mẫu tương ứng với một lớp, được quyết
định bởi một thuộc tính gọi là thuộc tính lớp. Các mẫu dữ liệu này còn
được gọi là tập dữ liệu huấn luyện. Các nhãn lớp của tập dữ liệu huấn luyện
đều phải được xác định trước khi xây dựng mô hình, vì vậy phương pháp
này cịn được gọi là học có giám sát, khác với phân cụm dữ liệu là học
khơng có giám sát.
+ Sử dụng mơ hình để phân lớp dữ liệu: trước hết ta tính tốn độ
chính xác của mơ hình. Nếu độ chính xác là chấp nhận được, mơ hình sẽ
được sử dụng để dự đốn nhãn lớp cho các mẫu dữ liệu khác trong tương
lai.
Phương pháp hồi quy khác với phân lớp dữ liệu ở chỗ, hồi quy dùng
để dự đoán về các giá trị liên tục cịn phân lớp dữ liệu thì chỉ dùng để dự
đoán về các giá trị rời rạc.
- Bài toán phân cụm (clustering/segmentation): Mục tiêu chính của

phương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong
tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương
đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng.
Phân cụm dữ liệu là một ví dụ của phương pháp học không giám sát.
Không giống như phân lớp dữ liệu, phân cụm dữ liệu khơng địi hỏi phải
định nghĩa trước các mẫu dữ liệu huấn luỵện. Vì thế, có thể coi phân cụm
dữ liệu là một cách học bằng quan sát (learning by observation), trong khi
phân lớp dữ liệu là học bằng ví dụ (learning by example). Với phương pháp
này ta không thể biết kết quả các cụm thu được sẽ thế nào khi bắt đầu q
trình, do đó ln cần một chuyên gia về lĩnh vực đó để đánh giá các cụm
thu được. Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về
phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại

7


trang Web…Ngồi ra, phân cụm dữ liệu cịn có thể được sử dụng như một
bước tiền xử lý cho các thuật toán khai phá dữ liệu khác.
- Bài toán luật kết hợp: là dạng biểu diễn tri thức ở dạng khá đơn
giản, mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ
giữa các giá trị dữ liệu trong CSDL. Mẫu đầu ra của giải thuật khai phá dữ
liệu là tập luật kết hợp tìm được, ví dụ: “75% học viên học tớt mơn cấu trúc
dữ liệu và giải thuật thì học tốt môn lập trình hướng đối tượng, 30% sinh
viên học tốt cả môn cấu trúc dữ liệu và giải thuật và môn lập trình hướng
đối tượng”. Ở đây, “học tốt môn cấu trúc dữ liệu và giải thuật” là vế trái
của luật, “học tốt môn lập trình hướng đối tượng” là vế phải của luật, con
số 75% là độ tin cậy của luật, con số 30% là độ hỗ trợ của luật. Độ hỗ trợ
và độ tin cậy là 2 độ đo đặc trưng và quan trọng của luật. Chúng tương ứng
phản ánh sự hữu ích và sự chắc chắn của luật đã khám phá. Độ hỗ trợ 30%
có nghĩa là 30% của tất cả các học viên đã phân tích chỉ ra rằng học viên

đồng thời học tốt cả hai môn cấu trúc dữ liệu và giải thuật và môn lập trình
hướng đới tượng. Độ tin cậy 75% có nghĩa là 75% các học viên học tốt
môn cấu trúc dữ liệu và giải tḥt cũng học tớt mơn lập trình hướng đới
tượng.
Ngồi ra cịn một số bài tốn khác như:
- Bài tốn khai phá chuỗi theo thời gian (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
- Bài tốn mơ tả khái niệm (concept description & summarization):
tập trung vào việc 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ả khái niệm,…
Những công cụ khai phá dữ liệu có thể dự đốn những xu hướng
trong tương lai và do đó cho phép doanh nghiệp ra những quyết định kịp
thời được định hướng bởi tri thức mà khai phá dữ liệu mang lại.

8


Những ứng dụng điển hình của khai phá dữ liệu:
 Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis and decision
support)
 Text mining & Webmining: phân lớp văn bản và các trang Web, tóm
tắt văn bản, tìm kiếm thơng tin,…
 Tin – sinh: tìm kiếm, đối sánh các quan hệ gen và thông tin di
truyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền,…
 Điều trị y học: (medical treatment): mối liên hệ giữa triệu chứng,
chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc men,
…)
 Tài chính và thị trường chứng khốn (finance & stock market): phân
tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị

trường chứng khoán,…
Những ứng dụng thực tế:
+ Ngành bảo hiểm y tế Australia đã dựa vào việc chẩn đoán bệnh
trong y tế dựa trên kết quả xét nghiệm và đã phát hiện ra nhiều trường hợp
xét nghiệm không hợp lý, tiết kiệm được 1 triệu USD/năm.
+ Trang Web mua bán qua mạng Amazon.com cũng tăng doanh thu
nhờ áp dụng khái phá dữ liệu trong việc phân tích sở thích mua bán của
khách hàng.
+ Bitish Telecom đã phát hiện ra những nhóm người thường xuyên
gọi cho nhau bằng mobile và thu lợi hàng triệu USD.

1.2 Những thách thức trong Khai phá dữ liệu
• CSDL có kích thước lớn: Các CSDL có tới hàng trăm bảng, mỗi
bảng hàng trăm trường, số lượng bản ghi cỡ hàng triệu, kích thước
các CSDL dạng này ở mức gigabyte.

9


• Số chiều dữ liệu nhiều: Một vấn đề rất khó khăn khi giải quyết các
bài tốn KPDL là số chiều của dữ liệu rất lớn (số thuộc tính, số
biến). Việc gia tăng số chiều khiến các thuật tốn tìm kiếm trong
khơng gian tìm kiếm nếu khơng được mở rộng thì rất khó đạt được
hiệu quả.
• Over-fitting: Với các hệ thống KPDL theo mơ hình học có giám sát,
tức là học quy nạp thì rất có thể diễn ra tình trạng hệ thống học vẹt,
trên tập dữ liệu huấn luyện thì kết quả rất tốt, nhưng trên tập kiểm
tra thì kết quả rất tồi. Đây là một vấn đề mang tính bản chất cố hữu
của các hệ thống học máy.
• Sự thay đổi dữ liệu và tri thức: Sự thay đổi nhanh chóng của dữ

liệu có thể làm cho các hệ thống KPDL đã được xây dựng trước đó
hoạt động khơng chính xác. Các thuộc tính đầu vào của các hệ
KPDL trong q trình thực tế, có thể bị chỉnh sửa, loại bỏ….
• Dữ liệu nhiễu, dữ liệu khơng đầy đủ: Vấn đề xử lý dữ liệu không
đầy đủ và lẫn nhiễu đã trở thành một phần trong toàn bộ quá trình
KPDL. Vấn đề này càng trở nên nghiêm trọng khi dữ liệu của các
ứng dụng thực tế có tỷ lệ lỗi lên đến 20%.
• Mối quan hệ phức tạp giữa các lĩnh vực: Cấu trúc hình cây và
thuộc tính hoặc giá trị, mối quan hệ giữa các thuộc tính, thuộc tính
ẩn, có tính trừu tượng cao… địi hỏi phải có những thuật tốn đủ
mạnh để giải quyết.
• Khả năng giải thích: Một số hệ thống KPDL yêu cầu tính giải thích
những tri thức rút được từ dữ liệu. Những tri thức này được mô tả
dưới dạng các tập luật, hoặc mơ hình đồ thị, ngơn ngữ tự nhiên hay
sử dụng các kỹ thuật trực quan hoá dữ liệu và tri thức….

10


• Khả năng tích hợp với các hệ thống khác: Hệ thống để đạt được
hiệu quả và khả năng cao nhất thì phải được tích hợp với các hệ
thống khác, ví dụ như các hệ sensor đầu thu dữ liệu, các cơng cụ
bảng tính, trực quan dữ liệu.

1.3 Những vấn đề được chú trọng trong Khai phá dữ liệu
KPDL là một lĩnh vực mới, do đó đang cịn rất nhiều vấn đề chưa đuợc
nghiên cứu một cách trọn vẹn. Sau đây là một số hướng nghiên cứu đã và
đang thu hút được sự chú ý của các nhà tin học.
• OLAM (OnLine Analytical Mining) - Sự tích hợp giữa CSDL, kho
dữ liệu, và KPDL. Hiện nay một số hệ quản trị CSDL như Oracle,

MS SQL Server, DB2 đã tích hợp tính năng xây dựng kho dữ liệu và
phân tích trực tuyến (OLAP). Những nhà nghiên cứu trong lĩnh vực
CSDL mong muốn có một sự tích hợp giữa CSDL, kho dữ liệu và
KPDL.
• Khám phá được nhiều dạng tri thức khác nhau từ nhiều kiểu dữ liệu.
• Tính hiệu quả, tính chính xác, độ phức tạp tính tốn, khả năng mở
rộng và tích hợp, xử lý nhiễu và dữ liệu khơng đầy đủ, tính hữu
dụng (ý nghĩa) của tri thức.
• Kết hợp KPDL với tri thức cơ sở.
• Vấn đề song song hóa và phân tán q trình KPDL.
• Ngơn ngữ truy vấn trong KPDL (Data Mining Query Language –
DMQL): cung cấp cho người sử dụng một ngôn ngữ hỏi thuận tiện
tương tự như SQL đối với CSDL quan hệ.
• Biểu diễn và trực quan hóa tri thức khai phá được sao cho gần gũi
với người sử dụng. Tri thức có thể biểu diễn đa chiều, đa tầng để sử
dụng tri thức hiệu quả hơn.

11


CHƯƠNG II: PHÂN LỚP DỮ LIỆU
2.1 Bài toán phân lớp
2.1.1 Phát biểu bài toán
Cho một CSDL D = {t1,t2,…,tn}, một tập hợp các lớp C= {C 1,…,Cm}, bài
toán phân lớp được phát biểu như sau: Xác định ánh xạ f : D → C sao cho
với mỗi ti được quy về một lớp Cj.
Về mặt thực chất, bài toán phân lớp chính là chia D thành các lớp tương
đương.

2.1.2 Một số ứng dụng của bài toán phân lớp

Bài toán phân lớp được ứng dụng trong hầu hết các lĩnh vực và đang là một
trong những chủ đề mang tính thời sự của khoa học KPDL, một số lĩnh vực
và ứng dụng đã có những kết quả đáng kể:
Lĩnh vực
Sinh học tính
tốn

Ứng dụng
Phân tích chuỗi

Y học

Xác định ung thư

Phân loại văn

Tìm kiếm thơng

bản

tin trên Internet

Tự động hố

Kiểm tra mẫu các

cơng nghiệp

sản phẩm


Nhận dạng
tiếng nói

Các thao tác tự
động (bán vé máy
bay, đặt chỗ…)

Đầu vào
Chuỗi AND.

Phân lớp
Các dạng gen

Chuỗi Protein

protein đã biết
Kết luận có ung thư

Hình ảnh tế bào
Dữ liệu văn bản
Ảnh cường độ
sáng của các sản

hay khơng?
Phân loại văn bản
Sản phẩm có bị lỗi
hay khơng?

phẩm
Tín hiệu dạng

số

Các từ, câu lệnh

Bảng 2.1 Một số ứng dụng của bài toán phân lớp

12


2.2 Các kỹ thuật phân lớp
2.2.1 Kỹ thuật sử dụng khoảng cách
a) Tiếp cận phân lớp bằng khoảng cách
Kỹ thuật sử dụng 'khoảng cách' để phân lớp mẫu được phát triển từ
rất sớm. Ý tưởng của kỹ thuật này khá đơn giản:
- Đặt mẫu kiểm tra vào lớp mà 'khoảng cách' giữa mẫu thử và lớp đó
là 'gần nhất'.
- Kỹ thuật này đòi hỏi phải định nghĩa khái niệm và cách tính khoảng
cách giữa một phần tử và một lớp.
- Mỗi một lớp sẽ được mô tả bởi:
o Trọng tâm của lớp.
o Medoid: Representative point.
o Các điểm riêng lẻ.
b) Thuật toán k người láng giềng gần nhất (K - Means)
Thuật toán k người láng giềng gần nhất, mỗi một mẫu với n thuộc
tính sẽ được mơ tả bởi một vectơ n chiều, và như vậy mỗi một mẫu sẽ được
biểu diễn là một điểm trong không gian mẫu n chiều, tất cả các mẫu dùng
cho việc huấn luyện đều được lưu trữ và biểu diễn trong không gian mẫu.
Thuật toán K – Means do J.MacQueen giới thiệu năm 1967 trong tài
liệu “J. Some Methods for Classification and Analysis of Multivariate
Observations”.

Với một mẫu cần phân lớp, thuật toán sẽ thực hiện tìm kiếm trong
khơng gian mẫu k mẫu có 'khoảng cách' gần với mẫu kiểm tra nhất.
Khoảng cách giữa các mẫu được tính theo cách xác định khoảng cách trong
khơng gian Euclid n chiều. Khoảng cách giữa hai điểm X = (x 1, x2, …, xn)
và Y = (y1, y2, …, yn) trong không gian Enclid n chiều được định nghĩa:

13


d (X,Y) = d ( X , Y ) =

n

∑ (x
i =1

i

− yi ) 2

(2-1)

Mẫu kiểm tra sẽ thuộc vào lớp thơng dụng nhất trong số k mẫu có khoảng
cách gần nhất với mẫu kiểm tra.
Phân lớp/nhóm n đối tượng thành k lớp dựa trên đặc tính/thuộc tính
của đối tượng (k ≤ n nguyên, dương).
Mỗi đối tượng được coi là 1 véc tơ m chiều (m - số thuộc tính của
đối tượng). Việc phân lớp được thực hiện dựa trên khoảng cách Euclidean
nhỏ nhất giữa đối tượng đến phần tử trung tâm của các lớp. Phần tử trung
tâm của lớp được xác định bằng giá trị trung bình các phần tử trong lớp.

Cụ thể khoảng cách Euclidean được tính như sau:
• A = {a1, a2 .... an} - Tập n đối tượng
• aj=(xj1, xj2,... xjm) j=1..n - phần tử thứ j cần phân lớp
• xjs s=1..m - thuộc tính của đối tượng
• ci=(ci1, ci2,... cim) i=1..k - phần tử trung tâm lớp i
• cjs s=1..m - thuộc tính của phần tử trung tâm i
• Khoảng cách Euclidean giữa mỗi đối tượng aj đến phần tử trung tâm
lớp i ci
δ ij =

m

∑ (x
s =1

js

− cis ) 2

(2-2)

Sau đó tính lại toạ đợ tâm của lớp như sau:
• Clusteri = {a1, a2 .... at} – Nhóm thứ i
• i=1..k, k số cluster
• j= 1..m, m số thuộc tính
• t - số phần tử hiện có của nhóm thứ i
• xsj - thuộc tính thứ j của phần tử s s=1..t
• cij - toạ độ thứ j của phần tử trung tâm nhóm i;

14



t

cij =

∑x
s =1

sj

(2-3)

t

15


- Khởi tạo ci i=1..k ngẫu nhiên
- Lặp
B1: Xác định khoảng cách Euclidean δ giữa aj j=1..n và ci i=1..k
theo cơng thức (2-2).
B2: Nhóm đối tượng vào cluster dựa δ nhỏ nhất.
B3: Tính ci của mỗi nhóm theo cơng thức (2-3).
- Đến khi không còn đối tượng nào di chuyển từ lớp này sang lớp
khác.
Bảng 2.2 Thuật toán k - means
c) Đánh giá ưu nhược điểm
Nhược điểm
 Việc khởi tạo phần tử trung tâm của lớp ban đầu ảnh hưởng đến sự

phân chia đối tượng vào lớp trong trường hợp dữ liệu không lớn.
 Số lớp k luôn phải được xác định trước.
 Không xác định được rõ ràng vùng của lớp, cùng 1 đối tượng, nó có
thể được đưa vào nhóm này hoặc nhóm khác khi dung lượng dữ liệu
thay đổi.
 Điều kiện khởi tạo có ảnh hưởng lớn đến kết quả. Điều kiện khởi tạo
khác nhau có thể cho ra kết quả phân vùng nhóm khác nhau.
 Khơng giống như kỹ thuật học cây quyết định hoặc mạng noron, kỹ
thuật khoảng cách coi các thuộc tính của đối tượng đều có trọng số
như nhau, điều này làm giảm hiệu quả phân lớp của thuật tốn nếu
bài tốn có số lượng thuộc tính lớn, khơng thực hiện được phân lớp
theo những tính chất quan trọng của đối tượng trước….

16


2.2.2 Kỹ thuật phân lớp theo tiếp cận thống kê xác xuất
a) Lý thuyết xác xuất thống kê
Để cho tiện theo dõi, chúng tơi sẽ trình bày tóm tắt lại các khái niệm chính
trong lý thuyết xác xuất
Định nghĩa 2.1 Xác suất của biến cố A được tính với điều kiện biến cố B
đã xảy ra gọi là xác suất có điều kiện của A, ký hiệu là P(A/B)
P( A / B) =

P( A ∩ B)
P( B)

(2-4)

Nếu A và B đều là các biến cố có thể (nghĩa là P(A) ≠ 0 và P(B) ≠ 0)

P ( A ∩ B) = P ( A / B ).P( B ) = P ( B / A).P ( A)

(2-5)

Các tiền đề của lý thuyết xác xuất:
Để định nghĩa một cách đúng đắn ngữ nghĩa của việc trình bày lý thuyết
xác suất, chúng ta cần mô tả xác suất như thế nào và sự ảnh hưởng lẫn nhau
giữa các mối quan hệ logic. Xác suất thường sử dụng một tập các tiên đề
mà chúng ràng buộc các chỉ định xác suất. Các tiên đề sau đây là đủ trong
thực tế:
• Giá trị của các xác suất đều nằm trong khoảng từ 0 đến 1. 0≤P(A)≤1.
• Các mục tiêu tất yếu đúng có xác suất là 1, các mục tiêu tất yếu sai
có xác suất là 0.

P(True)=1

P(False)=0

• Xác suất của các sự kiện tách rời được tính theo cơng thức:
P(A∪B) = P(A) + P(B) – P(A ∩ B)
Sự phân bố xác suất chung (The joint probability distribution)
Một mơ hình xác suất của một lĩnh vực gồm một tập hợp các biến
ngẫu nhiên mà chúng có thể lấy các giá trị đặc biệt với xác suất nào đó. Đặt
các biến là X1... Xn . Một sự kiện nguyên tử là việc phân bổ các giá trị riêng
biệt tới tất cả các biến, nói cách khác là xác định trạng thái cụ thể của một
vùng.

17



Sự phân bố xác suất chung P(X1 ,….,Xn) gán xác suất cho các sự kiện
có thể. P(Xi) là một vectơ có kích thước là 1 đối với khơng gian xác suất
các giá trị có thể của biến X i. Khi đó một bảng có kích thước n ơ với giá trị
trong mỗi ô là xác suất của một trạng thái xác định.
Ví dụ: Đây là sự phân bố xác suất chung cho vùng y học chung bao gồm 2
biến logic Toothache và Cavitry
Cavitry
¬ Cavitry

Toothache ¬ Toothache
0.04
0.06
0.01
0.89

Bởi vì các sự kiện xác suất là loại trừ lẫn nhau, nên khả năng xảy ra
các sự kiện trùng hợp là khơng có. Bởi vì chúng là một tập tồn diện, do
vậy việc tách rời của chúng là đúng. Tổng xác suất của các sự kiện bằng 1.
Theo cách này sự phân bố xác suất có thể được sử dụng để tính tốn bất kỳ
trạng thái xác suất nào của vùng mà chúng ta quan tâm bằng cách tính tổng
xác suất các sự kiện. Tính tổng theo 1 dịng hoặc theo cột sẽ cho xác suất
khơng điều kiện của 1 biến.
Ví dụ:

P(Caviry)= 0.06+0.04= 0.10
P(Caviry ∨ Toothache) = 0.04 + 0.01 + 0.06 = 0.11

Chúng ta có thể đưa ra những suy luận về 1 mục tiêu chưa biết A, từ mục
tiêu B đã cho bằng cách tính P(A|B). Xác suất có điều kiện có thể được tìm
theo cơng thức sau:

P (Cavty | Toothache) =

P (Cavry ∧ Toothache)
0.04
=
= 0.08
P (Toothache)
0.04 + 0.01

b) Thuật toán phân lớp Bayesian
Như đã giải thích, điểm mấu chốt của các thuật toán phân lớp là phải
phân cụm các phần tử với nhau. Điều đó có nghĩa là xuất phát từ một tập
hợp các điểm, thuật toán sẽ cố gắng đưa ra một tập các tập con có thể phủ

18


kín tồn bộ khơng gian (hay cịn gọi là phân hoạch) sao cho việc tạo các tập
con càng đơn giản càng tốt.
Một vấn đề đặt ra là làm thế nào để xác định một đối tượng thuộc
vào một lớp nào đó khi chỉ kiểm tra vectơ thuộc tính của nó là rất khó.
Thực tế là, sự khác biệt giữa vectơ thuộc tính của đối tượng và vectơ thuộc
tính của lớp để biết được đối tượng thuộc lớp nào, sự khác biệt này khiến
cho việc có được một biến cố chắc chắn là rất khó khăn. Đây chính là điểm
giải thích tại sao các phương pháp tiếp cận theo hướng thống kê lại được sử
dụng rộng rãi.
Thuật toán phân lớp Bayesian là một trong những thuật tốn phân
lớp điển hình nhất trong khai thác dữ liệu và tri thức. Ý tưởng chính của
thuật tốn là tính xác suất có điều kiện của sự kiện c thuộc lớp x theo sự
phân loại dựa trên xác suất có trước của sự kiện c thuộc lớp x trong điều

kiện T
p (c | x,τ ) = ∑ p (c | x, T ) p (T | x)

(2-6)

Gọi V là tập tất cả các từ vựng.
Giả sử có N lớp tài liệu: C1, C2,…,Cn
Mỗi lớp Ci có xác suất p(Ci) và ngưỡng CtgTshi.
Gọi p(C| Doc) là xác suất để tài liệu Doc thuộc lớp C.
Cho một lớp C và một tài liệu Doc, nếu xác suất p(C|Doc) tính được
lớn hơn hoặc bằng giá trị ngưỡng của C thì tài liệu Doc sẽ thuộc vào lớp C.
Tài liệu Doc được biểu diễn như một vectơ có kích thước là số từ
khoá trong tài liệu. Mỗi thành phần chứa một từ trong tài liệu và tần xuất
xuất hiện của từ đó trong tài liệu. Thuật tốn được thực hiện trên tập từ
vựng V, vectơ biểu diễn tài liệu Doc và các tài liệu có sẵn trong lớp, tính
tốn p(C|Doc) và quyết định tài liệu Doc sẽ thuộc lớp nào.
Xác suất p(C | DOC) được tính theo cơng thức sau:

19


P (C ) *
P(C | Doc) =

∏ P( F

j

| C)


TF ( F j , Doc )

F j ∈Doc
n

∑ P(Ci ) *
i =1

∏ ( P( Fl | C ))TF ( Fl ,Doc)

(2-7)

Fl∈Doc

Với:
P( Fj | C ) =

1 + TF ( F j , C )
n

| V | + ∑ TF ( F j | Ci )

(2-8)

i =1

Trong đó:
|V| : số lượng các từ có trong tập V
Fj : từ khố thứ j trong tập từ vựng
TF(Fj | Doc) : Tần xuất của từ Fj trong tài liệu Doc (gồm cả từ đồng

nghĩa)
TF(Fj | C) : Tần xuất của từ Fj trong lớp C (số lần Fj xuất hiện trong
tất cả các tài liệu thuôc lớp C)
P(Fj | C) : Xác suất có điều kiện để từ F j xuất hiện trong tài liệu của
lớp C
Cơng thức F(Fi | C) được tính sử dụng ước lượng xác suất Laplace.
Sở dĩ có số 1 trên tử số của công thức này để tránh trường hợp tần suất của
từ Fi trong lớp C bằng 0, khi Fi không xuất hiện trong lớp C.
Để giảm sự phức tạp trong tính tốn và giảm thời gian tính tốn,
chúng ta có nhận xét rằng, khơng phải tài liệu Doc đã cho đều chứa tất cả
các từ trong tập từ vựng V. Do đó, TF(F i | DOC) = 0 khi từ F i thuộc V
nhưng không thuộc tài liệu Doc, nên ta có (P(F j | C))TF(Fj, Doc) = 1. Như vậy
công thức (2-7) sẽ được viết lại như sau:
(2-9)
Với:

20


Như vậy trong q trình phân lớp khơng dựa vào toàn bộ tập từ vựng
mà chỉ dựa vào các từ khóa xuất hiện trong tài liệu Doc.
c) Mạng tin cậy Bayesian
Trong phần trên, chúng ta đã thấy rằng sự phân bổ xác suất có thể
giải quyết trả lời bất kỳ câu hỏi nào về vùng, nhưng có thể trở nên rất phức
tạp khi số lượng các biến cố quá nhiều. Hơn nữa, việc xác định rõ xác suất
nguyên tử là khơng thực tế và rất khó khăn ngoại trừ một số lượng lớn các
giá trị dữ liệu được tập hợp bởi các ước lượng thống kê.
Ngoài ra, trong nội dung luật Bayes, mối quan hệ độc lập có điều kiện
giữa các biến cố có thể làm đơn giản việc tính toán của các kết quả và giảm
phần lớn số lượng các giả thuyết xác suất cần được chỉ rõ. Chúng ta sử

dụng một cấu trúc dữ liệu gọi là mạng tin cậy (Belief network) để diễn tả
sự phụ thuộc giữa các biến và đạt được sự đặc tả ngắn gọn sự phân bổ xác
suất. Một mạng tin cậy là một đồ thị với các quy ước sau:
• Một tập các biến ngẫu nhiên tạo nên các nút trên mạng.
• Một tập các đường liên kết trực tiếp hoặc các mũi tên nối kết giữa
các cặp nút. Theo nghĩa trực diện (nghĩa đen) một đường nối từ nút
X đến nút Y nghĩa là X ảnh hưởng trực tiếp đến Y.
• Mỗi nút có 1 bảng xác suất có điều kiện xác định số lượng những
kết quả mà nút cha gửi về. Những nút cha của 1 nút là những nút có
mũi tên chỉ đến nút đó.
• Đồ thị khơng có chu trình.
Điều đó thường dễ dàng cho việc quyết định những mối quan hệ nào
phụ thuộc trực tiếp trong các vùng thực tế, nó dễ dàng hơn nhiều so với bản
thân nó. Khi Topo của mạng tin cậy đã được chỉ rõ, chúng ta chỉ cần đặc tả
điều kiện xác suất cho các nút trong sự phụ thuộc trực tiếp, và sử dụng
chúng để tính bất kỳ giá trị xác suất khác. Topo của mạng có thể được coi

21


là tri thức cơ bản trừu tượng chứa đựng các ý tưởng đa dạng khác nhau, vì
nó diễn tả cấu trúc chung của các thủ tục nguyên do trong vùng đúng hơn
bất kỳ chi tiết nào của phần lớn các cá thể.
Tuy nhiên, không chỉ xác định topo của mạng tin cậy, chúng ta cần phải
đặc tả bảng điều kiện xác suất (ký hiệu là CPT - Conditional Probability
Table) cho mỗi nút trên mạng. Mỗi một dòng trong bảng chứa giá trị điều
kiện xác suất của mỗi nút với những điều kiện có thể xảy ra. Một điều kiện
có thể được mơ tả bằng giá trị của nút cha. Ví dụ, bảng điều kiện xác suất
cho biến chuông báo động ngẫu nhiên khi có trộm hoặc động đất có thể
được mơ tả dưới đây:

Burg
lary
True
True
Fals
e
Fals
e

P(Alarm|Burglary,

Earth
qake
True
False

Earthqake)
True
0.950
0.950

False
0.050
0.050

True

0.290

0.710


False

0.001

0.999

Mỗi dịng trong bảng phải có tổng bằng 1, bởi vì mỗi mục phải diễn
đạt hết các khả năng xảy ra. Ở đây chỉ có một trong hai trong mỗi dịng mơ
tả độc lập các sự kiện. Một cách tổng quát, một bảng Boolean với các giá
trị logic với n giá trị Boolean chứa đựng 2 n các biến cố độc lập. Một nút
khơng có cha chỉ có 1 dịng biểu diễn trật tự xác suất của các biến cố.
Ý nghĩa hình học của mạng tin cậy
Có hai cách để hiểu ý nghĩa của mạng tin cậy. Thứ nhất, xem mạng
như là sự trình bày sự phân bố xác suất. Thứ hai, xem mạng như một minh
hoạ tập hợp các trạng thái tình thái độc lập. Cả hai cách nhìn là tương
đương, nhưng cách thứ nhất đưa đến sự hướng dẫn dễ hiểu hơn về cấu trúc

22


mạng, cịn cách thứ hai thì hướng dẫn sâu hơn về cách thiết kế các thủ tục
ảnh hưởng.
Theo quan điểm xem mạng là sự trình bày sự phân bố xác xuất: Một
mạng tin cậy cung cấp một mơ tả hồn chỉnh của một vùng. Mỗi mục trong
bảng phân bố xác suất có thể được tính tốn từ các thơng tin ở trong mạng.
Mỗi một mục chung trong bảng phân bố chung là xác suất sự kết nối đặc
biệt tới mỗi biến, như là: P(X1=x1 Λ….Λ Xn=xn). Chúng ta sử dụng ký hiệu
P(x1,…,xn) để rút ngắn cho ký hiệu trên. Giá trị xác suất của các mục vào
được tính bởi cơng thức:

n

P ( x1 ,...., xn ) = ∏ P ( xi | Parents( X i ))
i =1

(2-10)

Như vậy, mỗi mục vào trong mạng được đại diện bởi một giá trị
thích hợp của bảng phân bố xác suất trong mạng tin cậy. Bảng CPT, do đó,
cung cấp các phân tích trình diễn cho mạng.
Một phương pháp xây dựng mạng tin cậy
Đẳng thức (2-10) xác định ý nghĩa của mạng tin cậy. Tuy nhiên, nó
khơng giải thích cách xây dựng mạng tin cậy, do đó sự phân bố xác suất
cuối cùng là một sự biểu diễn khái niệm vùng tốt nhất. Bây giờ, chúng ta
xem xét đẳng thức 2-10 và chỉ ra mối quan hệ độc lập có điều kiện chắc
chắn có thể được sử dụng cho các kỹ sư xây dựng trong mơ hình mạng.
Đầu tiên, chúng ta viết lại các xác suất điều kiện sử dụng định nghĩa xác
suất điều kiện:
P(x1,…,xn) = P(xn | xn-1 ,…,x1) P(xn-1,….,x1)

(2-11)

Tiếp theo chúng ta lặp lại các thủ tục, giảm dần số lượng các biến cố xác
suất, cuối cùng lấy tích của chúng:
P(x1,..,xn) =P(xn|xn-1,…,x1) P(xn-1|xn-2,…,x1)… P(x2|x1) P(x1)
n

=

∏ P( x

i =1

i

| xi −1 ,..., x1 )

(2-12)

23


So sánh với đẳng thức (2-10) chúng ta thấy rằng sự đặc tả trong các
nút trong mạng là tương đương, do vậy ta có cơng thức:
P(Xi | Xi-1 ,…, X1) = P(Xi / Parents (Xi))

(2-13)

Trong đó: Parents(Xi) ⊆ {xi-1,….,x1}. Điều kiện cuối cùng này dễ
dàng được thoả mãn bởi việc gán nhãn thứ tự bất kỳ phù hợp với bộ phận
sắp đặt ẩn trong cấu trúc đồ thị.
Đẳng thức trên chỉ ra rằng mạng tin cậy trình diễn đúng vùng chỉ khi
mỗi nút biểu diễn độc lập tiền nhiệm theo trật tự của nút đưa đến bởi cha
nó. Từ đây, để xây dựng một mạng tin cậy với cấu trúc sửa lỗi cho vùng,
chúng ta cần phải chọn các nút cha cho mỗi nút có đặc tính của nút này.
Bằng trực giác, các nút cha của nút Xi phải chứa tất cả các nút X 1 ,…. , Xi-1
có ảnh hưởng trực tiếp đến Xi.
Thủ tục tổng quát cho việc xây dựng mạng được tiến hành như sau:
1. Chọn tập các biến có liên quan Xi để mơ tả miền.
2. Chọn thứ tự cho các biến.
3. Trong khi còn các biến (duyệt từ đầu đến hết) thì:

(a) Lấy một biến Xi và thêm vào 1 nút vào mạng.
(b) Đặt Parents(Xi) tới tập tối thiểu của các nút đã có ở trên mạng
với điều kiện đặc tính độc lập thống kê.
(c) Định nghĩa bằng điều kiện xác suất cho nút Xi.
Bởi vì mỗi nút chỉ kết nối với những nút trước đó, phương pháp này
bảo đảm rằng mạng khơng có hiện tượng nối vịng. Một đặc tính quan
trọng nữa của mạng tin cậy là không bao hàm việc dư thừa các giá trị xác
suất, nghĩa rằng không thể xảy ra cho hệ tri thức tạo ra mạng tin cậy mà
xâm phạm các tiên đề xác suất.

24


Bảng mơ tả điều kiện có thể
Thậm chí với số nhỏ thực sự các nút cha, một bảng điều kiện có thể
của một nút vẫn yêu cầu rất nhiều số. Điền vào trong bảng sẽ xuất hiện các
yêu cầu sắp xếp tốt thời gian và cũng nhiều các kỹ năng với tất cả các
trường hợp điều kiện có thể. Thực tế, đây là chuỗi sự kiện trường hợp xấu
nhất nơi quan hệ giữa các nút cha và nút con là hồn tồn độc đốn. Thơng
thường, như các quan hệ dẫn tới 1 nút của vài trường hợp có sự phù hợp
với phân bố tiêu chuẩn, nó làm thoả mãn vài trường hợp mẫu. Trong những
trường hợp này, để hoàn thành bảng cần phải đặc tả tên của các mẫu và có
lẽ cung cấp thêm một vài tham số.
Ví dụ đơn giản nhất là các nút tiền định. Một nút tiền định là nút có
giá trị được xác định chính xác bởi giá trị của các nút cha, những giá trị
chắc chắn. Quan hệ có thể là một logic - Ví dụ, quan hệ giữa các nút cha
Canadian, US, Mexican và nút con NorthAmerican là đơn nơi con tách rời
các cha. Quan hệ cũng có thể là số - Ví dụ, nếu các nút cha là giá của mơ
hình cá biệt của ô tô ở các nhà bán buôn, và nút con là giá của người tiêu
dùng cuối cùng phải trả, thì nút con là giá trị nhỏ nhất của các giá trị nút

cha; hoặc nếu các nút cha dẫn đến (các con sông) các hồ chứa từ các hồ
khác và con là sự thay đổi của các loại hồ, thế thì con là sự khác nhau giữa
việc chảy đến và chảy đi của các nút cha.
Quan hệ không chắc chắn thường được đặc trưng bởi cách gọi là
quan hệ logic (noisy). Ví dụ chuẩn là cách gọi là quan hệ noisy-OR với đặc
tính chung của Logic OR. Mơ hình noisy-OR thêm vài tính khơng chắc
chắn vào xấp xỉ logic chặt chẽ này. Mơ hình tạo ra ba chấp nhận đúng. Thứ
nhất, nó chấp nhận rằng mỗi mệnh đề có một sự thay đổi độc lập với các
mệnh đề tác động. Thứ hai, nó chấp nhận rằng tất cả các mệnh đề có thể
được liệt kê. Thứ ba, nó chấp nhận rằng những hạn chế thậm chí xảy ra.

25


×