Hy vọng rằng qua báo cáo này, sẽ có cái nhìn sâu sắc hơn về thuật toán means và hiểu rõ hơn về cách nó có thể được áp dụng để khám phá và phân cụm K-dữ liệu trong nhiều ngữ cảnh khác nha
KHAI PHÁ DỮ LIỆU
Tổng quan về kỹ thuật Khai phá dữ liệu (Data mining)
1.1.1 Khái niệm về khai phá dữ liệu
Khai phá dữ liệu (data mining) là quá trình tính toán nhằm tìm ra các mẫu trong bộ dữ liệu lớn, kết hợp giữa máy học, thống kê và hệ thống cơ sở dữ liệu Đây là lĩnh vực liên ngành của khoa học máy tính, với mục tiêu trích xuất thông tin và chuyển đổi nó thành cấu trúc dễ hiểu Quá trình này không chỉ bao gồm phân tích thô mà còn liên quan đến quản lý dữ liệu, xử lý dữ liệu trước, xây dựng mô hình và suy luận thống kê Nó cũng bao gồm việc đo lường các yếu tố thú vị, xem xét các khía cạnh phức tạp và xuất kết quả dưới dạng cấu trúc đã phát hiện, hình hóa và cập nhật trực tuyến Khai thác dữ liệu là bước phân tích trong quá trình "khám phá kiến thức trong cơ sở dữ liệu" (KDD).
Khai phá dữ liệu là một bước của quá trình khai thác tri thức (Knowledge Discovery Process), bao gồm:
Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề (Problem understanding and data understanding).
Data preparation involves several key processes, including data cleaning to ensure accuracy, data integration for combining various data sources, data selection to choose relevant information, and data transformation to convert data into a suitable format for analysis.
Khai thác dữ liệu là quá trình xác định nhiệm vụ và lựa chọn kỹ thuật phù hợp để thu thập thông tin Qua đó, chúng ta có thể thu được một nguồn tri thức thô quý giá, phục vụ cho việc phân tích và ra quyết định.
Đánh giá (Evaluation): dựa trên một số tiêu chí tiến hành kiểm tra và lọc nguồn tri thức thu được.
Quá trình khai thác tri thức không chỉ diễn ra theo trình tự tuyến tính từ đầu đến cuối, mà còn là một chu trình lặp đi lặp lại, cho phép quay trở lại các bước trước đó để điều chỉnh và hoàn thiện.
1.1.2 Quy trình khai phá dữ liệu
Để tối ưu hóa quá trình khai thác dữ liệu, cần nghiên cứu kỹ lưỡng lĩnh vực ứng dụng nhằm xác định tri thức quan trọng cần được lọc ra Việc này giúp định hướng rõ ràng, từ đó tiết kiệm thời gian và nguồn lực, tránh lãng phí vào những tri thức không cần thiết.
1.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.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ý
Khi làm việc với tập dữ liệu có chiều lớn, số lượng tổ hợp có thể tăng lên đáng kể, ví dụ với n chiều sẽ có 2^n tổ hợp Điều này dẫn đến việc tiêu tốn tài nguyên trong quá trình xử lý tri thức Do đó, việc giảm số chiều là rất quan trọng để tối ưu hóa hiệu suất Một phương pháp phổ biến để thực hiện điều này là sử dụng Rough set.
1.1.2.5 Chọn tác vụ khai thác dữ liệu Để đạt được mục đích ta cần, ta 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
1.1.2.6 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.1.2.7 Đánh giá mẫu tìm được
Ta cần đánh giá lại trong các tri thức tìm được , ta sẽ sử dụng được những tri thức nào , những tri thức nào dư thừa,không cần biết.
Ta diễn đạt tri thức mới thu nhận được bằng ngôn ngữ tự nhiên, giúp người dùng dễ dàng tiếp cận và hiểu rõ những thông tin đó.
1.1.2.9 Sử dụng các tri thức vừa khám phá
Ta có thể tham khảo tiến trình KDD( Knowledge Discovery in Databases) để hiểu rõ hơn về khai phá dữ liệu:
Hình 1.1: knowledge discovery in databases
Data preparation is a crucial step that encompasses various processes, including data cleaning to remove inaccuracies and inconsistencies, data integration to combine data from multiple sources, data selection to identify relevant data, and data transformation to convert data into a suitable format for analysis.
Khai thác dữ liệu là quá trình xác định nhiệm vụ và lựa chọn kỹ thuật phù hợp để thu thập thông tin, từ đó tạo ra nguồn tri thức thô Để đảm bảo chất lượng, việc đánh giá nguồn tri thức này cần được thực hiện dựa trên các tiêu chí cụ thể nhằm kiểm tra và lọc thông tin thu được.
Quá trình khai thác tri thức là một chu trình lặp đi lặp lại, không chỉ đơn thuần là một hành trình tuyến tính từ bước đầu đến bước cuối Nó bao gồm việc quay trở lại các bước đã thực hiện để tối ưu hóa và cải thiện kết quả.
1.1.3 Ứng dụng của khai phá dữ liệu
Kinh tế đóng vai trò quan trọng trong các lĩnh vực như kinh doanh, tài chính, tiếp thị, bảo hiểm, thương mại và ngân hàng Nó cung cấp các báo cáo chi tiết và phân tích rủi ro, giúp doanh nghiệp xây dựng chiến lược kinh doanh và sản xuất hiệu quả Bằng cách phân loại khách hàng, doanh nghiệp có thể xác định thị trường và thị phần một cách chính xác.
Khoa học: Thiên văn học - dự đoán đường đi các thiên thể, hành tinh, ; Công nghệ sinh học – tìm ra các gen mới, cây con giống mới,…
Web: các công cụ tìm kiếm.
Tổng quan về hệ hỗ trợ ra quyết định
Hệ hỗ trợ ra quyết định là một phần quan trọng của hệ thống thông tin, giúp cung cấp thông tin cần thiết để tham khảo và giải quyết vấn đề Hệ thống này có thể được sử dụng cho cả cá nhân và tổ chức, đồng thời hỗ trợ quyết định một cách gián tiếp hoặc trực tiếp.
Trong lĩnh vực y tế, hệ hỗ trợ ra quyết định dựa vào tri thức cung cấp thông tin chẩn đoán bệnh cho nhân viên y tế, giúp cải thiện quá trình chẩn đoán, theo dõi và điều trị bệnh Những thông tin này được trích lọc một cách thông minh, mang lại giá trị cao cho việc chăm sóc sức khỏe, từ đó thể hiện rõ lợi ích của hệ thống hỗ trợ ra quyết định trong y tế.
Tăng cường chất lượng chuẩn đoán, chăm sóc bệnh nhân.
Giảm nguy cơ sai sót để tránh các tình huống nguy hiểm cho bệnh nhân.
Tăng cường hiệu quả ứng dụng công nghệ thông tin vào lĩnh vực y tế để giảm bớt những thủ tục giấy tờ không cần thiết.
Phân cụm dữ liệu và ứng dụng
1.3.1 Mục đích của phân cụm dữ liệu
Phân loại là hành vi nguyên thủy của con người, giúp họ xử lý lượng thông tin khổng lồ hàng ngày Việc phân cụm dữ liệu nhằm khai phá cấu trúc mẫu dữ liệu, tạo thành các nhóm từ tập dữ liệu lớn Điều này cho phép phân tích sâu hơn từng cụm dữ liệu, từ đó tìm kiếm thông tin tiềm ẩn và hữu ích để hỗ trợ ra quyết định.
Một vài ví dụ về ý nghĩa thực tiễn của phân cụm dữ liệu như sau :
- Khám phá ra các vị trí địa lý thuận lợi cho việc xây dựng các kho hàng phục vụ mua bàn hàng của một công ty thương mại
Xác định các cụm ảnh động vật, bao gồm thú và chim, trong cơ sở dữ liệu ảnh về động vật là cần thiết để cải thiện khả năng tìm kiếm hình ảnh Việc phân loại chính xác giúp người dùng dễ dàng truy cập và tìm kiếm các loại hình ảnh mong muốn.
- Xác định các nhóm người bệnh nhằm cung cấp thông tin cho việc phân phối các thuốc điều trị trong y tế
- Xác định nhóm các khách hàng trong CSDL ngân hàng có vốn các đầu tư vào bất động sản cao
Phân cụm dữ liệu là một phương pháp quan trọng trong xử lý thông tin, giúp khám phá mối liên hệ giữa các mẫu dữ liệu bằng cách tổ chức chúng thành các cụm tương tự.
Tất cả các dạng dữ liệu có thể được biểu diễn thông qua các khái niệm đặc trưng, tạo thành vector đặc trưng l-chiều Phân cụm dữ liệu được hiểu là quá trình nhóm các dữ liệu tương tự lại với nhau.
1.3.2 Các bước cơ bản để phân cụm
Lựa chọn đặc trưng là bước quan trọng để mã hóa tối đa thông tin liên quan đến công việc Mục tiêu chính là giảm thiểu sự dư thừa thông tin giữa các đặc trưng Trước khi sử dụng, các đặc trưng cần được tiền xử lý để đảm bảo hiệu quả trong các bước tiếp theo.
Chọn độ đo gần gũi là cách xác định mức độ tương đồng giữa hai vector đặc trưng Để đảm bảo tính chính xác, tất cả các vector đặc trưng cần đóng góp như nhau trong việc tính toán, không để đặc trưng nào chiếm ưu thế Quá trình tiền xử lý đóng vai trò quan trọng trong việc đạt được điều này.
Tiêu chuẩn phân cụm phụ thuộc vào cách hiểu của chuyên gia về thuật ngữ “dễ nhận thấy” dựa trên loại cụm mà họ cho là ẩn dưới dữ liệu Ví dụ, một cụm chặt của các vector đặc trưng trong không gian l-chiều có thể dễ nhận thấy theo một tiêu chuẩn nhất định, trong khi cụm dài và mỏng lại có thể được nhận diện bằng tiêu chuẩn khác Tiêu chuẩn phân loại có thể được thể hiện qua hàm chi phí hoặc các quy tắc khác.
Để phân loại dữ liệu hiệu quả, cần chọn một sơ đồ thuật toán phù hợp để làm rõ cấu trúc cụm của tập dữ liệu Sau khi thu được kết quả phân loại, việc kiểm tra tính chính xác của kết quả là rất quan trọng, thường được thực hiện thông qua các kiểm định thích hợp.
Trong nhiều trường hợp, chuyên gia cần kết hợp kết quả phân loại với bằng chứng thực nghiệm và phân tích để đưa ra kết luận chính xác Cần thực hiện bước khuynh hướng phân cụm, bao gồm các kiểm định khác nhau để xác định xem dữ liệu có cấu trúc phân cụm hay không Ví dụ, nếu tập dữ liệu hoàn toàn ngẫu nhiên, mọi nỗ lực phân cụm sẽ trở nên vô nghĩa.
Việc lựa chọn các đặc trưng, độ đo gần gũi và tiêu chuẩn phân cụm khác nhau có thể tạo ra những kết quả phân cụm đa dạng Do đó, sự lựa chọn hợp lý nhất phụ thuộc vào kiến thức và kinh nghiệm của chuyên gia Tính chủ quan của chuyên gia là một yếu tố không thể tránh khỏi trong quá trình này.
Hình 1.3: Các bước trong quá trình phân cụm
Có bốn loại đặc trưng, đó là:
Các đặc trưng danh nghĩa (nominal) là những đặc trưng mà giá trị của chúng mã hóa các trạng thái khác nhau, chẳng hạn như giới tính, với các giá trị 1 cho nam và 0 cho nữ Việc so sánh lượng giữa các giá trị này là không có ý nghĩa.
Đặc trưng thứ tự (ordinal) là các đặc điểm cho phép sắp xếp giá trị một cách có ý nghĩa Ví dụ, trong việc đánh giá sự hoàn thành khóa học của sinh viên, các giá trị có thể là 4, 3, 2, 1, tương ứng với các mức độ: "xuất sắc", "rất tốt", "tốt".
Các giá trị được sắp xếp theo một thứ tự có ý nghĩa, tuy nhiên, sự so sánh giữa hai giá trị liên tiếp không quan trọng lắm về mặt lượng.
Đặc trưng đo theo khoảng (interval-scaled) là loại đặc trưng mà sự khác biệt giữa hai giá trị có ý nghĩa về mặt số lượng Chẳng hạn, trong trường hợp đo nhiệt độ, khoảng từ 10 đến 15 độ được xem là rét đậm, trong khi nhiệt độ dưới 10 độ được coi là rét hại Mỗi khoảng nhiệt độ đều mang một ý nghĩa riêng biệt, cho thấy tầm quan trọng của việc phân loại các giá trị theo thang đo khoảng.
Các đặc trưng đo theo tỷ lệ (ratio-scaled) không cho phép so sánh trực tiếp giữa các giá trị như nhiệt độ Ví dụ, nhiệt độ 10 độ ở Hà Nội không có nghĩa là Hà Nội nóng gấp mười lần Matxcơva với 1 độ Tương tự, việc so sánh trọng lượng cũng cần cẩn trọng để tránh hiểu lầm về tỷ lệ giữa các giá trị.
100 kg được coi là nặng gấp hai lần một người nặng 50 kg Đặc trưng cân nặng là một đặc trưng đo theo tỷ lệ (thang tỷ lệ).
1.3.4 Các ứng dụng của phân cụm
Phân cụm là một công cụ quan trọng trong một số ứng dụng Sau đây là một số ứng dụng của nó:
TỔNG QUAN VỀ THUẬT TOÁN K-MEANS
Giới thiệu về thuật toán K-means
Thuật ngữ "k -means" được James MacQueen sử dụng lần đầu tiên vào năm
Thuật toán phân cụm nổi tiếng, được biết đến với tên gọi Lloyd-Forgy, lần đầu tiên được Stuart Lloyd của Bell Labs đề xuất vào năm 1957, mặc dù ý tưởng này đã xuất hiện từ năm 1956 nhờ Hugo Steinhaus Edward W Forgy cũng công bố một phương pháp tương tự vào năm 1965 Thuật toán này, được phát triển thêm bởi J.B MacQueen vào năm 1967, sử dụng một tập hợp n mẫu và một số nguyên K để phân chia n đối tượng thành K cụm, với mục tiêu tối đa hóa sự tương đồng giữa các mẫu trong cùng một cụm và tối thiểu hóa sự tương đồng với các cụm khác.
Thuật toán bắt đầu bằng cách chọn ngẫu nhiên K mẫu, mỗi mẫu đại diện cho một cụm, với mẫu đó là tâm của cụm Các mẫu còn lại được gán vào một trong K nhóm sao cho tổng khoảng cách từ mẫu đến tâm nhóm là nhỏ nhất Sau đó, tâm của các nhóm được tính lại và quá trình này lặp lại cho đến khi hàm tiêu chuẩn hội tụ Hàm tiêu chuẩn thường sử dụng là hàm sai số vuông Thuật toán này có thể áp dụng cho cơ sở dữ liệu đa chiều, nhưng để dễ minh họa, chúng tôi mô tả trên dữ liệu hai chiều.
Thuật toán K-MEANS
- Thuật toán k-means được mô tả cụ thể như sau:
Input: K, và dữ liệu về n mẫu của 1 CSDL
Output: Mô ˜t tập gồm K cluster sao cho cực tiểu về tổng sai-số vuông.
Bước 1: Chọn ngẫu nhiên K mẫu vào K cluster Coi tâm của cluster chính là mẫu có trong cluster.
Bước 2: Tìm tâm mới của cluster.
Bước 3: Gán (gán lại) các mẫu vào từng cluster sao cho khoảng cách từ mẫu đó đến tâm của cluster đó là nhỏ nhất.
Bước 4: Nếu các cluster không có sự thay đổi nào sau khi thực hiện bước 3 thì chuyển sang bước 5, ngược lại sang bước 2.
Hình 2.2 a: Mô tả thuật toán K-MEANS
Trong không gian hai chiều, giả sử có 12 điểm (n = 12) cần được phân thành hai
Coi điểm (1,3) là tâm của cluster 1 và điểm (9,4) là tâm của cluster 2, ta tính toán khoảng cách từ các điểm khác đến hai tâm này để phân loại các điểm vào hai cluster Những điểm có màu xanh lơ được gán vào cluster 1, trong khi những điểm màu xanh đậm thuộc về cluster 2 (hình 9.b) Sau đó, ta hiệu chỉnh lại tâm của hai cluster, với điểm màu đỏ trên hình 9.c là tâm mới Tiếp tục tính toán khoảng cách từ các điểm đến tâm mới và phân loại lại các điểm (hình 9.d) Quá trình này lặp lại cho đến khi không còn sự thay đổi, từ đó thu được kết quả cuối cùng của bài toán.
Hình 2.2 b: Ví dụ minh họa thuật toán K-MEANS
Ví dụ 2 minh họa cách phân nhóm các loại thuốc dựa trên đặc trưng của chúng Giả sử có 4 loại thuốc A, B, C, D, mỗi loại được biểu diễn bởi 2 đặc trưng X và Y Mục đích của việc phân nhóm là chia các loại thuốc đã cho thành 2 nhóm (K=2) dựa trên các đặc trưng của chúng, giúp chúng ta dễ dàng phân loại và quản lý các loại thuốc này.
Object Feature 1 (X): weight index Feature 2 (X): pH
Bước đầu tiên trong quá trình phân nhóm là khởi tạo tâm (centroid) cho hai nhóm Chúng ta giả định rằng tâm của nhóm thứ nhất được đặt tại điểm A với tọa độ c1(1,1) và tâm của nhóm thứ hai tại điểm B với tọa độ c2(2,1).
Bước 2 Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảng cách Euclidean)
Mỗi cột trong ma trận khoảng cách (D) đại diện cho một đối tượng, với cột đầu tiên tương ứng với đối tượng A và cột thứ hai với đối tượng B Hàng đầu tiên của ma trận thể hiện khoảng cách giữa các đối tượng và tâm của nhóm thứ nhất (c1), trong khi hàng thứ hai biểu diễn khoảng cách đến tâm của nhóm thứ hai (c2).
Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâm c2(2,1) là 2.83 được tính như sau:
Bước 3 Nhóm các đối tượng vào nhóm gần nhất
Ta thấy rằng nhóm 1 sau vòng lặp thứ nhất gồm có 1 đối tượng A và nhóm 2 gồm các đối tượng còn lại B,C,D.
Bước 4: Tính toán lại tọa độ của các tâm cho các nhóm mới dựa trên tọa độ của các đối tượng trong nhóm Đối với nhóm 1, chỉ có một đối tượng A, do đó tâm nhóm 1 vẫn giữ nguyên tại c1(1,1) Tâm của nhóm 2 sẽ được tính toán dựa vào các tọa độ của các đối tượng trong nhóm.
Bước 5 Tính lại khoảng cách từ các đối tượng đến tâm mới
Bước 6 Nhóm các đối tượng vào nhóm
Bước 7 Tính lại tâm cho nhóm mới
Bước 9 Tính lại khoảng cách từ các đối tượng đến tâm mới
Bước 10 Nhóm các đối tượng vào nhóm
Ta thấy G2 = G1 (Không có sự thay đổi nhóm nào của các đối tượng) nên thuật toán dừng và kết quả phân nhóm như sau:
Object Feature 1 (X): weight index index Future 2
Ưu nhược điểm thuật toán
Thuật toán đơn giản, dễ dàng triển khai.
Đô ˜ phức tạp tính toán nhỏ.
Xử lý tốt với tập dữ liệu nhiễu
Với K nhỏ dễ gặp nhiễu dẫn tới kết quả đưa ra không chính xác
Cần nhiều thời gian để thực hiện do phải tính toán khoảng cách với tất cả các đối tượng trong tập dữ liệu.
Cần chuyển đổi kiểu dữ liệu thành các yếu tố định tính.
Bài toán và Cách xử lý bài toán
Phát biểu bài toán
Nhóm nghiên cứu đã quyết định thực hiện đề tài "Sử dụng Thuật toán k-means và ứng dụng gom cụm tài liệu văn bản Tiếng Việt" nhằm mục đích phân cụm các văn bản hiện có theo nhóm Bài toán này sẽ tập trung vào việc áp dụng thuật toán k-means để tổ chức và phân loại tài liệu văn bản Tiếng Việt một cách hiệu quả.
Các bước chuẩn bị
Bộ dữ liệu về các đoạn văn bất kì bao gồm
+108 các văn bản bất kì
Bộ công cụ lập trình
-Sử dụng mã nguồn từ Jupiter https://jupyter.org/
Giải quyết bài toán
Đề giải quyết bài toán cần phải sử dụng thuật toán k-means dung vào gom các văn bản có sẵn , sau đây là các bước giải bài toán
B1 Đọc các tệp tin văn bản từ thư mục và tiền xử lý chúng Ở đây ta có đầu vào dữ liệu của ta là Tập văn bản tiếng Việt
Code xử lý dữ liệu
B2 Xác định chủ đề cho mỗi tệp tin văn bản dựa trên từ khóa
B3 Tạo ma trận TF-IDF để lọc tiếng việt
B4 Sử dụng thuật toán KMeans để phân cụm các tài liệu
B5 Tính toán chính xác từng cụm dựa trên nhãn thực tế của các tài liệu
B4 Lưu thông tin về các cụm và tài liệu vào các tệp tin CSV
B6 Giảm số chiều của dữ liệu xuống 2 chiều bằng phân tích thành phần chính (PCA)
B8 Trực quan hóa biểu đồ scatter plot của dữ liệu phân cụm “.”
B9 Gom cụm cho từng tài liệu và lưu kết quả vào các tệp tin