Tải bản đầy đủ (.docx) (77 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.27 MB, 77 trang )

<span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<i>Để hoàn thành đồ án kết thúc môn học Khai phá dữ liệu với đề tài “Sử dụng thuậttoá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”,</i>

chúng em xin chân thành cảm ơn và biết ơn sâu sắc đến Thạc sĩ Thái Thị Ngọc Lý – Giảng viên Bộ mơn Khai phá dữ liệu đã tận tình hướng dẫn, chỉ bảo và giúp đỡ chúng em trong quá trình thực hiện bài đồ án này.

Tuy nhiên, do sự hiểu biết cũng như kinh nghiệm của chúng em còn hạn chế. Chúng em rất mong sẽ được cô quan tâm và đóng góp ý kiến để chúng em hồn thiện tốt hơn cho các bài báo cáo, đồ án và nghiên cứu tiếp theo của mình.

Chúng em xin kính chúc Giảng viên phụ trách học phần – Thạc sĩ Thái Thị Ngọc Lý, cùng với giảng viên tham gia chấm điểm đồ án môn học này lời chúc sức khỏe và hạnh phúc nhất.

Chúng em xin chân thành cảm ơn!

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Bảng 2.1: Loại hóa chất và đặc trưng của từng chất...9

Bảng 2.2: Khoảng cách của từng cụm tới các mẫu...9

Bảng 2.8: Kết quả phân cụm sao 2 lần lặp...12

Bảng 4.1: Ý nghĩa và giá trị của các trường giá trị...17

Bảng 4.2: Ý nghĩa của các thuật ngữ trong tập giá trị...19

DANH MỤC HÌNH ẢN

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Hình 2.2: Qui trình khai phá dữ liệu...5

Hình 3.1: Giao diện Weka...14

Hình 4.1: Tập dữ liệu Breast Cancer...20

Hình 4.2: Thao tác xóa dịng dữ liệu...21

Hình 4.3: Bấm OK thực hiện thay đổi...21

Hình 4.4: Chọn filter “Remove”...22

Hình 4.5: Nhập chỉ mục của thuộc tính “SampleID”...22

Hình 4.6: Chức năng “Ignore attributes” trong cluster mode...23

Hình 4.7: Nút “Save” trên thanh cơng cụ...24

Hình 4.8: Đặt tên file và lưu dưới dạng .csv...24

Hình 4.9: Xử lý dữ liệu trên Excel với chức năng Text to Column...25

Hình 4.10: Chọn “Comma” để tách cột...25

Hình 4.11: Kết quả sau khi tách cột...26

Hình 4.12: Tạo cơ sở dữ liệu trên SQL...26

Hình 4.13: Thực hiện các thao tác để chèn tập tin...27

Hình 4.14: Chọn đường dẫn đến tập tin cần chèn lên SQL...27

Hình 4.15: Kết quả chèn tập tin thành cơng...28

Hình 4.16: Nhập URL, Username và Password để tiến hành kết nối...28

Hình 4.17: Chọn nút kết nối cơ sở dữ liệu...29

Hình 4.18: Thực hiện câu truy vấn SELECT...29

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Hình 4.20: Sử dụng tập dữ liệu kết nối trên SQL...30

Hình 4.21: Chọn thuật tốn SimpleKMeans...31

Hình 4.22: Điều chỉnh 2 thơng số: distanceStdDevs, numClusters...32

Hình 4.23: Chọn “Use training set” để phân cụm...33

Hình 4.24: Loại bỏ thuộc tính Class...33

Hình 4.31: Lệnh chuyển đổi tập dữ liệu thành khung dữ liệu...37

Hình 4.32: Kết quả chuyển đổi...38

Hình 4.33: Lệnh xóa trường dữ liệu “Class”...38

Hình 4.34: Kết quả thống kê khung dữ liệu của BreastCancer sau khi loại bỏ biến Class... 39

Hình 4.35: Áp dụng phân cụm Kmeans với số cụm là 2, số lần lặp là 20...39

Hình 4.36: Đánh giá mơ hình dựa trên thuộc tính Class...40

Hình 4.37: Kết quả sau khi đánh giá...40

Hình 4.38: Kết quả phân bố của từng lớp trong từng cụm...41

Hình 4.39: Tỷ lệ và số lượng mẫu phân loại...41

Hình 4.40: Kết quả sau khi áp dụng phân cụm k-means...42

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Hình 4.42: Kết quả khi thực hiện lệnh...43

Hình 4.43: Lệnh xem trọng tâm các cụm khi áp dụng phân cụm Kmeans...43

Hình 4.44: Lệnh xác thực chéo kết quả phân cụm với tập dữ liệu gốc...44

Hình 4.45: Kết quả của phép so sánh thơng qua ma trận...44

Hình 4.46: Thao tác xem biểu đồ trực quan trên Weka...45

Hình 4.47: Lựa chọn tiêu chí Clump-Thickness và Class...45

Hình 4.48: Lệnh xem sự tương quan giữa thuộc tính Uniformity.of.Cell.Size và

Hình 4.51: Mơ hình sự tương quan giữa thuộc tính Clump.Thickness và Mitoses...48

Hình 4.52: Minh họa kết quả hiển thị 100 dịng dữ liệu mẫu...49

Hình 4.53: Lệnh cài đặt package “party” và tải “party” vào phiên làm việc...50

Hình 4.54: Lệnh áp dụng cây quyết định và các lớp được dự đốn...50

Hình 4.55: Thực hiện chọn “KnowledgeFlow”...51

Hình 4.56: Xác định nguồn và định dạng dữ liệu là ArffLoader...51

Hình 4.57: Chọn đường dẫn đến tập tin cần mở...52

Hình 4.58: CrossValidationFlodMaker để đánh giá mơ hình...52

Hình 4.59: Nạp dữ liệu từ ArffLoader vào CrossValidationFlodMaker...53

Hình 4.60: Chọn thuật tốn SimpleKMeans để xây dựng mơ hình...53

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

Hình 4.62: Nạp dữ liệu bằng testSet cho SimpleKMeans...54

Hình 4.63: Kết quả sau khi nạp dữ liệu...54

Hình 4.64: Điều chỉnh các thơng số...55

Hình 4.65: Chọn ClusterPerformanceEvaluator để đánh giá hiệu quả...56

Hình 4.66: Chọn TextViewer để xem kết quả...56

Hình 4.67: Kết quả sau khi Run mơ hình...57

Hình 4.68: Chọn “Show results” để xem kết quả đánh giá...57

Hình 4.69: Kết quả trên tập Train...58

Hình 4.70: Kết quả trên tập Test...58

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i><b>LỜI CẢM ƠN...i</b></i>

<i><b>NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN...ii</b></i>

<i><b>DANH MỤC TỪ VIẾT TẮT...iii</b></i>

<i><b>DANH MỤC THUẬT NGỮ ANH – VIỆT...iv</b></i>

<i><b>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...2</b></i>

<b>2.1. Kho dữ liệu (Data Warehouse – DW)...2</b>

2.1.1. Khái niệm kho dữ liệu...2

2.1.2. Cấu trúc dữ liệu cho kho dữ liệu...2

<b>2.2. Lược đồ kho dữ liệu (Data Warehouse Schema – DWS)...3</b>

2.2.1. Khái niệm lược đồ kho dữ liệu...3

2.2.2. Các dạng lược đồ dữ liệu đa chiều...3

<b>2.3. Khái quát khai phá dữ liệu...4</b>

2.3.1. Khái niệm...4

2.3.2. Qui trình khai phá dữ liệu...4

2.3.3. Các phương pháp khai phá dữ liệu...5

2.3.4. Các ứng dụng của khai phá dữ liệu...6

<b>2.4. Phương pháp khai phá dữ liệu được sử dụng trong đề tài...6</b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

2.4.2. Giới thiệu về thuật toán K-Means...7

2.4.3. Thuật toán K-Means...7

2.4.4. Ưu và nhược điểm của thuật tốn K-Means...8

4.3.2. Xóa bỏ thuộc tính khơng quan trọng...22

4.3.3. Loại bỏ thuộc tính “Class” (phân lớp)...23

4.3.4. Kết nối cơ sở dữ liệu Weka với SQL...23

<b>4.4. Lập mơ hình...30</b>

4.4.1. Lập mơ hình trên Weka...30

4.4.2. Lập mơ hình trên R...36

<b>4.5. Đánh giá mơ hình...39</b>

4.5.1. Đánh giá mơ hình trên Weka...39

4.5.2. Đánh giá mơ hình trên R...41

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

4.6.1. Triển khai mơ hình trên Weka...44

4.6.2. Triển khai mơ hình trên R...47

5.2.1. Hướng mở rộng của đề tài...60

<i><b>TÀI LIỆU THAM KHẢO...61</b></i>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>CHƯƠNG 1: TỔNG QUAN</b>

<b>1.1. Tổng quan về đề tài</b>

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.

<i><b>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âncụm K-Means để dự đoán kết quả Breast Cancer tại bệnh viện Hùng Vương”. Thuật</b></i>

tố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 đố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.

<b>1.2. Phạm vi của đề tài</b>

- 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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>CHƯƠNG 2: CƠ SỞ LÝ THUYẾT</b>

<b>2.1. Kho dữ liệu (Data Warehouse – DW)</b>

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.

<b>2.1.2.Cấu trúc dữ liệu cho kho dữ liệu </b>

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.

<i><b><small>Hình 2.1: Cấu trúc kho dữ liệu đa chiều</small></b></i>

Một số thuật ngữ cơ bản trong mơ hình dữ liệu đa chiều:

<i><b>- Dimension (Chiều dữ kiện): là các đối tượng hoặc thuộc tính mơ tả các đặc</b></i>

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…

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i><b>- 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</b></i>

hoạt động được lưu trữ trong một hệ thống. Nó bao gồm các giá trị của

<i>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</i>

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

<i>hiện… Các bảng Fact thường có kích thước lớn hơn các bảng Dimension.</i>

<i><b>- Measure (Độ đo): là giá trị số học đại diện cho một thuộc tính đo lường được</b></i>

<i>lưu trữ trong bảng Fact. Các giá trị Measure thường được sử dụng để thực hiện</i>

các tính tố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á…

<b>2.2. Lược đồ kho dữ liệu (Data Warehouse Schema – DWS)</b>

Data Warehouse Schema (cấu trúc Data Warehouse) là lược đồ mơ tả logic của tồ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ả.

<i><b>- 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</b></i>

(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.

<i><b>- Snowflake Schema: Là một cấu trúc dữ liệu tương tự như Star Schema, nhưng</b></i>

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.

<i><b>- 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</b></i>

Facts và các bảng Dimension. Mỗi bảng Facts được liên kết với nhiều bảng Dimension khác nhau thông qua các khóa ngoại.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>2.3. Khái quát khai phá dữ liệu</b>

Khai phá dữ liệu được định nghĩa là q 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ự đố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ó.

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ự đố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

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

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.

<i><b><small>Hình 2.2: Qui trình khai phá dữ liệu</small></b></i>

- 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 tốn khai phá dữ liệu có thể hiểu được. Đây là một q 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 tồn bộ q trình (nếu mơ hình dữ liệu thay đổi)...

- Thuật tố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ó.

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)…

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

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.

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 khố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…

<b>2.4. Phương pháp khai phá dữ liệu được sử dụng trong đề tài</b>

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

<i>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áphọc khơng giám sát (Unsupervised).</i>

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.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>2.4.2.Giới thiệu về thuật toán K-Means</b>

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, q 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 tố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:

<i><b>Bước 1: Chọn ngẫu nhiên k điểm làm tâm cụm {Ci} i = 1, 2…k</b></i>

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ử.

<i><b>Bước 2: Tính tốn khoảng cách giữa các tâm cụm và từng mẫu </b></i>

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:

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<i>- Euclidean distance: </i>

Euclidean dist((x, y), (a, b)) =

(<i>x−a)²+( y −b)²</i>

<i>- Manhattan distance (L1-distance): </i>

Manhattan dist((x, y), (a, b)) = | x – a | + | y – b |

<i>- Chebyshev distance: </i>

Chebyshev dist((r1, f1), (r2, f2)) = max (|r2-r1|, |f2-f1|)

<i><b>Bước 3: Nhóm các tâm cụm vào nhóm gần nhất.</b></i>

<i><b>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.Bước 5: Điều kiện dừng.</b></i>

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.

- Tương đối nhanh. Độ phức tạp của thuật tố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.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

- 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.

<i><b><small>Bảng 2.1: Loại hóa chất và đặc trưng của từng chất</small></b></i>

<i><b>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).</b></i>

Ta chọn ngẫu nhiên k tâm cụm:

- Tâm cụm 1 (C<small>1</small>) chọn loại hóa chất A(1,1). - Tâm cụm 2 (C<small>2</small>) chọn loại hóa chất B(2,1).

<i><b>Bước 2: Tính khoảng cách của từng cụm tới các mẫu</b></i>

<i><b><small>Bảng 2.2: Khoảng cách của từng cụm tới các mẫu</small></b></i>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i><b>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</b></i>

Cụm C<small>1</small> chỉ có 1 loại hóa chất A nên tâm cụm 1 khơng đổi, C<small>1</small> (1,1). Tâm cụm 2 được tính như sau:

C<small>2 = </small>

(

2+4+5<sub>¿¿¿</sub><i>3 ,</i><sup>1+ 3+4</sup>

3

)

=

(

<sup>11</sup>3 <i><sup>,</sup></i> 8

3

)

=(3.67, 2.67)

<i><b>Bước 5: Lặp lại bước 2 (lặp lần 1)</b></i>

<i><b><small>Bảng 2.4: Khoảng cách của từng cụm tới các mẫu</small></b></i>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<i><b>Bước 5: Lặp lại bước 2 (lặp lần 2).</b></i>

<i><b><small>Bảng 2.6: Khoảng cách của từng cụm tới các mẫu</small></b></i>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Tâm cụm 2 được tính như sau: C<small>2 = </small>

(

4+5¿¿¿<i>2 ,</i><sup>3+4</sup>

2

)

=

(

<sup>9</sup>2<i><sup>,</sup></i> 7

<i><b>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ừngvà kết quả phân cụm như sau:</b></i>

<i><b><small>Bảng 2.8: Kết quả phân cụm sao 2 lần lặp</small></b></i>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>CHƯƠNG 3: PHẦM MỀM KHAI PHÁ DỮ LIỆU MÃNGUỒN MỞ</b>

<b>3.1. WEKA</b>

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 tốn để phân tích dữ liệu cũng như các mơ hình dự đố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.

<i>Lịch sử hình thành: </i>

+ 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 tốn mơ hình hóa.

+ 2005 – Weka nhận giải thưởng SIGKDD Data Mining and Knowledge Discovery Service Award.

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<i><b><small>Hình 3.3: Giao diện Weka</small></b></i>

Ứ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.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

- 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,…

<b>3.2. RStudio</b>

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ộ tốn tử để tính tố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.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>CHƯƠNG 4: KHAI PHÁ DỮ LIỆU</b>

<b>4.1. Xác định vấn đề</b>

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

<i><b>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ốiu để có thể đưa ra quyết định điều trị phù hợp? </b></i>

Đâ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ự đốn về khả năng phân loại khối u (lành tính/ác tính). Những dự đố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.

<b>4.2. Hiểu dữ liệu</b>

<i><b>Tập dữ liệu “breastcancer.arff” (Wisconsin Breast Cancer Database) là tập dữ liệu</b></i>

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.

<i><b>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ủacá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></i>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<i><b><small>Bảng 4.9: Ý nghĩa và giá trị của các trường giá trị</small></b></i>

<b>2</b> Clump-Thickness Độ dày của cụm tế bào u (khối u). 1, 2, 3 ,4, 5, 6, 7, 8, 9, 10

<b>3</b> 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).

1, 2, 3 ,4, 5, 6, 7, 8, 9, 10

<b>4</b> 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 sốt. Với giá trị càng cao thì mức độ đồng nhất càng tốt.

1, 2, 3 ,4, 5, 6, 7, 8, 9, 10

<b>5</b> 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ó

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<b>6</b> Single-Epithelial-Cell-Size Kích thước của tế bào biểu 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.

1, 2, 3 ,4, 5, 6, 7, 8, 9, 10

<b>9</b> 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.

1, 2, 3 ,4, 5, 6, 7, 8, 9, 10

<b>10</b> 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ế

1, 2, 3 ,4, 5, 6, 7, 8, 9, 10

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

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.

 <b>Giải thích các thuật ngữ trong tập giá trị: </b>

<i><b><small>Bảng 4.10: Ý nghĩa của các thuật ngữ trong tập giá trị</small></b></i>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i><b><small>Hình 4.4: Tập dữ liệu Breast Cancer</small></b></i>

<i><b>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ấtnhiều lỗi, lỗi ở đây chủ yếu nằm ở thuộc tính “Bare-Nuclei” là khơng xác định được</b></i>

giá trị dẫn đến bị để trống (gồm 15 lỗi).

<i><b>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</b></i>

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ự đốn, do đó ta cần loại bỏ khỏi tập dữ liệu.

<i><b>Vấn đề cuối cùng, tập dữ liệu có thuộc tính “Class”. Thuật tốn K-Means là một</b></i>

thuật tố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

<b>4.3.1.Xử lý giá trị bị lỗi </b>

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à:

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

- 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

<i>em chọn cách 2 đó là xóa bỏ các mẫu bị lỗi khỏi tập dữ liệu. </i>

Để xử lý dữ liệu ta thược hiện các bước như sau:

<i><b>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></i>

<i><b>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</b></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.

<i><b><small>Hình 4.5: Thao tác xóa dịng dữ liệu</small></b></i>

<i><b>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</b></i>

“OK” để thực hiện thay đổi.

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<i><b><small>Hình 4.6: Bấm OK thực hiện thay đổi</small></b></i>

g Lúc này tập dữ liệu mới của chúng em còn 633 mẫu.

<i><b>Bước 1: Ở màn hình Explorer, ta bấm chọn nút “Choose” Ú tìm đến unsupervised</b></i>

Ú attribute Ú Remove.

<i><b><small>Hình 4.7: Chọn filter “Remove”</small></b></i>

<i><b>Bước 2: Nhấp vào hộp văn bản ngay bên phải nút "Choose".</b></i>

<i><b>Bước 3: Nhập giá trị 1 vào “attributeIndices” là chỉ mục của thuộc tính</b></i>

“SampleID” và set các giá trị còn lại là “False”. Sau đó nhấn “OK”.

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<i><b><small>Hình 4.8: Nhập chỉ mục của thuộc tính “SampleID”</small></b></i>

<i><b>Bước 4: Bấm nút “Apply” để thực hiện thay đổi.</b></i>

<i><b>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</b></i>

phân cụm bằng cách sử dụng tính năng “Ignore attributes” trong phân cụm.

<i><b><small>Hình 4.9: Chức năng “Ignore attributes” trong cluster mode</small></b></i>

Cuối cùng, ở màn hình “Explorer”, trên thanh cơng cụ ta bấm chọn nút “Save” để

<i><b>lưu tập dữ liệu lại (đặt tên file là “breastcancer-daxulydulieu.arff”). </b></i>

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.

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ối SQL để 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

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

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:

<i><b>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ênchúng ta sẽ chuyển thành đuôi .csv. Khởi động Weka và mở file “breastcancer-daxulydulieu.arff” g vào Save.</b></i>

<i><b>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</b></i>

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.

</div>

×