TÓM TẮT LUẬN VĂN XÂY DỰNG HỆ THỐNG TƯ VẤN CHỌN NGÀNH NGHỀ CHO SINH VIÊN TRƯỜNG CAO ĐẲNG VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI Học viên: Hồ Anh Tố Chuyên ngành: Khoa học máy tính Mã số: 60.48.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
HỒ ANH TỐ
XÂY DỰNG HỆ THỐNG TƯ VẤN CHỌN NGÀNH NGHỀ CHO SINH VIÊN
TRƯỜNG CAO ĐẲNG VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI
LUẬN VĂN THẠC SĨ KỸ THUẬT
Đà Nẵng – Năm 2018
Trang 2ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
HỒ ANH TỐ
XÂY DỰNG HỆ THỐNG TƯ VẤN CHỌN NGÀNH NGHỀ CHO SINH VIÊN
TRƯỜNG CAO ĐẲNG VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
Người hướng d n hoa học: PGS.TS V Trung H ng
Đà Nẵng – Năm 2018
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS.TS Võ Trung Hùng
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Tác giả
Hồ Anh Tố
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC ii
TÓM TẮT LUẬN VĂN iv
DANH MỤC CÁC TỪ VIẾT TẮT v
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH VẼ vii
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ đề tài 1
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Mục đích và ý nghĩa của đề tài 2
6 Bố cục của luận văn 3
CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN 4
1.1 Khai phá dữ liệu 4
1.1.1 Tổng quan về khai phá dữ liệu 4
1.1.2 Khai phá dữ liệu sử dụng luật kết hợp 6
1.1.3 Khai phá dữ liệu với bài toán phân lớp 20
1.1.4 Khai phá dữ liệu sử dụng cây quyết định 22
1.2 Lý thuyết chọn nghề nghiệp 24
1.2.1 Lý thuyết cây nghề nghiệp 24
1.2.2 Lý thuyết mật mã Holland 26
1.3 Tổng kết chương 28
CHƯƠNG 2: PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG 29
2.1 Mô tả hệ thống hỗ trợ tư vấn chọn ngành nghề 29
2.2 Giới thiệu bài toán 29
2.3 Mô hình cấu trúc hệ thống 29
2.3.1 Mô tả đầu vào/ đầu ra 30
2.3.2 Phương pháp xây dựng hệ thống 30
2.4 Phân tích và thiết kế hệ thống 30
2.4.1 Phân tích về bậc đào tạo 30
2.4.2 Phân tích LTMM Holland 30
2.4.3 Xây dựng tập luật cho hệ thống tư vấn chọn ngành nghề 33
2.5 Xây dựng hệ thống 38
2.5.1 Thiết kế CSDL 38
2.5.2 Cách xây dựng tập luật 41
Trang 52.5.3 Cách xây dựng bộ máy suy diễn 42
2.6 Tổng kết chương 42
CHƯƠNG 3: KIỂM THỬ VÀ ĐÁNH GIÁ 43
3.1 Kết quả kiểm thử 43
3.1.1 Giao diện của hệ thống 43
3.1.2 Giao diện Phiếu thông tin cá nhân 43
3.1.3 Giao diện khảo sát tư vấn bậc đào tạo 44
3.1.4 Giao diện khảo sát tư vấn chọn ngành nghề 45
3.1.5 Giao diện tư vấn mức hỗ trợ học phí, nội trú 47
3.1.6 Giao diện kết quả tư vấn chọn ngành nghề 47
3.2 Đánh giá kết quả hệ thống 48
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49
4.1 Kết quả đạt được từ nghiên cứu 49
4.2 Đóng góp luận văn 49
4.3 Hạn chế 49
4.4 Hướng phát triển luận văn 49
DANH MỤC TÀI LIỆU THAM KHẢO 50 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (BẢN SAO)
Trang 6TÓM TẮT LUẬN VĂN XÂY DỰNG HỆ THỐNG TƯ VẤN CHỌN NGÀNH NGHỀ CHO SINH VIÊN TRƯỜNG CAO ĐẲNG VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI
Học viên: Hồ Anh Tố Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01 Khóa: K33-QNG Trường Đại học Bách khoa - ĐHĐN
Tóm tắt - Trong thời đại ngày nay, với sự phát triển vượt bậc của công nghệ
thông tin và ứng dụng của nó trong đời sống - kinh tế - xã hội, lượng dữ liệu thu thập được ngày càng nhiều theo thời gian, làm xuất hiện ngày càng nhiều các hệ thống cơ sở
dữ liệu có kích thước lớn Từ khối dữ liệu này, các kỹ thuật trong KPDL có thể dùng
để trích xuất những thông tin hữu ích mà chúng ta chưa biết Qua tìm hiểu những chức năng của KPDL, luận văn tập trung vào nghiên cứu kỹ thuật KPDL bằng luật kết hợp với thuật toán Apriori Đóng góp chính của luận văn là nghiên cứu, là ứng dụng các thuật toán để xây dựng hệ thống tư vấn ngành nghề học cho sinh viên Hệ thống được xây dựng trên nền Web, thuận tiện cho người sử dụng ở bất cứ nơi đâu có kết nối Internet
BUILDING MAJOR - CAREER COUNSELING SYSTEM FOR STUDENTS
AT VIETNAM - KOREA COLLEGE OF QUANG NGAI Abstract - Nowadays, the rapid development of information technology and its
various application in economic - cultural - social life and the amount of collected data increases day by day, which causes the appearance of big data systems From these database sources, some techniques in data mining can be used to extract useful information that we have not known yet Through researching the functions of data mining, this mester thesis focuses on studying data mining techniques by applying association rules and the Apriori algorithm The innovtion and main issues af this thesis is developed a system to help students to choose a suitable majors The system is built based on the Web technology, it is easy for users to access anywhere and anytime with Internet connection
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
TIẾNG VIỆT
CSDL Cơ sở dữ liệu
GDHN Giáo dục hướng nghiệp
HDGDNPT Hoạt động giáo dục nghề phổ thông KPDL Khai phá dữ liệu
ANN Artificial Neural Network
ASP Active Server Pages
CLS Concept Learning System
MLP Multi Layer Perceptron
SLIQ Supervised Learning In Quest SQL Structured Query Language
Trang 8Bảng 2.9 Bảng câu hỏi trắc nghiệm 40 Bảng 2.10 Bảng thông tin khảo sát về chọn ngành học của sinh viên 40 Bảng 2.11 Bảng chi tiết thông tin khảo sát về chọn ngành học của
Trang 9Hình 1.9 Mô hình lục giác Holland 27 Hình 2.1 Mô hình cấu trúc hệ thống tư vấn chọn ngành nghề 29 Hình 3.1 Giao diện hệ thống tư vấn chọn ngành nghề 44 Hình 3.2 Giao diện Phiếu thông tin cá nhân 44 Hình 3.3 Giao diện khảo sát tư vấn bậc đào tạo 45 Hình 3.4 Giao diện khảo sát thông tin về tư vấn chọn ngành nghề 46 Hình 3.5 Giao diện tư vấn mức hỗ trợ học phí, nội trú 48 Hình 3.6 Giao diện Kết quả tư vấn chọn ngành nghề 48
Trang 10MỞ ĐẦU
1 Lý do chọn đề tài
Hiện tại, cơ hội học nghề cho sinh viên rất nhiều, với nhiều chính sách ưu tiên
Luật Giáo dục nghề nghiệp vừa có hiệu lực cũng có những đổi mới phù hợp với xu thế
Điều quan trọng nhất hiện nay là phải phân luồng đúng đối tượng, đúng mục đích và
làm tốt công tác hướng nghiệp, giúp sinh viên định hướng được nghề nghiệp trong
tương lai theo đúng sở thích, đam mê và điều kiện thực tế của bản thân, xã hội
Khi bước vào một ngôi trường đào tạo nghề, các bạn sinh viên luôn mong muốn
mình chọn được một ngành nghề học phù hợp với năng lực, trình độ, sở thích, cơ hội
việc làm và điều kiện của bản thân Tuy nhiên, không phải lúc nào các sinh viên cũng
đủ khả năng lựa chọn cho mình một ngành nghề phù hợp
Khi chọn sai ngành nghề sinh viên là đối tượng chịu ảnh hưởng trực tiếp, sinh
viên thường thiếu động lực và chán nản, dễ dẫn đến bỏ học, một số sinh viên có điều
kiện thì chuyển ngành, số khác tiếp tục theo đuổi nhưng trong tâm thế buông trôi, từ đó
dẫn đến chất lượng đào tạo kém, chất lượng nguồn lao động không đáp ứng được nhu
cầu xã hội; ảnh hưởng tiếp đến là các cơ sở đào tạo và sâu xa hơn nữa là ảnh hưởng
đến cả nền kinh tế quốc gia
Trường Cao đẳng Việt Nam - Hàn Quốc - Quảng Ngãi tiền thân là Trường Cao
đẳng nghề Việt Nam - Hàn Quốc - Quảng Ngãi hiện nay đang đào tạo các ngành nghề
như Công nghệ thông tin, Cơ khí, Kỹ thuật điện - điện tử, Kỹ thuật điều khiển và tự
động hóa, Kỹ thuật xây dựng, Công nghệ ô tô, Công nghệ thực phẩm Trong tương lai
sẽ đào tạo thêm nhiều ngành nghề khác như: Giáo dục mầm non, Công nghệ sau thu
hoạch, Công nghệ chế biến thủy sản, Chăn nuôi, Phát triển nông thôn, Nuôi trồng thủy
sản, Xét nghiệm Y học, Dược, Điều dưỡng, Lúc đó việc tư vấn chọn ngành nghề phù
hợp sẽ rất quan trọng đối với sinh viên
Chính vì vậy tôi quyết định chọn đề tài “Xây dựng hệ thống tư vấn chọn ngành
nghề cho sinh viên Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi” để làm
đề tài luận văn tốt nghiệp cao học Trong đề tài này, tôi đề xuất giải pháp ứng dụng
KPDL bằng thuật toán luật kết hợp để xây dựng hệ thống tư vấn chọn ngành nghề học
phù hợp cho sinh viên tại Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi
2 Mục tiêu và nhiệm vụ đề tài
2.1 Mục tiêu
- Tạo ra được tập luật chọn ngành học dựa vào khảo sát thực tế của sinh viên là
ứng dụng các kỹ thuật KPDL
- Hệ thống tư vấn chọn ngành nghề cho sinh viên Trường Cao đẳng Việt Nam –
Hàn Quốc – Quảng Ngãi để lựa chọn ngành nghề học phù hợp và hỗ trợ các cán bộ
chuyên trách tuyển sinh và giới thiệu việc làm của Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi
Trang 112.2 Nhiệm vụ
Để đạt được mục tiêu trên, cần phải tiến hành:
- Nghiên cứu lý thuyết về KPDL, cụ thể là các kỹ thuật luật kết hợp và cây quyết định
- Xây dựng hệ thống tư vấn chọn ngành nghề học phù hợp cho sinh viên dựa vào các thông tin đầu vào, từ đó thực hiện tư vấn chọn ngành nghề học phù hợp cho sinh viên nhằm giảm đi tình trạng chọn sai ngành nghề
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Cơ sở lý thuyết về kỹ thuật KPDL và các thuật toán của KPDL;
- Phát phiếu khảo sát trên toàn bộ sinh viên của Trường;
- Nội dung dữ liệu: Điểm thi các môn, Hoàn cảnh gia đình, Mức học phí, Sở thích, Năng khiếu, Giới tính, Sức khỏe, ;
4 Phương pháp nghiên cứu
Để đạt được những yêu cầu trên, tôi sử dụng chủ yếu hai phương pháp chính là phương pháp nghiên cứu tài liệu và phương pháp thực nghiệm
Phương pháp nghiên cứu tài liệu: Tôi sử dụng phương pháp này để tìm hiểu và
lựa chọn phương pháp KPDL thích hợp
Phương pháp thực nghiệm: Tôi sử dụng phương pháp này để phân tích thiết kế hệ
thống, triển khai xây dựng hệ thống
5 Mục đích và ý nghĩa của đề tài
5.1 Mục đích
Mục đích của đề tài là ứng dụng KPDL bằng thuật toán luật kết hợp để xây dựng
hệ thống tư vấn chọn ngành nghề học phù hợp cho sinh viên tại Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi
5.2 Ý nghĩa hoa học và thực tiễn đề tài
Về khoa học: Ứng dụng KPDL bằng thuật toán luật kết hợp để xây dựng hệ
thống tư vấn chọn ngành nghề học phù hợp cho sinh viên (Dữ liệu được thu thập từ phiếu thông tin cá nhân của sinh viên)
Trang 12Về thực tiễn: Đề tài sẽ góp phần cải thiện và tối ưu hóa, nhằm tư vấn chọn ngành
nghề cho sinh viên Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi có những lựa chọn về ngành nghề học phù hợp với bản thân và hỗ trợ các cán bộ chuyên trách tuyển sinh và giới thiệu việc làm của Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi.
6 Bố cục của luận văn
Báo cáo của luận văn tổ chức thành 3 chương chính như sau:
Chương 1: Nghiên cứu tổng quan
Chương này giới thiệu tổng quan về quá trình KPDL, các kỹ thuật KPDL, giới thiệu thuật toán xây dựng mô hình KPDL và lý thuyết về chọn nghề nghiệp,
Chương 2: Phân tích và xây dựng hệ thống
Chương này phân tích các lý thuyết chọn nghề nghiệp: LTCNN, LTMM Holland
và đưa ra mô hình đề xuất để giải quyết những hạn chế hiện tại trong công tác tư vấn chọn ngành nghề tại trường Từ đó xây dựng các luật, hỗ trợ tư vấn chọn ngành nghề cho Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi dựa trên hai lý thuyết này
Chương 3: Kiểm thử và đánh giá
Chương này trình bày quá trình kiểm thử và đánh giá hệ thống tư vấn chọn ngành nghề cho sinh viên Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi
Trang 13CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN
Chương này giới thiệu tổng quan về quá trình KPDL, các kỹ thuật KPDL, giới thiệu thuật toán xây dựng mô hình KPDL và lý thuyết về chọn nghề nghiệp,
1.1 Khai phá dữ liệu
1.1.1 Tổng quan về khai phá dữ liệu
1.1.1.1 Khái niệm khai phá dữ liệu
Khai phá dữ liệu là một khái niệm ra đời vào cuối những năm 1980 Nó là quá trình khám phá thông tin ẩn được tìm thấy trong các CSDL và có thể xem như là một bước trong quá trình khám phá tri thức Quá trình này kết xuất ra các tri thức tiềm ẩn từ
dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động sản xuất, giáo dục[1][2] KPDL làm giảm chi phí về thời gian so với phương pháp truyền thống trước kia (ví dụ như phương pháp thống kê)
Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về KPDL
Định nghĩa của Ferruzza: “KPDL là tập hợp các phương pháp được dùng trong
tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các mẫu chưa biết bên trong dữ liệu”.[9]
Định nghĩa của Parsaye: “KPDL là quá trình trợ giúp quyết định, trong đó chúng
ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn”.[9]
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm thường
nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”.[9]
1.1.1.2 Chức năng chính của khai phá dữ liệu
Data Mining được chia nhỏ thành một số hướng chính như sau:[14]
- Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt khái niệm Ví du: tóm tắt văn bản
- Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng khá đơn giản Ví dụ: “60% nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, giáo dục,
- Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết trước Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network), Người ta còn gọi phân lớp là học có giám sát (học có thầy)
- Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước) Người ta còn gọi phân cụm là học không giám sát (học không thầy)
Trang 14- Khai phá chuỗi (sequential/ temporal patterns): tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoáng vì nó có tính dự báo cao
1.1.1.3 Ứng dụng của khai phá dữ liệu
Data mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:[14]
- Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support)
- Điều trị y học (medical treatment)
- Text mining & Web mining
- Tin-sinh (bio-informatics)
- Tài chính và thị trường chứng khoán (finance & stock market)
- Bảo hiểm (insurance)
- Nhận dạng (pattern recognition),
1.1.1.4 Quy trình khai phá dữ liệu
Quy trình KPDL là một chuồi lặp (và tương tác) gồm các bước bắt đầu với dữ liệu thô và kết thúc với tri thức đáp ứng được sự quan tâm của người sử dụng.[1][6]
Hình 1.1 Quy trình KPDL
- Tập hợp dữ liệu (Data): Đây là giai đoạn đầu tiên trong quá trình KPDL Giai
đoạn này lấy dữ liệu trong một CSDL, một kho dữ liệu và dữ liệu từ các nguồn Internet[2]
- Trích lọc dữ liệu (Extraction): Giai đoạn này dữ liệu được lựa chọn hoặc phân
chia theo một số tiêu chuẩn nào đó.[2]
- Tiền xử lý và chuẩn bị dữ liệu (Preprocessing): Giai đoạn này rất quan trọng
trong quá trình KPDL Một số lỗi thường mắc phải trong khi thu thập dữ liệu như thiếu thông tin, không logic Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu Giai đoạn này tiến hành xử lý những dạng dữ liệu nói trên
Trang 15Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Vì vậy, đây
là một giai đoạn rất quan trọng vì dữ liệu này nếu không được làm sạch - tiền xử lý - chuẩn bị trước thì sẽ gây nên những kết quả sai lệch nghiêm trọng trong KPDL.[2]
- Chuyển đổi dữ liệu (Transformation): Giai đoạn chuyển đổi dữ liệu, dữ liệu đưa
ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó Dữ liệu đã được chuyển đổi phù hợp với mục đích khai thác.[2]
- Khai phá dữ liệu (Data Mining): Giai đoạn mang tính tư duy trong KPDL Ở
giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để xuất ra các mẫu từ dữ liệu Thuật toán thường dùng là thuật toán phân loại dữ liệu, kết hợp dữ liệu hoặc các
mô hình hóa dữ liệu tuần tự Đây là giai đoạn được nhiều người nghiên cứu nhất.[2]
- Đánh giá kết quả mẫu (Interpretation/ Evaluation): Giai đoạn cuối trong quá
trình KPDL Trong giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm KPDL Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để đưa ra các tri thức cần thiết
và sử dụng được.[2]
1.1.1.5 Kiến trúc của một hệ thống KPDL
Kiến trúc tổng quát của một hệ thống KPDL như sau:
Hình 1.2 Kiến trúc của một hệ thống KPDL[2]
1.1.2 Khai phá dữ liệu sử dụng luật kết hợp
1.1.2.1 Khái niệm về luật kết hợp
- Luật kết hợp là tìm các mẫu phổ biến, sự kết hợp, sự tương quan hay các cấu trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ và những kho thông tin khác để đưa ra các mối liên kết giữa các phần tử dữ liệu.[2]
Trang 16Khái niệm luật kết hợp được phát biểu lần đầu tiên bởi R Agrawal (1993), và
được hơn 6000 ý kiến tán thành thông qua Google Scholar Trong quyển “Mining
Association Rules Between Sets of Items in Large Databases”, R Agrawal đã đưa ra
một định nghĩa về luật kết hợp như sau:
Định nghĩa 1: Cho tập I = {i 1 ,i 2 , … ,i n } là tập n thuộc tính nhị phân gọi là các phần tử (tên tiếng anh là item) Cho D = {t 1 ,t 2 , … ,t m } là tập các giao tác gọi là cơ sở
dữ liệu Mỗi giao tác trong D có một ID duy nhất và chứa tập các mục trong I Một luật được định nghĩa sự kéo theo có dạng X Y trong đó X,Y I và X Y = Tập các mục gọi là tập mục (itemset) X gọi là phần mệnh đề điều kiện (phần bên trái) và Y gọi là mệnh đề kết quả của luật tương ứng.[2]
Ví dụ, trong siêu thị, có tập các mục I = {milk, bread, butter, beer} và một cơ sở dữ liệu chứa các mục (tại mỗi giao tác, giá trị 1 là có mục, giá trị 0 là không có) như sau:
Dựa trên ví dụ này, có thể suy ra luật {butter, bread} {milk}, có nghĩa là khi
khách hàng mua butter và bread thì người đó cũng sẽ mua milk
Khái niệm này được xem như tổng quát nhất cho phát biểu về luật kết hợp
Để chọn ra các luật có ích từ tập các luật có thể có, ta cần ràng buộc những số đo đảm bảo ý nghĩa Hai ràng buộc được xem là quan trọng nhất, đó là giá trị độ phổ biến (Support) và độ tin cậy tối thiểu (Min Confident)
- Độ phổ biến
Độ phổ biến (một số tài liệu dịch là độ hỗ trợ) của một tập mục X được định
nghĩa là tỷ lệ các giao tác có chứa tập mục này trong cơ sở dữ liệu với tổng số các giao tác [2]
Ví dụ, tập mục {milk, bread, butter} có độ phổ biến là 2/5 = 0.4 hay 40% số giao tác
Định nghĩa 2: Độ phổ biến của một tập mục X trong cơ sở dữ liệu D là tỷ số giữa các bản ghi T D có chứa tập X với tổng số bản ghi trong D (hay là phần trăm của các bản ghi trong D có chứa tập mục X), ký hiệu là Support(X) hay Supp(X).[2]
Trang 17Ta có: 0 ≤ Supp(X) ≤ 1 với mọi tập mục X
Định nghĩa 3: Độ phổ biến của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi chứa tập hợp X Y, so với tổng số các bản ghi trong D Ký hiệu Supp(XY).[2]
- Độ tin cậy
Định nghĩa 4: Độ tin cậy (tên tiếng anh là minimum confident) được định nghĩa như sau: Độ tin cậy của luật X Y là xác suất xuất hiện Y với điều kiện X trong tất cả các giao tác.[2]
( )
Supp Conf
Supp X
Ta có thêm định nghĩa khác để hiểu rõ hơn về độ tin cậy :
Định nghĩa 5: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi trong D chứa XY với số bản ghi trong D có chứa tập hợp X Ký hiệu độ tin cậy của một luật là Conf(r) Ta có 0 ≤ conf(r) ≤ 1.[2]
Tính chất 2: Giả sử A, B là hai tập mục, A,B I, nếu B là tập mục thường xuyên
và A B thì A cũng là tập mục thường xuyên.[2]
Thật vậy, nếu B là tập mục thường xuyên thì Supp(B) ≥ minsup, mọi tập hợp A là con của tập hợp B đều là tập hợp thường xuyên trong cơ sở dữ liệu D vì Supp(A) ≥ Supp(B) (Tính chất 1)
Tính chất 3: Giả sử A, B là hai tập mục, A B và A là tập mục không thường xuyên thì B cũng là tập mục không thường xuyên.[2]
Trang 18- Đầu tiên, giá trị minSup được áp dụng để tìm ra các tập mục xuất hiện thường
xuyên trong cơ sở dữ liệu
- Bước thứ hai là từ những tập này, áp dụng giá trị minConf để tạo ra luật
Trong khi bước thứ hai chỉ cần áp dụng trực tiếp thì ta cần quan tâm một số vấn
đề trong bước thứ nhất Việc tìm tất cả các tập thường xuyên trong cơ sở dữ liệu rất
khó, nó bao gồm công việc tìm ra tất cả các tập có thể xảy ra (kết hợp các mục lại) Tập
hợp các tập mục gọi là tập cha I có kích thước 2n
– 1 (n là số lượng mục) Kích thước của tập cha này sẽ tăng theo hàm số mũ dựa trên số lượng mục n trong I, ta có một
nhận xét một tập mục thường xuyên thì tất cả những tập con của nó phải là những tập thường xuyên Thông qua nhận xét này, các có nhiều thuật toán tìm ra các tập mục thường xuyên khá hiệu quả như Apriori, Eclat
Hình 1.3 Quá trình tìm tập các tập mục thường xuyên với tập mục có 3 item
Để cụ thể hóa, dựa trên quá trình thực hiện này thành bài toán khai phá luật kết hợp, bài toán này được chia thành hai bài toán con tương tự như 2 bước ở trên:
Bài toán 1: Tìm tất cả các tập mục thường xuyên trong cơ sở dữ liệu D
Bài toán 2: Sử dụng tập mục thường xuyên tìm được ở bài toán 1 để đưa ra các
luật tin cậy Ý tưởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng
ta có thể có luật AB CD với tỷ lệ độ tin cậy:
Supp ABCD Conf
Supp AB
Nếu conf ≥ minConf thì luật AB CD được giữ lại
Trên thực tế, hầu hết thời gian của quá trình khai thác luật kết hợp là thực hiện
trong bài toán 1
Có rất nhiều nghiên cứu về các phương pháp sinh tất cả các tập mục thường xuyên và tập phổ biến lớn nhất một cách có hiệu quả Khi các mẫu thường xuyên bắt đầu nhiều (có từ 15 đến 20 mục) thì hầu hết các phương pháp truyền thống phải đếm quá nhiều tập mục mới có thể thực hiện được Các thuật toán dựa trên thuật toán Apriori – đếm tất cả 2k tập con của mỗi tập k mục mà chúng quét qua, và do đó không
thích hợp với các tập mục dài được Các phương pháp khác sử dụng “lookaheads” để
Trang 19giảm số lượng tập mục được đếm Tuy nhiên, hầu hết các thuật toán này đều sử dụng
tìm kiếm theo chiều rộng, ví dụ: tìm tất cả các tập k-1 mục trước khi tính đến các tập
k mục
Để minh họa rõ hơn quá trình này, ta khảo sát qua ví dụ sau
Ví dụ: Giả sử ta có cơ sở dữ liệu mua hàng D gồm hai thuộc tính Transaction ID
(khóa – số hóa đơn), Items Bought (các mã mặt hàng đã mua trong hóa đơn) Với
{A,B,C,D,E,F}, ta tìm được các tập mục thường xuyên {A = 3/4 = 75%, B=2/4= 50%,
C = 2/4= 50%}, sau lần kết các mục lại, ta còn lại tập 2 mục là {{A,C}=50%}
Ta tính :
Conf(AC)=Sup(AC)/Sup(A)=0,5/0,75=0,667=66,7% > minConf
Conf(CA)= Sup(AC)/Sup(C)=0,5/0,5=1=100% > minConf
Vậy kết quả, ta tìm ra 2 luật{AC, CA}
1.1.2.3 Một số hướng tiếp cận
Luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng
khác nhau Có những đề xuất nhằm cải tiến thuật toán, có đề xuất tìm kiếm những luật
có ý nghĩa hơn v.v… và có một số hướng chính sau đây:
- Luật kết hợp nhị phân (Binary association rule): là hướng nghiên cứu đầu tiên
của luật kết hợp Theo luật này, các items chỉ quan tâm là xuất hiện hay không trong cơ
sở dữ liệu giao tác chứ không quan tâm về mức độ hay tần suất xuất hiện Thuật toán
tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori.[8]
- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (Quantitative and
categorial association rule): các cơ sở dữ liệu thực tế thường có thuộc tính đa dạng
(như nhị phân, số, mục (categorial) ) chứ không nhất quán ở một kiểu nhất định Vì
vậy để khai phá luật kết hợp với các cơ sở dữ liệu này các nhà nghiên cứu đề xuất một
số phương pháp rời rạc hóa nhằm chuyển dạng luật này về dạng nhị phân để có thể áp
dụng các thuật toán đã có.[8]
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rule base on
rough set): tìm kiếm luật kết hợp dựa trên lí thuyết tập thô.[8]
Trang 20- Luật kết hợp nhiều mức (multi-level association rule): với cách tiếp cận luật
kết hợp thế này sẽ tìm kiếm thêm những luật có dạng: mua máy tính PC mua hệ điều hành Window AND mua phần mềm văn phòng Microsoft Office,… [8]
- Luật kết hợp mờ (fuzzy association rule): Với những khó khăn gặp phải khi rời
rạc hóa các thuộc tính số, các nhà nghiên cứu đề xuất luật kết hợp mờ khắc phục hạn chế đó và chuyển luật kết hợp về một dạng gần gũi hơn.[8]
- Luật kết hợp với thuộc tính được đánh trọng số (association rules with
weighted items): Các thuộc tính trong cơ sở dữ liệu thường có vai trò khác nhau Có một số thuộc tính quan trọng và được chú trọng hơn các thuộc tính khác Vì vậy trong quá trình tìm kiếm luật các thuộc tính được đánh trọng số theo mức độ xác định nào đó.[8]
1.1.2.4 Một số thuật toán
- Thuật toán Apriori
Thuật toán do Agrawal đưa ra năm 1994[9], được Cheung đánh giá mang tính chất lịch sử trong lĩnh vực khai phá luật kết hợp, vì đã vượt xa tầm của các thuật toán quen thuộc trong lĩnh vực này Trong ngành khoa học máy tính và KPDL, thuật toán Apriori là một trong các thuật toán được xem khi nghiên cứu về luật kết hợp Apriori được thiết kế dựa trên các cơ sở dữ liệu chứa các giao tác (ví dụ, tập các mặt hàng được mua, chi tiết số lần truy cập trang web, giá mở cửa – đóng cửa của các cổ phiếu…)
Apriori sử dụng phương pháp tìm kiếm theo chiều rộng và cấu trúc cây để đếm
các tập mục ứng viên thường xuyên Nó sinh ra các tập ứng viên có độ dài k từ tập
(k-1) ứng viên, nó bỏ bớt các ứng viên có các mẫu con ít xảy ra Sau đó, quét qua các giao
tác để xác định những tập nào có trong các ứng viên Cuối cùng, nó loại bỏ dần những tập ứng viên không đạt.[9]
Tóm lại, thuật toán Apriori được tỉa bớt những tập ứng cử viên có tập con không
phổ biến trước khi tính độ hỗ trợ Thuật toán tính tất cả các tập ứng cử của tập k trong một lần duyệt CSDL Apriori dựa vào cấu trúc cây băm (hashtree) Tìm kiếm đi xuống
trên cấu trúc cây mỗi khi ta chạm lá, ta tìm được một tập ứng cử viên có tiền tố chung được bao gồm trong giao dịch Sau đó các tập ứng cử này được tìm trong giao dịch đã được ánh xạ trước đó Trong trường hợp tìm thấy biến đếm được tăng lên 1.[9]
Trang 21Hình 1.4 Apriori tìm theo chiều rộng, sinh tập k ứng viên từ tập (k-1)[9]
Bảng 1.3 Bảng ký hiệu cho thuật toán Apriori
Trang 22Nội dung thuật toán
for all ứng viên c Ct c.count++
2 Bỏ bớt một số tập con Ck-1 nếu c không nằm trong Lk-1
Ví dụ, Khi k=5, ta lấy 2 tập p, q bất kì ra từ tập L4 như sau
p: {bread, cucumber, onion, tomato}
q: {bread, cucumber, onion, parsley}
Sinh ứng viên và đưa vào C5
c = {bread, cucumber, onion, tomato, parsley}
Trang 231 Tạo ra một cây băm cho Ck
- Thêm tập mục c
+ Đi từ gốc đến khi gặp nút lá
+ Tại các nút trong gian với độ sâu d, chọn nhánh để đi tiếp, áp dụng hàm băm cho mục thứ d của c
- Tất cả các nút được tạo ban đầu được xem như một cây
- Một lá có thể chuyển thành nút trung gian khi số lượng nút tăng lên
2 Sau khi xây dựng cây băm Ck, hàm subset sẽ tìm các ứng viên thuộc t như sau:
- Tại nút lá, tìm tập mục mà giao tác t chứa
- Tại nút trung gian, khi sắp đến nút I, ta sẽ xem I có thuộc t hay không, và đi theo nhánh tương ứng
- Tại nút gốc, tìm tất cả các mục thuộc t
Ví dụ:
Hình 1.5 Cây băm C 2
- Thuật toán ASI
Thuật toán do Agrwal đưa ra năm 1993[9] Thuật toán này khai phá luật kết hợp
có dạng XY, với Y là tập mục chỉ bao gồm 1 tính chất (hợp 1 mục) Thuật toán tìm
cách xây dựng dần các tập ứng cử viên cho “chức vụ” tập hợp xuất hiện thường xuyên Với cách đánh số thứ tự từ điển cho từng tính chất, việc bổ sung phần tử cho tập ứng cử viên tránh được trùng lặp, do vậy tiết kiệm tối đa thời gian tính toán
Số lượng các tập ứng cử viên quá nhiều có thể gây ra hiện tượng tràn bộ nhớ Thuật toán đề nghị một phương án quản lý bộ nhớ hợp lý đề phòng trường hợp này:
không cho phép các ứng cử viên chiếm bộ nhớ, mà ghi thẳng chúng vào đĩa ở chế độ
Trang 24Nội dung thuật toán ASI
Input: CSDL D, độ hỗ trợ cực tiểu minSup
Lt = Subset(Lk-1,t); // các tập mục phổ biến thuộc
L(k-1) chứa trong giao dịch t
FOR ALL các tập mục thường xuyên lt Lt DO
BEGIN
FOR ALL các ứng cử viên c Ct DO
- Thuật toán SETM
Thuật toán do Houtsma đưa ra năm 1995[9] Thuật toán sử dụng kỹ thuật bổ sung
dần dần từng phần tử (từ tập hợp 1 mục) nhằm tìm kiếm các tập hợp ứng cử viên Một
cải tiến đáng kể thuật toán là đề nghị lưu lại cả ID của giao dịch cùng với tập hợp ứng
cử viên Agrawal đã chỉ ra, thuật toán giả định đưa toàn bộ tập hợp ứng cử viên của bước trước vào bộ nhớ để bước sau sử dụng Sarawagi (người đề xuất luật kết hợp) đã chỉ ra thuật toán này không hiệu quả
Nội dung thuật toán SETM
Input: CSDL D, độ hỗ trợ cực tiểu minSup
Trang 25- l) mục phổ biến trong giao dịch t
FOR ALL các tập mục phổ biến lt Lt DO
DELETE các mục c C'k có c.Count <minSup đưa vào L'k ;
Lk ={«l.itemset, COUNT OF(l L'k) » | l L'k};
SORT L'k theo TID;
END
Kết quả = k Lk
- Thuật toán Apriori-TID
Thuật toán Apriori-TID là phần mở rộng dựa theo hướng tiếp cận cơ bản của thuật toán Apriori[2] Như ta đã thấy, thuật toán Apriori đòi hỏi phải quét toàn bộ cơ
sở dữ liệu để tính độ phổ biến cho các tập hợp ứng cử viên ở mỗi bước Đây là một sự lãng phí lớn Dựa trên tư tưởng ước đoán và đánh giá độ phổ biến, Agrawal đề nghị cải tiến Apriori theo hướng chỉ phải quét cơ sở dữ liệu lần đầu tiên, sau đó tính độ hỗ trợ
cho các tập hợp 1 mục Từ bước thứ hai trở đi, thuật toán Apriori-TID nhờ lưu trữ song
song cả ID của giao dịch và các ứng cử viên, có thể đánh giá, ước lượng độ phổ biến
mà không cần phải quét lại toàn bộ cơ sở dữ liệu
Thuật toán sử dụng hàm apriori_gen() (giống như thuật toán Apriori) để sinh ra
tập ứng viên trước khi bắt đầu[2] Không sử dụng cơ sở dữ liệu D để đếm độ phổ biến sau lần đầu tiên Thay vào đó, tập Fk sẽ đảm trách nhiệm vụ này Mỗi thành viên trong tập Fk sẽ có dạng <TID, {Xk}>, trong đó mỗi Xk là chứa các tập k mục thường xuyên
có nằm trong trong giao tác có định danh TID Khi k=1, F1 sẽ ứng với cơ sở dữ liệu D, dựa trên khái niệm tập hợp, mỗi phần tử i sẽ được thay thế bằng tập mục {i} Với k>1,
Fk được sinh ra là tập các ứng viên có mặt trong các giao tác Các thành viên trong Fkứng với từng giao tác t:
<t.TID, {c Ck|t chứa c}>
Nếu một giao tác nào đó không chứa bất kì tập k mục nào, thì ta sẽ xóa Fk này Vì
Trang 26thế số lượng phần tử Fk sẽ nhỏ đi khi giá trị k càng lớn so với số lượng giao tác Tuy nhiên, khi k chưa đủ lớn, mỗi tập ứng với từng giao tác sẽ chứa số lượng mục nhiều hơn so với giao tác tương ứng vì Ck chứa tất cả ứng viên k mục mà giao tác đó chứa
Bảng 1.4 Bảng ký hiệu cho thuật toán Apriori-TID
Trang 27FOR ALL candidates c C’t DO c.count++ ;
Hàm apriori_gen() trong thuật toán này tương tự hàm apriori_gen() trình bày
trong thuật toán Apriori
Ví dụ: Giả sử ta có cơ sở dữ liệu D, giá trị minSup=50% như sau:
{1,2}.count=1, {1,3}.count=2, {1,5}.count=1,{1,5}.count=1,
{2,3}.count=2, {2,5}.count=2, {3,5}.count=2;
F 2 ={{100,{{1,3}}}, {200, {{2,3},{2,5},{3,5}},
{300,{ {1,2}, {1,3}, {1,5}, {2,3}, {2,5}, {3,5}}}
Trang 28{ ,3} 50% 2,3} 50% {2,5} 75% {3,5} 50%
Trang 29- Thuật toán FP Growth
Thuật toán FP growth (viết tắt cụm từ Frequent Pattern) ra đời vào tháng 5/2000 như một hướng phát triển mới để khắc phục những khuyết điểm của các thuật toán tìm các luật kết hợp trước đây.[9]
1.1.3 Khai phá dữ liệu với bài toán phân lớp
1.1.3.1 Phân lớp dữ liệu
Phân lớp dữ liệu (classification) là một trong những hướng nghiên cứu khác của khai phá dữ liệu Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với nhiều thông tin ẩn con người có thể trích rút ra các quyết định nghiệp vụ thông minh
Phân lớp dự đoán giá trị của những nhãn xác định (categorical label) hay những giá trị rời rạc (discrete value), có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ giá trị là biết trước Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị liên tục
Phân lớp dữ liệu là một quá trình gồm hai bước: một bước học (trong đó xây dựng nên một mô hình phân lớp) và một bước phân lớp (trong đó mô hình vừa xây dựng được sử dụng để dự đoán các nhãn lớp cho những dữ liệu nào đó).[2]
Hình 1.6 minh họa quá trình này cho trường hợp dữ liệu xin vay tiền Dữ liệu ấy
đã được đơn giản hóa để dễ minh họa Trong thực tế, có thể ta cần xem xét nhiều thuộc tính hơn
Hình 1.6(a): Bước học/ huấn luyện trong quá trình phân lớp hai bước [10]
Trang 30Hình 1.6(b): Bước phân lớp trong quá trình phân lớp hai bước [10]
Ở bước thứ nhất (Hình 1.6(a)), ta xây dựng một mô hình phân lớp mô tả một bộ xác định trước các lớp dữ liệu hay khái niệm Đây là bước học (hay giai đoạn huấn luyện), ở đó một thuật toán phân lớp xây dựng nên mô hình phân lớp bằng cách phân
tích hoặc “học hỏi từ” một tập huấn luyện hình thành từ các bản ghi trong CSDL và
các nhãn lớp liên kết với chúng Mỗi bản ghi X được biểu diễn bởi một vector thuộc
tính gồm n-chiều, X = (x 1 , x 2 , …, x n ), mô tả n giá trị đo đã thực hiện trên bản ghi đó từ
n thuộc tính tương ứng của CSDL A 1 , A 2 , …, A n Mỗi bản ghi X được giả định là thuộc
về một lớp được quy định trước, như được xác định bởi một thuộc tính khác của CSDL
gọi là thuộc tính nhãn lớp
Thuộc tính nhãn lớp này có trị rời rạc và không có thứ tự Nó có tính phân loại ở chỗ mỗi giá trị của nó đóng vai trò một loại hoặc lớp Các bản ghi riêng tạo thành tập huấn luyện được gọi là các bản ghi huấn luyện và được lấy mẫu ngẫu nhiên từ CSDL
đang phân tích Trong ngữ cảnh phân lớp, các bản ghi của CSDL có thể được các tài
liệu khác nhau gọi là mẫu, ví dụ, thể hiện, điểm dữ liệu, hoặc đối tượng
Do nhãn lớp của mỗi bản ghi huấn luyện đều được cung cấp sẵn, nên bước này
còn được gọi là học có giám sát, tức là việc học của mô hình phân lớp là “có giám sát”
ở chỗ nó được cho biết là mỗi bản ghi huấn luyện thuộc về lớp nào Nó trái với học
không giám sát, trong đó ta không biết nhãn lớp của mỗi bản ghi huấn luyện và có thể
cả số lượng hoặc tập hợp các lớp cần học nữa
1.1.3.2 Các phương pháp phân lớp dữ liệu
- Phân lớp dữ liệu bằng cây quyết định: Quy nạp cây quyết định (decision tree
induction) là việc tìm kiếm các cây quyết định từ những bản ghi huấn luyện đã có nhãn lớp Mỗi cây quyết định (decision tree) là một cấu trúc cây kiểu lưu đồ, trong đó mỗi nút trong biểu thị một sự kiểm tra trên một thuộc tính nào đó, mỗi nhánh biểu diễn một kết quả của sự kiểm tra đó, còn mỗi nút lá chứa một nhãn lớp Nút ở trên cùng của cây
là nút gốc, chứa tên của thuộc tính cần kiểm tra.[1]