Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin 1 Phần 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Như chúng ta đã biết và nhận thấy, trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin nói chung và trong các ngành công nghệ phần cứng, phần mềm, truyền thông và hệ thống các dữ liệu phục vụ trong các lãnh vực kinh tế - xã hội nói riêng thì việc thu thập thông tin cũng như nhu cầu lưu trữ thông tin càng ngày tăng. Bên cạnh đó việc tin học hoá một cách ồ ạt và nhanh chóng trong các hoạt động sản xuất, kinh doanh cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu lưu trữ khổng lồ. Hàng triệu cơ sở dữ liệu đã được sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí ... trong đó có nhiều cơ sở dữ liệu cực lớn đến cỡ Gigabyte, thậm chí là Terabyte. Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kĩ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích. Từ đó, các kĩ thuật khai phá dữ liệu đã trở thành một lĩnh vực thời sự của nền công nghệ thông tin thế giới hiện nay. Một vấn đề được đặt ra là phải làm sao trích chọn được những thông tin có ý nghĩa từ tập dữ liệu lớn để từ đó có thể giải quyết được các yêu cầu của thực tế như trợ giúp ra quyết định, dự đoán,…và vì thế mà khai phá dữ liệu đã ra đời nhằm giải quyết các yêu cầu đó. Ngay từ những ngày đầu khi xuất hiện, khai phá dữ liệu đã trở thành một trong những xu hướng nghiên cứu phổ biến trong lĩnh vực học máy tính và công nghệ tri thức. Nhiều thành tựu nghiên cứu của khai phá dữ liệu đã được áp dụng trong thực tế, khai phá dữ liệu có nhiều hướng quan trọng và một trong các hướng đó là phân cụm, phân lớp dữ liệu. Phân cụm, phân lớp dữ liệu là quá trình tìm kiếm để phân ra các cụm dữ liệu, các mẫu dữ liệu từ tập cơ sở dữ liệu lớn. Đó là lí do thôi thúc em chọn đề tài “Phân cụm, phân lớp trong khai phá dữ liệu và ứng dụng trong bài toán kinh doanh” để làm đề tài khóa luận tốt nghiệp của mình. 1.2. Mục tiêu của đề tài - Tìm hiểu qui trình khám phá tri thức - Tìm hiểu quá trình khai phá dữ liệu - Tìm hiểu phân cụm trong khai phá dữ liệu - Tìm hiểu phân lớp trong khai phá dữ liệu - Áp dụng lý thuyết tìm hiểu được và áp dụng trong bài toán thực tế 2 1.3. Đối tượng và phạm vi nghiên cứu Phân loại là một trong những hành vi nguyên thủy nhất của con người nhằm nắm giữ lượng thông tin hữu ích từ lượng thông tin khổng lồ họ nhận được hàng ngày bằng cách xử lý mọi thông tin như mọi thực thể. Phân cụm, phân lớp dữ liệu nhằm trong mục đích để khai phá cấu trúc của mẫu dữ liệu từ đó thành lập các nhóm dữ liệu từ tập dữ liệu đã có trước đó. 1.4. Phương pháp nghiên cứu Tìm hiểu các thuật toán, các kỹ thuật phân cụm phân lớp thông qua sách vở và tài liệu trên mạng Internet. Ứng dụng phân cụm, phân lớp dữ liệu trong nhiều khu vực nhiều việc khác nhau: học tập, kinh tế, bảo hiểm, viễn thông, quy hoạch đô thị, nghiên cứu về địa chấn … 1.5. Lịch sử nghiên cứu Với vấn đề về khai phá dữ liệu, đặc biệt là phân cụm dữ liệu cũng đã được nhiều tác giả phân tích, nghiên cứu theo nhiều hướng khác nhau. Phần lớn các tác giả đều cho thấy một cách tổng quan về khai phá dữ liệu, phân cụm, phân lớp dữ liệu và các ứng dụng trong một số lĩnh vực khác nhau. Bên cạnh đó vẫn có một số vấn đề ít được đề cập là việc phân tích, đánh giá tính tối ưu trong các thuật toán phân cụm dữ liệu, từ đó lực chọn thuật toán tốt nhất đưa vào ứng dụng. 1.6. Đóng góp của đề tài Đề tài được nghiên cứu nhằm trình bày những kiến thức cơ bản và tổng quan về khai phá dữ liệu, phân cụm, phân lớp dữ liệu và các kỹ thuật trong phân cụm dữ liệu. Ứng dụng bài toán kinh doanh phân cụm, phân lớp trong phần mềm Weka bằng kỹ thuật phân cụm dữ liệu. 1.7. Cấu trúc đề tài Nội dung khóa luận gồm có 3 chương: CHƯƠNG 1: Tổng quan về khai phá tri thức và khai phá dữ liệu CHƯƠNG 2: Phân cụm, phân lớp và các kỹ thuật phân cụm, phân lớp trong khai phá dữ liệu CHƯƠNG 3: Ứng dụng triển khai bài toán phân cụm, phân lớp 3 Phần 2. NỘI DUNG CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 1.1. Khai phá tri thức 1.1.1 Khái niệm khai phá tri thức Nếu cho rằng các điện tử và các sóng điện tử chính là bản chất của công nghệ điện từ truyền thống thì dữ liệu, thông tin và tri thức hiện đang là tiêu điểm của một lĩnh vực mới trong nghiên cứu và ứng dụng về phát hiện tri thức (Knowledge Discovery) và khai phá dữ liệu (Data Mining). Thông thường chúng ta coi dữ liệu như một dãy các bit, hoặc các số và các ký hiệu, hoặc các “đối tượng với một ý nghĩa nào đó khi được gửi cho một chương trình dưới một dạng nhất định. Chúng ta sử dụng các bit để đo lường các thông tin và xem nó như là các dữ liệu đã được lọc bỏ các dư thừa, được rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu. Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng. Các mối quan hệ này có thể được hiểu ra, có thể được phát hiện, hoặc có thể được học. Nói cách khác, tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao. Phát hiện tri thức trong cơ sở dữ liệu là một quy trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: phân tích, tổng hợp, hợp thức, khả ích, và có thể hiểu được. Còn khai thác dữ liệu là một bước trong quy trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu. Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu hoặc các mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu. 1.1.2 Sự cần thiết của khái phá tri thức Có rất nhiều lý do để giải thích sự cần thiết của việc Khám phá tri thức, điển hình là: - Có rất nhiều tổ chức tập hợp quá nhiều dữ liệu, vậy họ phải làm gì với chúng. - Con người lưu trữ dữ liệu bởi vì họ cho rằng một số giá trị hữu ích được mã hóa hoàn toàn trong dữ liệu. - Trong kinh doanh, cần thu thập các thông tin về thị trường, về các đối thủ và về 4 khách hàng. Trong sản xuất, cần thu thập các dữ liệu về thời điểm hiệu quả và tối ưu nhất phục vụ cho mục đích cải tiến quy trình và giải quyết các sự cố. - Chỉ có một phần nhỏ của dữ liệu (khoảng 5 đến 10) là luôn được phân tích. - Sự gia tăng của dữ liệu cản trở các phương pháp phân tích truyền thống. - Giá trị dữ liệu là quá lớn đối với cách thức phân tích cổ điển. Chúng ta có thể không bao giờ nhìn thấy chúng một cách chọn vẹn hoặc không thể lưu dữ trong bộ nhớ. - Dữ liệu cần tìm kiếm không tồn tại dưới dạng tường minh mà dưới dạng phi cấu trúc, trong các quy luật tiềm ẩn. - Sự phát triển của mạng máy tính đã gia tăng khả năng truy cập vào dữ liệu. Người sử dụng cuối không phải là nhà thống kê đơn thuần, họ cần biết tri thức từ CSDL mà họ đang lưu trữ. - Sự cần thiết phải nhanh chóng ra quyết định và phản ứng lại những cơ hội xuất hiện trước các đối thủ của mình. - Cùng với việc lớn lên của CSDL, khả năng để đưa ra quyết định và hỗ trợ phân tích là không thể thực hiện được với truy vấn truyền thống (SQL). - Rất nhiều kiểu câu truy vấn mà con người quan tâm là rất khó thực hiện hay miêu tả trong ngôn ngữ vấn tin, đại loại như: Tìm tất cả các bản ghi nghi là gian lận. Tìm tất cả các bản ghi tương tự như các bản ghi trong bảng X. - Một số vấn đề với dạng thức truy vấn: Không thể tối ưu hóa thông qua truy vấn. Không có nhiều thông tin trong các trường của CSDL hoặc trong các phương pháp thống kê cổ điển. 1.1.3 Khám phá tri thức và các lĩnh vực liên quan. Khám phá tri thức là một lĩnh vực khoa học liên quan tới nhiều lĩnh vực khác như: Khoa học thống kê, Máy học, CSDL, thuật toán, trực quan hóa, thực thi cao và tính toán song song. Tri thức thu được từ các hệ thống chuyên môn thông minh và sự trực quan hóa (hình dung) dữ liệu. Một hệ thống Khám phá tri thức - Khai phá dữ liệu đặc trưng bởi các phương thức, thuật toán, kỹ thuật từ các lĩnh vực khác nhau ở trên. Nhưng mục đích chung nhất là chiết xuất ra các tri thức từ dữ liệu xem xét trong trường hợp CSDL lớn. 5 Lĩnh vực máy học và nhận dạng mẫu đan xen với Khám phá tri thức - Khai phá dữ liệu trong hướng nghiên cứu về lý thuyết và thuật toán đối với các hệ thống nhằm trích rút các mẫu, các mô hình từ dữ liệu (phần chính của nó chính là các kỹ thuật Khai phá dữ liệu). Trọng tâm của Khám phá tri thức - Khai phá dữ liệu là mở rộng về lý thuyết và các thuật toán đối với vấn đề tìm kiếm ra các mẫu đặc trưng trong một tập rộng lớn của thế giới dữ liệu thực. Khám phá tri thức - Khai phá dữ liệu cũng có nhiều điểm chung với khoa học thống kê, đặc biệt là việc phân tích dữ liệu khám phá (EDA - Exploratory Data Analysis). Một hệ thống Khám phá tri thức - Khai phá dữ liệu thường gắn liền với các thủ tục thống kê đặc biệt đối với mô hình dữ liệu và điều quản nhiễu trong khung Khám phá tri thức chung. Bên cạnh đó Khám phá tri thức - Khai phá dữ liệu cũng liên quan mật thiết với lĩnh vực khoa học gọi là Kho dữ liệu (Data Warehousing). Kho dữ liệu ám chỉ đến xu hướng thông dụng gần đây là lựa chọn, giải quyết dữ liệu một cách rõ ràng và làm cho chúng có khả năng phục hồi trực tuyến. Một phương pháp thông dụng cho việc phân tích kho dữ liệu được gọi là OLAP - xử lý phân tích trực tuyến. Tiêu điểm của các công cụ OLAP là cung cấp cách phân tích dữ liệu đa chiều. Việc phân tích dữ liệu đa chiều này mạnh hơn so với SQL (Standard Query Language) - Ngôn ngữ vấn tin chuẩn trong việc xử lý các dữ liệu nhiều chiều. Chúng ta xem cả hai khái niệm Khám phá tri thức và OLAP là các khía cạnh về một vấn đề mới của trích rút thông tin tri thức và các công cụ quản lý. 1.2. Khai phá dữ liệu 1.2.1 Khái niệm khai phá dữ liệu Khai phá dữ liệu như là một quy trình phân tích được thiết kế để thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp hoặc các mối quan hệ mang tính hệ thống giữa các biến và sau đó sẽ hợp thức hoá các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện được cho các tập con của dữ liệu. Quy trình này bao gồm ba giai đoạn cơ bản: thăm dò, xây dựng mô hình hoặc định nghĩa mẫu, hợp thức, kiểm chứng. Do sự phát triển mạnh mẽ của khai phá dữ liệu về phạm vi các lĩnh vực ứng dụng trong thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác 6 nhau về khai phá dữ liệu. Tóm lại nó định được nghĩa như sau: Khai phá dữ liệu là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng tiêm năng trong nguồn dữ liệu đã có. 1.2.2 Các phương pháp khai phá dữ liệu Với hai mục đích chính của khai phá dữ liệu là dự đoán và mô tả, người ta thường sử dụng các phương pháp sau cho khai phá dữ liệu: - Phân lớp (Classfication):dự đoán nhãn lớp cho các mẫu dữ liệu - Hồi quy (Regression): ánh xạ mục dữ liệu thành một biến dự đoán có giá trị thực - Trực quan hoá (Visualization): là quá trình truyền tải thông tin theo cách mà người xem có thể nhanh chóng và dễ dàng tiêu hóa. Ví dụ ở khắp mọi nơi và chúng ta thấy chúng hàng ngày - biểu đồ, đồ thị, hình ảnh kỹ thuật số và phim. Chúng tôi sử dụng chúng bởi vì chúng trình bày một cách hiệu quả lượng lớn thông tin - Phân cụm (Clustering) : nhóm các đối tượng tương tự nhau vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng - Tổng hợp (Summarization): một tác vụ mô tả bổ sung liên quan đến các phương pháp tìm mô tả nhỏ gọn cho một tập hợp (hoặc tập hợp con) dữ liệu. - Mô hình ràng buộc (Dependency modeling) : Tìm một mô hình cục bộ mô tả các phụ thuộc đáng kể giữa các biến hoặc giữa các giá trị của một tính năng trong một tập dữ liệu hoặc trong một phần của tập dữ liệu. - Biểu diễn mô hình (Model Evaluation):là một phần không thể thiếu trong quá trình phát triển mô hình.Biểu diễn mô hình với dữ liệu được sử dụng cho đào tạo - Phân tích sự phát triển và độ lệch (Evolution and deviation analyst): liên quan đến nghiên cứu dữ liệu liên quan đến thời gian thay đổi theo thời gian. Mô hình phân tích sự phát triển xu hướng tiến hóa trong dữ liệu, đồng ý với việc mô tả đặc điểm, so sánh, phân loại hoặc phân cụm dữ liệu liên quan đến thời gian. Mặt khác, phân tích độ lệch xem xét sự khác biệt giữa các giá trị đo được và giá trị mong đợi và cố gắng tìm ra nguyên nhân của độ lệch so với các giá trị dự đoán. - Luật kết hợp (Associantion rules): phát hiện và đưa ra các mối liên hệ giữa các 7 giá trị dữ liệu trong cơ sở dữ liệu - Phương pháp tìm kiếm (Search Method): Phương pháp tìm kiếm là một cách hiệu quả và hiệu quả trong việc tìm kiếm thông tin 1.2.3 Các lĩnh vực ứng dụng trong thực tiễn của khai phá dữ liệu Khai phá dữ liệu là một lĩnh vực mới phát triển những thu hút đựợc khá nhiều nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó. Sau đây là một số lĩnh vực ứng dụng thực tế điển hình của khai phá dữ liệu : - Phân tích dữ liệu và hỗ trợ ra quyết định - Phân lớp văn bản, tóm tắt văn bản, phân lớp các trang Web và phân cụm ảnh màu - Chuẩn đoán triệu chứng, phương pháp trong điều trị y học - Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền trong sinh học - Phân tích tình hình tài chính, thị trường, dự báo gía cổ phiếu trong tài chính, thị trường và chứng khoán - Phân tích dữ liệu marketing, khách hàng. - Điều khiển và lập lịch trình - Bảo hiểm - Giáo dục… 1.2.4 Các kỹ thuật áp dụng trong khai phá dữ liệu Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính: Kỹ thuật khai phá dữ liệu mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có. Các kỹ thuật này gồm có: phân cụm (Clustering): nhóm các đối tượng tương tự nhau vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng tổng hợp (Summerization) ): một tác vụ mô tả bổ sung liên quan đến các phương pháp tìm mô tả nhỏ gọn cho một tập hợp (hoặc tập hợp con) dữ liệu. trực quan hoá (Visualization) là quá trình truyền tải thông tin theo cách mà người xem có thể nhanh chóng và dễ dàng tiêu hóa. 8 phân tích sự phát triển và độ lệch (Evolution and deviation analyst), luật kết hợp (Associantion rules) ): phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong cơ sở dữ liệu Kỹ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán vào các suy diễn trên dữ liệu hiện thời. Các kỹ thuật này gồm có: phân lớp (Classification), hồi quy (Regression)... Trong đó có ba phương pháp thông dụng nhất là: phân cụm dữ liệu, phân lớp dữ liệu và khai phá luật kết hợp. - Phân cụm dữ liệu: Mục tiêu chính của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng. Trong phương pháp này bạn sẽ không thể biết kết quả các người làm cụm thu được sẽ như thế nào khi quá trình bắt đầu. Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được. Phân cụm dữ liệu còn là bước tiền xử lý cho các thuật toán khai phá dữ liệu khác. - Phân lớp dữ liệu: Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu - Khai phá luật kết hợp: Mục tiêu của phương pháp này là phát hiện đưa ra mối liên hệ giữa các giá trị dữ liệu trong Cơ sở dữ liệu. Mẫu đầu ra của giải thuật khai phá dữ liệu là luật kết hợp tìm được 1.3 Quy trình khai phá tri thức và khai phá dữ liệu 1.3.1 Quy trình khai phá tri thức Việc khám phá tri thức thông thường có thể mô tả bằng sơ đồ các quy trình sau: 9 Hình 1.1: Quy trình khai phá tri thức Trong đó, mỗi bước là một quy trình có vai trò và nhiệm vụ khác nhau, bao gồm: Bước thứ nhất: là tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, 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: 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, xử lý việc thiế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ộ quy trình phát hiện tri thức. Bước thứ ba: là khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc các mô hình ẩn dưới các dữ liệu. Bước thứ tư: là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả Hình thành và định nghĩa bài toán. Thu thập và tiền xử lý dữ liệu Khai phá dữ liệu Rút ra các tri thức Phân tích và kiểm định kết quả sử dụng các tri thức phát hiện được 10 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. Bước thứ năm: Sử dụng tri thức đã được khai phá vào thực tế. Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống. Tuy nhiên để sử dụng được các tri thức đó đôi khi cần đến các chuyên gia trong lĩnh vực liên quan vì tri thức rút ra có thể chỉ mang tính chất hỗ trợ quyết định hoặc cũng có thể được sử dụng cho quá trình khám phá tri thức khác. Mặc dù được tóm tắt thành 5 bước nhưng thực chất quá trình xây dựng và thực hiện việc khám phá tri thức không chỉ tuân theo các bước cố định mà các quá trình này còn có thể được lặp đi lặp lại ở một hoặc một số giai đoạn trước và cứ tiếp tục như thế sẽ làm cho quá trình khai phá và tìm kiếm dữ liệu ngày càng hoàn thiện hơn 3.1.2 Quy trình khai phá dữ liệu Quy trình khai phá dữ liệu thông thường gồm 10 bước như sau: 11 Hình 1.2: Quy trình khai phá dữ liệu Bước 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ắc 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. Bước 2: Tạo tập tin dữ liệu đầu vào Ta cần 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í. Bước 3: Tiền xử lí, làm sạch, mã hoá Ở 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 Nghiên cứu lĩnh vực Tạo tập tin dữ liệu đ ầu vào Tiền xử lí, làm sạch, mã hoá Rút gọn chiều Chọn tác vụ khai thác dữ liệu Chọn các giải thuật Khai thác dữ liệu Khai thác dữ liệu, tìm kiếm tri thức Đánh giá mẫu tìm được Biểu diễn tri thức Sử dụng các tri thức vừa khám phá 12 chỉnh lại cấu trúc của dữ liệu và mã hoá chúng để tiện cho quá trình xử lí. Bước 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ó 27 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, Bước 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 ta 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) Phân cụm (Clusterity) Xu thế (Trend Analysis) Phân tích độ lệch Phân tích hiếm Bước 6: Chọn các giải thuật Khai thác dữ liệu Lực chọn các giải thuật khai thác dữ liệu phù hợp Bước 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. Bước 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ử dụng được những tri thức nào, những tri thức nào là dư thừa, không cần thiết. Bước 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 đó. Bước 10: Sử dụng các tri thức vừa khám phá 13 Ta có thể tham khảo tiến trình KDD (Knowledge Discovery in Databases) để hiểu rõ hơn về Khai thác dữ liệu: Chuẩn bị dữ liệu (data preparation), bao gồm các quá trình làm sạch dữ liệu (data cleaning ), tích hợp dữ liệu (data integration ), chọn dữ liệu (data selection), biến đổi dữ liệu (data transformation). Khai thác dữ liệu (data mining): xác định nhiệm vụ khai thác dữ liệu và lựa chọn kỹ thuật khai thác dữ liệu. Kết quả cho ta một nguồn tri thức thô . Đá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. Triển khai (deployment) Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên đến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã qua. 14 CHƯƠNG II: PHÂN CỤM VÀ PHÂN LỚP TRONG KHAI PHÁ DỮ LIỆU 2.1. Phân cụm và các kỹ thuật phân cụm 2.1.1 Tổng quan về phân cụm dữ liệu Ta có định nghĩa như sau:“Phân cụm dữ liệu (Clustering) là một kỹ thuật trong khai phá dữ liệu, nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn, quan trọng trong tập dữ liệu lớn. Từ đó cung cấp thông tin, tri thức hữu ích cho việc ra quyết định”. Như vậy, phân cụm dữ liệu là quá trình chia một tập dữ liệu ban đầu thành các cụm sao cho các phần tử trong một cụm tương tự với nhau và các phần tử trong các cụm khác nhau sẽ phi tương tự với nhau. Số các cụm dữ liệu ở đây có thể xác định trước theo kinh nghiệm hoặc có thể được tự động xác định. Ví dụ: Tập hợp các quả bóng có nhiều màu sắc như hình sau: Khi đó, những quả bóng có cùng màu sắc được phân cụm vào các nhóm dữ liệu nhỏ hơn như sau: Khi phân cụm phải thoả mãn có yêu cầu như sau: Có khả năng mở rộng: Nhiều thuật toán phân cụm làm việc tốt với những tập dữ liệu nhỏ chứa ít hơn 200 đối tượng, tuy nhiên, một cơ sở dữ liệu (CSDL) lớn có thể chứa tới hàng triệu đối tượng. Việc phân cụm với một tập dữ liệu lớn có thể làm ảnh hưởng tới kết quả. Vậy làm cách nào để chúng ta có thể phát triển các thuật toán phân cụm có khả năng mở rộng cao đối với các CSDL lớn. Khả năng thích nghi với các kiểu thuộc tính khác nhau: Nhiều thuật toán được thiết kế cho việc phân cụm dữ liệu có kiểu khoảng (kiểu số). Tuy nhiên, nhiều ứng dụng có thể đòi hỏi việc phân cụm với nhiều kiểu dữ liệu khác nhau, như kiểu nhị phần, kiểu tường minh (định danh - không thứ tự), và dữ liệu có thứ tự hay dạng hỗn hợp của những kiểu dữ liệu này. Khám phá các cụm với hình dạng bất kỳ: Nhiều thuật toán phân cụm xác 15 định các cụm dựa trên các phép đo khoảng cách Euclidean và khoảng cách Manhattan. Các thuật toán dựa trên các phép đo như vậy hướng tới việc tìm kiếm các cụm hình cầu với mật độ và kích cỡ tương tự nhau. Tuy nhiên, một cụm có thể có bất cứ một hình dạng nào. Do đó, việc phát triển các thuật toán có thể khám phá ra các cụm có hình dạng bất kỳ là một việc làm quan trọng... Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào: Nhiều thuật toán phân cụm yêu cầu người dùng đưa vào những tham số nhất định trong phân tích phân cụm (như số lượng các cụm mong muốn). Khả năng thích nghi với dữ liệu nhiễu: Hầu hết những CSDL thực đều chứa đựng dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chưa biết hoặc dữ liệu sai. Một số thuật toán phân cụm nhạy cảm với dữ liệu như vậy và có thể dẫn đến chất lượng phân cụm thấp. Ít nhạy cảm với thủ tục của các dữ liệu vào: Một số thuật toán phân cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ như với cùng một tập dữ liệu, khi được đưa ra với các thứ tự khác nhau thì với cùng một thuật toán có thể sinh ra các cụm rất khác nhau. Do đó, việc quan trọng là phát triển các thuật toán mà ít nhạy cảm với thứ tự vào của dữ liệu Số chiều lớn: Một CSDL hoặc một kho dữ liệu có thể chứa một số chiều hoặc một số các thuộc tính. Nhiều thuật toán phân cụm áp dụng tốt cho dữ liệu với số chiều thấp, bao gồm chỉ từ hai đến 3 chiều. Người ta đánh giá việc phân cụm là có chất lượng tốt nếu nó áp dụng được cho dữ liệu có từ 3 chiều trở lên. Nó là sự thách thức với các đối tượng dữ liệu cụm trong không gian với số chiều lớn, đặc biệt vì khi xét những không gian với số chiều lớn có thể rất thưa và có độ nghiêng lớn. Phân cụm ràng buộc: Nhiều ứng dụng thực tế có thể cần thực hiện phân cụm dưới các loại ràng buộc khác nhau. Một nhiệm vụ đặt ra là đi tìm những nhóm dữ liệu có trạng thái phân cụm tốt và thỏa mãn các ràng buộc. Dễ hiểu và dễ sử dụng: Người sử dụng có thể chờ đợi những kết quả phân cụm dễ hiểu, dễ lý giải và dễ sử dụng. Nghĩa là, sự phân cụm có thể cần được giải thích ý nghĩa và ứng dụng rõ ràng. 16 2.1.2 Một số phương pháp phân cụm dữ liệu 2.1.2.1 Phương pháp phân cụm phân hoạch Phương pháp phân cụm phân hoạch nhằm phân một tập dữ liệu có n phần tử cho trước thành k nhóm dữ liệu sao cho: mỗi phần tử dữ liệu chỉ thuộc về một nhóm dữ liệu và mỗi nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu. Các thuật toán phân hoạch dữ liệu có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục cho vấn đề phân cụm dữ liệu, do nó phải tìm kiếm tất cả các cách phân hoạch có thể được. Chính vì vậy, trên thực tế người ta thường đi tìm giải pháp tối ưu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lượng của các cụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu. Với chiến lược này, thông thường người ta bắt đầu khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo phép ngẫu nhiên hoặc theo heuristic và liên tục tinh chỉnh nó cho đến khi thu được một phần hoạch mong muốn, thoả mãn ràng buộc cho trước. Các thuật toán phân cụm phân hoạch cố gắng cải tiến tiêu chuẩn phân cụm, bằng cách tính các giá trị đo độ tương tự giữa các đối tượng dữ liệu và sắp xếp các giá trị này, sau đó thuật toán lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu. Như vậy, ý tưởng chính của thuật toán phân cụm phân hoạch tối ưu cục bộ là sử dụng chiến lược ăn tham (Greedy) để tìm kiếm nghiệm. Có nhiều thuật toán phân cụm phân điển hình như K-means, PAM, CLARA, CLARANS... Ở phần sau em xin lựa chọn thuật toán K-Means để phân tích rõ hơn cũng như xây dựng chương trình. 17 Bắt đầu Dữ liệu vào danh sách đối tượng Khởi tạo trọng tâm k Tính khoảng cách các điểm đến trọng tâm Phân cụm dựa trên trọng tâm gần nhất Tính toán lại trọng tâm Trọng tâm không đổi Kết thúc F T Thuật toán K-means Hình 2.1: Sơ đồ tuật toán K-means Thuật toán K - Means bao gồm các bước sau : Input :Số cụm k và các trọng tâm cụm { mj}kj-1 . Ouput :Các cụm C i ( 1 ≤ i ≤ k ) và hàm tiêu chuẩn E đạt giá trị tối thiểu Begin Bước 1 : Khởi tạo Chọn k trọng tâm { mj}kj ban đầu trong không gian Rd ( d là số chiều của dữ liệu ) . Việc lựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm . Bước 2 : Tính toán khoảng cách 18 Đối với mỗi điểm xi ( 1 ≤ i ≤ k ), tính toán khoảng cách của nó tới mỗi trọng tâm mj ; j = 1,
TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ KHAI PHÁ
Khai phá tri thức
1.1.1 Khái niệm khai phá tri thức
Nếu cho rằng các điện tử và các sóng điện tử chính là bản chất của công nghệ điện từ truyền thống thì dữ liệu, thông tin và tri thức hiện đang là tiêu điểm của một lĩnh vực mới trong nghiên cứu và ứng dụng về phát hiện tri thức (Knowledge Discovery) và khai phá dữ liệu (Data Mining)
Thông thường chúng ta coi dữ liệu như một dãy các bit, hoặc các số và các ký hiệu, hoặc các “đối tượng với một ý nghĩa nào đó khi được gửi cho một chương trình dưới một dạng nhất định Chúng ta sử dụng các bit để đo lường các thông tin và xem nó như là các dữ liệu đã được lọc bỏ các dư thừa, được rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng Các mối quan hệ này có thể được hiểu ra, có thể được phát hiện, hoặc có thể được học Nói cách khác, tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao
Phát hiện tri thức trong cơ sở dữ liệu là một quy trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: phân tích, tổng hợp, hợp thức, khả ích, và có thể hiểu được Còn khai thác dữ liệu là một bước trong quy trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu hoặc các mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu
1.1.2 Sự cần thiết của khái phá tri thức
Có rất nhiều lý do để giải thích sự cần thiết của việc Khám phá tri thức, điển hình là:
- Có rất nhiều tổ chức tập hợp quá nhiều dữ liệu, vậy họ phải làm gì với chúng
- Con người lưu trữ dữ liệu bởi vì họ cho rằng một số giá trị hữu ích được mã hóa hoàn toàn trong dữ liệu
- Trong kinh doanh, cần thu thập các thông tin về thị trường, về các đối thủ và về
4 khách hàng Trong sản xuất, cần thu thập các dữ liệu về thời điểm hiệu quả và tối ưu nhất phục vụ cho mục đích cải tiến quy trình và giải quyết các sự cố
- Chỉ có một phần nhỏ của dữ liệu (khoảng 5 đến 10%) là luôn được phân tích
- Sự gia tăng của dữ liệu cản trở các phương pháp phân tích truyền thống
- Giá trị dữ liệu là quá lớn đối với cách thức phân tích cổ điển Chúng ta có thể không bao giờ nhìn thấy chúng một cách chọn vẹn hoặc không thể lưu dữ trong bộ nhớ
- Dữ liệu cần tìm kiếm không tồn tại dưới dạng tường minh mà dưới dạng phi cấu trúc, trong các quy luật tiềm ẩn
- Sự phát triển của mạng máy tính đã gia tăng khả năng truy cập vào dữ liệu Người sử dụng cuối không phải là nhà thống kê đơn thuần, họ cần biết tri thức từ CSDL mà họ đang lưu trữ
- Sự cần thiết phải nhanh chóng ra quyết định và phản ứng lại những cơ hội xuất hiện trước các đối thủ của mình
- Cùng với việc lớn lên của CSDL, khả năng để đưa ra quyết định và hỗ trợ phân tích là không thể thực hiện được với truy vấn truyền thống (SQL)
- Rất nhiều kiểu câu truy vấn mà con người quan tâm là rất khó thực hiện hay miêu tả trong ngôn ngữ vấn tin, đại loại như:
• Tìm tất cả các bản ghi nghi là gian lận
• Tìm tất cả các bản ghi tương tự như các bản ghi trong bảng X
- Một số vấn đề với dạng thức truy vấn:
• Không thể tối ưu hóa thông qua truy vấn
• Không có nhiều thông tin trong các trường của CSDL hoặc trong các phương pháp thống kê cổ điển
1.1.3 Khám phá tri thức và các lĩnh vực liên quan
Khám phá tri thức là một lĩnh vực khoa học liên quan tới nhiều lĩnh vực khác như: Khoa học thống kê, Máy học, CSDL, thuật toán, trực quan hóa, thực thi cao và tính toán song song Tri thức thu được từ các hệ thống chuyên môn thông minh và sự trực quan hóa (hình dung) dữ liệu Một hệ thống Khám phá tri thức - Khai phá dữ liệu đặc trưng bởi các phương thức, thuật toán, kỹ thuật từ các lĩnh vực khác nhau ở trên Nhưng mục đích chung nhất là chiết xuất ra các tri thức từ dữ liệu xem xét trong trường hợp CSDL lớn
Lĩnh vực máy học và nhận dạng mẫu đan xen với Khám phá tri thức - Khai phá dữ liệu trong hướng nghiên cứu về lý thuyết và thuật toán đối với các hệ thống nhằm trích rút các mẫu, các mô hình từ dữ liệu (phần chính của nó chính là các kỹ thuật Khai phá dữ liệu) Trọng tâm của Khám phá tri thức - Khai phá dữ liệu là mở rộng về lý thuyết và các thuật toán đối với vấn đề tìm kiếm ra các mẫu đặc trưng trong một tập rộng lớn của thế giới dữ liệu thực
Khám phá tri thức - Khai phá dữ liệu cũng có nhiều điểm chung với khoa học thống kê, đặc biệt là việc phân tích dữ liệu khám phá (EDA - Exploratory Data Analysis) Một hệ thống Khám phá tri thức - Khai phá dữ liệu thường gắn liền với các thủ tục thống kê đặc biệt đối với mô hình dữ liệu và điều quản nhiễu trong khung Khám phá tri thức chung
Bên cạnh đó Khám phá tri thức - Khai phá dữ liệu cũng liên quan mật thiết với lĩnh vực khoa học gọi là Kho dữ liệu (Data Warehousing) Kho dữ liệu ám chỉ đến xu hướng thông dụng gần đây là lựa chọn, giải quyết dữ liệu một cách rõ ràng và làm cho chúng có khả năng phục hồi trực tuyến Một phương pháp thông dụng cho việc phân tích kho dữ liệu được gọi là OLAP - xử lý phân tích trực tuyến Tiêu điểm của các công cụ OLAP là cung cấp cách phân tích dữ liệu đa chiều Việc phân tích dữ liệu đa chiều này mạnh hơn so với SQL (Standard Query Language) - Ngôn ngữ vấn tin chuẩn trong việc xử lý các dữ liệu nhiều chiều Chúng ta xem cả hai khái niệm Khám phá tri thức và OLAP là các khía cạnh về một vấn đề mới của trích rút thông tin tri thức và các công cụ quản lý.
Khai phá dữ liệu
1.2.1 Khái niệm khai phá dữ liệu
Khai phá dữ liệu như là một quy trình phân tích được thiết kế để thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp hoặc các mối quan hệ mang tính hệ thống giữa các biến và sau đó sẽ hợp thức hoá các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện được cho các tập con của dữ liệu Quy trình này bao gồm ba giai đoạn cơ bản: thăm dò, xây dựng mô hình hoặc định nghĩa mẫu, hợp thức, kiểm chứng
Do sự phát triển mạnh mẽ của khai phá dữ liệu về phạm vi các lĩnh vực ứng dụng trong thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác
6 nhau về khai phá dữ liệu Tóm lại nó định được nghĩa như sau:
Khai phá dữ liệu là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng tiêm năng trong nguồn dữ liệu đã có
1.2.2 Các phương pháp khai phá dữ liệu
Với hai mục đích chính của khai phá dữ liệu là dự đoán và mô tả, người ta thường sử dụng các phương pháp sau cho khai phá dữ liệu:
- Phân lớp (Classfication):dự đoán nhãn lớp cho các mẫu dữ liệu
- Hồi quy (Regression): ánh xạ mục dữ liệu thành một biến dự đoán có giá trị thực
- Trực quan hoá (Visualization): là quá trình truyền tải thông tin theo cách mà người xem có thể nhanh chóng và dễ dàng tiêu hóa Ví dụ ở khắp mọi nơi và chúng ta thấy chúng hàng ngày - biểu đồ, đồ thị, hình ảnh kỹ thuật số và phim Chúng tôi sử dụng chúng bởi vì chúng trình bày một cách hiệu quả lượng lớn thông tin
- Phân cụm (Clustering) : nhóm các đối tượng tương tự nhau vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng
- Tổng hợp (Summarization): một tác vụ mô tả bổ sung liên quan đến các phương pháp tìm mô tả nhỏ gọn cho một tập hợp (hoặc tập hợp con) dữ liệu
- Mô hình ràng buộc (Dependency modeling) : Tìm một mô hình cục bộ mô tả các phụ thuộc đáng kể giữa các biến hoặc giữa các giá trị của một tính năng trong một tập dữ liệu hoặc trong một phần của tập dữ liệu
- Biểu diễn mô hình (Model Evaluation):là một phần không thể thiếu trong quá trình phát triển mô hình.Biểu diễn mô hình với dữ liệu được sử dụng cho đào tạo
- Phân tích sự phát triển và độ lệch (Evolution and deviation analyst): liên quan đến nghiên cứu dữ liệu liên quan đến thời gian thay đổi theo thời gian Mô hình phân tích sự phát triển xu hướng tiến hóa trong dữ liệu, đồng ý với việc mô tả đặc điểm, so sánh, phân loại hoặc phân cụm dữ liệu liên quan đến thời gian Mặt khác, phân tích độ lệch xem xét sự khác biệt giữa các giá trị đo được và giá trị mong đợi và cố gắng tìm ra nguyên nhân của độ lệch so với các giá trị dự đoán
- Luật kết hợp (Associantion rules): phát hiện và đưa ra các mối liên hệ giữa các
7 giá trị dữ liệu trong cơ sở dữ liệu
- Phương pháp tìm kiếm (Search Method): Phương pháp tìm kiếm là một cách hiệu quả và hiệu quả trong việc tìm kiếm thông tin
1.2.3 Các lĩnh vực ứng dụng trong thực tiễn của khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực mới phát triển những thu hút đựợc khá nhiều nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó Sau đây là một số lĩnh vực ứng dụng thực tế điển hình của khai phá dữ liệu :
- Phân tích dữ liệu và hỗ trợ ra quyết định
- Phân lớp văn bản, tóm tắt văn bản, phân lớp các trang Web và phân cụm ảnh màu
- Chuẩn đoán triệu chứng, phương pháp trong điều trị y học
- Tìm kiếm, đối sánh các hệ Gene và thông tin di truyền trong sinh học
- Phân tích tình hình tài chính, thị trường, dự báo gía cổ phiếu trong tài chính, thị trường và chứng khoán
- Phân tích dữ liệu marketing, khách hàng
- Điều khiển và lập lịch trình
1.2.4 Các kỹ thuật áp dụng trong khai phá dữ liệu
Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính: Kỹ thuật khai phá dữ liệu mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Các kỹ thuật này gồm có:
• phân cụm (Clustering): nhóm các đối tượng tương tự nhau vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng
• tổng hợp (Summerization) ): một tác vụ mô tả bổ sung liên quan đến các phương pháp tìm mô tả nhỏ gọn cho một tập hợp (hoặc tập hợp con) dữ liệu
• trực quan hoá (Visualization) là quá trình truyền tải thông tin theo cách mà người xem có thể nhanh chóng và dễ dàng tiêu hóa
• phân tích sự phát triển và độ lệch (Evolution and deviation analyst),
• luật kết hợp (Associantion rules) ): phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong cơ sở dữ liệu
Kỹ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán vào các suy diễn trên dữ liệu hiện thời Các kỹ thuật này gồm có: phân lớp (Classification), hồi quy (Regression) Trong đó có ba phương pháp thông dụng nhất là: phân cụm dữ liệu, phân lớp dữ liệu và khai phá luật kết hợp
- Phân cụm dữ liệu: Mục tiêu chính của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng Trong phương pháp này bạn sẽ không thể biết kết quả các người làm cụm thu được sẽ như thế nào khi quá trình bắt đầu Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được Phân cụm dữ liệu còn là bước tiền xử lý cho các thuật toán khai phá dữ liệu khác
- Phân lớp dữ liệu: Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu Quá trình phân lớp dữ liệu thường gồm 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu
- Khai phá luật kết hợp: Mục tiêu của phương pháp này là phát hiện đưa ra mối liên hệ giữa các giá trị dữ liệu trong Cơ sở dữ liệu Mẫu đầu ra của giải thuật khai phá dữ liệu là luật kết hợp tìm được
PHÂN CỤM VÀ PHÂN LỚP TRONG KHAI PHÁ DỮ LIỆU
Phân cụm và các kỹ thuật phân cụm
2.1.1 Tổng quan về phân cụm dữ liệu
Ta có định nghĩa như sau:“Phân cụm dữ liệu (Clustering) là một kỹ thuật trong khai phá dữ liệu, nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên tiềm ẩn, quan trọng trong tập dữ liệu lớn Từ đó cung cấp thông tin, tri thức hữu ích cho việc ra quyết định”
Như vậy, phân cụm dữ liệu là quá trình chia một tập dữ liệu ban đầu thành các cụm sao cho các phần tử trong một cụm tương tự với nhau và các phần tử trong các cụm khác nhau sẽ phi tương tự với nhau Số các cụm dữ liệu ở đây có thể xác định trước theo kinh nghiệm hoặc có thể được tự động xác định
Ví dụ: Tập hợp các quả bóng có nhiều màu sắc như hình sau:
Khi đó, những quả bóng có cùng màu sắc được phân cụm vào các nhóm dữ liệu nhỏ hơn như sau:
Khi phân cụm phải thoả mãn có yêu cầu như sau:
• Có khả năng mở rộng: Nhiều thuật toán phân cụm làm việc tốt với những tập dữ liệu nhỏ chứa ít hơn 200 đối tượng, tuy nhiên, một cơ sở dữ liệu (CSDL) lớn có thể chứa tới hàng triệu đối tượng Việc phân cụm với một tập dữ liệu lớn có thể làm ảnh hưởng tới kết quả Vậy làm cách nào để chúng ta có thể phát triển các thuật toán phân cụm có khả năng mở rộng cao đối với các CSDL lớn
• Khả năng thích nghi với các kiểu thuộc tính khác nhau: Nhiều thuật toán được thiết kế cho việc phân cụm dữ liệu có kiểu khoảng (kiểu số) Tuy nhiên, nhiều ứng dụng có thể đòi hỏi việc phân cụm với nhiều kiểu dữ liệu khác nhau, như kiểu nhị phần, kiểu tường minh (định danh - không thứ tự), và dữ liệu có thứ tự hay dạng hỗn hợp của những kiểu dữ liệu này
• Khám phá các cụm với hình dạng bất kỳ: Nhiều thuật toán phân cụm xác
15 định các cụm dựa trên các phép đo khoảng cách Euclidean và khoảng cách Manhattan Các thuật toán dựa trên các phép đo như vậy hướng tới việc tìm kiếm các cụm hình cầu với mật độ và kích cỡ tương tự nhau Tuy nhiên, một cụm có thể có bất cứ một hình dạng nào
• Do đó, việc phát triển các thuật toán có thể khám phá ra các cụm có hình dạng bất kỳ là một việc làm quan trọng
• Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào: Nhiều thuật toán phân cụm yêu cầu người dùng đưa vào những tham số nhất định trong phân tích phân cụm (như số lượng các cụm mong muốn)
• Khả năng thích nghi với dữ liệu nhiễu: Hầu hết những CSDL thực đều chứa đựng dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chưa biết hoặc dữ liệu sai Một số thuật toán phân cụm nhạy cảm với dữ liệu như vậy và có thể dẫn đến chất lượng phân cụm thấp
• Ít nhạy cảm với thủ tục của các dữ liệu vào: Một số thuật toán phân cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ như với cùng một tập dữ liệu, khi được đưa ra với các thứ tự khác nhau thì với cùng một thuật toán có thể sinh ra các cụm rất khác nhau Do đó, việc quan trọng là phát triển các thuật toán mà ít nhạy cảm với thứ tự vào của dữ liệu
• Số chiều lớn: Một CSDL hoặc một kho dữ liệu có thể chứa một số chiều hoặc một số các thuộc tính Nhiều thuật toán phân cụm áp dụng tốt cho dữ liệu với số chiều thấp, bao gồm chỉ từ hai đến 3 chiều Người ta đánh giá việc phân cụm là có chất lượng tốt nếu nó áp dụng được cho dữ liệu có từ 3 chiều trở lên Nó là sự thách thức với các đối tượng dữ liệu cụm trong không gian với số chiều lớn, đặc biệt vì khi xét những không gian với số chiều lớn có thể rất thưa và có độ nghiêng lớn
• Phân cụm ràng buộc: Nhiều ứng dụng thực tế có thể cần thực hiện phân cụm dưới các loại ràng buộc khác nhau Một nhiệm vụ đặt ra là đi tìm những nhóm dữ liệu có trạng thái phân cụm tốt và thỏa mãn các ràng buộc
• Dễ hiểu và dễ sử dụng: Người sử dụng có thể chờ đợi những kết quả phân cụm dễ hiểu, dễ lý giải và dễ sử dụng Nghĩa là, sự phân cụm có thể cần được giải thích ý nghĩa và ứng dụng rõ ràng
2.1.2 Một số phương pháp phân cụm dữ liệu
2.1.2.1 Phương pháp phân cụm phân hoạch
Phương pháp phân cụm phân hoạch nhằm phân một tập dữ liệu có n phần tử cho trước thành k nhóm dữ liệu sao cho: mỗi phần tử dữ liệu chỉ thuộc về một nhóm dữ liệu và mỗi nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu Các thuật toán phân hoạch dữ liệu có độ phức tạp rất lớn khi xác định nghiệm tối ưu toàn cục cho vấn đề phân cụm dữ liệu, do nó phải tìm kiếm tất cả các cách phân hoạch có thể được Chính vì vậy, trên thực tế người ta thường đi tìm giải pháp tối ưu cục bộ cho vấn đề này bằng cách sử dụng một hàm tiêu chuẩn để đánh giá chất lượng của các cụm cũng như để hướng dẫn cho quá trình tìm kiếm phân hoạch dữ liệu Với chiến lược này, thông thường người ta bắt đầu khởi tạo một phân hoạch ban đầu cho tập dữ liệu theo phép ngẫu nhiên hoặc theo heuristic và liên tục tinh chỉnh nó cho đến khi thu được một phần hoạch mong muốn, thoả mãn ràng buộc cho trước Các thuật toán phân cụm phân hoạch cố gắng cải tiến tiêu chuẩn phân cụm, bằng cách tính các giá trị đo độ tương tự giữa các đối tượng dữ liệu và sắp xếp các giá trị này, sau đó thuật toán lựa chọn một giá trị trong dãy sắp xếp sao cho hàm tiêu chuẩn đạt giá trị tối thiểu Như vậy, ý tưởng chính của thuật toán phân cụm phân hoạch tối ưu cục bộ là sử dụng chiến lược ăn tham (Greedy) để tìm kiếm nghiệm Có nhiều thuật toán phân cụm phân điển hình như K-means, PAM, CLARA, CLARANS Ở phần sau em xin lựa chọn thuật toán K-Means để phân tích rõ hơn cũng như xây dựng chương trình
Dữ liệu vào danh sách đối tượng
Tính khoảng cách các điểm đến trọng tâm
Phân cụm dựa trên trọng tâm gần nhất
Tính toán lại trọng tâm
Hình 2.1: Sơ đồ tuật toán K-means
Thuật toán K - Means bao gồm các bước sau :
Input :Số cụm k và các trọng tâm cụm { mj} k j-1
Ouput :Các cụm C[ i ]( 1 ≤ i ≤ k ) và hàm tiêu chuẩn E đạt giá trị tối thiểu
Chọn k trọng tâm { mj} k j ban đầu trong không gian Rd ( d là số chiều của dữ liệu ) Việc lựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm
Bước 2 : Tính toán khoảng cách
18 Đối với mỗi điểm xi ( 1 ≤ i ≤ k ), tính toán khoảng cách của nó tới mỗi trọng tâm mj ; j = 1, 𝑘̅̅̅̅̅ Sau đó tìm trọng tâm gần nhất đối với điểm
Bước 3 : Cập nhật lại trọng tâm Đối với mỗi j = 1, 𝑘 ̅̅̅̅̅cập nhật lại trọng tâm cụm m bằng cách xác định trung bình cộng các vectơ đối tượng dữ liệu Điều kiện dùng : Lặp lại các bước 2 và 3 cho đến khi các trọng tâm của cụm không thay đổi
Ví dụ: Giả sử ta có 4 điểm A, B, C, D, mỗi điểm được biểu diễn bởi 2 tọa độ
X và Y như sau Mục đích của ta là nhóm các điểm đã Cho 2 nhóm(k=2) dựa vào các tọa độ của chúng Đối tượng Tọa độ X Tọa độ Y Điểm A 1 1 Điểm B 2 1 Điểm C 4 3 Điểm D 5 4
Bước 1: Khởi tạo tâm cho 2 nhóm Giả sử ta chọn A là tâm của nhóm thứ nhất (toạ độ A(1,1)) và B là tâm của nhóm thứ 2 (toạ độ B(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
Mỗi cột trong ma trận khoảng cách (D) là một đối tượng (cột thứ nhất tương ứng với đối tượng A, cột thứ 2 tương ứng với đối tượng B, ) Hàng thứ nhất trong ma trận khoảng cách biểu diễn khoảng cách giữa các đối tượng đến tâm của nhóm thứ nhất(c1) và hàng thứ 2 trong ma trận khoảng cách biểu diễn khoảng cách của các đối tượng đến tâm của nhóm thứ 2(c2)
Khoảng cách từ điểm 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 1 đối tượng A còn lại B, C, D
Phân lớp các kỹ thuật phân lớp
2.2.1 Tổng quan về phân lớp dữ liệu
Phân lớp dữ liệu là kĩ thuật dựa trên tập huấn luyện và những giá trị hay là nhãn của lớp trong một thuộc tính phân lớp và sử dụng nó trong việc phân lớp dữ liệu mới Phân lớp cũng là tiên đoán loại lớp của nhãn Bên cạnh kĩ thuật phân lớp có một hình thức tương tự là kĩ thuật tiên đoán kĩ thuật tiên đoán khác với phân lớp ở chỗ phân lớp chỉ liên quan đến tiên đoán loại lớp của nhãn còn kĩ thuật tiên đoán mô hình những hàm đánh giá liên tục Kĩ thuật phân lớp được tiến hành bao gồm 2 bước: Xây dựng mô hình và sử dụng mô hình
Xây dựng mô hình: là mô tả một tập những lớp được định nghĩa trước trong đó: mỗi bộ hoặc mẫu được gán thuộc về một lớp được định nghĩa trước như là được xát định bởi thuộc tính nhãn lớp, tập hợp của những bộ được sử dụng trong việc sử dụng mô hình được gọi là tập huấn luyện Mô hình được biểu diễn là những luật phân lớp, cây quyết định và những công thức toán học
Sử dụng mô hình: Việc sử dụng mô hình phục vụ cho mục đích phân lớp dữ liệu trong tương lai hoặc phân lớp cho những đối tượng chưa biết đến Trước khi sử dụng mô hình người ta thường phải đánh giá tính chính xác của mô hình trong đó: nhãn được biết của mẫu kiểm tra được so sánh với kết quả phân lớp của mô hình, độ chính xác là phần trăm của tập hợp mẫu kiểm tra mà phân loại đúng bởi mô hình, tập kiểm tra là độc lập với tập huấn luyện
2.2.2 Một số phương pháp phân lớp dữ liệu
2.2.2.1 Cây quyết định (Decision Tree)
Các kỹ thuật phân lớp sử dụng cây quyết định để phân tách các dữ liệu cho đến khi mỗi phần chứa đựng hầu hết các mẫu từ một lớp đặc trưng, kết quả của quá trình sẽ cho ra một cây quyết định Điểm phân tách trong cây quyết định là một nút
(không phải là nút lá) sẽ sử dụng một số điều kiện để quyết định dữ liệu sẽ được phân tách như thế nào Các nút cuối cùng trong cây quyết định chứa đựng các bộ mẫu giống nhau
Lợi thế của cây quyết định là các thuật toán chạy thực hiện khá nhanh, với kết quả khá tốt và có thể giải thích được rõ ràng Tuy nhiên, bất lợi mà các thuật toán của cây quyết định có thể gặp phải đó là chúng có thể tìm ra các điểm tới hạn cục bộ, đưa ra các kết quả không đúng
Ví dụ để giải thích về cây quyết định:
David là quản lý của một câu lạc bộ đánh golf nổi tiếng Anh ta đang có rắc rối chuyện các thành viên đến hay không đến Có ngày ai cũng muốn chơi golf nhưng số nhân viên câu lạc bộ lại không đủ phục vụ Có hôm, không hiểu vì lý do gì mà chẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên
Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách dựa theo thông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf Để thực hiện điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìm hiểu xem có cách giải thích nào cho việc đó hay không
Vậy là trong hai tuần, anh ta thu thập thông tin về:
Trời (outlook) (nắng (sunny), trời nhiều mây(overcast), mưa(rain), trời nhiều mây(overcast) Và tất nhiên là số người đến chơi golf vào hôm đó David thu được một bộ dữ liệu gồm 14 dòng và 5 cột
Play golf dataset (Chơi dữ liệu golf) independent variables (biến độc lập) Dep Var
Sau đó, để giải quyết bài toán của David, người ta đã đưa ra một mô hình cây quyết định
Hình 2.9: Mô hình cây quyết định
Nhóm người chơi golf khi trời nắng, nhóm chơi khi trời nhiều mây, và nhóm chơi khi trời mưa
Kết luận thứ nhất: nếu trời nhiều mây, người ta luôn luôn chơi golf Và có một số người ham mê đến mức chơi golf cả khi trời mưa
Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con Ta thấy rằng khách hàng không muốn chơi golf nếu độ ẩm lên quá 70%
Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ không chơi golf nếu trời nhiều gió
Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại David cho phần lớn nhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưa gió Vì hầu như sẽ chẳng có ai chơi golf trong những ngày đó Vào những hôm
Dependent variable variable: Play (Biến phụ thuộc: Chơi)
32 khác, khi nhiều người sẽ đến chơi golf, anh ta có thể thuê thêm nhân viên thời vụ để phụ giúp công việc
Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thành một cấu trúc đơn giản hơn rất nhiều
2.2.2.2 K-láng giềng gần nhất (k-Nearest Neighbor)
Thuật toán này tìm ra các láng giềng gần nhất của mẫu thử nghiệm và quy về các nhãn lớp của chúng dựa trên các nhãn đa số, điều đó có nghĩa là các mẫu được quy về cùng lớp khi chúng là lần cận của nhau Kỹ thuật này cho rằng vị trí trong không gian đặc trưng hàm ý một quan hệ họ hàng gần gũi ở giữa các nhãn lớp
Lợi thế của các thuật toán K-Láng giềng gần nhất là dễ thực thi, và kết quả mà nó đem lại khả năng dễ dàng giải thích Nhưng một điểm bất lợi là các thuật toán này đưa ra các mô hình rất lớn với một tập dữ liệu nhỏ
Ví dụ: K-láng giềng gần nhất (k-Nearest Neighbor)
Có 5 mẫu đào tạo (X,Y) như sau
Vấn đề là sử dụng K-láng giềng gần nhất (k-Nearest Neighbor) để dự đoán giá trị của biến phụ thuộc Y của query point X=6.5
1 Xác định số láng giềng gần nhất K (Giả sử rằng K=2)
2 Tính khoảng cách giữa Query Point với tất cả training samples Trong ví dụ này, dữ liệu về query point là 1 chiều (X) nên khoảng cách được tính đơn giản là lấy trị tuyệt đối của hiệu giữa X và các giá trị X trong training samples Chẳn hạn, với X=5.1, khoảng cách được tính là 6.5 – 5.1 = 1.4, với X = 1.2 khoảng cách là 6.5 – 1.2 = 5.3, vv
3 Sắp xếp khoảng cách để xác định K láng giềng gần nhất (trong ví dụ nàyK=2)
X Y Khoảng cách Giá trị làng giếng gần nhất
4 Lấy giá trị của biến phụ thuộc Y của K (=2) láng giềng gần nhất Y' và Y=8
5 Giá trị dự đoán là trung bình của các giá trị Y của K (=2) láng giềng gần nhất Trong ví dụ này, giá trị dự đoán là (27+8)/2 = 17.5 Để đơn giản cho việc tính toán, ta có thể thực hiện KNN trong Excel như sau:
Hình 2.10: Thực hiện KNN trong Excel
Công thức tính khoảng cách (distance) tại ô E7S(B7-B$12) Công thức xác định K láng giềng gần nhất bằng cách sử dụng hàm SMALL trong Excel như sau: F7 = IF(E7numClusters(chọn số cụm) =
2 rồi click Ok, để chọn trong hình là thuật toán SimpleKMeans
Nhấn nút “Start” để chạy thuật toán SimpleKMeans
Sau khi nhấn nút “Start” ta có thể thấy kết quả thuật toán SimpleKMeans, hiển thị nội dung của nó như sau:
Hình 3.7: Kết quả thông tin bài toán chọn số cụm là 2
- Chạy lại thuật toán lần 2 chọn số cụm là = 3
Sau khi nhấn nút “Start” ta có thể thấy kết quả thuật toán SimpleKMeans, hiển thị nội dung của nó như sau:
Hình 3.8: Kết quả thông tin bài toán chọn số cụm là 3
+ Nhập file Excel dữ liêu thứ 2 “ngân hàng.csv”
Lấy dữ liệu trong Look in, tìm file cần import bằng đường dẫn file, folder được lưu trữ trên máy tính
Hình 3.9: Open file nganhang.csv
Chạy thuật toán SimpleKMeans numClusters( chọn số cụm) là = 2 Click Start , để chạy thuật toán
Hình 3.10: Kết quả thông tin bài toán chọn số cụm là 2
Nhập lại thuật toán SimpleKMeans numClusters( chọn số cụm) là = 3 Click Start , để chạy thuật toán
Hình 3.11: Kết quả thông tin bài toán chọn số cụm là 3
+ Nhập file Excel dữ liêu thứ 3 “sinhvien.csv”
Lấy dữ liệu trong Look in, tìm file cần import bằng đường dẫn file, folder được lưu trữ trên máy tính
Hình 3.12: Open file sinhvien.csv
Chạy thuật toán SimpleKMeans numClusters( chọn số cụm) là = 2 Click
Start, để chạy thuật toán
Hình 3.13: Kết quả thông tin bài toán chọn số cụm là 2
Nhập lại thuật toán SimpleKMeans numClusters( chọn số cụm) là = 3 Click Start, để chạy thuật toán
Hình 3.14: Kết quả thông tin bài toán chọn số cụm là 3
KẾT LUẬN VÀ KIẾN NGHỊ
Trong quá trình nghiên cứu, tìm hiểu và hoàn thành khóa luận tốt nghiệp đề tài“Phân cụm, phân lớp trong khai phá dữ liệu và ứng dụng trong bài toán kinh doanh”, em đã thu nhận thêm những kiến thức và em cũng nhận thấy phân cụm, phân lớp dữ liệu trong khai phá dữ liệu là một lĩnh vực nghiên cứu rộng lớn, còn nhiều điều mà chúng ta cần khám phá Trong đề tài em đã cố gắng tập trung tìm hiểu và nghiên cứu tổng quan khai phá dữ liệu, phân cụm, phân lớp dữ liệu và ứng dụng cùng ví dụ minh hoạ với ứng dụng mô phỏng cho thuật toán
Do thời gian thực hiện hạn chế nên em mới chỉ tìm hiểu được một số kỹ thuật cơ bản trong phân cụm,phân lớp dữ liệu Còn một số các kỹ thuật em vẫn chưa tìm hiểu, khai thác và ứng dụng cho các bài toán…Trong thời gian tới em sẽ cố gắng tiếp tục nghiên cứu, tìm hiểu thêm một số kỹ thuật phân cụm, phân lớp tìm hiểu và phát triển các kỹ thuật phân cụm,phân lớp khác
Trong thời gian làm khóa luận tốt nghiệp với sự cố gắng nỗ lực của bản thân
Sự giúp đỡ tận tình của cô giáo Lê Thị Nguyên An Đến nay khóa luận đã hoàn thành đúng nội dung và thời hạn Tuy vậy, do kiến thức chuyên môn chưa cao, đề tài mới chỉ hoàn thiện ở mức cơ bản, chưa phát triển nâng cao và tiến tới mức hoàn thiện như những chuyên gia khai phá dữ liệu thực sự
TÀI LIỆU THAM KHẢO
1 PGS.TS Đỗ Phúc(2006), Giáo trình khai thác dữ liệu, Nhà Xuất bản Đại học Quốc gia
2 Th.S Lê phước thành (2015), Giáo trình khai phá dữ liệu, Trường Đại học Quảng Nam
3 Th.S Lê Thị Nguyên An (2018), Bài giảng môn Khai phá dữ liệu,Trường Đại học Quảng Nam
4 https://vi.wikipedia.org/wiki/Khai_phá_dữ_liệu
5 https://vi.scribd.com/doc/24882595/Bai-4-Phan-lop-Classification
6 https://vi.scribd.com/doc/24882595/Bai-5-Phan-cum-Classification
NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu của đề tài 1
1.3 Đối tượng và phạm vi nghiên cứu 2
1.6 Đóng góp của đề tài 2
CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ TRI THỨC VÀ KHAI PHÁ 3
1.1.1 Khái niệm khai phá tri thức 3
1.1.2 Sự cần thiết của khái phá tri thức 3
1.1.3 Khám phá tri thức và các lĩnh vực liên quan 4
1 2 1 Khái niệm khai phá dữ liệu 5
1 2 2 Các phương pháp khai phá dữ liệu 6
1 2 3 Các lĩnh vực ứng dụng trong thực tiễn của khai phá dữ liệu 7
1 2 4 Các kỹ thuật áp dụng trong khai phá dữ liệu 7
1.3 Quy trình khai phá tri thức và khai phá dữ liệu 8
1.3.1 Quy trình khai phá tri thức 8
3.1.2 Quy trình khai phá dữ liệu 10
CHƯƠNG II: PHÂN CỤM VÀ PHÂN LỚP TRONG KHAI PHÁ DỮ LIỆU 14
2.1 Phân cụm và các kỹ thuật phân cụm 14
2.1.1 Tổng quan về phân cụm dữ liệu 14
2.1.2 Một số phương pháp phân cụm dữ liệu 16
2.1.2.1 Phương pháp phân cụm phân hoạch 16
2.1.2.2 Phương pháp phân cụm phân cấp 22
2.1.2.3 Phương pháp phân cụm dựa trên mật độ 23
2.1.2.4 Phương pháp phân cụm dựa trên lưới 24
2.1.2.5 Phương pháp phân cụm dựa trên mô hình 25
2.1.2.6 Phương pháp phân cụm có dữ liệu ràng buộc 26
2.1.3 Những ứng dụng phân cụm dữ liệu 27
2.2 Phân lớp các kỹ thuật phân lớp 28
2 2 1 Tổng quan về phân lớp dữ liệu 28
2.2.2 Một số phương pháp phân lớp dữ liệu 29
2.2.2.1 Cây quyết định (Decision Tree) 29
2.2.2.2 K-láng giềng gần nhất (k-Nearest Neighbor) 32
2.2.2.4 Giải thuật di truyền (Genetic algorithms) 35
2.2.2.6 Tập mờ và tập thô (Rough and Fuzzy Sets) 37
2.2.3 Những ứng dụng phân lớp dữ liệu 38
2.3 So sánh các phương pháp phân cụm, phân lớp dữ liệu 38
2.3.1 So sánh các phương pháp phân cụm 38
2.3.2 So sánh các phương pháp phân lớp 39
CHƯƠNG III: ỨNG DỤNG TRIỂN KHAI BÀI TOÁN PHÂN CỤM, 40
3.2 Cơ sở dữ liệu cho bài toán 42
Phần 3 KẾT LUẬN VÀ KIẾN NGHỊ 53
Phần 4 TÀI LIỆU THAM KHẢO 54