Professional Documents
Culture Documents
Nhóm 5 1
GVHD: Nguyễn Mạnh Cường
Trong thời buổi hiện đại ngày nay, công nghệ thông tin cũng như những ứng
dụng của nó không ngừng phát triển, lượng thông tin và cơ sở dữ liệu được thu thập
và lưu trữ cũng tích lũy ngày một nhiều lên. Con người cũng vì thế mà cần có thông
tin với tốc độ nhanh nhất để đưa ra quyết định dựa trên lượng dữ liệu khổng lồ đã
có. Các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng
không đáp ứng được thực tế, vì thế, một khuynh hướng kỹ thuật mới là Kỹ thuật
phát hiện tri thức và khai phá dữ liệu nhanh chóng được phát triển.
Khai phá dữ liệu đã và đang được nghiên cứu, ứng dụng trong nhiều lĩnh vực
khác nhau ở các nước trên thế giới. Ở Việt Nam, kỹ thuật này đang được nghiên
cứu và dần đưa vào ứng dụng. Khai phá dữ liệu là một bước trong quy trình phất
hiện tri thức. Hiện nay, mọi người không ngừng tìm tòi các kỹ thuật để thực hiện
khai phá dữ liệu một cách nhanh nhất và có được kết quả tốt nhất.
Trong bài tập lớn này, chúng em tìm hiểu và trình bày về một kỹ thuật trong khai
phá dữ liệu để phân lớp dữ liệu cũng như tổng quan về khai phá dữ liệu, với đề tài “
Phân lớp dữ liệu số bằng giải thuật K-NN”.
Trong quá trình làm bài tập lớn này, chúng em xin gửi lời cảm ơn đến thầy
giáo Nguyễn Mạnh Cường. Thầy đã rất tận tình hướng dẫn chi tiết cho chúng em,
những kiến thức thầy cung cấp rất hữu ích. Chúng em rất mong nhận được những
góp ý từ thầy.
Chúng em xin chân thành cảm ơn!
Nhóm 5 2
GVHD: Nguyễn Mạnh Cường
(Data Warehousing) và các công cụ phân tích trực tuyến (OLAP- On Line
Analytical Processing) cũng liên quan rất chặt chẽ với phát hiện tri thức và khai phá
dữ liệu.
Khai phá dữ liệu có nhiều ứng dụng trong thực tế, ví dụ như:
• Bảo hiểm, tài chính và thị trường chứng khoán: 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. Danh mục
vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận, ...
• Thống kê, phân tích dữ liệu và hỗ trợ ra quyết định.
• Điều trị y học và chăm sóc y tế: một số thông tin về chuẩn đoán bệnh lưu
trong các hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa các triệu
chứng bệnh, chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng,
thuốc, ...)
• Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố.
• Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn
bản,...
• Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm
kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số
bệnh di truyền, ...
• Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi,
sự cố, chất lượng dịch vụ, ...
- Các bước của quá trình khai phá dữ liệu
Quy trình phát hiện tri thức thường tuân theo các bước sau:
Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán. Là tìm hiểu lĩnh
vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn
Nhóm 5 4
GVHD: Nguyễn Mạnh Cường
thành. Bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép
chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản
chất của dữ liệu.
Bước thứ hai: Thu thập và tiền xử lý dữ liệu. Là thu thập và xử lý thô, còn
được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu (làm sạch dữ liệu), xử lý việc thiếu
dữ liệu (làm giàu dữ liệu), biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước
này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức. Do
dữ liệu được lấy từ nhiều nguồn khác nhau, không đồng nhất, … có thể gây ra các
nhầm lẫn. Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hoá.
Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức. Là khai phá dữ liệu, hay
nói cách khác là trích ra các mẫu hoặc/và các mô hình ẩn dưới các dữ liệu. Giai
đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục
đích của khai phá dữ liệu, dùng phương pháp khai phá nào? Thông thường, các bài
toán khai phá dữ liệu bao gồm: các bài toán mang tính mô tả - đưa ra tính chất
chung nhất của dữ liệu, các bài toán dự báo - bao gồm cả việc phát hiện các suy
diễn dựa trên dữ liệu hiện có. Tuỳ theo bài toán xác định được mà ta lựa chọn các
phương pháp khai phá dữ liệu cho phù hợp.
Bước thứ tư: Sử dụng các tri thức phát hiện được. Là hiểu tri thức đã tìm được,
đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một
số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện. Các
kết quả của quá trình phát hiện tri thức có thể được đưa vào ứng dụng trong các lĩnh
vực khác nhau do các kết quả có thể là các dự đoán.
Trong khai phá dữ liệu, mục đích của luật kết hợp là tìm ra các mối quan hệ giữa
các đối tượng trong khối lượng lớn dữ liệu.
Để khai phá luật kết hợp có rất nhiều thuật toán, nhưng dùng phổ biến nhất là thuật
toán Apriori. Đây là thuật toán khai phá tập phổ biến trong dữ liệu giao dịch để phát
hiện các luật kết hợp dạng khẳng định nhị phân và được sử dụng để xác định, tìm ra
các luật kết hợp trong dữ liệu giao dịch.
Ngoài ra, còn có các thuật toán FP-growth, thuật toán Partition,…
b. Kỹ thuật phân lớp
- Phân lớp dựa trên khoảng cách (giải thuật K – láng giềng): làm như láng
giềng làm, dữ liệu sẽ được phân vào lớp của k đối tượng gần với dữ liệu đó
nhất.
- Phân lớp bằng SVM: phân lớp dữ liệu dựa trên việc tìm ra một siêu phẳng
“tốt nhất” để tách các lớp dữ liệu trên không gian nhiều chiều hơn.
Phân cụm dữ liệu là cách phân bố các đối tượng dữ liệu vào các nhóm/ cụm sao cho
các đối tượng trong một cụm thì giống nhau hơn các phần tử khác cụm, gồm có một
số phương pháp phân cụm cơ bản như:
+ Phân cụm bằng phương pháp K-mean: tìm ra tâm của các cụm mà khoảng cách
của tâm đó đến các đối tượng, dữ liệu khác là ngắn.
+ Phân cụm trên đồ thị
Ngoài ra, khai phá dữ liệu có rất nhiều kỹ thuật, nhưng đây là những kỹ thuật cơ
bản và đơn giản trong khai phá dữ liệu mà chúng em được tìm hiểu.
Nhóm 5 6
GVHD: Nguyễn Mạnh Cường
Bài toán phân loại dữ liệu là một trong những bài toán thường gặp trong cuộc
sống và kĩ thuật, có rất nhiều cách tiếp cận và giải thuật được đưa ra để giải quyết
bài toán phân lớp. Một trong số đó là thuật toán láng giềng gần k-NN(k-Nearest
Neighbors).
Thuật toán K- láng giềng gần nhất ( viết tắt là K-NN) là thuật toán có mục đích
phân loại lớp cho một mẫu mới ( Query Point) dựa trên các thuộc tính và các mẫu
sẵn có ( Training Data) , các mẫu này được nằm trọng một hệ gọi là không gian
mẫu.
Một đối tượng được phân lớp dựa vào K láng giềng của nó. K là số nguyên dương
được xác định trước khi thực hiện thuật toán. Người ta thường dùng khoảng cách
Euclidean để tính khoảng cách giữa các đối tượng với mẫu mới, sau đó chuẩn đoán
mẫu mới thuộc phân lớp nào dựa vào số k láng giềng xác định trước có khoảng cách
gần mẫu mới nhất so với các mẫu khác.
2.2. Mô tả thuật toán K-NN
Các mẫu được mô tả bằng n – chiều thuộc tính số. Mỗi mẫu đại diện cho
một điểm trong một chiều không gian n – chiều. Theo cách này tất cả các mẫu được
lưu trữ trong một mô hình không gian n – chiều.
Các bước thực hiện của Thuật toán K-NN được mô tả như sau:
• Xác định giá trị tham số K ( số láng giềng gần nhất).
• Tính khoảng cách giữa đối tượng cần phân lớp (Query Point) với tất
cả các đối tượng trong các mẫu có sẵn (Trainning Data) ( Thường sử
dụng khoảng cách Euclidean).
• Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng
gần nhất với Query Point.
• Lấy tất cả các lớp của K láng giềng gần nhất đã xác định.
• Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho
Query Ponit.
Minh họa về K-NN:
Trong hình dưới đây, Trainning Data được mô tả bằng dấu (+) và dấu (-), đối
tượng cần được xác định lớp cho nó (Query Point) là hình mặt cười đỏ. Nhiệm vụ
của ta là ước lượng lớp của Query Point dựa vào việc lựa chọn số láng giềng gần
nhất với nó. Nói cách khác ta muốn biết liệu Query Point sẽ được phân vào lớp (+)
hay lớp (-).
Nhóm 5 7
GVHD: Nguyễn Mạnh Cường
Ta thấy rằng:
Có 5 Nearest Neightbor: Kết quả là (–) :Query Point được xếp vào lớp dấu (–) vì
trong 5 láng giềng gần nhất với nó thì có 3 đối tượng thuộc lớp (–) nhiều hơn lớp
(+) chỉ có 2 đối tượng.)
Nhóm 5 8
GVHD: Nguyễn Mạnh Cường
tập huấn luyện và chọn ra k dữ liệu gần giống nhất. Trong k dữ liệu đó, k-NN sẽ
xem xét xem lớp nào là lớp chiếm đa số --> và sẽ đưa ra kết luận rằng tập dữ liệu
cần xác định thuộc loại đó.
Ví dụ được tham khảo trong cuốn “Machine learning in action” của Petter
Harington.
Ta sẽ đi phân loại xem một bộ phim thuộc thể loại phim hành động hay phim
tình cảm. Việc phân loại phim sẽ được xác định bằng cách đếm số lượng cú đá hoặc
số lượng nụ hôn trong phim. Ở đây, chúng ta đã một tập huấn luyện(training set),
tập đó chứa một số phim đã biết số lượng cú đá, nụ hôn trong phim đó, và loại phim
được cho trong bảng sau:
Tên phim Số lượng cú đá Số lượng nụ hôn Loại phim
California Man 3 104 Tình cảm
He isn't really into 2 100 Tình cảm
dudes
Beautiful Woman 1 81 Tình cảm
Kevin Longblade 101 10 Hành động
Robo Slayer 3000 99 5 Hành động
Amped II 98 2 Hành động
Anh 18 90 ???
Ta đã biết được số lượng cú đá, số lượng nụ hôn trong phim. Nhiệm vụ của ta ở đây
là xác định xem phim ? thuộc thể loại nào?
Đầu tiên chúng ta sẽ xác định xem sự giống nhau của phim “Anh” với các
phim khác như thế nào. Để làm được điều đó, ta sẽ sử dụng Euclidean distance.
Euclidean distance là việc chúng ta tìm khoảng cách giữa hai điểm trong
không gian, ví dụ cho 2 điểm P1(x1,y1) và P2(x2,y2) thì Euclidean distance sẽ được
tính theo công thức:
d=
Để áp dụng trong euclidean distance vào trong trường hợp này, chúng ta sẽ coi mỗi
phim sẽ được biểu diễn bởi một điểm trong tọa độ Oxy với số lượng cú đá là tọa độ
x và số lượng nụ hôn là tọa độ y. Điều đó có nghĩa là phim “California Man” sẽ
được biểu diễn bởi điểm (3, 104); phim “He isn't really into dudes” sẽ được biểu
diễn bởi điểm (2, 100), ..
Gọi d là euclidean distance thì:
• “California Man”: d = =20.5
• “He isn't really into dudes”: d= = 18.7
• “Beautiful Woman”: d = =19.2
Nhóm 5 9
GVHD: Nguyễn Mạnh Cường
Chúng ta đã có khoảng cách euclidean từ phim chưa biết lớp tới từng phim trong tập
huấn luyện, giờ chúng ta sẽ tìm ra k láng giềng gần nhất bằng cách sắp xếp các
phim theo thứ tự euclidean distance từ nhỏ đến lớn. Giả sử k = 3 thì 3 láng giềng
gần nhất, đó là các phim “California Man”, “He isn't really into dudes” và
“Beautiful Woman”. Thuật toán k-NN sẽ lấy loại phim nào chiếm ưu thế trong các
láng giếng gần nhất để làm loại phim cho phim cần được xác định lớp. Vì 3 phim
trên đều là thể loại Tình cảm ==> Phim “Anh” thuộc thể loại phim tình cảm.
Nhóm 5 10
GVHD: Nguyễn Mạnh Cường
Theo KDNuggets (2005): Weka là sản phẩm khai thác dữ liệu được sử dụng
nhiều nhất và hiệu quả nhất năm 2005.
Những tính năng nổi bật của Weka:
• Hỗ trợ nhiều thuật toán máy học và khai thác dữ liệu.
• Được tổ chức theo dạng mã nguồn mở.
• Độc lập với môi trường ( do sử dụng máy ảo java JVM).
• Dễ sử dụng, kiến trúc dạng thư viện dễ dàng trong việc xây dựng các ứng
dụng thực nghiệm.
Các chức năng của Weka:
Nhóm 5 11
GVHD: Nguyễn Mạnh Cường
Các chức năng chính của Weka Explorer thể hiện trong các thẻ (tab) của màn
hình chính, bao gồm:
• Preprocess: Cho phép mở, điều chỉnh, lưu một tập tin dữ liệu, thẻ này chứa các
thuậtt toán áp dụng trong tiền xử lý dữ liệu.
• Classify: Cung cấp các mô hình phân loại dữ liệu hoặc hồi quy.
• Cluster: Cung cấp các mô hình gom cụm.
• Associate: Khai thác tập phổ biến và luật kết hợp.
• SelectAttribites: Lựa chọn các thuộc tính thích hợp nhất trong 1 tập dữ liệu.
• Visualize: Thể hiện dữ liệu dưới dạng biểu đồ.
Khai phá dữ liệu:
* Sử dụng thẻ Preprocess
(1) Open file…: Mở một tập tin dữ liệu.
(2) Edit…: Hiển thị và chỉnh sửa dữ liệu bằng tay nếu cần thiết.
(3) Save…: Lưu dữ liệu hiện tại ra tập tin. Weka Explorer hỗ trợ một số định dạng
trong đó có 2 định dạng chính cần quan tâm là *.arff và *.csv
(4) Filter: Các tác vụ tiền xử lý được gọi là các bộ lọc( thuật toán)
(5) Selected attribute: Thông tin về thuộc tính đang được chọn:
Nhóm 5 12
GVHD: Nguyễn Mạnh Cường
o Type: Kiểu dữ liệu của thuộc tính (Numeric: Dạng số, Nominal: Dạng
rời rạc/phi số).
o Missing: Số mẫu thiếu giá trị trên thuộc tính đang xét.
o Distinct: Số giá trị phân biệt.
o Unique: Số mẫu không có giá trị trùng với mẫu khác.
o Bảng thống kê:
Dạng phi số:Thể hiện các giá trị và tần suất của mỗi giá trị
Dạng số:Thể hiện một số đại lượng thống kê như giá trị nhỏ nhất, lớn
nhất, giá trị trung bình và độ lệch chuẩn.
Để thực hiện K-NN trên Weka, ta chọn tag Classify rồi Choose IBk:
Nhóm 5 13
GVHD: Nguyễn Mạnh Cường
Chúng ta có thể chọn số K và xác định công thức tính khoảng cách cho thuật tán
bằng cách click đúp vào ô thuật toán một cửa sổ hiện ra như sau:
Ngoài ra, chúng ta còn thực hiện chức năng KnowledgeFlow của Weka hiển thị
kiến thức:
Nhóm 5 14
GVHD: Nguyễn Mạnh Cường
Nhóm 5 15
GVHD: Nguyễn Mạnh Cường
Nhóm 5 16
GVHD: Nguyễn Mạnh Cường
Nhóm 5 17
GVHD: Nguyễn Mạnh Cường
Kết luận
Nhóm 5 18
GVHD: Nguyễn Mạnh Cường
Nhóm 5 19