Với sự phát triển không ngừng của Công nghệ thông tin (CNTT) chúng ta đang từng bước bước sang thời đại công nghệ kỹ thuật số. Công nghệ thông tin đã có tác động rất lớn đến nhiều lĩnh vực khác nhau trong đời sống, xã hội, kinh tế - chính trị. Đặc biệt là trong lĩnh vực “Y tế”, ứng dụng CNTT để quản lý hồ sơ bệnh nhân, theo dõi lịch sự bệnh tật, phân tích dữ liệu và đưa ra quyết định điều trị chính xác. Và như chúng ta đã biết, bệnh Breast Cancer (Ung thư vú) là một trong những bệnh ung thư phổ biến nhất ở phụ nữ trên toàn thế giới. Tuy nhiên, nhờ vào sự phát triển của CNTT trong lĩnh vực y tế, việc áp dụng các thuật toán phân tích dữ liệu trong Khai phá dữ liệu (KPDL) để dự đoán kết quả điều trị bệnh Breast Cancer sẽ giúp cho việc chẩn đoán bệnh và điều trị trở nên chính xác hơn, giảm thiểu sai sót và tăng cơ hội chữa khỏi bệnh cho bệnh nhân. Chính vì vậy, nhóm chúng em quyết định chọn đề tài “Sử dụng thuật toán phân cụm K-Means để dự đoán kết quả Breast Cancer tại bệnh viện Hùng Vương”. Thuật toán này có khả năng phân loại dữ liệu thành các cụm khác nhau, từ đó xác định mô hình chuẩn đoán chính xác nhất sự hiện diện của một khối u ác tính trong tập dữ liệu Breast Cancer. Do đó, đề tài này có ý nghĩa đáng kể trong việc ứng dụng CNTT vào lĩnh vực y tế, đồng thời, hứa hẹn mang lại nhiều đóng góp cho việc phòng chống và điều trị bệnh Breast Cancer.
TỔNG QUAN
Tổng quan về đề tài
Với sự phát triển không ngừng của Công nghệ thông tin (CNTT) chúng ta đang từng bước bước sang thời đại công nghệ kỹ thuật số Công nghệ thông tin đã có tác động rất lớn đến nhiều lĩnh vực khác nhau trong đời sống, xã hội, kinh tế - chính trị. Đặc biệt là trong lĩnh vực “Y tế”, ứng dụng CNTT để quản lý hồ sơ bệnh nhân, theo dõi lịch sự bệnh tật, phân tích dữ liệu và đưa ra quyết định điều trị chính xác.
Và như chúng ta đã biết, bệnh Breast Cancer (Ung thư vú) là một trong những bệnh ung thư phổ biến nhất ở phụ nữ trên toàn thế giới Tuy nhiên, nhờ vào sự phát triển của CNTT trong lĩnh vực y tế, việc áp dụng các thuật toán phân tích dữ liệu trong Khai phá dữ liệu (KPDL) để dự đoán kết quả điều trị bệnh Breast Cancer sẽ giúp cho việc chẩn đoán bệnh và điều trị trở nên chính xác hơn, giảm thiểu sai sót và tăng cơ hội chữa khỏi bệnh cho bệnh nhân
Chính vì vậy, nhóm chúng em quyết định chọn đề tài “ Sử dụng thuật toán phân cụm K-Means để dự đoán kết quả Breast Cancer tại bệnh viện Hùng Vương ” Thuật toán này có khả năng phân loại dữ liệu thành các cụm khác nhau, từ đó xác định mô hình chuẩn đoán chính xác nhất sự hiện diện của một khối u ác tính trong tập dữ liệuBreast Cancer Do đó, đề tài này có ý nghĩa đáng kể trong việc ứng dụng CNTT vào lĩnh vực y tế, đồng thời, hứa hẹn mang lại nhiều đóng góp cho việc phòng chống và điều trị bệnh Breast Cancer.
Phạm vi của đề tài
- Sử dụng tập dữ liệu “breastcancer.arff” có sẳn trên ứng dụng Weka để nghiên cứu về bệnh Breast Cancer tại bệnh viện Hùng Vương
- Áp dụng thuật toán phân cụm K-Means để phân loại dữ liệu và dự đoán kết quả bệnh án của bệnh nhân trên phần mềm Weka và RStudio.
CƠ SỞ LÝ THUYẾT
Kho dữ liệu (Data Warehouse – DW)
2.1.1 Khái niệm kho dữ liệu
Kho dữ liệu (Data Warehouse) là một hệ thống lưu trữ dữ liệu Nó là một cơ sở dữ liệu lớn, được tích hợp từ nhiều nguồn dữ liệu khác nhau và được tổ chức một cách có hệ thống Kho dữ liệu giúp cho việc truy xuất, xử lý và phân tích dữ liệu trở nên dễ dàng hơn, giúp người sử dụng có thể hiểu và phân tích thông tin một cách nhanh chóng và chính xác
2.1.2 Cấu trúc dữ liệu cho kho dữ liệu
Dữ liệu trong kho dữ liệu được thể hiện dưới dạng đa chiều (Multi Dimension) gọi là khối (cube) Mỗi chiều mô tả một đặc trưng nào đó của dữ liệu.
Hình 2.1: Cấu trúc kho dữ liệu đa chiều
Một số thuật ngữ cơ bản trong mô hình dữ liệu đa chiều:
- Dimension (Chiều dữ kiện) : là các đối tượng hoặc thuộc tính mô tả các đặc tính của các sự việc hay sự kiện trong hệ thống Ví dụ về Dimension có thể là địa điểm, sản phẩm, khách hàng, nhân viên…
- Fact (Dữ kiện): dùng để chỉ các thông tin chi tiết và cụ thể về các sự kiện hoặc hoạt động được lưu trữ trong một hệ thống Nó bao gồm các giá trị của
Dimension và Measure Điều này có nghĩa là một bảng Fact có thể được xác định từ Dimension và Measure đã cho Ví dụ như một đơn hàng, một giao dịch tài chính và cung cấp thông tin về các chi tiết của sự kiện đó như ngày thực hiện… Các bảng Fact thường có kích thước lớn hơn các bảng Dimension.
- Measure (Độ đo): là giá trị số học đại diện cho một thuộc tính đo lường được lưu trữ trong bảng Fact Các giá trị Measure thường được sử dụng để thực hiện các tính toán và phân tích dữ liệu Ví dụ như số lượng sản phẩm bán ra, doanh thu, chi phí, lợi nhuận, tỷ lệ giảm giá…
Lược đồ kho dữ liệu (Data Warehouse Schema – DWS)
2.2.1 Khái niệm lược đồ kho dữ liệu
Data Warehouse Schema (cấu trúc Data Warehouse) là lược đồ mô tả logic của toàn bộ cơ sở dữ liệu Nó bao gồm tên, mô tả các bản ghi và cách mà các bảng và các mối quan hệ giữa chúng được tổ chức trong kho dữ liệu (Data Warehouse) để hỗ trợ các truy vấn phức tạp và hiệu quả.
2.2.2 Các dạng lược đồ dữ liệu đa chiều
- Star Schema : Là một cấu trúc dữ liệu đơn giản nhất, bao gồm một bảng Facts
(thông tin số liệu) và các bảng Dimension (thông tin chiều) Mối quan hệ giữa chúng được thiết lập bằng các khóa ngoại.
- Snowflake Schema : Là một cấu trúc dữ liệu tương tự như Star Schema, nhưng các bảng Dimension được phân chia thành các bảng con Mỗi bảng con liên kết với một bảng Dimension cha thông qua khóa ngoại.
- Galaxy Schema : Là một cấu trúc dữ liệu phức tạp nhất, bao gồm nhiều bảng
Facts và các bảng Dimension Mỗi bảng Facts được liên kết với nhiều bảngDimension khác nhau thông qua các khóa ngoại.
Khái quát khai phá dữ liệu
Khai phá dữ liệu được định nghĩa là quá trình trích xuất các thông tin có giá trị tiềm ẩn bên trong lượng lớn dữ liệu được lưu trữ trong các cơ sở dữ liệu, kho dữ liệu.
Cụ thể hơn đó là tiến trình trích lọc, sản sinh những tri thức hoặc những mẫu tiềm ẩn, chưa biết nhưng hữu ích từ các cơ sở dữ liệu lớn Đồng thời là tiến trình khai quát các sự kiện rời rạc trong dữ liệu thành các tri thức mang tính khái quát, tính qui luật hỗ trợ tích cực cho các tiến trình ra quyết định. Để dễ hình dung ta có thể sử dụng một ví dụ đơn giản như sau: Khai phá dữ liệu được ví như tìm một cây kim trong đống cỏ khô Trong ví dụ, cây kim là một mảnh nhỏ tri thức hoặc một thông tin có giá trị và đống cỏ khô là một kho cơ sở dữ liệu rộng lớn Như vậy, những thông tin có giá trị tiềm ẩn trong kho cơ sở dữ liệu sẽ được chiết xuất ra và sử dụng một cách hữu ích nhờ khai phá dữ liệu Chức năng khai phá dữ liệu gồm có gộp nhóm phân loại, dự báo, dự đoán và phân tích các liên kết.
Nguồn dữ liệu phục vụ cho KPDL có thể là các CSDL lớn hay các kho dữ liệu có hay không cấu trúc Các tác vụ khai phá dữ liệu có thể được phân thành hai loại: miêu tả và dự báo hoặc các đặc tính chung của dữ liệu trong CSDL hiện có.
2.3.2 Qui trình khai phá dữ liệu
Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình khám phá tri thức Về bản chất là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn có trong cơ sở dữ liệu chủ yếu phục vụ cho mô tả và dự đoán
Mô tả dữ liệu là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được
Dự đoán là dựa trên những dữ liệu hiện thời để dự đoán những quy luật được phát hiện từ các mối liên hệ giữa các thuộc tính của dữ liệu trên cơ sở đó chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các biến quan tâm.
Hình 2.2: Qui trình khai phá dữ liệu
- Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết
- Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp.
- Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền xử lý chúng sao cho thuật toán khai phá dữ liệu có thể hiểu được Đây là một quá trình rất khó khăn, có thể gặp phải rất nhiều các vướng mắc như: dữ liệu phải được sao ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý tập các dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi)
- Thuật toán khai phá dữ liệu: Lựa chọn thuật toán khai phá dữ liệu và thực hiện việc khai phá dữ liệu để tìm được các mẫu có ý nghĩa, các mẫu này được biểu diễn dưới dạng luật kết hợp, cây quyết định tương ứng với ý nghĩa của nó.
2.3.3 Các phương pháp khai phá dữ liệu
Với hai mục đích khai phá dữ liệu là Mô tả và Dự đoán, người ta thường sử dụng các phương pháp sau cho khai phá dữ liệu: Luật kết hợp (Association rules), Phân lớp(Classfication), Hồi qui (Regression), Trực quan hóa (Visualiztion), Phân cụm(Clustering), Tổng hợp (Summarization)…
Có nhiều phương pháp khai phá dữ liệu được nghiên cứu ở trên, trong đó có ba phương pháp được các nhà nghiên cứu sử dụng nhiều nhất đó là: Luật kết hợp, Phân lớp dữ liệu và Phân cụm dữ liệu.
2.3.4 Các ứng dụng 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…
Phương pháp khai phá dữ liệu được sử dụng trong đề tài
2.4.1 Giới thiệu về phương pháp phân cụm (Clustering)
Phương pháp phân cụm là một kỹ thuật trong khai phá dữ liệu, nhằm tìm cách phân loại các đối tượng trong một tập dữ liệu thành các nhóm (cụm) dựa trên sự tương đồng giữa chúng Các đối tượng trong cùng một nhóm phải có những đặc trưng chung và khác biệt so với các nhóm khác Phân cụm dữ liệu là một ví dụ của phương pháp học không giám sát (Unsupervised).
Có nhiều phương pháp phân cụm khác nhau, trong đó thuật toán phân cụm K-Means là một trong những phương pháp phổ biến nhất.
2.4.2 Giới thiệu về thuật toán K-Means
Phương pháp K-Means phân hoạch các đối tượng vào các cụm dựa trên khoảng cách của các đối tượng đó đến trọng tâm của các cụm Một đối tượng được phân vào một cụm nếu khoảng cách từ đối tượng đó đến cụm đang xét là nhỏ nhất Sau đó các trọng tâm được cập nhật, quá trình lặp đi lặp lại cho đến khi không có sự thay đổi về trọng tâm.
Trong thuật toán phân cụm K-Means, n đối tượng được phân cụm thành k cụm hoặc phân vùng trên cơ sở các thuộc tính, trong đó k < n và k là một số nguyên dương. Việc nhóm các đối tượng được thực hiện bằng cách giảm thiểu tổng bình phương khoảng cách, nghĩa là khoảng cách Euclide giữa dữ liệu và trọng tâm cụm tương ứng. Hoạt động của thuật toán K-Means bao gồm 5 bước:
Bước 1: Chọn ngẫu nhiên k điểm làm tâm cụm {C i } i = 1, 2…k k trọng tâm (hoặc cụm) được bắt đầu và sau đó k mẫu huấn luyện đầu tiên trong số n mẫu dữ liệu được lấy dưới dạng cụm một phần tử.
Có 2 cách tính số cụm như sau:
- Cách 1: ta có n quan sát,
- Cách 2: Tăng dần số cụm k sao cho tổng phương sai trong mỗi cụm giảm dần.
Bước 2: Tính toán khoảng cách giữa các tâm cụm và từng mẫu
Với mọi k, tính khoảng cách giữa nó với các trọng tâm của các cụm Gán nó vào cụm có trọng tâm gần nó nhất theo phép đo khoảng cách.
Một số phép đo khoảng cách:
Bước 3: Nhóm các tâm cụm vào nhóm gần nhất
Bước 4: Cập nhật lại tâm cụm bằng trung bình cộng các quan sát
Lặp lại bước 2,3 và 4 cho đến khi không có sự thay đổi giữa các điểm tâm cụm giống với các điểm tâm cụm lần lặp trước.
2.4.4 Ưu và nhược điểm của thuật toán K-Means
- Tương đối nhanh Độ phức tạp của thuật toán là O(tkn), trong đó:
+ n: Số đối tượng trong không gian dữ liệu.
+ k: Số cụm cần phân hoạch.
+ t: Số lần lặp (t thường khá nhỏ so với n).
- Thường kết thúc ở điểm tối ưu cục bộ.
- K – Means phù hợp với các cụm có dạng hình cầu.
- Không đảm bảo đạt được độ tối ưu toàn cục và kết quả đầu ra phụ thuộc nhiều vào việc chọn k điểm khởi đầu
- Cần phải xác định trước số cụm.
- Khó xác định số cụm thực sự mà không gian dữ liệu có Do đó có thể phải thử với các giá trị k khác nhau.
- Khó phát hiện các loại cụm có hình dạng phức tạp khác nhau và nhất là các dạng cụm không lồi.
- Không thể xử lý nhiễu và mẫu cá biệt.
- Chỉ có thể áp dụng khi tính được trọng tâm.
Giả sử ta có 4 loại hóa chất A, B, C, D mỗi loại được biểu diễn bởi 2 đặc trưng X và Y như sau Mục đích của ta là nhóm các hóa chất đã cho vào 2 nhóm (k=2) dựa vào các đặc trưng của chúng
Bảng 2.1: Loại hóa chất và đặc trưng của từng chất
Loại hóa chất Đặc trưng 1 (x) Đặc trưng 2 (y)
Bước 1: Đề bài cho sẳn, chúng ta cần nhóm các hóa chất đã cho vào 2 nhóm (k=2).
Ta chọn ngẫu nhiên k tâm cụm:
- Tâm cụm 1 (C1) chọn loại hóa chất A(1,1).
- Tâm cụm 2 (C2) chọn loại hóa chất B(2,1).
Bước 2: Tính khoảng cách của từng cụm tới các mẫu
Bảng 2.2: Khoảng cách của từng cụm tới các mẫu
Bước 3: Nhóm các hóa chất vào cụm gần nhất
Bảng 2.3: Nhóm các hóa chất vào cụm gần nhất
Loại hóa chất Xác định cụm
Cụm gồm các loại hóa chất:
Bước 4: Cập nhật lại tâm cụm bằng trung bình cộng các quan sát
Cụm C1 chỉ có 1 loại hóa chất A nên tâm cụm 1 không đổi, C1 (1,1)
Tâm cụm 2 được tính như sau:
Bước 5: Lặp lại bước 2 (lặp lần 1)
Bảng 2.4: Khoảng cách của từng cụm tới các mẫu
Bảng 2.5: Nhóm các hóa chất vào cụm gần nhất
Loại hóa chất Xác định cụm
Cụm gồm các loại hóa chất:
Tâm cụm 1 được tính như sau:
Tâm cụm 2 được tính như sau:
Bước 5: Lặp lại bước 2 (lặp lần 2)
Bảng 2.6: Khoảng cách của từng cụm tới các mẫu
Bảng 2.7: Nhóm các hóa chất vào cụm gần nhất
Loại hóa chất Xác định cụm
Cụm gồm các loại hóa chất:
Tâm cụm 1 được tính như sau:
Tâm cụm 2 được tính như sau:
Bước 5: Ta thấy tâm cụm (lặp lần 2) = tâm cụm (lặp lần 1), nên thuật toán dừng và kết quả phân cụm như sau:
Bảng 2.8: Kết quả phân cụm sao 2 lần lặp
Loại hóa chất Đặc trưng 1 (x) Đặc trưng 2 (y) Cụm
Cụm gồm các loại hóa chất:
PHẦM MỀM KHAI PHÁ DỮ LIỆU MÃ NGUỒN MỞ
WEKA
WEKA - Waikato Environment for Knowledge Analysis là phần mềm khai phá dữ liệu, thuộc dự án nghiên cứu của đại học Waikato, New Zealand Là một phần mềm mã nguồn mở miễn phí khai phá dữ liệu, được xây dựng bằng ngôn ngữ lập trình Java, theo kiến trúc hướng đối tượng, được tổ chức thành thư viện phục vụ cho lĩnh vực học máy và khai phá dữ liệu.
Weka cung cấp các thuật toán học tập có thể dễ dàng áp dụng cho các bộ dữ liệu (dataset) Nó cũng bao gồm một loạt các công cụ để chuyển đổi các bộ dữ liệu như các thuật toán để phân loại và lấy mẫu mà không cần viết bất kỳ mã chương trình nào.
Weka chứa một bộ sưu tập các công cụ trực quan và thuật toán để phân tích dữ liệu cũng như các mô hình dự đoán, cùng với các giao diện đồ họa để dễ dàng truy cập các chức năng này.
+ 1993 – Đại học Waikato, New Zealand khởi động dự án, xây dựng phiên bản đầu tiên của WEKA.
+ 1997 – Quyết định xây dựng lại Weka từ đầu bằng Java, có cài đặt các thuật toán mô hình hóa.
+ 2005 – Weka nhận giải thưởng SIGKDD Data Mining and Knowledge DiscoveryService Award.
Hình 3.3: Giao diện Weka Ứng dụng chính của Weka bao gồm:
+ Explorer: cho phép sử dụng các tính năng của Weka để khai phá dữ liệu.
+ Experimenter: cho phép tiến hành các thí nghiệm và thực hiện các bài kiểm tra thống kê giữa các mô hình học máy.
+ KnowledgeFlow: môi trường cho phép tương tác đồ họa để thiết kế các thành phần của một thí nghiệm.
+ SimpleCLI: giao diện dòng lệnh.
- Hỗ trợ kết nối thông tin: Weka có các ứng dụng con ArffViewer có tính năng giúp trình diễn nội dung của các tập dữ liệu có định dạng * ARFF thành bảng tài liệu và SqlViewer cho phép liên kết được với cơ sở tài liệu (MySQL, PostGre,…) và còn hỗ trợ truy vấn để lấy thông tin.
- Khảo sát cơ sở dữ liệu: Đây chính là tính năng giúp thực nghiệm được những trách nhiệm khai thác tài liệu như: phân lớp, gom nhóm hệ thống các tài liệu,tiền xử lý tài liệu và khai thác luật tích hợp.
- Thực nghiệm mô hình: Thực nghiệm mô hình được biết đến là ứng dụng con giúp cung cấp phương tiện có thể kiểm chứng, đánh giá các mô hình học từ đó có thể so sánh với nhau để đưa ra được các đánh giá tổng quan.
- Biểu đồ trực qua: Weka tương hỗ giúp người dùng biểu diễn được trực quan tài liệu bằng đa dạng các dạng đồ thị khác nhau thông qua nhiều biểu đồ thông dụng: cây, đồ thị, biểu đồ vùng, biểu đồ trục,…
RStudio
R là một công cụ rất mạnh cho học máy, thống kê và phân tích dữ liệu Nó là một ngôn ngữ lập trình miễn phí mã nguồn mở, sở dĩ nó được đặt tên là R dựa trên chữ cái đầu tiên trong tên của hai tác giả R (Robert Gentleman và Ross Ihaka).
R được phát triển tốt, đơn giản và hiệu quả, bao gồm các điều kiện, vòng lặp, hàm đệ quy do người dùng xác định và các phương tiện nhập và xuất Ngôn ngữ này được sử dụng phổ biến trong cộng đồng khoa học dữ liệu và có thể được sử dụng cho nhiều mục đích khác nhau như phân tích dữ liệu, đồ họa, vi mô mô hình, và nghiên cứu thị trường tài chính, và nhiều lĩnh vực khác.
R có cơ sở lưu trữ và xử lý dữ liệu hiệu quả.
R cung cấp một bộ toán tử để tính toán trên mảng, danh sách, vectơ và ma trận.
R cung cấp một bộ sưu tập lớn, mạch lạc và tích hợp các công cụ để phân loại, phân cụm, phân tích chuỗi thời gian, lập mô hình tuyến tính và phi tuyến tính.
R cung cấp các phương tiện đồ họa để phân tích và hiển thị dữ liệu trực tiếp trên màn hình máy tính hoặc để in ra giấy.
KHAI PHÁ DỮ LIỆU
Xác định vấn đề
Bệnh Breast Cancer là một dạng ung thư phổ biến ở phụ nữ Bệnh xảy ra khi các tế bào trong tuyến vú bất thường phát triển và chia sẻ quá nhanh, tạo thành khối u ác tính. Nếu phát hiện sớm và được điều trị kịp thời, tỷ lệ sống sót của bệnh nhân Breast Cancer là rất cao Tuy nhiên, vấn đề đặt ra là làm thế nào để xác định được loại khối u để có thể đưa ra quyết định điều trị phù hợp? Đây là một thử thách lớn đối với ngành y Vì vậy, các nhà nghiên cứu đã tiến hành nhiều nghiên cứu để tìm ra những yếu tố quan trọng có thể giúp phân loại khối u lành tính hay ác tính.
Trong đề này chúng em tập trung vào việc phân tích các yếu tố ảnh hưởng sự phân loại khối u ung thư của bệnh nhân Breast Cancer sau khi điều trị tại bệnh viện Hùng Vương bằng cách sử dụng thuật toán phân cụm K-Means để phân loại các bệnh nhân thành các nhóm dựa trên các đặc trưng của bệnh, ví dụ như độ dày của tế bào, kích cỡ, độ tương đồng của các tế bào, độ bám ở rìa và số lần phân chia tế bào.
Từ việc phân loại các bệnh nhân thành các nhóm, chúng em hy vọng sẽ có thể đưa ra những dự đoán về khả năng phân loại khối u (lành tính/ác tính) Những dự đoán này có thể hỗ trợ cho các chuyên gia y tế trong việc lên kế hoạch điều trị cho bệnh nhân,nhằm tìm ra những phương pháp phòng chống và điều trị mới hiệu quả hơn.
Hiểu dữ liệu
Tập dữ liệu “ breastcancer.arff ” (Wisconsin Breast Cancer Database) là tập dữ liệu nghiên cứu chẩn đoán loại khối u của bệnh ung thư vú của 648 bệnh nhân (tương đương 648 dòng dữ liệu) qua các năm từ 1989 đến 1990 của tiến sỹ Wolberg
Tập dữ liệu nghiên cứu gồm 11 trường dữ liệu ghi lại các thông số cần thiết của các mẫu, trong đó có 1 trường dữ liệu cho biết loại khối u của từng mẫu.
Bảng 4.9: Ý nghĩa và giá trị của các trường giá trị
2 Clump-Thickness Độ dày của cụm tế bào u (khối u) 1, 2, 3 ,4, 5,
3 Uniformity-of-Cell-Size Độ đồng nhất về kích thước của các tế bào Với giá trị càng cao cho thấy sự không đồng nhất trong kích thước của các tế bào (giá trị càng cao dễ cho ra khối u ác tính).
4 Uniformity-of-Cell-Shape Độ đồng nhất về hình dạng của các tế bào Báo hiệu cho việc các tế bào ung thư đã bắt đầu phát triển và phân chia không kiểm soát Với giá trị càng cao thì mức độ đồng nhất càng tốt.
5 Marginal-Adhesion Độ dính bám của các tế bào ung thư với tế bào khác Khi độ dính bám giảm, các tế bào ung thư có thể dễ dàng phân tán và xâm lấn vào các khu vực khác trong cơ thể, làm lan rộng bệnh.
6 Single-Epithelial-Cell-Size Kích thước của tế bào biểu mô đơn Được sử dụng để so sánh các tế bào ung thư với các tế bào bình thường.
7 Bare-Nuclei Tế bào hạt nhân trần (mất vỏ bọc) Được đo đạc mức độ bất thường của nhân tế bào.
8 Bland-Chromatin Độ tương phản của sợi mô chromatin Sử dụng để đo độ đậm nhạt của khu vực nhân tế bào dưới kính hiển vi, từ đó đánh giá mức độ khác biệt trong kích cỡ và hình dạng của nhân tế bào của bệnh nhân và các nhân tế bào bình thường.
9 Normal-Nucleoli Nhân nhỏ bình thường Dùng để đánh giá mức độ bình thường của nhân bộ phận tế bào Với giá trị càng cao, thì tình trạng của tế bào ung thư càng nghiêm trọng.
10 Mitoses Số lần phân chia tế bào Được sử dụng để đánh giá độ phát triển của khối u và được tính bằng cách đếm số lượng tế bào chia đôi trong một mẫu Với giá trị của thuộc tính này càng cao, tức là tế
6, 7, 8, 9, 10 bào phân chia tăng nhiều lần hơn, khối u càng có khả năng là ác tính hơn.
11 Class Kết quả dự đoán loại khối u benign, malignant
Giải thích các thuật ngữ trong tập giá trị:
Bảng 4.10: Ý nghĩa của các thuật ngữ trong tập giá trị
Class benign Khối u lành tính. malignant Khối u ác tính.
Chuẩn bị dữ liệu
Tập dữ liệu “ breastcancer.arff ”
Hình 4.4: Tập dữ liệu Breast Cancer
Quan sát tập dữ liệu “ breast-cancer.arff ” ta thấy rằng mẫu dữ liệu vẫn còn rất nhiều lỗi, lỗi ở đây chủ yếu nằm ở thuộc tính “ Bare-Nuclei ” là không xác định được giá trị dẫn đến bị để trống (gồm 15 lỗi).
Vấn đề tiếp theo, trong tập dữ liệu này có thuộc tính “ SampleID ”, thuộc tính này giúp xác định 1 bản ghi duy nhất bởi một ID Do thuộc tính này không mang lại giá trị hoặc góp phần vào kết quả dự đoán, do đó ta cần loại bỏ khỏi tập dữ liệu.
Vấn đề cuối cùng, tập dữ liệu có thuộc tính “ Class ” Thuật toán K-Means là một thuật toán unsupervised learning (học không giám sát), nghĩa là nó không sử dụng thông tin về thuộc tính Class để học và phân loại dữ liệu Vì thế, ta cần xóa thuộc tính
4.3.1 Xử lý giá trị bị lỗi
Do đã xác định được 15 lỗi, vì thế chúng ta cần có một bước đó là tiền xử lý dữ liệu Có 2 cách để xử lý lỗi này là:
- Thay thế các giá trị lỗi bằng một giá trị nào đó (có thể sử dụng bộ lọc
- Xóa bỏ các mẫu bị lỗi khỏi tập dữ liệu. Ở tập dữ liệu này, số dòng dữ liệu (mẫu) khá nhiều, có 648 dòng Vì vậy, chúng em chọn cách 2 đó là xóa bỏ các mẫu bị lỗi khỏi tập dữ liệu Để xử lý dữ liệu ta thược hiện các bước như sau:
Bước 1 : Mở tập dữ liệu “ breastcancer.arff ” trên ứng dụng Weka.
Bước 2 : Vào nút “Edit” trên thanh công cụ.
Bước 3 : Thực hiện xóa thủ công các mẫu dữ liệu bị lỗi như sau: nhấp chuột phải vào mẫu dữ liệu bị lỗi Ú chọn “Delete selected instance” Thực hiện đến khi không còn mẫu dữ liệu lỗi.
Hình 4.5: Thao tác xóa dòng dữ liệu
Bước 4 : Sau khi thực hiện xóa mẫu cho 15 lỗi đã xác định, chúng ta bấm chọn nút
“OK” để thực hiện thay đổi.
Hình 4.6: Bấm OK thực hiện thay đổi g Lúc này tập dữ liệu mới của chúng em còn 633 mẫu.
4.3.2 Xóa bỏ thuộc tính không quan trọng
Bước 1: Ở màn hình Explorer, ta bấm chọn nút “Choose” Ú tìm đến unsupervised Ú attribute Ú Remove.
Bước 2: Nhấp vào hộp văn bản ngay bên phải nút "Choose".
Bước 3: Nhập giá trị 1 vào “attributeIndices” là chỉ mục của thuộc tính
“SampleID” và set các giá trị còn lại là “False” Sau đó nhấn “OK”.
Hình 4.8: Nhập chỉ mục của thuộc tính “SampleID”
Bước 4: Bấm nút “Apply” để thực hiện thay đổi.
4.3.3 Loại bỏ thuộc tính “Class” (phân lớp)
Thuộc tính “ Class ” sẽ không loại bỏ trực tiếp mà sẽ được loại bỏ trong quá trình phân cụm bằng cách sử dụng tính năng “Ignore attributes” trong phân cụm.
Hình 4.9: Chức năng “Ignore attributes” trong cluster mode
Cuối cùng, ở màn hình “Explorer”, trên thanh công cụ ta bấm chọn nút “Save” để lưu tập dữ liệu lại (đặt tên file là “breastcancer-daxulydulieu.arff”)
Lúc này, tập dữ liệu của chúng ta có 633 mẫu (dòng) và 10 trường dữ liệu.
4.3.4 Kết nối cơ sở dữ liệu Weka với SQL
Ngoài việc sử dụng các tệp tin trên máy, Weka còn cung cấp tính năng kết nốiSQL để truy vấn và trích xuất dữ liệu từ các cơ sở dữ liệu quan hệ Điều này cho phép ta sử dụng dữ liệu trong các cơ sở dữ liệu của mình để huấn luyện và kiểm thử các mô hình học máy trong Weka.
Sau khi đã tiền xử lý dữ liệu ta có thể thực hiện như sau để kết nối cơ sở dữ liệu Weka với SQL Hoặc có thể kết nói dữ liệu trước rồi tiền xử lý dữ liệu sau. Để truy xuất dữ liệu từ SQL ta làm như sau:
Bước 1: Do chúng ta đã tiền xử lý tập dữ liệu với đuôi arff nên việc đầu tiên chúng ta sẽ chuyển thành đuôi csv Khởi động Weka và mở file “ breastcancer- daxulydulieu.arff ” g vào Save.
Lưu ý : ta cũng có thể sử dụng tập dữ liệu với đuôi arff để đổ dữ liệu lên SQL, tuy nhiên ở các bước (bước 8) chèn tập dữ liệu lên ta phải nhập lại tên cột, vì nó không biết được cột đó tên gì nên sẽ mặc định là column 1, column 2,… Việc nhập lại tên cột có thể nhập sai, không chính xác tên.
Hình 4.10: Nút “Save” trên thanh công cụ
Bước 2: Chọn vị trí lưu, đặt tên file là “ breastcancer-daxulydulieu-ketnoiSQL” và chọn đuôi file là CSV
Hình 4.11: Đặt tên file và lưu dưới dạng csv
Bước 3: Ta mở file “ breastcancer-daxulydulieu-ketnoiSQL.csv” trên Excel để thực hiện tiền xử lý dữ liệu “tách cột”.
+ Chọn vào ô A1, bấm tổ hợp phím Ctrl + Shift + mũi tên xuống để bôi đen toàn vộ dữ liệu.
+ Trên thanh công cụ, ta vào Data g chọn Text to Column.
Bước này giúp cho dữ liệu đổ lên SQL được sắp xếp rõ ràng theo từng cột.
Hình 4.12: Xử lý dữ liệu trên Excel với chức năng Text to Column
Bước 4: Ta bấm Next g tick chọn Comma như hình g Next g Finish.
Hình 4.13: Chọn “Comma” để tách cột
Bước 5: Ta được kết quả như hình và nhấn nút “Save” để lưu lại.
Hình 4.14: Kết quả sau khi tách cột
Trước khi thực hiện bước 6, ta cần cài đặt môi trường làm việc giữa SQL Server và Weka Ở đây, mình đã cài đặt rồi nên sẽ tiếp tục thực hiện bước 6.
Bước 6: Tạo một cơ sở dữ liệu (CSDL) có tên Data_Mining
Hình 4.15: Tạo cơ sở dữ liệu trên SQL
Bước 7: Ở CSDL Data_Mining ta bấm chuột phải g Tasks g Import Flat File…
Hình 4.16: Thực hiện các thao tác để chèn tập tin
Bước 8: Thực hiện các bước chèn file “ breastcancer-daxulydulieu- ketnoiSQL.csv” bấm Netx cho đến khi Finish.
Hình 4.17: Chọn đường dẫn đến tập tin cần chèn lên SQL
Hình 4.18: Kết quả chèn tập tin thành công
Bước 9: Khởi động lại Weka, vào Explorer g chọn Open DB…
+ Database URL: chúng ta điền jdbc:sqlserver://
NGOCHAN:1433;databaseNamea_Mining;encrypt=true;trustServerCertificate=tr ue
+ Bấm vào biểu tượng như hình đã khoanh đỏ, hiệu chỉnh Username: sa và nhậpPassword: 123456 Sau đó OK.
Hình 4.19: Nhập URL, Username và Password để tiến hành kết nối
Bước 11: Chọn biểu tượng như hình để kết nối CSDL.
Hình 4.20: Chọn nút kết nối cơ sở dữ liệu
Bước 12: Sau khi kết nối thành công, ta thực hiện câu truy vấn như hình và bấm nút “Execute” để truy vấn đến bảng [dbo].[breastcancer-daxulydulieu-ketnoiSQL.arff]
Hình 4.21: Thực hiện câu truy vấn SELECT
Kết quả truy vấn thành công 633 dòng, nhưng ở Result chỉ hiển thị 100 dòng cho chúng ta xem.
Hình 4.22: Kết quả truy vấn thành công
Sau đó ta bấm OK, thì dữ liệu sẽ được đẩy sang trang Explorer Preprocess.
Lập mô hình
4.4.1 Lập mô hình trên Weka
Lựa chọn phương pháp phân cụm, thuật toán SimpleKMeans để áp dụng trên tập dữ liệu Breast Cancer vì:
- Một trong những thuật toán phổ biến nhất trong việc phân cụm dữ liệu.
- Các trường dữ liệu trong tập dữ liệu đa số có kiểu dữ liệu là Numeric dễ dàng để phân cụm.
- Mặc dù có thuộc tính phân lớp (Class), nhưng có thể loại bỏ dễ dàng trong quá trình thực hiện phân cụm.
Bước 1: Đã thực hiện bước trích xuất dữ liệu từ SQL (mục 4.4).
Hình 4.23: Sử dụng tập dữ liệu kết nối trên SQL
Bước 2: Mở tab “Cluster”, ở đây ta chọn thuật toán SimpleKMeans
Hình 4.24: Chọn thuật toán SimpleKMeans
Bước 3 : Ta bấm chọn SimpleKMeans ngay nút “Choose” để điều chỉnh các thông số:
+ distanceStdDevs: chọn hàm tính khoảng cách EuclideanDistance
+ numClusters: 2 g Ý nghĩa là sẽ có 2 nhóm để gom cụm, trong Class chính là tập giá trị: benign, malignant.
Sau khi chọn xong, ta bấm nút “OK”.
Hình 4.25: Điều chỉnh 2 thông số: distanceStdDevs, numClusters
Bước 4: Ta chọn “Use training set” để phân cụm trên toàn bộ tập dữ liệu.
Giải thích các Cluster mode:
Use training set: sử dụng tập huấn luyện để phân cụm trên toàn bộ tập dữ liệu.
Supplied test set: sử dụng tập dữ liệu kiểm tra được cung cấp để phân cụm dữ liệu.
Percentage split: sử dụng phần trăm của tập dữ liệu để huấn luyện mô hình phân cụm, và sử dụng phần còn lại để kiểm tra mô hình.
Classes to clusters evaluation: sử dụng các lớp của tập dữ liệu để phân cụm, với mỗi lớp tương ứng với một cụm.
Store clusters for visualization: lưu trữ kết quả phân cụm để hiển thị trực quan trên biểu đồ.
Ignore attributes: loại bỏ một số thuộc tính khỏi tập dữ liệu trước khi phân cụm.
Hình 4.26: Chọn “Use training set” để phân cụm
Bước 5: Bấm chọn nút “Ignore attributes” Ú chọn thuộc tính “Class” và bấm
Select để loại bỏ thuộc tính “Class” ra khỏi quá trình phân cụm.
Hình 4.27: Loại bỏ thuộc tính Class
Bước 6: Bấm nút “Start” và xem kết quả.
Hình 4.28: Kết quả phân cụm
Kết quả chạy thuật toán:
- Tổng bình phương khoảng cách của tất cả các điểm trong một cụm đến tâm của cụm đó: 234.07
Hình 4.29: Giá trị của các cụm
- Đọc kết quả từng thuộc tính trong cụm:
Clump-Thickness: độ dày khoảng 7.1739
Uniformity-of-Cell-Size: độ đồng nhất khoảng 6.8
Uniformity-of-Cell-Shape: độ đồng nhất khoảng 6.734
Marginal-Adhesion: độ dính bám khoảng 5.7391
Single-Epothelial-Cell-Size: kích thước khoảng 5.4783
Bare-Nuclei: độ bất thường khoảng 7.9304
Bland-Nuclei: độ tương phản khoảng 6.1087
Normal-Chromatin: độ bình thường của nhân khoảng 6.0391
Mitoses: số lần phân chia tế bào khoảng 2.5696 g Dự đoán : các thuộc tính có giá trị tương đối cao, khả năng mang khối u ác tính cao
Clump-Thickness: độ dày khoảng 3.0099
Uniformity-of-Cell-Size: độ đồng nhất khoảng 1.2854
Uniformity-of-Cell-Shape: độ đồng nhất khoảng 1.4318
Marginal-Adhesion: độ dính bám khoảng 1.3524
Single-Epothelial-Cell-Size: kích thước khoảng 2.1067
Bare-Nuclei: độ bất thường khoảng 1.3251
Bland-Nuclei: độ đồng nhất khoảng 2.1166
Normal-Chromatin: độ bình thường của nhân khoảng 1.2655
Mitoses: số lần phân chia tế bào khoảng 1.1241 g Dự đoán : các thuộc tính có giá trị tương đối nhỏ, khả năng mang khối u ác tính thấp.
- Thời gian để xây dựng mô hình trên toàn bộ tập dữ liệu huấn luyện: 0.02 giây
- Kết quả của việc phân cụm dữ liệu (Clustered Instances):
+ Cluster 1 có 403 mẫu (64%) Ú Nhưng nếu phân cụm như thế này, thì cách đánh giá như thế nào? Chúng ta sẽ tìm hiểu sau ở mục 4.5.1
Trước tiên, chúng ta sẽ chuyển tập dữ liệu từ đuôi dạng “.arff” sang đuôi “.csv” để có thể dễ dàng đọc dữ liệu trên ứng dụng R Chúng ta sẽ khởi chạy phần mềm Weka, mở file dữ liệu “ breastcancer-daxulydulieu.arff ” và bấm nút “Save”, chọn lưu dưới dạng “.csv”.
Bước 1: Khởi động ứng dụng phần mềm RStudio.
Bước 2: Tải tập dữ liệu.
Chúng ta sẽ tải tập dữ liệu BreastCancer để thực hiện phân cụm Vì bộ dữ liệu BreastCancer không có sẵn trên R nên chúng ta phải làm một số thao tác để đọc được tập dữ liệu.
+ Chạy lệnh cài đặt packages “getdata":
Hình 4.30: Cài đặt packages “getdata"
+ Sau đó, chạy lệnh đọc file dữ liệu:
Hình 4.31: Đọc file dữ liệu
+ Lệnh dưới đây hiển thị số liệu thống kê file dữ liệu BreastCancer như trong hình:
Hình 4.32: Lệnh hiển thị số liệu thống kê file dữ liệu
Hình 4.33: Kết quả thống kê
Trong hình cho ta thấy tập dữ liệu gồm có 633 bản ghi và 10 biến quan sát là Clump Thickness, Uniformity of Cell Size, Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei, Bland Chromatin, Normal Nucleoli, Mitoses, Class.
+ Lệnh dưới đây chuyển đổi tập dữ liệu BreastCancer thành khung dữ liệu và kết quả của nó được hiển thị như trong hình dưới đây:
Hình 4.34: Lệnh chuyển đổi tập dữ liệu thành khung dữ liệu
Hình 4.35: Kết quả chuyển đổi
Bước 3: Xóa trường dữ liệu “Class” khỏi tập dữ liệu.
Trong số 10 thuộc tính, ta có 9 thuộc tính có kiểu dữ liệu là numeric và 1 thuộc tính (Class) là nominal Do đó, để thực hiện phân cụm, chúng ta sẽ xóa thuộc tính
“Class” khỏi tập dữ liệu và lưu nó vào một danh sách khác để sử dụng sau này bằng cách sử dụng các lệnh sau:
Hình 4.36: Lệnh xóa trường dữ liệu “Class”
Sau khi chạy các lệnh trên, thuộc tính thứ 10 (là Class) sẽ bị xóa Bây giờ khung dữ liệu BreastCancer bao gồm 9 thuộc tính (Clump Thickness, Uniformity of Cell Size,Uniformity of Cell Shape, Marginal Adhesion, Single Epithelial Cell Size, Bare Nuclei,Bland Chromatin, Normal Nucleoli và Mitoses) như trong hình dưới đây:
Hình 4.37: Kết quả thống kê khung dữ liệu của BreastCancer sau khi loại bỏ biến Class
Bước 4: Áp dụng phân cụm K-means.
Chúng ta sẽ áp dụng phân cụm K-means trên khung dữ liệu BreastCancer bằng cách chỉ định số cụm là 2 và số lần lặp lại là 20 như được đưa ra trong các lệnh sau:
Hình 4.38: Áp dụng phân cụm Kmeans với số cụm là 2, số lần lặp là 20
Đánh giá mô hình
4.5.1 Đánh giá mô hình trên Weka Để đánh giá mô hình theo thuộc tính phân lớp (Class) ta làm như sau:
+ Điều chỉnh thông số như cũ. o distanceStdDevs: chọn hàm tính khoảng cách EuclideanDistance o numClusters: 2 + Loại bỏ thuộc tính “Class” ra khỏi quá trình phân cụm.
+ Chọn “Classes to clusters evaluation” Ú (Nom) Class, để đánh giá phân cụm theo thuộc tính Class.
Hình 4.39: Đánh giá mô hình dựa trên thuộc tính Class
- Bấm nút “Start” và xem kết quả:
Hình 4.40: Kết quả sau khi đánh giá
Kết quả chạy thuật toán khi đánh giá trên cụm:
- Kết quả của việc phân cụm dữ liệu (Clustered Instances) giống như trên + Cluster 0 có 230 mẫu (36%)
- Phân bố của từng lớp (Class attribute) trong từng cluster (Classes to Clusters):
Hình 4.41: Kết quả phân bố của từng lớp trong từng cụm
Trong ma trận này, có hai cụm được phân chia và có số cụm là 0 và 1 Trong cụm
0, có 9 mẫu dữ liệu thuộc loại “benign” và 221 mẫu dữ liệu thuộc loại “malignant”. Trong cụm 1, có 385 mẫu dữ liệu thuộc loại “benign” và 18 mẫu dữ liệu thuộc loại
+ Cụm 0 là cụm các bệnh nhân mang khối u ác tính (230 bệnh nhân) + Cụm 1 là cụm các bệnh nhân mang khối u lành tính (403 bệnh nhân)
- Tuy nhiên, có 27 mẫu được phân loại không chính xác, tương ứng với tỷ lệ phân loại sai là 4.2654% Nhưng độ sai số này được đánh giá là tương đối nhỏ
Hình 4.42: Tỷ lệ và số lượng mẫu phân loại
4.5.2 Đánh giá mô hình trên R
Kết quả sau khi chạy các lệnh áp dụng phân cụm K-means trên khung dữ liệuBreastCancer được hiển thị trong hình dưới đây:
Hình 4.43: Kết quả sau khi áp dụng phân cụm k-means
Từ hình trên, ta nhận xét thuật toán gom cụm đã xác định được 2 cụm là 1 và 2. Thuật toán đã dồn 402 mẫu vào cụm 1 và 231 mẫu vào cụm 2
Kết quả cho biết thông tin về trung bình của các thuộc tính trong mỗi cụm Các thuộc tính được liệt kê bao gồm: Clump.Thickness, Uniformity.of.Cell.Size, Uniformity.of.Cell.Shape, Marginal.Adhesion, Single.Epithelial.Cell.Size, Bare.Nuclei, Bland.Chromatin, Normal.Nucleoli và Mitoses
+ Dòng đầu tiên cho thấy rằng trung bình Clump.Thickness của nhóm 1 là 3.004975, Uniformity.of.Cell.Size là 1.283582, Uniformity.of.Cell.Shape là 1.427861 và cứ tiếp tục cho đến Mitoses với giá trị trung bình là 1.124378
+ Dòng thứ hai cho thấy rằng trung bình Clump.Thickness của nhóm 2 là 7.164502, Uniformity.of.Cell.Size là 6.779221, Uniformity.of.Cell.Shape là 6.718615 và cứ tiếp tục cho đến Mitoses với giá trị trung bình là 2.562771.
Tiếp theo, kết quả cho biết tổng bình phương của khoảng cách giữa các điểm dữ liệu trong cùng một cụm Cụ thể, có hai cụm được tạo ra và cho biết tổng bình phương khoảng cách các điểm dữ liệu trong cụm 1 là 3952.177, và trong cụm 2 là 15008.139.Ngoài ra, phần (between_SS / total_SS = 59.6 %) cho biết phần trăm của tổng bình phương khoảng cách giữa các điểm dữ liệu giữa các cụm (between_SS) so với tổng bình phương khoảng cách giữa tất cả các điểm dữ liệu (total_SS) Con số này còn được gọi là tỷ lệ giải thích phương sai của mô hình phân cụm Nó cho biết phần trăm lượng phương sai được giải thích bởi mô hình phân cụm Trong trường hợp này, tỷ lệ này là 59.6%, có nghĩa là mô hình phân cụm giải thích được khoảng 59.6% sự biến động của dữ liệu.
Ngoài ra, kích thước cụm cũng có thể được xác định bằng cách sử dụng lệnh sau đây và kết quả của nó được hiển thị trong hình dưới đây:
Hình 4.44: Lệnh xem kích thước cụm
Hình 4.45: Kết quả khi thực hiện lệnh
Tương tự như trên, trọng tâm của các cụm được hiển thị trong hình kết quả sau khi áp dụng phân cụm K-means và cũng có thể được xác định bằng cách sử dụng các lệnh dưới đây Kết quả của lệnh được hiển thị trong phía hình dưới:
Hình 4.46: Lệnh xem trọng tâm các cụm khi áp dụng phân cụm Kmeans
So sánh kết quả phân cụm với tập dữ liệu gốc:
Ta sẽ xác thực chéo kết quả phân cụm với tập dữ liệu gốc Có thể được thực hiện bằng cách sử dụng lệnh sau:
Hình 4.47: Lệnh xác thực chéo kết quả phân cụm với tập dữ liệu gốc
Kết quả của phép so sánh này được biểu diễn thông qua một ma trận nhầm lẫn như trong hình dưới đây:
Hình 4.48: Kết quả của phép so sánh thông qua ma trận
Như chúng ta có thể thấy, dữ liệu thuộc về loại “benign” được nhóm thành cụm 1 và “malignant” thành cụm 2 Thuật toán đã phân loại sai 9 mẫu thuộc “benign” và 17 mẫu thuộc “malignant”.
4.6.1 Triển khai mô hình trên Weka
Sau khi thực hiện khai phá dữ liệu từ tập dữ liệu Breast Cancer bằng thuật toán K- Means, Weka cho phép ta mô hình hóa kết quả các cụm trên biểu đồ, giúp ta có cái nhìn trực quan về tập dữ liệu để nắm rõ sự tương quan giữa mức độ ác tính/ lành tính của khối u và các thuộc tính khác Cụ thể, Weka giúp ta phân loại các khối u thành những cụm khác nhau, từ đó ta có thể dễ dàng nhận ra mối quan hệ giữa các thuộc tính của khối u và mức độ ác tính của chúng để kịp thời đưa ra các phương pháp điều trị phù hợp.
Xem biểu đồ trên Weka ta nhấp chuột phải vào kết quả g chọn Visualize cluster assignments.
Hình 4.49: Thao tác xem biểu đồ trực quan trên Weka
Trong biểu đồ biểu diễn các cụm được gom dưới dây, ta chọn tiêu chí đánh giá sau:
+ Trục hoành (X): thuộc tính Clump-Thickness (độ dày của cụm tế bào u). + Trục tung (Y): thuộc tính Class (kết quả dự đoán khối u).
+ Màu sắc (Colour): Cluster (Nom).
Hình 4.50: Lựa chọn tiêu chí Clump-Thickness và Class
Từ đó ta có kết luận sau:
- Khi Clump-Thickness có giá trị khoảng 1 thì các cụm:
+ Cụm 1 tập trung phân bố hoàn toàn tại trục tung (thuộc tính Class) có giá trị là benign (khối u lành tính).
+ Cụm 0 phân bố ít cực ít tại trục tung (thuộc tính Class) có giá trị là malignant (khối u ác tính). g Kết luận : với Clump-Thickness (độ dày của cụm tế bào u) có giá trị càng nhỏ thì khả năng xâm lấn và phát triển của tế bào ung thư cũng sẽ càng thấp (khối u lành tính)
- Khi Clump-Thickness có giá trị khoảng 5,5 thì các cụm:
+ Cụm 1 phân bố ít dần tại trục tung (thuộc tính Class) có giá trị là benign (khối u lành tính).
+ Cụm 0 phân bố nhiều dần tại trục tung (thuộc tính Class) có giá trị là malignant (khối u ác tính). g Kết luận : với Clump-Thickness (độ dày của cụm tế bào u) có giá trị lớn dần thì khả năng xâm lấn và phát triển của tế bào ung thư cũng đang lớn dần Các cụm tế bào u sẽ có kích thước lớn hơn và đang phát triển nhanh hơn, có khả năng xâm lấn và lan truyền sang các vùng xung quanh nhiều hơn Điều này có thể là một dấu hiệu của tế bào ung thư đang phát triển trong cơ thể.
- Khi Clump-Thickness có giá trị khoảng 10 thì các cụm:
+ Cụm 1 phân bố cực ít tại trục tung (thuộc tính Class) có giá trị là benign (khối u lành tính).
+ Cụm 0 tập trung phân bố hoàn toàn tại trục tung (thuộc tính Class) có giá trị là malignant (khối u ác tính). g Kết luận : với Clump-Thickness (độ dày của cụm tế bào u) có giá trị lớn thì khả năng đang mang khối u ác tính càng cao
Tuy nhiên, việc dựa vào thuộc tính Clump-Thickness cũng chưa thể xác định được khối u có thật sự lành tính hay ác tính mà còn phụ thuộc vào các đặc trưng khác của mẫu như kích thước và hình dạng của tế bào u… và các thuộc tính khác Ta cũng có thể chọn các tiêu chí khác để xem mối tương quan giữa các thuộc tính.
4.6.2 Triển khai mô hình trên R
Mô hình dưới đây cho thấy sự tương quan giữa thuộc tính Uniformity.of.Cell.Size và Uniformity.of.Cell.Shape sau khi phân cụm bằng cách sử dụng dấu phẩy “,”:
Hình 4.51: Lệnh xem sự tương quan giữa thuộc tính Uniformity.of.Cell.Size và Uniformity.of.Cell.Shape
Hình 4.52: Mô hình sự tương quan giữa thuộc tính Uniformity.of.Cell.Size và Uniformity.of.Cell.Shape
Mô hình giữa thuộc tính Clump.Thickness và Uniformity.of.Cell.Size.
Hình 4.53: Mô hình sự tương quan giữa thuộc tính Clump.Thickness và Uniformity.of.Cell.Size
Mô hình giữa thuộc tính Clump.Thickness và Mitoses.
Hình 4.54: Mô hình sự tương quan giữa thuộc tính Clump.Thickness và Mitoses
Thêm các cụm đã tạo vào tập dữ liệu gốc:
Biểu thức đồ họa của các cụm có thể giúp chúng ta đánh giá xem kết quả có hợp lý hay không Nếu chúng ta xác định là có, thì chúng ta cũng có thể đưa kết quả phân tích cụm vào tập dữ liệu gốc Do đó, chúng ta liên kết kết quả phân tích phân cụm với tập dữ liệu gốc bằng cách sử dụng lệnh dưới đây và kết quả của nó được hiển thị trong hình dưới đây:
Hình 4.55: Minh họa kết quả hiển thị 100 dòng dữ liệu mẫu
Như chúng ta thấy, kết quả chỉ hiển thị 100 dòng dữ liệu và bỏ qua 533 dòng còn lại.
Áp dụng J48 trên tập dữ liệu nhóm:
KnowledgeFlow
KnowledgeFlow là một công cụ trực quan trên Weka cho phép người dùng xây dựng và thiết kế quy trình xử lý dữ liệu và huấn luyện mô hình thông qua việc kết nối các thành phần hoặc mô-đun cũng như điều chỉnh các tham số tương ứng với từng thuật toán qua từng bước để có một mô hình khai phá với kết quả tốt hơn.
Sau đây là các bước sử dụng KnowledgeFlow để xây dựng mô hình phân cụm trên tập dữ liệu “ breastcancer-daxulydulieu.arff ”
Bước 1: Khởi động Weka và chọn “KnowledgeFlow”.
Hình 4.58: Thực hiện chọn “KnowledgeFlow”
Bước 2: Xác định nguồn và định dạng dữ liệu: vào DataSources chọn
“ArffLoader Sau khi chọn xong thì nhấn chuột vào giao diện làm việc để hiện biểu tượng như hình.
Hình 4.59: Xác định nguồn và định dạng dữ liệu là ArffLoader
Bước 3: Nháy đúp vào biểu tượng ArffLoader g chỗ Filename chọn Browse… g mở file “ breastcancer-daxulydulieu_xoaClass.arff ”.
Hình 4.60: Chọn đường dẫn đến tập tin cần mở
Bước 4: Chọn Evaluation g chọn CrossValidationFlodMaker để đánh giá mô hình.
Phương pháp này sẽ chia dữ liệu thành nhiều fold và sử dụng một fold để kiểm tra mô hình, còn lại để huấn luyện mô hình Quá trình này được thực hiện lặp lại cho tất cả các fold, sau đó tính toán kết quả đánh giá trung bình của mô hình trên toàn bộ dữ liệu
Hình 4.61: CrossValidationFlodMaker để đánh giá mô hình
Bước 5: Bấm chuột phải vào biểu tượng ArffLoader g chọn datasetg kéo thả đến biểu tượng CrossValidationFlodMaker.
Bước này dùng để nạp dữ liệu từ ArffLoader vào CrossValidationFlodMaker.
Hình 4.62: Nạp dữ liệu từ ArffLoader vào CrossValidationFlodMaker
Bước 6: Chọn Clusterers g thuật toán SimpleKMeans để xây dựng mô hình.
Hình 4.63: Chọn thuật toán SimpleKMeans để xây dựng mô hình
Bước 7: Sau đó nạp dữ liệu để train và test mô hình, bấm phải chuột vào CrossValidationFoldMaker chọn TrainingSet nối với SimpleKMeans, sau đó chọn TestSet (chú ý là phải chọn TraningSet trước).
Hình 4.64: Nạp dữ liệu bằng trainingSet cho SimpleKMeans
Hình 4.65: Nạp dữ liệu bằng testSet cho SimpleKMeans
Hình 4.66: Kết quả sau khi nạp dữ liệu
Bước 8: Nháy đúp chuột vào thuật toán SimpleKMeans để thiết lập thông số cho thuật toán Chúng ta cũng điều chỉnh thông số như cũ:
+ distanceStdDevs: chọn hàm tính khoảng cách EuclideanDistance
+ numClusters: 2 g Ý nghĩa là sẽ có 2 nhóm để gom cụm, trong Class chính là tập giá trị: benign, malignant.
Sau khi chọn xong, ta bấm nút “OK”.
Hình 4.67: Điều chỉnh các thông số
Bước 9: Chọn Evaluation g ClusterPerformanceEvaluator để đánh giá hiệu quả của mô hình phân cụm. Ở đây, ta cũng nạp dữ liệu từ thuật toán SimpleKMeans cho ClusterPerformanceEvaluator bằng cách chọn batchClusterer.
Hình 4.68: Chọn ClusterPerformanceEvaluator để đánh giá hiệu quả
Bước 10: Chọn Visualization g TextViewer để xem kết quả dưới dạng văn bản
(hoặc ImageViewer để xem dưới dạng hình ảnh) Sau đó ta cũng nạp dữ liệu từ ClusterPerformanceEvaluator cho TextViewer.
Hình 4.69: Chọn TextViewer để xem kết quả
Bước 11: Ta bấm vào nút Run như hình.
Nhìn vào cửa sổ Status phía dưới ta thấy nó đang thực hiện đánh giá trên bộ 4 (test set 4 of 10).
Hình 4.70: Kết quả sau khi Run mô hình
Bước 12: Nháy chuột phải vào TextView g Show Result.
Hình 4.71: Chọn “Show results” để xem kết quả đánh giá
Kết quả phân cụm chi tiết như sau:
Hình 4.72: Kết quả trên tập Train
Hình 4.73: Kết quả trên tập Test