Tải bản đầy đủ (.pdf) (14 trang)

Phương pháp khai phá dữ liệu bằng cây quyết định

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 (454.66 KB, 14 trang )

1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG






Phạm Duy An


PHƯƠNG PHÁP KHAI PHÁ DỮ LIỆU
BẰNG CÂY QUYẾT ĐỊNH

Chuyên ngành : Truyền dữ liệu và Mạng máy tính
Mã số : 60.48.15


TÓM TẮT LUẬN VĂN THẠC SĨ


HÀ NỘI - 2012
2
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG



Người hướng dẫn khoa học: PGS.TS VŨ ĐỨC THI




Phản biện 1: …………………………………………
Phản biện 2: …………………………………………



Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ
tại Học viện Công nghệ Bưu chính Viễn thông.
Vào lúc: giờ ngày tháng năm 2012

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



26
KẾT LUẬN
Luận văn “ Phương pháp khai phá dữ liệu bằng cây
quyết định” đã trình bày một số kết quả sau đây:
Những nghiên cứu về khai phá dữ liệu và ứng dụng
trong nhiều lĩnh vực khác nhau nhằm khai thác nguồn dữ liệu
phong phú được lưu trữ trong các hệ thống thông tin. Khai phá
dữ liệu cũng được áp dụng nhiều trong việc tư vấn, dự báo , đặc
biệt là những ứng dụng cho tư vấn trong lĩnh vực giáo dục.
Khai phá dữ liệu có rất nhiều hướng tiếp cận (nhiều
nhiệm vụ, mục đích), nhưng có 3 nhiệm vụ phổ biến là: Luật
kết hợp (Association rules), Phân cụm (Clustering) và Phân loại
(Classification). Trong đó nhiệm vụ phát hiện và phân loại là
một trong những nhiệm vụ được quan tâm, nghiên cứu nhiều
nhất.

Tìm hiểu được những ưu điểm cũng như những khó
khăn trong việc đào tạo theo tín chỉ, sử dụng phần mềm mã
nguồn mở Weka cho việc sinh ra các luật kết hợp nhằm phục
vụ việc phân loại. Xây dựng một hệ thống tư vấn môn học cho
sinh viên nhằm trợ giúp sinh viên định hướng được trong việc
lựa chọn môn học,chuyên ngành học phù hợp.
Hướng phát triển tiếp theo của luận văn:
Để quá trình đào tạo theo tín chỉ hoạt động có hiệu quả,
cần thiết phải xây dựng một hệ thống hoàn chỉnh hỗ trợ cả quá
trình đào tạo (xây dựng thêm nhiều chức năng: sắp xếp lịch
học, thời khóa biểu, đăng ký học trực tuyến,…)
Hiện nay, dữ liệu được lưu trữ ngày một tăng, để ứng dụng khai
phá dữ liệu vào các bài toán này cần tiếp tục nghiên cứu các
phương pháp xử lý cho bài toán với dữ liệu lớn. xem xét nghiên
cứu thêm một số ứng dụng khác của Khai phá dữ liệu.

3
MỞ ĐẦU
Trong thời đại ngày nay, yếu tố quyết định thành công
trong mọi lĩnh vực luôn gắn liền với việc nắm bắt, thống kê và
khai thác thông tin hiệu quả. Dữ liệu ngày càng lớn nên việc
tìm ra những thông tin tiềm ẩn trong chúng càng khó khăn hơn.
Khám phá tri thức là một lĩnh vực nghiên cứu mới, mở
ra một thời kỳ trong việc tìm ra thông tin hữu ích. Nhiệm vụ cơ
bản của lĩnh vực này là khám phá tri thức trong cơ sở dữ liệu,
khám phá dữ liệu trong cơ sở dữ liệu không phải là một hệ
thống phân tích tự động mà là một quá trình tương tác thường
xuyên giữa con người với cơ sở dữ liệu được sự trợ giúp của
nhiều phương pháp và công cụ tin học.
Nội dung luận văn tôi xin trình bày bao gồm ba chương:

Chương một giới thiệu chung về công nghệ khám phá
trí thức, các khái niệm cơ bản, ý nghĩa và tầm quan trọng của
việc khám phá tri thức.
Chương hai trình bày các phương pháp khai phá dữ liệu
bằng cây quyết định, khái niệm cơ bản về cây quyết định, các
thuật toán ID3, C4.5, và rút gọn các luật quyết định.
Chương ba là xây dựng chương trình thử nghiệm cho
bài toán Tư vấn chọn chuyên ngành phù hợp với khả năng sinh
viên tại Đai học Phương Đông.
Tôi xin bày tỏ sự biết ơn sâu sắc của mình tới PGS.TS
Vũ Đức Thi người đã trực tiếp hướng dẫn, chỉ bảo tận tình,
cung cấp tài liệu và phương pháp luận nghiên cứu khoa học để
tôi hoàn thành bản luận văn này. Tôi xin gửi lời cảm ơn tới các
thầy cô giáo đã dạy dỗ trong quá trình tôi theo học tại Học viện.
Trong suốt quá trình nghiên cứu, mặc dù đã hết sức cố
gắng nhưng chắc chắn luận văn không tránh khỏi những thiếu
sót, rất mong quý thầy cô góp ý để luận văn được hoàn chỉnh
hơn.


4
Chương 1- GIỚI THIỆU CHUNG VỀ CÔNG NGHỆ
KHÁM PHÁ TRI THỨC
1.1. Phát hiện tri thức và khai phá dữ liệu.
Trong thời đại bùng nổ công nghệ thông tin hiện nay, và
các cộng nghệ lưu trữ dữ liệu ngày càng phát triển tạo điều kiện
cho các đơn vị thu thập dữ liệu tốt hơn. Đặc biệt trong các lĩnh
vực kinh doanh và quản lý, các doanh nghiệp, công ty đã nhận
được tầm quan trọng của việc nắm bắt và xử lý thông tin, nhằm
giúp các chủ công ty, doanh nghiệp trong việc vạch ra các chiến

lược kinh doanh kịp thời mang lại những lợi nhuận to lớn cho
doanh nghiệp của mình. Tất cả lý do đó khiến cho các cơ quan,
doanh nghiệp đã tạo ra một lượng dữ liệu khổng lồ cỡ Gigabyte
thậm chí là Terabyte.
Nhiều người coi khai phá dữ liệu và khám phá tri thức
trong cơ sở dữ liệu là như nhau, tuy nhiên trong thực tế chúng
có quan hệ mật thiết với nhau, khai phá dữ liệu chỉ là một bước
thiết yếu trong quá trình phát hiện tri thức trong cơ sở dữ liệu.
1.2. Quá trình phát hiện tri thức từ cơ sở dữ liệu.
Quá trình phát hiện tri thức có thể chia thành các bước
như sau:
- Làm sạch dữ liệu (Data cleaning): Loại bỏ
những dữ liệu nhiễu, không thích hợp, dư thừa hoặc
không đầy đủ.
- Tích hợp dữ liệu (Data intergration):Tích hợp dữ
liệu từ nhiều nguồn khác nhau
- Lựa chọn dữ liệu (Data selection): Chọn những
dữ liệu có liên quan trực tiếp đến nhiệm vụ.
- Chuyển đổi dữ liệu (Data transformation): Các
dữ liệu sau khi được xử lý ở các giai đoạn trên được biến
đổi về dạng phù hợp với việc khai phá.
25

Hình 3.8 : Giao diện truy cập demo
24
Phần 2: Tư vấn cho người dùng.
Chương trình được viết trên giao diện Web, sử dụng
ngôn ngữ lập trình ASP. NET. Đưa các luật được sinh ra từ
phần 1 vào cơ sở dữ liệu SQL server của Website, ta có bảng
luật lưu trữ các luật định hướng chuyên ngành. Ngoài ra có các

bảng liên quan như bảng môn học, bảng sinh viên, bảng điểm
của người dùng cập nhật.
Xây dựng chương trình cho phép:
- Người dùng cập nhật điểm các môn đại cương.
- Yêu cầu hệ thống đưa ra các luật định hướng chuyên
ngành
Chương trình sẽ hiện thị ra các luật cùng với độ tin cậy
của luật đó.
Sau khi người dùng cập nhật điểm môn đại cương của
mình, toàn bộ số điểm đó sẽ được lưu vào một bảng
“bangdiem” trong cơ sở dữ liệu SQL, (bangdiem bao gồm các
trường mammon, diem, loai).
Với mỗi luật ta so sánh cặp giá trị mammon (mã môn)
và loai (loại điểm) trong vế trái của luật đó với từng cặp giá trị
mammon (mã môn) và loai (loại điểm) trong bangdiem (bảng
điểm đại cương mà người dụng vừa cập nhật). Nếu tất cả các
cặp mammon (mã môn) và loai (loại điểm) đều có mặt trong
bảng điểm thì luật đó sẽ là luật được đưa ra tư vấn. Trong
trường hợp có một cặp mã môn _ loại điểm không thuộc trong
bảng điểm, thì luật đó sẽ không được tư vấn cho người dùng.
3.4. Xây dựng và thiết kế giao diện của chương trình.
Sinh viên sử dụng mạng Internet để vào phần cổng
thông tin Đại học Phương Đông:

5
- Lựa chọn thuật toán khai phá (Choosing the data
mining algorithms): Lựa chọn các phương pháp phù hợp
với dữ liệu hiện có và nhiệm vụ đề ra.
- Khai phá dữ liệu (Data mining): Đây là bước
quan trọng nhất của quá trình, ta sử dụng thuật toán đã

chọn để trích xuất ra những thông tin hữu ích, có tiềm
năng.
- Đánh giá mẫu (Pattern evaluation): Các mẫu, tri
thức được đánh giá dựa trên các tiêu chí sẵn có.
- Trình diễn tri thức (Knowledge representation):
Đây là bước cuối cùng, tại bước này dữ liệu được củng cố,
biểu diễn và sử dụng.
Hình 1.1. Quá trình khám phá tri thức từ cơ sở dữ liệu.
1.2.1. Xác định vấn đề.
1.2.2. Thu thập và xử lý dữ liệu.
1.2.3. Khai thác dữ liệu.
1.2.4. Minh họa, đánh giá và đưa kết quả vào thực tế.
1.3. Khai phá dữ liệu.
1. hi
ểu v
à xác đ
ịnh
v
ấn đề

2. Thu th
ập v
à ti
ền xử
lý d
ữ liệu

3. Khai thác dữ liệu – trích
ra các m
ẫu/mô h

ình

4. Minh h
ọa v
à đánh
giá tri thức
5. Đưa k
ết quả v
à
o
th
ực tiễn

6
1.3.1. Các quan niệm về khai phá dữ liệu.
Khai phá dữ liệu là tập hợp các thuật toán nhằm
chiết xuất những thông tin có ích từ kho dữ liệu khổng lồ.
Khai phá dữ liệu được định nghĩa như một quá trình
phát hiện mẫu trong dữ liệu, quá trình này có thể là tự động
hay bán tự động, song phần nhiều là bán tự động. Các mẫu
được phát hiện thường hữu ích theo định nghĩa:các mẫu
mang lại cho người sử dụng một lợi thế nào đó, thường là
lợi ích về kinh tế.
Khai phá dữ liệu giống như quá trình tìm ra và mô
tả mẫu dữ liệu. Dữ liệu như là một tập hợp các vật hay sự
kiện, còn đầu ra của quá trình khai phá dữ liệu thường như
là những dự báo của các vật hay các sự kiện mới.
Khai phá dữ liệu được áp dụng trong các cơ sở dữ
liệu quan hệ, giao dịch, cơ sở dữ liệu không gian, cũng như
các kho dữ liệu phi cấu trúc, mà điển hình là World Wide

Web.
Khám phá tri thức là quá trình nhận biết các mẫu
hoặc các mô hình trong dữ liệu với các tính chất: Đúng đắn,
mới, khả ích và có thể hiểu được. Khai phá dữ liệu là một
bước trong quá trình khám phá tri thức bao gồm các thuật
toán khai phá dữ liệu chuyên dùng dưới một số quy định về
hiệu quả tính toán chấp nhận được để tìm ra các mẫu và các
mô hình trong dữ liệu.
Như vậy, mục đích của khám phá tri thức và khai
phá dữ liệu là tìm ra các mẫu hoặc mô hình đang tồn tại
trong các cơ sở dữ liệu nhưng vẫn còn bị khuất bởi số lượng
dữ liệu khổng lồ.
1.3.2. Nhiệm vụ của khai phá dữ liệu.
* Phân cụm, phân nhóm, phân loại, phân lớp. Nhiệm vụ
này trả lời câu hỏi: Một dữ liệu mới thu thập được sẽ thuộc về
23

Giai đoạn 1: Sử dụng dữ liệu sau khi đã xây dựng để tiến hành
tập huấn. Tìm tất cả các tập mục thường xuyên.
Giai đoạn 2: Khai phá luật kết hợp.
3.3.3. Thiết kế cơ sở dữ liệu.
Tiến hành xây dựng cơ sở dữ liệu với các bảng sau:
Bảng 3.1 : Lưu trữ danh sách sinh viên toàn trường
Bảng 3.2: Lưu trữ danh sách các môn học trong trường
Bảng 3.3: Lưu trữ danh sách sinh viên đã tốt nghiệp.
3.3.4. Tập huấn và xử lý dữ liệu.
Phần 1: khai phá dữ liệu.
Trong phần này, phần mềm Weka được sử dụng để sinh
ra các luật kết hợp từ dữ liệu thu thập được. Trường Đại học
Phương Đông cung cấp cho dữ liệu về cựu sinh viên, dữ liệu

được cung cấp với các thông tin về điểm của sinh viên, các
môn học, điểm tổng kết.
Các bước chuẩn bị dữ liệu:
Xóa bỏ và sửa chữa dữ liệu theo một định dạng cụ thể
nhưng không làm mất đi tính chính xác của dữ liệu.
Các môn học có điểm sẽ được sẽ được phân thành các
loại điểm cụ thể như sau:
Trung bình (TB): Nếu điểm môn học trong khoảng 4.5
đến 6.4;
Khá (K): Nếu điểm môn học trong khoảng 6.5 đến 7.9;
Giỏi (G): Nếu điểm môn học trong khoảng 8 đến 10;
Ta cần dự đoán điểm của các ngành tốt nghiệp trên cơ
sở các môn học đại cương, vì vậy sẽ giữ lại thông tin về điểm
các môn học đại cương.
22
khoa nào đó, hay nói cách khác là các môn mà các
chuyên ngành thuộc một khoa nào đó phải học
Môn chuyên ngành: đây là những môn dạng chuyên
ngành hẹp của riêng từng ngành.
Một số đặc điểm cơ bản của đào tạo tín chỉ:
Sinh viên chủ động đăng ký môn học theo một tiến trình
được sắp xếp trước.
Sinh viên sẽ tốt nghiệp sau khi hoàn thành khoảng 90
tín chỉ trình đại cương, và 120 tín chỉ trình chuyên ngành.
Sinh viên dễ dàng chuyển đổi chuyên ngành mà vẫn
được bao lưu điểm tương ứng và có thể đăng ký học thêm
chuyên ngành hai.
Sinh viên chủ động sắp xếp lịch học của mình sao cho
phù hợp với sức học, và tài chính của mình.
Sinh viên có thể học lại, thi lại các môn với các lớp sau mà

không cần tổ chức thi lại.
3.3.2. Mô tả hệ thống dữ liệu của bài toán.
Bài toán đặt ra: Cho một kho dữ liệu lưu giữ các thông
tin về kết quả học tập của sinh viên đã tốt nghiệp. Hãy tìm ra
những quy luật lựa chọn các chuyên ngành một cách hợp lý sao
cho đạt được kết quả tốt nhất.
Nhằm mục đích này người ta mong muốn nhận được từ
dữ liệu những phát biểu như: “80% sinh viên học tốt môn Kinh
tế chính trị và Tiếng Anh khá thì tốt nghiệp chuyên ngành Kế
toán ngân hàng loại giỏi”, …
Để đạt được những phát biểu như trên, chúng ta sử dụng các
thuật toán Khai phá luật kết hợp từ cơ sở dữ liệu. Mặc dù hiện
tại đã có nhiều thuật toán khai phá dữ liệu với luật kết hợp
nhưng nhìn chung mỗi thuật toán đều qua hai giai đoạn.


7
nhóm nào? Qúa trình này thường được thực hiện một cách tự
động.
* Khai phá luật kết hợp. Nhiệm vụ là phát hiện ra
những mối quan hệ giống nhau của các bản ghi giao dịch. Luật
kết hợp X => Y có dạng tổng quát là: Nếu một giao dịch đã sở
hữu các tính chất X thì đồng thời nó cũng sở hữu các tính chất
Y, ở một mức độ nào đó. Khai phá luật kết hợp được hiểu theo
nghĩa: Biết trước các tính chất X, vậy các tính chất Y là những
tính chất nào?
* Lập mô hình dự báo, bao gồm 2 nhiệm vụ: Hoặc là
phân nhóm dữ liệu vào một hay nhiều lớp dữ liệu đã xác định
từ trước, hoặc là sử dụng các trường đã cho trong một cơ sở dữ
liệu để dự báo sự xuất hiện (hoặc không xuất hiện) của các

trường hợp khác.
* Phân tích đối tượng ngoài cuộc: Một cơ sở dữ liệu có
thể chứa các đối tượng không tuân theo mô hình dữ liệu. Các
đối tượng dữ liệu như vậy gọi là các đối tượng ngoài cuộc, hầu
hết các phương pháp khai phá dữ liệu đều coi các đối tượng
ngoài cuộc là nhiễu và loại bỏ chúng. Tuy nhiên trong một số
ứng dụng, chẳng hạn như phát hiện nhiễu thì sự kiện hiếm khi
xảy ra lại được chú ý hơn những gì thường xuyên gặp phải. Sự
phân tích dữ liệu ngoài cuộc được coi như là khai phá các đối
tượng ngoài cuộc, một số phương pháp được ứng dụng để phát
hiện đối tượng ngoài cuộc.
1.3.3. Một số ứng dụng khai phá dữ liệu
Hiện nay, kỹ thuật khai phá dữ liệu đ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à trong
đời sống khác nhau như:
- Thương mại: Phân tích dữ liệu bán hàng và thị
trường, phân tích đầu tư, quyết định trong các lĩnh vực tài
chính, ngân hàng, …
8
- Thông tin sản xuất: Điều khiển và lập kế hoạch,
hệ thống quản lý, phân tích kết quả thử nghiệm, …
- Thông tin khoa học: Dự báo thời tiết, khai phá
cơ sở dữ liệu sinh học ngân hàng gen, …
- Trong các lĩnh vực khác như Y tế, giáo dục, viễn
thông, du lịch, …
1.3.4. Các kỹ thuật khai phá dữ liệu.
Thường được chia thành hai nhóm chính:
- 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 string hiện có. Các kỹ thuật này bao gồm: Phân cụm

(Clustering), tóm tắt (Summerization), trực quan hóa
(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: 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 (Classifacation),
hồi quy (regession), …
Tuy nhiên, chỉ có một số phương pháp thông dụng nhất
là: Phân cụm dữ liệu, phân lớp dữ liệu, phương pháp hồi quy,
và khai phá luật kết hợp.
1.3.5. Kiến trúc của hệ thống khai phá dữ liệu.
Kiến trúc của hệ thống khai phá dữ liệu có các thành
phần như sau:
- Cơ sở dữ liệu, kho dữ liệu: Đó là một hoặc nhiều
tập cơ sở dữ liệu, kho dữ liệu,… Các kỹ thuật làm sạch
dữ liệu, tích hợp, lọc dữ liệu có thể thực hiện trên dữ liệu.
- Cơ sở dữ liệu hoặc kho dữ liệu phục vụ: Là kết
quả lấy dữ liệu có liên quan trên cơ sở khai phá dữ liệu
của người dùng.
21
Server computer. Một RDBMS bao gồm databases, database
engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận
khác nhau trong RDBMS.
SQL Server cung cấp các công cụ quản trị và phát triển để cho
người sử dụng dễ dàng cài đặt, sử dụng và quản lý hệ thống.
SQL Server được sử dụng trong luận văn với mục đích
lưu trữ các dữ liệu liên quan đến luật để phục vụ cho quá trình
truy vấn của sinh viên.
3.2.3. Ngôn ngữ lập trình ASP.NET

ASP.NET 2.0 là công nghệ được sử dụng rộng rãi nhất
hiện nay. Công nghệ này cho phép xây dựng những ứng dụng
web hoàn chỉnh có qui mô lớn, độ phức tạp và yêu cầu bảo mật
cao. ASP.NET 2.0 là một phần trong kiến trúc .NET
Framework 2.0 được Microsoft thiết kế nhằm hướng tới những
ứng dụng bảo mật, tin cậy và hiệu suất trên môi trường Internet.
Áp dụng công nghệ ASP.NET cho việc xây dựng và
thiết kế trang web, và sử dụng môi trường internet giao tiếp với
người sử dụng.
3.3. Phân tích và thiết kế hệ thống.
3.3.1. Giới thiệu về mô hình đào tạo theo tín chỉ.
Trường Đại học Phương Đông được thành lập từ năm
1994 và có 5 khoa với 15 chuyên ngành đào tạo, và từ năm
2005 Trường có chuyển từ hình thức đào tạo niên chế sang đào
tạo tín chỉ theo quy định của Bộ giáo dục. Với hình thức đào
tạo này sinh viên có thể chủ động về thời gian học tập, tài chính
sao phù hợp nhất. Sau đây chúng ta xét một số đặc điểm cơ bản
theo hình thức tín chỉ tại Trường Đại học Phương Đông.
Giáo dục đại cương: bao gồm các môn theo khung của
Bộ giáo dục và một số môn đặc thù của Trường.
Giáo dục chuyên ngành gồm có 2 phần
Môn cơ sở khối ngành: là môn cơ sở bắt buộc với một
20

Hình 3.1 Giao diện phần mềm Weka
Trong phần Application có 4 mục lựa chọn:
 Explorer: Sử dụng menu lựa chọn. Explorer sử
dụng cho những bộ dữ liệu vừa và nhỏ.
 Experimenter: Cho phép người dùng thực hiện
những bài tập cơ bản khi ứng dụng phân lớp và kỹ thuật

hồi quy, với những công việc có giá trị, phương pháp và
tham số tốt nhất cho vấn đề đã cho. Cho phép bạn tự động
hóa xử lý, làm cho nó phân lớp và lọc dễ dàng với những
cách thiết lập tham số khác nhau trên toàn bảng dữ liệu.
 KnowledgeFlow: Cho phép người dùng kéo thả
những chiếc hộp tượng trưng cho các giải thuật và dữ liệu
để kết nối chúng lại với nhau và đưa ra cấu trúc.
 Simple CLI: Sử dụng câu lệnh thực thi.
3.2.2. Hệ quản trị cơ sở dữ liệu SQL 2000 server
SQL Server 2000 là một hệ thống quản lý cơ sở dữ liệu
(Relational Database Management System (RDBMS) ) sử dụng
Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL
9
- Cơ sở tri thức: Đó là lĩnh vực tri thức được sử
dụng để hướng dẫn việc tìm hoặc đánh giá các mẫu kết
quả thu được.
- Mô tả khai phá dữ liệu: Bao gồm tập các modul
chức năng để thực hiện các nhiệm vụ mô tả các đặc điểm,
kết hợp, phân lớp, phân cụm dữ liệu,…
- Đánh giá mẫu: Thành phần này sử dụng các độ
đo và tương tác với modul khai phá dữ liệu để tập chung
vào tìm các mẫu quan tâm.
- Giao diện người dùng: Đây là modul giữa người
dùng và hệ thống khai phá dữ liệu, cho phép người dùng tương
tác với hệ thống trên cơ sở những truy vấn hay tác vụ, cung cấp
thông tin cho việc tìm kiếm.
1.3.6. Những khó khăn trong khai phá dữ liệu.
- Dữ liệu lớn.
- Kích thước lớn.
- Dữ liệu động.

- Các trường dữ liệu không phù hợp.
- Các giá trị bị thiếu.
- Các trường dữ liệu bị thiếu.
1.4. Một số phương pháp khai phá dữ liệu.
1.4.1. Cây quyết định.
Để xây dựng cây quyết định có nhiều cách song tựu
trung ta có một khung chung cho quá trình này như sau:
- Lựa chọn thuộc tính “tốt nhất” nhờ một độ đo lựa chọn
(thường là Entropy).
- Mở rộng cây bằng cách thêm vào các nhánh mới với
từng giá trị thuộc tính.
- Sắp xếp các mẫu huấn luyện cho các nút lá.
- Kiểm tra: nếu mẫu huấn luyện đã được phân loại thì
dừng, ngược lại thì lặp lại quá trình trên cho mỗi nút lá.
10
- Tỉa bớt những nút lá không ổn định.
1.4.2. Luật kết hợp.
Chẳng hạn như có luật: âm nhac, thể thao => thiếu nhi,
nghĩa là những người mua sách âm nhạc và thể thao thì cũng
mua sách thiếu nhi. Lúc đó ta sẽ quan tâm đến số lượng trường
hợp khách hàng thỏa mãn luật này trong cơ sở dữ liệu hay độ
hỗ trợ (Support) cho luật này. Độ hỗ trợ cho luật chính là phần
trăm số bản ghi có cả sách âm nhạc, thể thao và thiếu nhi hay
tất cả những người thích cả ba loại sách nói trên.
Tuy nhiên, giá trị độ hỗ trợ là không đủ, có thể có trường
hợp ta có một nhóm tương đối những người đọc cả ba loại trên
nhưng lại có một nhóm với lực lượng lớn hơn những người
thích sách thể thao, âm nhạc mà không thích sách thiếu nhi.
Trong trường hợp này tính kết hợp rất yếu mặc dù độ hỗ trợ
tương đối cao, như vậy chúng ta cần thêm một độ đo thứ hai đó

là độ tin cậy (confidence). Độ tin cậy chính là phần trăm các
bản ghi có sách thiếu nhi trong số các bản ghi có sách âm nhạc
và thể thao.
1.4.3. Mạng Nơron.
Có nhiều kiến trúc khác nhau cho mạng nơron và mỗi
trong số chúng sử dụng các cách kết nối mạng khác nhau và
chiến lược học khác nhau để thực hiện các nhiệm vụ. Khi sử
dụng mạng nơron chúng ta phải phân biệt hai giai đoạn: giai
đoạn mã hóa trong mạng nơron được học trên các mẫu dữ liệu
huấn luyện, thực hiện một nhiệm vụ nào đó và giai đoạn giải
mã trong đó mạng được sử dụng để phân lớp, làm dự báo hoặc
thực hiện bất cứ nhiệm vụ học nào liên quan. Có nhiều dạng
mạng nơron nhưng về cơ bản có các loại chính sau:
- Perceptrons
- Mạng lan truyền ngược (Back propagation networks)
- Mạng tự tổ chức Konhonen (Kohonen self –
organizedmap)

19
Chương 3- XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
KHAI PHÁ DỮ LIỆU
“Tư vấn lựa chọn chuyên ngành tại trường đại học
Phương Đông”

3.1. Giới thiệu khai phá dữ liệu trong giáo dục.
Các nhà nghiên cứu về việc khai phá dữ liệu trong giáo
dục tập chung vào nhiều vấn đề bao gồm việc học của cá nhân
từ phần mềm giáo dục, học cộng tác với sự giúp đỡ của máy
tính, kiểm nghiệm khả năng thích ứng với máy tính, và nhiều
nhân tố được kết hợp với các sinh viên không có khả năng hoặc

thiếu định hướng trong quá trình học tập.
Mỗi lĩnh vực chính của việc ứng dụng khai phá dữ liệu
vào giáo dục là phát triển các mô hình hướng đối tượng sinh
viên. Các mô hình sinh viên thể hiện thông tin về một nét đặc
trưng hay tình trạng của sinh viên, như kiến thức hiện tại của
sinh viên, động cơ thúc đẩy học tập, quan điểm nguyện vọng
của sinh viên, … Việc ứng dụng khai phá dữ liệu trong giáo
dục đóng vai trò rất quan trọng trong việc phát triển giáo dục
cũng như trợ giúp đáng kể cho các hoạt động giáo dục.
3.2. Các công cụ sử dụng trong thiết kế chương trình.
3.2.1. Phần mềm mã nguồn mở Weka.
Weka đã được phát triển ở trường Đại học Waikato và là tên
viết tắt của Waikato Environment for Knowledge Analysis, hệ
thống này được viết bằng ngôn ngữ Java, chạy trên bất kỳ
flatform nào, đã được thử nghiệm với Linux và Windows, và hệ
điều hành Macintosh. Nó cung cấp một giao diện thống nhất
với nhiều thuật toán khác nhau, cùng với các phương pháp cho
việc xử lý trước, xử lý sau và dành cho việc đánh giá kết quả
của các sơ đồ học trên bất kỳ tập dữ liệu cho trước nào.
Giao diện chính của phần mềm weak:
18
Phương pháp này sẽ loại bỏ một số phần trên cây nhằm tối
thiểu hoá sai số dự đoán. Tỉa cây sau tuy gây ra tốn kém về mặt
thời gian và bộ nhớ do tạo ra các nút dư thừa nhưng cây thu
được sau khi tỉa thường đạt được độ chính xác phân lớp cao. Vì
những lí do trên, quá trình thu gọn cây thường được thực hiện
bằng phương pháp tỉa cây sau.
2.5. Thuật toán rút gọn các luật quyết định.
Sau khi sinh ra tập luật, cần phải rút gọn các luật và loại
bỏ những luật không cần thiết. Dưới đây là phương pháp sử

dụng phép thử thống kê để loại bỏ các luật không cần thiết:
Loại bỏ các tiên đề không cần thiết để đơn giản hóa các
luật.
Xây dựng các bảng ngẫu nhiên (contingency table) cho
mỗi luật chứa nhiều hơn một tiên đề.
Kiểm chứng sự độc lập của kết quả đối với một tiên đề
bằng một trong các phép thử sau:
Sử dụng phép chi bình phương nếu các tuần xuất mong
đợi lớn hơn 10.
Sử dụng phép thử Yates nếu các tần xuất mong đợi
trong khoảng [5,10].
Sử dụng phép thử Fisher nếu các tần xuất mong đợi nhỏ
hơn 5.
Loại bỏ các luật không cần thiết.
11
1.4.4. Giải thuật di truyền.
Việc xây dựng các thuật toán di truyền mô phỏng sinh
học nhằm tìm ra các giải pháp tốt nhất bao gồm các bước sau:
1. Tạo ra cơ chế mã di truyền dưới dạng các xâu của
một bảng mã ký tự hạn chế.
2. Thiết lập môi trường nhân tạo trên máy tính có các
giải pháp có thể tham gia “đấu tranh sinh tồn” với nhau để xác
định độ đo thành công hay thất bại, hay còn gọi là “hàm thích
nghi”.
3. Phát triển các “phép lai ghép” để các giải pháp kết
hợp với nhau. Khi đó các xâu mã di truyền của giải pháp cha và
mẹ bị cắt đi và xếp lại, trong quá trình sinh sản như vậy các
kiểu đột biến có thể được áp dụng.
4. Cung cấp một quần thể các giải pháp ban đầu tương
đối đa dạng và để máy tính thực hiện “cuộc chơi tiến hóa” bằng

cách loại bỏ các giải pháp từ mỗi cá thể và thay thế chúng bằng
các con cháu hoặc các đột biến của các giải pháp tốt. Thuật
toán sẽ kết thúc khi một họ các giải pháp thành công được sinh
ra.
Như vậy, việc áp dụng các thuật toán di truyền không
quá khó khăn, tuy nhiên điểm khó là tạo ra công thức cho mã di
truyền tốt và tìm ra các phép đột biến hiệu quả.
Chương 2- PHƯƠNG PHÁP KHAI PHÁ DỮ LIỆU BẰNG
CÂY QUYẾT ĐỊNH
2.1. Cây quyết định.
2.1.1. Giới thiệu.
Giả sử có một bài toán đặt ra là phải phân loại các căn
bệnh và các triệu chứng bệnh, chúng ta có thể giải quyết vấn đề
này bằng các cách truyền thống như thống kê (Statistics) hoặc
máy học (Machine learning). Nhưng ngày nay, với lượng dữ
liệu quá lớn thì các phương pháp cũ có nhiều hạn chế, khai phá
12
dữ liệu có thể giải quyết vấn đề với lượng dữ liệu khổng lồ.
Một trong những kỹ thuật khai phá là phân loại (Classification),
với kỹ thuật này chúng ta phân tích dữ liệu và sinh ra một tập
các luật, các luật này được dùng để phân loại dữ liệu mới
(Future data). Phân loại gồm tìm ra các luật hoặc tìm ra cây
quyết định sẽ được trình bày trọng tâm trong luận văn này.
2.1.2. Một số khái niệm cơ bản.
Một số khái niêm khác liên quan đến cây:
Cha, con: mỗi đỉnh của cây là gốc của các cây con của
chúng, số các cây con của một đỉnh gọi là bậc của đỉnh đó. Nếu
đỉnh b là gốc của một cây con của đỉnh a thì ta nói đỉnh b là con
của đỉnh a và a là cha của b.
Anh em: các đỉnh có cùng một cha được gọi là anh em.

Lá: các đỉnh có bậc 0 được gọi là lá của cây.
Đường đi: mỗi dãy các đỉnh a
1
, a
2
, …, a
n
(n≥ 1), sao cho
a
i
(i = 1, 2, …, n-1) là cha của a
i+1
được gọi là đường đi từ a
1

đến a
n
. Độ dài đường đi là n-1.
Cành: là đường đi từ đỉnh một cha đến đỉnh một con.
Độ cao, mức: trong một cây, độ cao của một đỉnh a là độ
dài của đường đi dài nhất từ a đến một lá. Độ cao của gốc được
gọi là độ cao của cây, mức của đỉnh a là độ dài của đường đi từ
gốc đến a.
2.1.3. Ưu điểm của cây quyết định.
So với các phương pháp khai phá dữ liệu khác, cây
quyết định là phương pháp có một số ưu điểm:
Cây quyết định dễ hiểu. Người ta có thể hiểu
mô hình cây quyết định sau khi được giải thích
ngắn.
Việc chuẩn bị dữ liệu cho một cây quyết định

là cơ bản hoặc không cần thiết. Các kỹ thuật khác
17
thuộc tính đó cũng giảm theo, nên sự thu thập thông tin (Gain)
sẽ cao hơn các thuộc tính khác. Vì vậy thuộc tính này sẽ được
lựa chọn thường xuyên để tách, dẫn đến độ phân nhánh lớn, cây
sẽ rất lớn và phức tạp.
Thuộc tính thiếu giá trị:
Nếu giá trị của thuộc tính A bị mất trên một số bộ dữ
liệu, hướng giải quyết sẽ thế nào ?
Giả sử rằng (x, C(x)) là một trong những tập huấn luyện
trong S và giá trị A(x) là không được biết đến.
Giải pháp:
- Thay bằng giá trị xuất hiện nhiều nhất của thuộc tính
A.
- Thay bằng giá trị xuất hiện nhiều nhất của thuộc tính
A mà có cùng giá trị hàm mục tiêu.
- Tính lại các công thức dựa trên những giá trị đã có
của thuộc tính A (loại các giá trị bị thiếu, nếu số lượng
các giá trị bị thiếu không nhiều).
2.3.4. Thí dụ mô phỏng thuật toán C4.5.
2.4. Cắt tỉa cây.
2.4.1. Phương pháp tỉa cây trước.
Theo phương pháp này, quá trình tỉa cây được thực hiện
ngay trong khi dựng cây. Ta sẽ dừng việc chia nhỏ một tập dữ
liệu nếu việc phân chia này không đem lại hiệu quả. Ðể xác
định được điểm dừng, cần đánh giá việc tách tập dữ liệu theo
một tiêu chuẩn nào đó như giá trị thông tin (information gain),
khả năng giảm sai số, Nếu kết quả đánh giá nhỏ hơn một
ngưỡng cho trước thì dừng quá trình tách tập dữ liệu và cây cho
tập dữ liệu này chỉ là một lá.

2.4.2. Phương pháp tỉa cây sau.
Khác với phương pháp trên, quá trình tỉa cây sau chỉ
được thực hiện khi đã có một cây quyết định hoàn chỉnh.
16
SplitInformation(S,A) = -


c
i
ii
S
S
S
S
1
2
log

GainRatio: Sự đánh giá thay đổi các giá trị của thuộc
tính.

( , )
( , )
( , )
Gain S A
GainRation S A
SplitInformation S A


Tất cả các thuộc tính sẽ được tính toán độ đo tỷ lệ Gain,

thuộc tính nào có độ đo tỷ lệ Gain lớn nhất sẽ được chọn làm
thuộc tính phân chia.
2.3.3. Một số vấn đề với thuộc tính
Thuộc tính liên tục:
Thuật toán C4.5 đưa ra định nghĩa những giá trị rời rạc
mới để phân những giá trị liên tục thành những thuộc tính
tượng trưng một lần nữa theo các quy tắc sau:
Dựa trên một giá trị nếu muốn phân chia nhị phân.
Dựa trên vài giá trị nếu muốn có nhiều nhánh.
Với mỗi giá trị tính các mẫu thuộc một lớp theo dạng A < v
và A > v.
Cách chọn giá trị v hiệu quả:
+ Sắp xếp các giá trị tăng dần.
+ Chọn giá trị trung bình của từng cặp giá trị của thuộc
tính để phân chia và tính chỉ số gain.
+ Chọn giá trị phân chia có chỉ số gain cao nhất
Thuộc tính nhiều giá trị:
Thuộc tính ID3 bị giới hạn bởi việc liên quan đến những
thuộc tính có nhiều giá trị, mà các giá trị này lại duy nhất. Khi
đó, việc chia một tập dữ liệu thành quá nhiều các tập con dẫn
đến số lượng các lớp tại mỗi nút giảm và do đó Entropy trên
13
thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến
phụ (dummy variable) và loại bỏ các giá trị rỗng.
Cây quyết định có thể xử lý cả dữ liệu có giá
trị bằng số và dữ liệu có giá trị là tên thể loại. Các
kỹ thuật khác thường chuyên để phân tích các bộ dữ
liệu chỉ gồm một loại biến. Chẳng hạn, các luật quan
hệ chỉ có thể dùng cho các biến tên, trong khi mạng
nơ-ron chỉ có thể dùng cho các biến có giá trị bằng

số.
Cây quyết định là một mô hình hộp trắng.
Mạng nơ-ron là một ví dụ về mô hình hộp đen, do
lời giải thích cho kết quả quá phức tạp để có thể
hiểu được.
Có thể thẩm định một mô hình bằng các kiểm
tra thống kê. Điều này làm cho ta có thể tin tưởng
vào mô hình.
2.2. Thuật toán ID3.
2.2.1. Giới thiệu.
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết
định từ một tập các ví dụ rèn luyện (training example) hay còn
gọi là dữ liệu rèn luyện (training data). Hay nói khác hơn, giải
thuật có:
Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các
thuộc tính mô tả một tình huống, hay một đối tượng nào
đó, và một giá trị phân loại của nó.
Đầu ra: Cây quyết định có khả năng phân loại đúng đắn
các ví dụ trong tập dữ liệu rèn luyện, và hy vọng là phân
loại đúng cho cả các ví dụ chưa gặp trong tương lai.
2.2.2. Thuật toán ID3
ID3 xây dựng cây quyết định (cây QĐ) theo cách từ trên
xuống. Lưu ý rằng đối với bất kỳ thuộc tính nào, chúng ta cũng
có thể phân vùng tập hợp các ví dụ rèn luyện thành những tập
con tách rời, mà ở đó mọi ví dụ trong một phân vùng (partition)
14
có một giá trị chung cho thuộc tính đó. ID3 chọn một thuộc tính
để kiểm tra tại nút hiện tại của cây và dùng trắc nghiệm này để
phân vùng tập hợp các ví dụ; thuật toán khi đó xây dựng theo
cách đệ quy một cây con cho từng phân vùng. Việc này tiếp tục

cho đến khi mọi thành viên của phân vùng đều nằm trong cùng
một lớp; lớp đó trở thành nút lá của cây.
2.2.3. Thuộc tính nào là thuộc tính đề phân loại tốt nhất
Entropy đo tính thuần nhất của tập các mẫu
Entropy(S) =
2
1
log
| |
n
i
i
i
p
p
s




Information Gain độ lợi của lượng thông tin thu được
Gain(S,A) = Entropy(S) -
v
v value(A)
entropy (S )
| |
v
s
s





2.2.4. Thí dụ mô phỏng thuật toán.
2.2.5. Tìm kiếm không gian giả thuyết trong ID3.
Từ cách nhìn ID3 như là một giải thuật tìm kiếm trong
không gian các giả thuyết, ta có một số nhận xét như sau:
 Không gian giả thuyết các cây quyết định của
ID3 là một không gian đầy đủ các cây quyết định trên các
thuộc tính đã cho trong tập rèn luyện. Điều này có nghĩa
là không gian mà ID3 tìm kiếm chắc chắn có chứa cây
quyết định cần tìm.
 Trong khi tìm kiếm, ID3 chỉ duy trì một giả
thuyết hiện tại. Vì vậy, giải thuật này không có khả năng
biểu diễn được tất cả các cây quyết định khác nhau có
khả năng phân loại đúng dữ liệu hiện có.
 Vì ID3 sử dụng tất cả các ví dụ ở mỗi bước để
đưa ra các quyết định dựa trên thống kê, nên kết quả tìm
15
kiếm của ID3 rất ít bị ảnh hưởng bởi một vài dữ liệu sai
(hay dữ liệu nhiễu).
 Trong quá trình tìm kiếm, giải thuật ID3 có xu
hướng chọn cây quyết định ngắn hơn là những cây quyết
định dài.
2.2.6. Đánh giá hiệu suất của cây quyết định.
Để đánh giá hiệu suất của một cây quyết định người ta
thường sử dụng một tập ví dụ tách rời, tập này khác với tập dữ
liệu rèn luyện, để đánh giá khả năng phân loại của cây trên các
ví dụ của tập này. Tập dữ liệu này gọi là tập kiểm tra
(validation set). Thông thường, tập dữ liệu sẵn có sẽ được chia

thành hai tập: tập rèn luyện thường chiếm 2/3 số ví dụ và tập
kiểm tra chiếm 1/3.
2.3. Thuật toán C4.5
2.3.1. Giới thiệu
C4.5 là sự mở rộng của giải thuật ID3 trên một số khía
cạnh sau:
+ Trong việc xây dựng cây quyết định, chúng có thể
liên hệ với tập huấn luyện mà có những records với
những giá trị thuộc tính không được biết đến bởi việc
đánh giá việc thu thập thông tin hoặc là tỉ số thu thập
thông tin , cho những thuộc tính bằng việc xem xét chỉ
những record mà ở đó thuộc tính được định nghĩa.
+ Trong việc xây dựng cây quyết định, giải thuật C4.5
có thể giải quyết tốt đối với trường hợp giá trị của các
thuộc tính là giá trị thực.
+ Trong việc xây dựng cây quyết đinh, C4.5 có thể giải
quyết tốt đối với trường hợp thuộc tính có nhiều giá trị
mà mỗi giá trị này lại duy nhất.
2.3.2. Đo độ sử dụng để xác định điểm chia tốt nhất.
SplitInformation: Thông tin tiềm ẩn được tạo ra bằng
cách chia tập dữ liệu trong một số tập con nào đó.

×