DANH MỤC HÌNH ẢNHHình 2.1; Bài toán với 3 clusters...3 Hình 2.2: Mô hình dữ liệu được phân cụm...4 Hình 3.1: Nhập dữ liệu vào weka Hình 3.2: Đầu ra phân lớp của các thuộc tính Hình 3.3:
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN KHAI PHÁ DỮ LIỆU
ĐỀ TÀI:
ỨNG DỤNG THUẬT TOÁN PHÂN CỤM KMEANS CLUSTERING ĐỂ
CHUẨN ĐOÁN BỆNH TIỂU ĐƯỜNG
Sinh viên thực hiện : ĐỖ KIÊN QUYẾT
ĐỖ KHẮC TÚ VƯƠNG ĐỨC HUY Giảng viên hướng dẫn : VŨ VĂN ĐỊNH
Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Hà Nội, tháng 04 năm 2023
Trang 2PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện:
ĐỖ KIÊN QUYẾT
ĐỖ KHẮC TÚ
VƯƠNG ĐỨC HUY
Giảng viên chấm:
Giảng viên chấm 1 :
Giảng viên chấm 2 :
Trang 3MỤC LỤC
TRANG
CHƯƠNG 1: GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU 1
1.1 Khai phá dữ liệu là gì 1
1.2 Quy trình khai phá dữ liệu 1
1.2.1 Nghiên cứu lĩnh vực 1
1.2.2 Tạo tập tin dữ liệu đầu vào 1
1.2.3 Tiền xử lý, làm sạch, mã hóa 1
1.2.4 Rút gọn chiều 1
1.2.5 Chọn tác vụ khai thác dữ liệu 2
1.2.6 Chọn các thuật giải Khai thác dữ liệu 2
1.2.7 Khai thác dữ liệu: Tìm kiếm tri thức 2
1.2.8 Đánh giá mẫu tìm được 2
1.2.9 Biểu diễn tri thức 2
CHƯƠNG 2: THUẬT TOÁN K-MEANS CLUSTERING TRONG BÀI TOÁN PHÂN CỤM 3
2.1.Tổng quan về thuật toán K-Means Clustering 3
2.2 Thuật toán K-Means Clustering: 4
2.2.1 Mô hình toán học: 4
2.2.2 Độ chính xác của thuật toán: 5
2.2.3 Nghiệm của thuật toán K-Means Clustering: 6
2.2.4 Tóm tắt thuật toán: 6
CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN K-MEANS CLUSTERING 7
Trang 43.1 Xây dựng mô hình băng Weka 7
3.2 Đầu ra phân lớp của các thuộc tính 8
3.3 Đầu ra phân lớp bằng thuộc tính class 11
TÀI LIỆU THAM KHẢO 14
Trang 5DANH MỤC HÌNH ẢNH
Hình 2.1; Bài toán với 3 clusters 3 Hình 2.2: Mô hình dữ liệu được phân cụm 4 Hình 3.1: Nhập dữ liệu vào weka
Hình 3.2: Đầu ra phân lớp của các thuộc tính
Hình 3.3: Đầu ra phân lớp bằng thuộc tính class
LỜI MỞ ĐẦU
Ngày nay Công nghệ thông tin đang ngày càng phát triển và trở thành một phần tất yếu của cuộc sống con người Công nghệ thông tin đang càng ngày càng được ứng dụng nhiều vào tất cả các lĩnh vực từ y học, kinh doanh đến cả giáo dục, và
nó góp phần không nhỏ vào sự phát triển của tất các các lĩnh vực đó, đặc biệt là lĩnh vực kinh doanh
Đất nước ta đang ngày càng phát triển, đang cố gắng hòa nhập và rút ngắn khoảng cách với thế giới, việc nước ta trở thành thành viên của WTO đã được các nhà kinh doanh chú ý đến và đầu tư ngày càng nhiều vào Việt Nam Vì vậy để không bị quá lạc hậu, để đáp ứng yêu cầu tất yếu của các nhà đầu tư vào Việt Nam
và để các nhà kinh doanh trong nước có đủ sức cạnh tranh với nước ngoài thì bắt buộc phải đầu tư cho Công nghệ thông tin mà ở đây chính xác là các phần mềm tin học vào nhiều lĩnh vực giúp nâng cao tính hiệu quả và chính xác của công việc, ngoài ra còn tiết kiệm thời gian và giảm bớt mệt nhọc cho con người
Trang 6Em đã chọn đề tài “ỨNG DỤNG THUẬT TOÁN PHÂN CỤM KMEANS CLUSTERING ĐỂ CHUẨN ĐOÁN BỆNH TIỂU ĐƯỜNG” Trong lĩnh vực
thương mại điện tử, việc đánh giá sản phẩm có thuộc quản điểm nào là một trong những vấn đề người dùng quan tâm nhiều nhất
Trang 7CHƯƠNG 1: GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU
1.1 Khai phá dữ liệu là gì
Data mining – khai phá dữ liệu, là một tập hợp, một hệ thống các phương pháp tính toán, thuật toán được áp dụng cho các cơ sở dữ liệu lớn và phức tạp mục đích loại bỏ các chi tiết ngẫu nhiên, chi tiết ngoại lệ, khám phá các mẫu, mô hình, quy luật tiềm ẩn, các thông tin có giá trị trong bộ dữ liệu Data mining là thành quả công nghệ tiên tiến ngày nay, là quá trình khám phá các kiến thức vô giá bằng cách phân tích khối lượng lớn dữ liệu đồng thời lưu trữ chúng ở nhiều cơ sở dữ liệu khác nhau”
1.2 Quy trình khai phá dữ liệu
1.2.1 Nghiên cứu lĩnh vực
Ta cần nghiên cứu lĩnh vực cần sử dụng Data mining để xác định được những tri thức ta cần chắt lọc, từ đó định hướng để tránh tốn thời gian cho những tri thức không cần thiết
1.2.2 Tạo tập tin dữ liệu đầu vào
Ta xây dựng tập tin để lưu trữ các dữ liệu đầu vào để máy tính có thể lưu trữ
và xử lý
1.2.3 Tiền xử lý, làm sạch, mã hóa
Ở bước này ta tiến hành bỏ bớt những dữ liệu rườm rà, không cần thiết, tinh chỉnh lại cấu trúc của dữ liệu và mã hóa chúng để tiện cho quá trình xử lý
1.2.4 Rút gọn chiều
Thông thường một tập dữ liệu có chiều khá lớn sẽ sinh ra một lượng dữ liệu khổng lồ, ví dụ với n chiều ta sẽ có 2^n tổ hợp Do đó, đây là một bước quan trọng giúp giảm đáng kể hao tổn về tài nguyên trong quá trình xử lý tri thức Thông
Trang 8thường ta sẽ dùng Rough set(http://en.wikipedia.org/wiki/Rough_set) để giảm số chiều
1.2.5 Chọn tác vụ khai thác dữ liệu
Để đạt được mục đích ta cần, ta cần chọn được tác vụ khai thác dữ liệu sao cho phù hợp Thông thường có các tác vụ sau:
* Đặc trưng (feature)
* Phân biệt (discrimination)
* Kết hợp (association)
* Phân lớp (classification)
* Gom cụm (clusterity)
* Xu thế (trend analysis)
* Phân tích độ lệch
* Phân tích hiếm
1.2.6 Chọn các thuật giải Khai thác dữ liệu
1.2.7 Khai thác dữ liệu: Tìm kiếm tri thức
Sau khi tiến hành các bước trên thì đây là bước chính của cả quá trình, ta sẽ tiến hành khai thác và tìm kiếm tri thức
1.2.8 Đánh giá mẫu tìm được
Ta cần đánh giá lại xem trong các tri thức tìm được, ta sẽ sử đụng được những tri thức nào, những tri thức nào dư thừa, không cần thiết
1.2.9 Biểu diễn tri thức
Ta biểu diễn tri thức vừa thu thập được dưới dạng ngôn ngữ tự nhiên và hình thức sao cho người dùng có thể hiểu được những tri thức đó
Trang 9CHƯƠNG 2: THUẬT TOÁN K-MEANS CLUSTERING TRONG BÀI
TOÁN PHÂN CỤM 2.1.Tổng quan về thuật toán K-Means Clustering
Với thuật toán K-Means Clustering, chúng ta không biết nhãn (label) của từng điểm dữ liệu Mục đích là làm thể nào để phân dữ liệu thành các cụm (cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chất giống nhau Ý tưởng đơn giản nhất về cluster (cụm) là tập hợp các điểm ở gần nhau trong một không gian nào đó (không gian này có thể có rất nhiều chiều trong trường hợp thông tin về một điểm dữ liệu là rất lớn) Hình bên dưới là một ví dụ về 3 cụm dữ liệu (từ giờ tôi sẽ viết gọn là cluster)
Trang 10Hình 2.1: Bài toán với 3 clusters
Giả sử mỗi cluster có một điểm đại diện (center) màu vàng Và những điểm xung quanh mỗi center thuộc vào cùng nhóm với center đó Một cách đơn giản nhất, xét một điểm bất kỳ, ta xét xem điểm đó gần với center nào nhất thì nó thuộc
về cùng nhóm với center đó
2.2 Thuật toán K-Means Clustering:
2.2.1 Mô hình toán học:
Ta gọi điểm tại vị trí trung bình của tất cả các điểm dữ liệu trong một cụm
là trung tâm cụm Như vậy, nếu có K cụm thì sẽ có K trung tâm cụm và mỗi trung tâm cụm sẽ nằm gần các điểm dữ liệu trong cụm tương ứng hơn các trung tâm cụm khác Trong hình dưới đây, K = 3 và ta có 3 trung tâm cụm là các điểm màu vàng
Hình 2.2: Mô hình dữ liệu được phân cụm
Trang 11Để phân cụm dữ liệu bằng K-Means Clustering, trước hết ta chọn K là số cụm để phân chia và chọn ngẫu nhiên K trong số m dữ liệu ban đầu làm trung tâm
cụm μ1, μ2, …, μK Sau đó, với điểm dữ liệu x(i) ta sẽ gán nó cho cụm c(i) là cụm
có trung tâm cụm gần nó nhất
Khi tất cả các điểm dữ liệu đã được gán về các cụm, bước tiếp theo là tính toán lại
vị trí các trung tâm cụm bằng trung bình tọa độ các điểm dữ liệu trong cụm đó
với k1, k2, …, kn là chỉ số các dữ liệu thuộc cụm thứ k Các bước trên được lặp lại cho tới khi vị trí các trung tâm cụm không đổi sau một bước lặp nào đó
2.2.2 Độ chính xác của thuật toán:
Hàm mất mát của thuật toán K-Means Clustering đặc trưng cho độ chính xác của nó sẽ càng lớn khi khoảng cách từ mỗi điểm dữ liệu tới trung tâm cụm càng lớn
Trang 122.2.3 Nghiệm của thuật toán K-Means Clustering:
Trong các bước của thuật toán, thực chất bước gán các điểm dữ liệu về trung tâm cụm gần nhất và bước thay đổi trung tâm cụm về vị trí trung bình của các điểm dữ liệu trong cụm đều nhằm mục đích giảm hàm mất mát Thuật toán kết thúc khi vị trí các trung tâm cụm không đổi sau một bước lặp nào đó Khi đó hàm mất mát đạt giá trị nhỏ nhất
Khi K càng nhỏ so với m, thuật toán càng dễ đi đến kết quả chưa phải tối ưu Điều này phụ thuộc vào cách chọn K trung tâm cụm ban đầu
Để khắc phục điều này, ta cần lặp lại thuật toán nhiều lần và chọn phương
án có giá trị hàm mất mát nhỏ nhất
2.2.4 Tóm tắt thuật toán:
Đầu vào: Dữ liệu XX và số lượng cluster cần tìm KK.
Đầu ra: Các center MM và label vector cho từng điểm dữ liệu YY.
1 Chọn KK điểm bất kỳ làm các center ban đầu
2 Phân mỗi điểm dữ liệu vào cluster có center gần nó nhất
3 Nếu việc gán dữ liệu vào từng cluster ở bước 2 không thay đổi so với vòng lặp trước nó thì ta dừng thuật toán
4 Cập nhật center cho từng cluster bằng cách lấy trung bình cộng của tất các các điểm dữ liệu đã được gán vào cluster đó sau bước 2
5 Quay lại bước 2
Trang 13CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN K-MEANS CLUSTERING 3.1 Xây dựng mô hình băng Weka
Hình 3.1: Nhập dữ liệu vào Weka
Trang 143.2 Đầu ra phân lớp của các thuộc tính
Hình 3.2: Đầu ra phân lớp của các thuộc tính
=== Thông tin chạy ===
Cơ chế: Scheme: weka.clusterers.SimpleKMeans init 0 maxcandidates 100
-periodic-pruning 10000 -min-density 2.0 -t1 -1.25 -t2 -1.0 -N 2 -A
"weka.core.EuclideanDistance -R first-last" -I 500 -num-slots 1 -S 10
Mối quan hệ: pima_diabetes-weka.filters.unsupervised.attribute.Remove-R9 Trường hợp: 768
Thuộc tính: 8
Preg: mang thai
Plas: bằng phẳng
Pres: trước
Trang 15Skin: da
insu
mass: khối
pedi: bàn đạp
age: tuổi
Chế độ kiểm tra: đánh giá trên dữ liệu đào tạo
=== Mô hình phân cụm (tập huấn luyện đầy đủ) ===
kMeans
======
Số lần lặp: 7
Trong cụm tổng các lỗi bình phương: 121.2579017999101
Điểm xuất phát ban đầu (ngẫu nhiên):
Cụm 0: 1,126,56,29,152,28,7,0,801,21
Cụm 1: 8,95,72,0,0,36,8,0,485,57
Các giá trị bị thiếu trên toàn cầu được thay thế bằng giá trị trung bình/chế độ
Trang 16Thời gian để xây dựng mô hình (dữ liệu huấn luyện đầy đủ): 0,01 giây
=== Mô hình và đánh giá trên tập huấn luyện ===
Phiên bản nhóm:
Trang 173.3 Đầu ra phân lớp bằng thuộc tính class
Hình 3.3: Đầu ra phân lớp bằng thuộc tính class
=== Thông tin chạy ===
Cơ chế: Scheme: weka.clusterers.SimpleKMeans init 0 maxcandidates 100
-periodic-pruning 10000 -min-density 2.0 -t1 -1.25 -t2 -1.0 -N 2 -A
"weka.core.EuclideanDistance -R first-last" -I 500 -num-slots 1 -S 10
Mối quan hệ: pima_diabetes-weka.filters.unsupervised.attribute.Remove-R9 Trường hợp: 768
Thuộc tính: 9
Preg: mang thai
Plas: bằng phẳng
Pres: trước
Skin: da
Trang 18insu
mass: khối
pedi: bàn đạp
age: tuổi
Ignored: class
Chế độ kiểm tra: Đánh giá từ lớp đến cụm trên dữ liệu huấn luyện
======
Số lần lặp: 7
Trong cụm tổng các lỗi bình phương: 121.2579017999101
Điểm xuất phát ban đầu (ngẫu nhiên):
Cụm 0: 1,126,56,29,152,28,7,0,801,21
Cụm 1: 8,95,72,0,0,36,8,0,485,57
Các giá trị bị thiếu trên toàn cầu được thay thế bằng giá trị trung bình/chế độ
Trang 19Thời gian để xây dựng mô hình (dữ liệu huấn luyện đầy đủ): 0 giây
=== Mô hình và đánh giá trên tập huấn luyện ===
Phiên bản nhóm
0 515 ( 67%)
1 253 ( 33%)
Thuộc tính: class
Các lớp thành cụm:
0 1 <- gán cho cụm
380 120 | đã kiểm tra_âm tính
135 133 | đã kiểm tra _dương tính
Cụm 0 <- đã kiểm tra_âm tính
Cụm 1 < đã kiểm tra _dương tính
Trang 20TÀI LIỆU THAM KHẢO
1 https://machinelearningcoban.com/2017/01/01/kmeans/
2 http://uet.vnu.edu.vn/~thuyhq/Student_Thesis/K44_Do_Thi_Dieu_Ngoc_Thesis.pdf