Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
1,13 MB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO NGÀNH CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN ĐỀ TÀI: PHÂNCỤMDỮLIỆUVỚIGIẢITHUẬT K-MEANS (DATACLUSTERINGWITH K-MEANS ALGORITHM) GVHD: TS Trần Nhật Quang TP Hồ Chí Minh, tháng 12 năm 2018 MỤC LỤC DANH MỤC CÁC HÌNH Hình Các loại kỹ thuậtphân cụm[5] Hình Use Case Diagram Hình Kiểm thử vớiliệu chiều không chồng lấp F1_score = Hình Kiểm thử vớiliệu chiều không chồng lấp F1_score = Hình Kiểm thử vớiliệu chiều chồng lấp F1_score=0.6962 Hình Kiểm thử vớiliệu chiều chồng lấp F1_score=0.7976 Hình Ảnh chưa thêm nhiễu Hình Cú pháp thêm nhiễu cho hình Hình Tất hình ảnh thêm nhiễu Hình 10 Một số ảnh liệu đầu vào Hình 11 Kiểm thử vớiliệu thực tế F1_score max = Hình 12 Kiểm thử vớiliệu thực tế F1_score nhỏ = 0.5180 Hình 13 Kiểm thử vớiliệu thực tế (gán tâm) F1_score = DANH MỤC CÁC BẢNG NỘI DUNG I Mô tả project Lý xây dựng phần mềm Với tình hình phát triển công nghệ nay, thì liệu lưu trữ nhiều thiết bị lưu trữ Vậy nên việc phân loại tập liệu lớn ngày trở nên khó khăn Con người với cách làm thủ công thì tốn rất nhiều thời gian, chí khơng thể phân loại hết Do đó, việc xây dựng phần mềm giúp người phân loại liệu nhu cầu thiết yếu Trong đồ án này, sử dụng thuật toán k-means clustering để viết phần mềm nhằm giải quết vấn đề Giới thiệu phâncụmliệu Bản chất phâncụm ta hiểu qui trình tìm cách nhóm đối tượng cho vào cụm (clusters), cho đối tượng cụm tương tự (similar) đối tượng khác cụm thì không tương tự (disimilar) [5] Hình Các loại kỹ thuậtphân cụm[5] Mục đích phâncụm tìm chất bên nhóm liệu Các thuật toán phâncụm (Clustering Algorthms) sinh cụm (clusters) Kỹ thuậtphâncụm áp dụng nhiều lĩnh vực [5]: • Marketing: Góm nhóm sản phẩm độc đáo,khách hàng… • Sinh học: Dùng để phâncụm loài động, thực vật theo số thuốc tính,… • Medicine: Phân loại thuốc theo thuốc tính vi khuẩn tăng hiệu thuốc • Khoa học máy tính: xử lý ngơn ngữ tự nhiên, phân loại hình ảnh, • Xã hội: xác định khu vực thường xảy vụ phạm tội, phâncụm trường có thuộc tính tương tự, • Hóa học: tìm cấu trúc tương đồng nhiều hợp chất hóa học khác nhau, • Library: Theo dõi độc giả, sách, dự đốn nhu cầu độc giả… • Insurance, finance: Phân nhóm đối tượng sử dụng bảo hiểm dịch vụ tài chính, dự đốn xu hướng (trend) khách hàng, phát gian lận tài (identifying frauds) • WWW: Phân loại tài liệu (document classification), phân loại người dùng web (clustering weblog)… Các phương pháp đánh giá thường sử dụng dể đánh giá chất lượng phâncụm gồm: accuracy score, confusion matrix, ROC curve, Area Under the Curve, Precision and Recall, F1 score, Top R error[2] Mỗi phương pháp lại có thuốc tính đánh giá riêng nên tùy tốn mà ta chọn phương pháp phù hợp Và đồ án chúng em sử dụng F1 score (một trường hợp đặc biệt F measure [6]) để đánh giá F1 score trung bình điều hồ (harmonic mean) Precision Recall[3] • TP (True Positive): định nghĩa điểm liệu tương tự phân vào cụm • FP (False Positive): định nghĩa điểm liệu khác phân vào cụm • TN (True Negative): định nghĩa điểm liệu khác phân khác cụm • FN (False Negative): đinh nghĩa điểm liệu giống phân vào cụm khác Precision định nghĩa tỉ lệ số điểm thuộc thuộc lớp dương (TP) sau phâncụm số điểm phân loại thuộc lớp dương (TP+FP) Recall định nghĩa ngược lại, tỉ lệ số điểm thuộc lớp âm (TN) sau phâm cụm số điểm phân loại thuộc lớp âm (TN+FN) Giới thiệu thuật toán k-means Thuật toán k-means MacQueen giới thiệu báo ông vào năm 1967 [4] k-means thuật toán phân hoạch thuộc nhóm thuật tốn máy học khơng cần định hướng trước (unsupervised machine learning) biết đến rộng rãi Thuật tốn khơng cần q trình huấn luyện để học, ghi nhớ mô hình tri thức tách biệt với trình chạy Điều đồng nghĩa với việc, k-means cho kết cuối đoán trước khác liệu đầu vào k-means sử dụng ta có tập hợp gồm nhiều liệu khơng dán nhãn (dữ liệu chưa phân loại theo nhóm hay danh mục) Mục tiêu thuật toán tìm k nhóm tập liệuvớik cho trước Thuật toán xử lý dựa thao tác lặp (iterative) để gán điểm liệu vào k nhóm dự vào thuộc tính (feature) cho điểm liệu Các điểm liệuphân nhóm (cluster) theo tiêu chí tương đồng thuộc tính chúng Kết thuật tốn k-means là[7]: - k điểm trung tâm (centroid) k nhóm (cluster) k điểm dùng để tiếp tục gán nhãn cho liệu chúng thêm vào tập liệu ban - đầu Nhãn cho tập điểm liệu (mỗi điểm liệu gán cho nhóm xác định ứng với điểm trung tâm) Mơ tả tóm tắt bước thuật tốn: Đầu vào: Dữliệu số k (cụm) cần tìm Đầu ra: Các tâm cụmliệu thuộc tâm Bước 1: Chọn ngẫu nhiên k tâm (centroid) cho kcụm (cluster) Bước 2: Tính khoảng cách đối tượng đến k tâm Bước 3: Phân điểm liệu vào cụm (cluster) có tâm (centroid) gần Bước Xác đinh lại tâm Bằng việc tính giá trị trung bình điểm liệu thuộc cụm (cluster) Bước 5: Quay lại bước đến tâm không xê dịch gặp điều kiện dừng Use case diagram Hình Use Case Diagram Mô tả use case diagram Bảng Mô tả Actor TT Tên Actor Ý nghĩa Người dùng thông thường sử dụng phần mềm User Bảng Mô tả Use case ( program, program1, program3 ) không thực thao tác ảnh hưởng đến chương trình (ClassData & class_k_means) diagram TT Tên use case Dùng Ý nghĩa • Người dùng (user) nhập vào tất giá trị sau:số liệu giả lập điểm tạo cụm (m), số chiều (dim), Phâncụm số cụm (k), số chiều liệu (dim), điều kiện dừng (minDist), khoảng giá trị toạ độ điểm cụm (zonedata) cần tạo khớp với số cụm • Đủ yêu cầu thì chương trình bắt đầu chạy chương trình tạo liệu giả lập dựa liệu nhập vào -> khởi tạo tâm -> phâncụm -> tính F1• score Sau chạy chương trình, vớiliệu chiều thì có bước vẽ đồ thị xuất F1-score Còn vớiliệu nhiều chiều thì vẽ đồ thị suất F1-score Dùng • Người dùng (user) nhập vào tất giá trị sau: số liệu thực tế liệu thuộc cụmliệu thực tế (m), số (hình ảnh) cụmliệu thực tế (k), số chiều liệu thực Phâncụm tế (dim), điều kiện dừng (minDist), tên tên đường dẫn chứa liệu thực tế (foder) • Đủ yêu cầu thì chương trình bắt đầu chạy, chương trình đọc liệu thật vào chương trình -> khởi tạo true_lb -> khởi tạo tâm -> phâncụm -> tính F1-score • Sau chạy chương trình xuất giá trị F1-score vì giá trị số chiều (dim) lớn = 1024 nên vẽ đồ thị II Thực Thiết kế lớp Bảng Thiết kế lớp TT Tên lớp ClassData Class_K_means Tên sinh viên phụ trách viết Hứa Văn Lâm Mục đích lớp chương trình Dùng để tạo/đọc liệu vẽ đồ thị Nguyễn Hoàng Kim Dùng để phâncụmliệu tính F1-score Bảng Các Phương Thức lớp ClassData 10 TT Tên phương thức Mục đích Tên file, stt dòng chứa khai báo Tên SV phụ trách viết genData(obj,zonedata) Input: obj(obj.m, obj.k, obj.dim), zonedata Tạo liệu giả lập ClassData.m Vẽ đồ thị cho liệu ClassData.m Dòng 11 Cả hai Output: dataAray, true_lb PlotData(obj,b) Input:obj(obj.dim, obj.dataArray),b(b.learned) Dòng 36 Cả hai Output: Đồ thị biểu diễn liệu docfile(obj) Input: obj, image Đọc image Output: obj.dataArray ClassData.m Dòng 19 Hứa Văn Lâm Bảng Các phương thức lớp Class_K_mean TT Tên phương thức Compute_Dist(pA,pB) Input: pA, pB Output: Dist initCenter(obj,a) Input: obj(obj.k), a(a.m,a.dataArray) Output: Centers Mục đích Tên file, stt dòng chứa khai báo Tên SV phụ trách viết Tính Class_K_me khoảng ans.m Cả hai cách Dòng 13 điểm Tạo trọng tâm ngẫu nhiên cho cụm Class_K_me Hứa ans.m Văn Lâm Dòng 20 Thực phâncụmliệu Class_K_me Hứa ans.m Văn Lâm Dòng 28 Tính tốn độ xác thuật tốn Class_K_me ans.m Cả hai Dòng 86 Clustering(obj,a) Input: obj(obj.k, obj.dataCenter, obj.minDist), a(a.m, a.dataArray) Output: Trả cụmliệu label học từ thuật toán Compute_F1_score(obj,a) Input: obj(obj.learned_lb), a(a.true_lb) Output: Kết F1 thuộc đoạn [0;1] 11 Cài đặt kiểm thử 2.1 Phâncụmliệu giả lập Vớiliệu điểm chiều (x,y) không chồng lấp lên thì ta có kết F1_score ln = Dữliệu chiều: Hình Kiểm thử vớiliệu chiều không chồng lấp F1_score = 12 Vớiliệu chiều không chồng lấp ta kết tương tự: Hình Kiểm thử vớiliệu chiều không chồng lấp F1_score = Ở chúng em có ví dụ tập liệu chiều, qua khơng có nghĩa nhiều chiều thì phâncụm Mà việc vẽ đồ thị cho liệu nhiều chiều điều bất khả thi Chúng ta biết F1_score tập liệu nhiều chiều 13 Đối vớicụmliệu chồng lấp: ví dụ mà thuật tốn k-means chạy khơng hiệu Số điểm thuộc khu vực chồng lấp nhiều thì thuật toán không hiệu Vớiliệu chiều chồng lấp ta thu kết sau: Hình Kiểm thử vớiliệu chiều chồng lấp F1_score=0.6962 14 Vớiliệu chiều tương tự, qua nhiều lần kiểm thử thì kết F1-score không lần lên giá trị 1: Hình Kiểm thử vớiliệu chiều chồng lấp F1_score=0.7976 2.1 Phâncụmliệu thực tế Trong thực tế, việc phân loại tự động hình ảnh giống cần thiết Vì với số lượng hình ảnh lớn thì việc lựa chọn thủ công tốn nhiều thời gian Trong thí nghiệm này, hình ảnh chữ số từ – phân loại sử dụng thuật toán k-means Mỗi hình có kích cỡ 32 x 32 = 1024 pixels 15 Hình Ảnh chưa thêm nhiễu Cách tạo file hình: Những hình ảnh chúng em sử dụng phần mềm Paint để thiết kế với kích thước khung ảnh 32*32 gán ký tự số (từ 0->9) vào hình ảnh Vậy chúng em tạo 10 hình ban đầu hình có chép Và sau chúng em sử dụng hàm Imnoise Matlab để thêm nhiễu vào hình nhằm mục đích tạo khác biệt cho chép hình Sau thêm nhiễu chúng em xuất tất hình thư mục có tên folder (thư mục chứa 100 ảnh thêm nhiễu) Vậy hình hoàn toàn khác nhờ điểm nhiễu tạo cách ngẫu nhiên Hình Cú pháp thêm nhiễu cho hình Những hình thêm nhiễu 16 Hình Tất hình ảnh thêm nhiễu Hình 10 Một số ảnh liệu đầu vào Kiểm thử vớiliệu mô tất giá trị pixel 100 hình thêm nhiễu Ở phần mềm đáp ứng nhu cầu phân loại hình ảnh cho 100 hình này, bao 17 gồm 10 cụm: hình 0, hình 1, hình 2, hình 3, hình 4, hình 5, hình 6, hình 7, hình 8, hình Tập liệu: folder (100 hình ảnh thêm nhiễu) Do hiệu suất thuật toán k-means phụ thuộc vào việc khởi tạo tâm, nên khởi tạo tâm cách ngẫu nhiên, chương trình cho kết khác Cụ thể, lần chạy thử chúng em thu kết quả: giá trị F1_score nằm khoảng từ 0.5180 Hình 11 Kiểm thử vớiliệu thực tế F1_score max = đến Hình 12 Kiểm thử vớiliệu thực tế F1_score nhỏ = 0.5180 18 Ngược lại, khởi tạo tâm phần tử nhóm khác nhau, chương trình ln hoạt động tốt F1_score=1 Có nghĩa việc lựa chọn tâm ban đầu có ảnh hưởng lớn tới kết Hình 13 Kiểm thử vớiliệu thực tế (gán tâm) F1_score = III Phân công công việc thành viên Bảng Phân công công việc Tên Sinh Viên Hứa Văn Lâm Nguyễn Hồng Kim Đóng góp Mơ tả khái qt công việc 70% Tìm kiếm thông tin cho chương trình (những thông tin liên quan đến k-means), viết code cho chương trình, viết báo cáo 30% Tìm hiểu số thông tin liên quan đến k-means, F1score 19 IV Kết luận Chương trình giải vấn đề phâncụm liệu, giả lập thực tế Cụ thể, chương trình phâncụmliệu kiểm chứng liệu kiểm thử Vậy nên chương trình phần gọi ổn định tốt Khó khăn lớn nhóm giới hạn thời gian làm đồ án, vào khoảng thời gian cuối kỳ nên có thời gian cho chương trình (ứng dụng) Tuy nhiên nhờ có thầy Trần Nhật Quang, thầy đôn đốc, nhắc nhở chúng em nên vấn đề tạm giải Ưu điểm chương trình áp dụng thuật tốn k-means là: dễ cho việc cài đặt sử dụng Ngôn ngữ Matlab với IDE dễ sử dụng nên việc code dễ dàng Với chương trình thì liệu tách rời thì độ xác cao Và việc khởi tạo số cụm cách hợp lý đưa kết tốt Nhược điểm chương trình: liệu chồng lấp thì không cao Và việc yêu cầu số lượng cụm khởi tạo tâm theo số cụm cách ngẫu nhiên, thì gây ảnh hưởng lớn đến kết quả, minh chứng thí nghiệm phâncụmliệu thực tế trên, nên việc phải khởi tạo tâm cụm cách hợp lý cần lưu ý 20 TÀI LIỆU THAM KHẢO [1] Tiep Vu (2017, January 1) Bài 4: K-means Clustering Retrieved from https://machinelearningcoban.com/2017/01/01/kmeans/ [2] Tiep Vu (2018, January 3) Bài 33: Các phương pháp đánh giá hệ thống phân lớp Retrieved from https://machinelearningcoban.com/2017/08/31/evaluation/ [3] ClustEval | F1-Score (n.d.) Retrieved from https://clusteval.sdu.dk/1/clustering_quality_measures/18 [4] MacQueen, J (1967, June) Some methods for classification and analysis of multivariate observations In Proceedings of the fifth Berkeley symposium on mathematical statistics and probability (Vol 1, No 14, pp 281-297) [5] Thuật toán K-Means với toán phâncụmliệu - BIS (n.d.) Retrieved from http://bis.net.vn/forums/t/374.aspx [6] Evaluation of clustering (n.d.) Retrieved from https://nlp.stanford.edu/IRbook/html/htmledition/evaluation-of-clustering-1.html [7] K-Mean ứng Dụng (n.d.) Retrieved from https://www.ieev.org/2017/05/kmean-va-ung-dung.html [8] Clustering - K-means (n.d.) Retrieved from https://home.deib.polimi.it/matteucc/Clustering/tutorial_html/kmeans.html 21 ... loại k thuật phân cụm[ 5] Mục đích phân cụm tìm chất bên nhóm liệu Các thuật toán phân cụm (Clustering Algorthms) sinh cụm (clusters) K thuật phân cụm áp dụng nhiều lĩnh vực [5]: • Marketing:... Các loại k thuật phân cụm[ 5] Hình Use Case Diagram Hình Kiểm thử với liệu chiều không chồng lấp F1_score = Hình Kiểm thử với liệu chiều không chồng lấp F1_score = Hình Kiểm thử với liệu chiều... nghĩa với việc, k- means cho k t cuối khơng thể đốn trước khác liệu đầu vào k- means sử dụng ta có tập hợp gồm nhiều liệu không dán nhãn (dữ liệu chưa phân loại theo nhóm hay danh mục) Mục tiêu thuật