Trí tuệ nhân tạo luôn là xu hướng công nghệ tương lai mà các hãng công nghệ trên toàn thế giới đua nhau sáng tạo. Nó là nền tảng cốt lõi của cuộc cách mạng 4.0.Machine Learning là một lĩnh vực của trí tuệ nhân tạo được sinh ra từ khả năng nhận diện và từ lý thuyết các máy tính có thể học mà không cần phải lập trình để xử lý các nhiệm vụ cụ thể nào đó. Xu hướng phát triển công nghệ thông tin ngày càng tăng, cùng với đó là lượng dữ liệu sinh ra ngày càng lớn.Vì vậy nhu cầu xử lý dữ liệu cũng lớn hơn, Machine Learning đang giải quyết vấn đề này. Một trong những thuật toán thường dùng trong Machine Learning đó là thuật toán Knearest neighbor.1
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC ĐỀ TÀI TÌM HIỂU KỸ THUẬT HỌC CĨ GIÁM SÁT VỚI THUẬT TOÁN KNN VÀ ỨNG DỤNG VÀO PHÂN LOẠI BỆNH TIM Giảng viên hướng dẫn: Trần Đình Tồn Sinh viên thực : 2033172002 – Nguyễn Hữu Thắng 2033181006 – Phạm Bá Đại TP Hồ Chí Minh – 2021 LỜI CẢM ƠN Trước trình bày nội dung đề tài, chúng em xin dành đôi lời cảm ơn chân thành đến giáo viên hướng dẫn – thầy Trần Đình Tồn, người tận tình giúp đỡ, đóng góp ý kiến vơ bổ ích tạo điều kiện tốt cho chúng em suốt q trình thực đồ án mơn học Chúng em xin gửi lời cám ơn chân thành đến quý thầy cô Khoa Công Nghệ Thông Tin, Trường Đại học Công Nghiệp Thực Phẩm thành phố Hồ Chí Minh giảng dạy cho chúng em kiến thức quý báu làm tiền đề cho chúng em thực tốt đề tài Chúng xin gửi lời cám ơn sâu sắc đến bậc sinh thành ln chăm sóc, động viên suốt q trình học tập nghiên cứu để chúng có kết ngày hơm TP Hồ Chí Minh, ngày 05 tháng 05 năm 2021 Nhóm sinh viên thực Nguyễn Hữu Thắng – Phạm Bá Đại MỤC LỤC CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU VÀ PHẠM VI ĐỀ TÀI CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1: MACHINE LEARNING 2.1.1 Giới thiệu .3 2.1.2 Các khái niệm 2.2: GIỚI THIỆU SUPERVISED LEARNING 2.2.1 Đặt vấn đề 2.2.2 Mơ tả thuật tốn 2.2.3 Cách giải toán học giám sát 2.2.5 Cách hoạt động thuật tốn học có giám sát 10 2.3 PHÂN LỚP TRONG MÁY HỌC .12 2.3.1 Giới thiệu 12 2.3.2 Quá trình phân lớp liệu 13 CHƯƠNG 3: THUẬT TOÁN K- NEAREST NEIGHBOR 15 3.1 THUẬT TOÁN K-NN 15 3.1.1 Định nghĩa 15 3.1.2 Tính khoảng cách Euclide 16 3.1.3 Các bước thực 17 3.2 CHUẨN BỊ DỮ LIỆU 17 3.2.1 Thu thập liệu bệnh tim 17 3.2.2 Chuẩn hóa liệu 21 3.2.3 Trực quan hóa liệu 22 3.2.4 Chia liệu 22 3.3 VÍ DỤ MINH HỌA 24 CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH 28 4.1 4.1.1 4.2 MÔ TẢ BÀI TOÁN 28 Thông tin bệnh tim 28 BỘ DỮ LIỆU 29 4.2.1 Bộ liệu bệnh tim 29 4.2.2 Thực thi liệu code 30 4.2.3 Trực quan hóa liệu bệnh tim .32 4.2.4 Chia liệu thành tập huấn luyện tập liệu test 37 4.3 CHƯƠNG TRÌNH 38 CHƯƠNG 5: KẾT LUẬN 42 5.1 Kết đạt 42 5.2 Hạn chế đề tài 42 TÀI LIỆU THAM KHẢO 43 CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Ngày nay, kinh tế hội nhập phát triển mạnh mẽ, với nhu cầu đời sống xã hội phát triển không ngừng công nghệ thông tin mang lại cho giới bao điểu kỳ diệu Chúng ta, người sống xã hội đại khơng thể phủ nhận vai trị đặc biệt lượng thơng tin từ tăng lên với tốc độ bùng nổ Lượng liệu khổng lồ nguồn tài nguyên vô giá biết cách phát khai thác thơng tin hữu ích có Như vấn đề đặt với liệu việc lưu trữ khai thác chúng Các phương pháp khai thác truyền thống thay kỹ thuật khai phá liệu khám phá tri thức Công nghệ khai phá liệu đời cho phép khai thác thơng tin hữu dụng việc trích xuất thơng tin có mối liên hệ liên quan định từ kho liệu lớn để từ giải tốn tìm kiếm, phân loại, dự báo Trí tuệ nhân tạo ln xu hướng công nghệ tương lai mà hãng công nghệ tồn giới đua sáng tạo Nó tảng cốt lõi cách mạng 4.0 Machine Learning lĩnh vực trí tuệ nhân tạo sinh từ khả nhận diện từ lý thuyết máy tính học mà khơng cần phải lập trình để xử lý nhiệm vụ cụ thể Xu hướng phát triển cơng nghệ thơng tin ngày tăng, với lượng liệu sinh ngày lớn.Vì nhu cầu xử lý liệu lớn hơn, Machine Learning giải vấn đề Một thuật toán thường dùng Machine Learning thuật tốn K-nearest neighbor.[1] 1.2 MỤC TIÊU VÀ PHẠM VI ĐỀ TÀI 1.2.1 Mục tiêu đề tài Nghiên cứu, tìm hiểu học có giám sát, phân lớp máy học, tìm hiểu thuật tốn KNN (K-nearest neighbor) Ứng dụng kết tìm hiểu vào phân lớp liệu bệnh tim thành lớp (có bệnh khơng có bệnh) Đánh giá hiệu thuật toán 1.2.2 Phạm vi đề tài Đồ án thược phạm vi nhỏ, dùng để ứng dụng thuật toán KNN vào phân lớp bệnh tim Với ngôn ngữ hỗ trợ Python CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1: MACHINE LEARNING 2.1.1 Giới thiệu Ngày nay, AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), cụ thể Machine Learning (Học Máy Máy Học) lên chứng cách mạng công nghiệp lần thứ tư (1 - động nước, - lượng điện, - cơng nghệ thơng tin) Trí Tuệ Nhân Tạo len lỏi vào lĩnh vực đời sống mà không nhận Xe tự hành Google Tesla, hệ thống tự tag khuôn mặt ảnh Facebook, trợ lý ảo Siri Apple, hệ thống gợi ý sản phẩm Amazon, hệ thống gợi ý phim Netflix, máy chơi cờ vây AlphaGo Google DeepMind, …, vài ứng dụng AI/Machine Learning Machine Learning lĩnh vực trí tuệ nhân tạo (AI) liên quan đến việc nghiên cứu xây dựng kỹ thuật cho phép hệ thống học tự động từ liệu để giải vấn đề cụ thể Học máy có liên quan lớn đến thống kê, hai lĩnh vực nghiên cứu việc phân tích liệu, khác với thống kê, học máy tập trung vào phức tạp giải thuật việc thực thi tính tốn Nhiều tốn suy luận xếp vào loại tốn NP-khó, phần học máy nghiên cứu phát triển giải thuật suy luận xấp xỉ mà xử lí Machine Learning áp dụng rộng rãi bao gồm máy truy tìm liệu, máy phân tích thị trường chứng khốn, nhận dạng tiếng nói, chữ viết hình ảnh 2.1.1 Các khái niệm Observation ( Đầu vào ) Ký hiệu x, input tốn Observation thường có dạng vector x=(x1,x2, ,xn), gọi feature vector ( đặc trưng ) Mỗi xi gọi feature Ví dụ bạn muốn đốn xem hơm có mưa khơng dựa vào observation gồm feature (nhiệt độ, độ ẩm, tốc độ gió) Label ( Nhãn ) Ký hiệu y, output tốn Mỗi observation có label tương ứng Ở ví dụ mưa label "mưa" "khơng mưa" Label mang nhiều dạng chuyển đổi thành số thực vector Trong chương chủ yếu làm việc với label số thực Model ( Mơ hình ) Trong chương bạn hiểu hàm số f(x), nhận vào observation x trả label y=f(x) Parameter ( Tham Số ) Mọi thứ model sử dụng để tính tốn output Ví dụ model hàm đa thức bậc hai: f(x)= parameter ba (a,b,c) Tuy nhiên, cịn loại parameter đặc biệt gọi hyperparameter Hyperparameter khái niệm mang tính tương đối quy ước, thường parameter có tính chất mặc định Đối với hàm đa thức bậc đa thức xem hyperparameter Để ngắn gọn, người ta thường gom tất parameter model lại thành vector, thường kí hiệu w Trong f(x) vừa w=(a,b,c) Kí hiệu dùng để model xác định tham số Trong trường hợp cấu trúc model xác định (ví dụ biết đa thức bậc 2), dùng w để model thay cho luôn.[7] 2.1: GIỚI THIỆU SUPERVISED LEARNING 2.2.1 Đặt vấn đề Ví dụ, muốn đào tạo cỗ máy để giúp bạn dự đoán xem bạn để lái xe từ nơi làm việc đến nhà Tại đây, bạn bắt đầu cách tạo tập hợp liệu dán nhãn trước Dữ liệu bao gồm: Điều kiện thời tiết, thời gian ngày, ngày lễ, chọn đường Tất chi tiết đầu vào bạn Đầu lượng thời gian cần thiết để lái xe trở nhà vào ngày cụ thể Theo năng, bạn biết trời mưa, bạn nhiều thời gian để lái xe nhà Nhưng máy cần liệu số liệu thống kê Bây xem làm bạn phát triển mơ hình học tập có giám sát ví dụ để giúp người dùng xác định thời gian làm Điều bạn cần tạo huấn luyện Tập huấn luyện chứa tổng thời gian lại yếu tố tương ứng thời tiết, thời gian, v.v Dựa tập huấn luyện này, máy bạn thấy có mối quan hệ trực tiếp lượng mưa thời gian bạn nhà Vì vậy, khẳng định trời mưa, bạn lái xe lâu để trở nhà Nó thấy kết nối thời gian bạn nghỉ làm thời gian bạn đường Bạn gần tối bạn nhiều thời gian để nhà Máy bạn tìm thấy số mối quan hệ với liệu dán nhãn bạn Đây khởi đầu mơ hình liệu bạn Nó bắt đầu tác động cách mưa ảnh hưởng đến cách người lái xe Nó bắt đầu cho thấy nhiều người du lịch thời gian cụ thể ngày 2.2.2 Mơ tả thuật tốn Supervised learning hướng tiếp cận máy học machine learning để làm cho máy tính có khả "học" Trong hướng tiếp cận này, người ta "huấn luyện" máy tính dựa quan sát có dán nhãn (label data) Ta hình dung quan sát (observation) câu hỏi, nhãn (label) chúng câu trả lời Là kĩ thuật ngành học máy để xây dựng hàm (function) từ liệu huấn luyện Dữ liệu huấn luyện bao gồm cặp gồm đối tượng đầu vào (thường dạng vec-tơ), đầu mong muốn Đầu hàm giá trị liên tục (gọi hồi quy), dự đốn nhãn phân loại cho đối tượng đầu vào (gọi phân loại) Nhiệm vụ chương trình học có giám sát dự đốn giá trị hàm cho đối tượng đầu vào hợp lệ, sau xem xét số ví dụ huấn luyện (nghĩa là, cặp đầu vào đầu tương ứng) Để đạt điều này, chương trình học phải tổng quát hóa từ liệu sẵn có để dự đốn tình chưa gặp phải theo cách "hợp lí" Học có giám sát tạo loại mơ hình Phổ biến nhất, học có giám sát tạo mơ hình toàn cục (global model) để ánh xạ đối tượng đầu vào đến đầu mong muốn Tuy nhiên, số trường hợp, việc ánh xạ thực dạng tập mơ hình cục (như phương pháp lập luận theo tình case-based reasoning hay giải thuật láng giềng gần nhất) Ý tưởng supervised learning là: việc ghi nhớ tổng quát hóa số quy tắc từ tập câu hỏi có đáp án trước, máy tính trả lời câu hỏi dù chưa gặp phải, có mối liên quan Ví dụ ta dạy máy tính "1 + = 2" hy vọng học phép tính cộng x + trả lời "2 + = 3" Trong supervised learning, quan sát bắt buộc phải dán nhãn trước Đây nhược điểm phương pháp này, khơng phải lúc việc dán nhãn xác cho quan sát dễ dàng Ví dụ dịch thuật (machine translation), từ câu ngơn ngữ gốc dịch thành nhiều phiên khác ngôn ngữ cần dịch sang Tuy nhiên, việc quan sát dán nhãn lại ưu điểm supervised learning thu thập liệu lớn dán nhãn chuẩn xác, việc huấn luyện trở nên dễ dàng nhiều so với liệu không dán nhãn Trong chương này, đưa supervised learning phương trình tốn học đơn giản, chí giải kiến thức phổ thông Tuy nhiên, ta điểm bất cập sử dụng phương pháp thơng thường để tìm lời giải đưa số cách để hạn chế bất cập Tổng hợp phương pháp này, ta xây dựng thuật toán supervised learning tổng quát Một cách toán học, Supervised learning chúng có tập hợp biến đầu vào X={x1,x2,…,xN} tập hợp nhãn tương ứng Y={y1,y2,…,yN}, xi, yi vector Các cặp liệu biết trước (xi,yi) ∈ X×Y gọi tập training data (dữ liệu huấn luyện) Từ tập training data này, cần tạo hàm số ánh xạ phần tử từ tập X sang phần tử (xấp xỉ) tương ứng tập Y: yi ≈ f(xi), ∀i=1, 2,…, N Mục đích xấp xỉ hàm số f thật tốt để có liệu x mới, tính nhãn tương ứng y=f(x) 2.2.3 Cách giải tốn học giám sát Để giải tốn học có giám sát người ta phải xem xét nhiều bước khác nhau: Bước 1: Xác định loại ví dụ huấn luyện Trước làm điều gì, người kĩ sư nên định loại liệu sử dụng làm ví dụ Chẳng hạn, kí tự viết tay đơn lẻ, tồn từ viết tay, hay tồn dịng chữ viết tay Bước 2: Thu thập tập huấn luyện Tập huấn luyện cần đặc trưng cho thực tế sử dụng hàm chức Vì thế, tập đối tượng đầu vào thu thập đầu tương ứng thu thập, từ chuyên gia từ việc đo đạc tính tốn Bước 3: Xác định việc biễu diễn đặc trưng đầu vào cho hàm chức cần tìm Sự xác hàm chức phụ thuộc lớn vào cách đối tượng đầu vào biểu diễn Thông thường, đối tượng đầu vào chuyển đổi thành vec-tơ đặc trưng, chứa số đặc trưng nhằm mô tả cho đối tượng Số lượng đặc trưng khơng nên lớn, bùng nổ tổ hợp (curse of dimensionality); phải đủ lớn để dự đốn xác đầu Bước 4: Xác định cấu trúc hàm chức cần tìm giải thuật học tương ứng Ví dụ, người kĩ sư lựa chọn sử dụng mạng nơ-ron nhân tạo hay định Bước 5: Hoàn thiện thiết kế Người kĩ sư chạy giải thuật học từ tập huấn luyện thu thập Các tham số giải thuật học điều chỉnh cách tối ưu hóa hiệu tập (gọi tập kiểm chứng -validation set) tập huấn luyện, hay thông qua kiểm chứng chéo (cross-validation) Sau học điều chỉnh tham số, hiệu giải thuật đo đạc tập kiểm tra độc lập với tập huấn luyện 2.2.4 Lựa chọn thuật tốn Có sẵn loạt thuật tốn học có giám sát, thuật tốn có điểm mạnh điểm yếu Khơng có thuật tốn học tập hoạt động tốt tất vấn đề học tập có giám sát Có bốn vấn đề cần xem xét học tập có giám sát: Sự cân phương sai Một vấn đề cân độ chệch phương sai Hãy tưởng tượng có sẵn số liệu đào tạo khác nhau, tốt Một thuật cách sử dụng số phương pháp tối ưu hóa thuật tốn tối ưu gần gradient descent hay stochastic gradient descent Trong thuật tốn K-Nearest Neighbors (K-Hàng xóm gần nhất), điểm tập huấn luyện điểm hàng xóm (gần nhau) học theo phương pháp tham lam Trong thực tế, tập liệu huấn luyện thường bao gồm cặp vectơ đầu vào vectơ đầu tương ứng, vector đầu thường gọi nhãn (label target) Các thuật tốn nói chung tìm cách tối ưu sai số dự đoán tập huấn luyện đến mức đủ tốt Trong trường hợp overfitting sai số dự đoán mơ hình tập huấn luyện thấp, chí = 0% Tập kiểm thử (Testing set) Mục tiêu machine learning tạo mơ hình có khả tổng qt hóa để dự đoán tốt liệu chưa thấy (nằm ngồi tập huấn luyện) Do đó, để biết thuật tốn hay mơ hình có tốt hay khơng sau huấn luyện, mơ hình cần đánh giá hiệu thông qua liệu kiểm thử (testing set) Bộ liệu sử dụng để tính độ xác sai số mơ hình dự đoán huấn luyện Chúng ta biết nhãn thực điểm tập hợp liệu kiểm thử này, tạm thời giả vờ đưa giá trị đầu vào tập vào mơ hình dự đốn để nhận kết dự đốn đầu Sau nhìn vào nhãn thực so sánh với kết dự đoán đầu vào tương ứng xem liệu mơ hình có dự đốn hay khơng Việc tính tổng trung bình tồn lỗi tính tốn lỗi dự đoán tập kiểm thử Đặt biến cho liệu Ở đặt biến x, y cho liệu để chia liệu train test Biến phản hồi biến có bệnh hay khơng bệnh biến cịn lại để giải thích Kết có 14 biến phản hồi biến giải thích có 200 dịng liệu Cài thư viện cần thiết 28 Phân chia liệu thành tập train tập test Ở liệu chia thành phần 70% cho tập train 30% cho tập test Sau ta đếm liệu tập train, có 140 liệu cho thuộc tính chia vào tập train Code đếm liệu cho tập test, kết có 60 liệu chia vào tập test ( Tổng liệu bảo tồn 140 + 60 = 200 liệu ban đầu) 29 3.3 VÍ DỤ MINH HỌA Cho tốn có 20 mẫu liệu gồm thông tin ID, độ tuổi, giới tính, Tình trạng nhân, nồng độ Cholestoral, Hút thuốc khơng, huyết áp HA, định có bệnh tim khơng có bệnh u cầu kiểm tra ID 19 20 thuộc nhóm có bệnh hay khơng có bệnh ID Tuổi Phái Hôn nhân Cholestoral HA Thuốc 10 11 12 13 14 15 16 17 18 19 20 20 25 40 65 70 28 45 52 27 36 50 66 30 38 47 20 70 44 64 28 Nam Nữ Nữ Nam Nam Nữ Nam Nam Nam Nữ Nam Nữ Nữ Nam Nữ Nữ Nam Nam Nữ Nam Độc thân Đã kết hôn Đã kết hôn Từng ly hôn Đã kết hôn Độc thân Độc thân Đã kết hôn Độc thân Từng ly hôn Từng ly hôn Đã kết hôn Độc thân Độc thân Đã kết hôn Độc thân Đã kết hôn Từng ly hôn Đã kết hôn Độc thân 100 120 160 85 180 50 60 200 150 50 100 130 160 185 75 110 105 165 70 80 90 100 110 100 110 85 90 140 125 85 100 110 130 140 90 95 100 120 90 90 Khơng Khơng Khơng Có Có Khơng Khơng Có Có Khơng Khơng Có Có Có Khơng Có Có Có Khơng Có Nặng 60 45 50 55 68 48 70 65 80 55 65 70 40 62 50 65 66 55 40 58 Bệnh tim Khơng Có Có Khơng Có Khơng Khơng Có Có Khơng Có Có Có Có Khơng Khơng Khơng Có ? ? Với liệu ban đầu, khó việc tính tốn độ xác khơng cao nên cần chuẩn hóa liệu vệ đoạn ( 0,1) để dể thực Quy ước thuộc tính có giá trị chữ sau: Giới tính ( nam, nữ), Hơn nhân ( độc thân, 0.5 ly hôn, kết hơn) Cơng thức chuẩn hóa liệu: (3) Trong đó: x: giá trị vị trí cần tính min: giá trị nhỏ hàng thuộc tính max: giá trị lớn hàng thuộc tính Ví dụ: Tại độ tuổi ID chuẩn hóa thành: = 0.0 (đã làm trịn), tính tương tự ta có bảng kết chuẩn hóa sau: ID Tuổi 0.1 Phái Hôn nhân 0 Cholestoral 0.33 0.47 30 HA 0.09 0.27 Thuốc 0 Nặng Bệnh tim 0.5 Khơng 0.125 Có 10 11 12 13 14 15 16 17 18 19 20 0.4 0.9 0.16 0.5 0.64 0.14 0.32 0.6 0.92 0.2 0.36 0.54 0.48 0.88 0.16 1 1 1 0 0 1 1 0.5 0 0.5 0.5 0 1 0.5 0.73 0.23 0.87 0.00 0.07 1.00 0.67 0.00 0.33 0.53 0.73 0.90 0.17 0.40 0.37 0.77 0.13 0.20 1 0 1 0 1 1 1 0.45 0.27 0.45 0.00 0.09 1.00 0.73 0.00 0.27 0.45 0.82 1.00 0.09 0.18 0.27 0.64 0.09 0.09 0.25 0.375 0.7 0.2 0.75 0.625 0.375 0.625 0.75 0.55 0.25 0.625 0.65 0.375 0.45 Có Khơng Có Khơng Khơng Có Có Khơng Có Có Có Có Khơng Khơng Khơng Có ? ? Bảng 3.2: Dữ liệu sau chuẩn hóa Bước 1: Tính khoảng cách Euclide điểm liệu Áp dụng công thức Euclidean, vị trí ID19 đến ID01 ta có: D (ID19, ID01) = = 1.68 Tính tương tự, ta có kết sau: ID 19 1.68 0.87 0.85 1.14 1.30 1.24 1.47 1.63 1.80 20 1.02 1.79 1.87 0.91 1.53 1.45 1.11 1.65 0.97 ID 10 11 12 13 14 15 16 17 18 19 0.77 1.18 0.54 1.53 1.92 0.34 1.36 1.05 1.46 20 1.53 1.23 1.70 1.42 1.17 1.78 1.05 1.34 0.99 Bảng 3.3: Tính khoảng cách Euclide Bước 2: Sắp xếp lại khoảng cách theo thứ tự tăng dần ID 15 12 10 17 11 19 0.34 0.54 0.77 0.85 0.87 1.05 1.14 1.18 1.24 ID 16 18 13 14 19 1.30 1.36 1.46 1.47 1.53 1.63 1.68 1.80 1.92 31 Bảng 3.4: Sắp xếp theo thứ tự tăng dần khoảng cách ID 18 16 14 11 17 20 0.91 0.97 0.99 1.02 1.05 1.11 1.17 1.23 1.34 ID 13 10 12 15 20 1.42 1.45 1.53 1.53 1.65 1.70 1.78 1.79 1.87 Bảng 3.4: Sắp xếp theo thứ tự tăng dần khoảng cách Bước 3: Chọn K kết luận dựa vào kết Chọn K = phần tử gần Láng giềng ID19 Láng giềng ID20 Với K=3, ID19 chuẩn đoán lớp khơng có bệnh Với K=3, ID20 chuẩn đốn lớp có bệnh Bảng tổng hợp Chọn K Các láng giềng với ID19 Số có bệnh Số không bệnh K=1 ID15 K=2 ID15, ID12 1 K=3 ID15, ID12, ID10 K=4 ID15, ID12, ID10, ID3 2 K=5 ID15, ID12, ID10, ID3, ID2 K=6 ID15, ID12, ID10, ID3, ID2, ID17 3 K=7 ID15, ID12, ID10, ID3, ID2, ID17, ID4 Bảng 3.5: Tổng hợp láng giềng ID19 Chọn K Các láng giềng với ID19 Số có bệnh Số không bệnh K=1 ID4 K=2 ID4, ID9 1 K=3 ID4, ID9, ID18 K=4 ID4, ID9, ID18, ID1 2 32 K=5 ID4, ID9, ID18, ID1, ID16 K=6 ID4, ID9, ID18, ID1, ID16, ID7 K=7 ID4, ID9, ID18, ID1, ID16, ID7, ID14 Bảng 3.5: Tổng hợp láng giềng ID20 CHƯƠNG 4: CÀI ĐẶT CHƯƠNG TRÌNH 4.1 MƠ TẢ BÀI TỐN 4.1.1 Thơng tin bệnh tim Bệnh tim thuật ngữ dùng chung cho loại bệnh lý khác liên quan đến tim xuất âm thầm để lại nhiều hậu nghiêm trọng cho tính mạng Trong năm gần đây, tỷ lệ tử vong bệnh tim ngày tăng nước phát triển, có Việt Nam Hiện nay, trung bình người lớn Việt Nam, có – người mang nguy mắc bệnh tim Vậy bệnh tim gì? Dấu hiệu sớm cách phòng ngừa nào? Bệnh tim gì? Bệnh tim tình trạng liên quan đến sức khỏe trái tim, hoạt động mạch máu gây suy yếu khả làm việc tim Các bệnh tim bao gồm: bệnh mạch máu bệnh động mạch vành, bệnh tim, loạn nhịp tim suy tim 33 Bệnh tim gây hẹp, xơ cứng tắc nghẽn mạch máu, làm gián đoạn không cung cấp đủ Oxy đến não phận khác thể Từ khiến quan bị ngừng trệ hoạt động, phá hủy phận dẫn đến tử vong Bệnh tim xảy độ tuổi, giới tính, nghề nghiệp Bệnh khó chữa khỏi hồn tồn, địi hỏi điều trị theo dõi cẩn thận (thậm chí suốt đời), tốn nhiều chi phí Nguyên nhân triệu chứng? Bệnh tim nhiều nguyên nhân gây ra, đặc biệt liên quan đến thói quen sinh hoạt hàng ngày chẳng hạn như: Hút thuốc lá: Chất Nicotine Carbon monoxide có thuốc nguyên nhân gây co thắt mạch máu, xơ vữa động mạch Chế độ ăn uống nhiều muối, chất béo cholesterol Ít vận động, hoạt động thể dục thể thao Thừa cân, béo phì Căng thẳng kéo dài làm hỏng động mạch làm trầm trọng thêm yếu tố nguy khác bệnh tim Tăng cholesterol máu gây hình thành mảng xơ vữa động mạch Tăng huyết áp dẫn đến xơ cứng dày thành động mạch, thu hẹp mạch máu Tuổi tác cao tăng nguy hẹp động mạch, suy yếu phì đại động mạch Yếu tố gia đình (trong gia đình có người mắc bệnh tim) 34 4.1.2 Các bước thực Bước 1: Thu thập 303 mẫu tập tin liệu đối tượng bệnh tim (303 tập training) Bước 2: Gán nhãn phân loại khách hàng có bệnh khơng có bệnh Bước 3: Thêm khách hàng thứ 304 (chưa gán nhãn phân loại) Bước 4: Tính khoảng cách từ khách hàng thứ 304 đến 303 khách hàng tập training, chọn khách hàng khách hàng (k=3 k=5) phân loại khách hàng thứ 304 thuật toán KNN Bước 5: Kết luận khách hàng thứ 304 khách hàng có bệnh hay khơng có bệnh 4.2 BỘ DỮ LIỆU 4.2.1 Bộ liệu bệnh tim Chúng ta thực hành với DataSet thuộc tính bệnh tim Dữ liệu vào file csv có 303 dòng 15 cột với cột số, 12 cột thông số thuộc tính cột cuối xếp loại có bệnh hay khơng 35 4.2.2 Thực thi liệu code Công việc đưa thư viện cần thiết Bây kiểm tra xem liệu code giống file csv không Kết liệu giống với liệu file Du.csv Kiểm tra trung bình tập liệu 36 Kết ta thấy ví dụ Age bé 20 (dữ liệu chuẩn hóa đoạn 0-1) tức tăng lên 25% số tuổi 0.28 tăng lên 50% số tuổi 0.49 cuối độ tuổi lớn (tương ứng với liệu gốc 81 tuổi) Kiểm tra xem tổng số phần trăm giới tính mắc bệnh tim Kết cho thấy nam giới thường có tỉ lệ mắc bệnh cao giới tính nữ Kiểm tra phương sai liệu Ta thấy có khác biệt lớn tập liệu trên, thuộc tính Age, HA, Cholestoral Thalach có giá trị lớn nên cần phải trực quan hóa liệu 37 4.3 CHƯƠNG TRÌNH 4.3.1 Thực thi chương trình Để thực chương trình, import số module cần thiết nhé: Tiếp theo, xây dựng hàm đọc liệu từ file csv Mình dùng module csv để định dạng liệu đọc vào, sau chuyển qua ma trận numpy để dễ dàng xử lí Một số thao tác tiền xử lí gồm: Xóa hàng chứa tiêu đề, xóa cột (thứ tự), sau sử dụng phương thức shuffle numpy.random để trộn liệu Lí để sau trộn lấy 50 hàng cuối để làm liệu test Hàm tính khoảng cách duyệt qua tất thuộc tính tương ứng điểm, tính tổng hiệu bình phương thuộc tính, cuối trả bậc tổng 38 Hàm duyệt qua tất giá trị trainSet, tính khoảng cách điểm truyền vào với điểm tập liệu ban đầu Kết vòng lặp list dictionary gồm tên nhãn (bệnh tim) khoản cách đến điểm Tiếp theo xếp tăng dần list với giá trị so sánh khoảng cách Vì kết cần biết có bệnh hay khơng nên thêm vịng lặp để tạo list nhãn có thứ tự Cuối trả k điểm liệu list (nhỏ nhất) Và hàm cuối tìm kết luận bệnh xuất nhiều k kết luận tìm được: Chúng ta có list labels tập hợp nhãn, sau duyệt qua nhãn để tìm nhãn xuất nhiều Cuối duyệt qua giá trị giữ liệu test để kiểu tra để tính độ xác, thêm biến 39 4.3.2 Kết chương trình CHƯƠNG 5: KẾT LUẬN 5.1 Kết đạt 5.1.1 Về kiến thức học tập Nắm vững kiến thức lý thuyết phục vụ tốt cho việc thiết kế chương trình Củng cố lại kiến thức học được, đặc biệt kỹ phân tích, làm việc nhóm Sự hiểu biết thuật toán KNN tương đối tốt Làm quen với liệu bệnh tim Làm quen với ngơn ngữ lập trình Python 40 5.1.2 Về phần mềm Ứng dụng thực môi trường phát triển PyCharm Community Ediction, viết ngôn ngữ Python 5.2 Hạn chế đề tài Kiến thức thực tế kiến thức lập trình cịn hạn chế, nên tính chuyên nghiệp chưa cao, bắt lỗi chưa kỹ số chỗ số tính chưa tối ưu Chương trình hoạt động chưa mượt mà, hoạt ảnh chuyển động chậm giật 5.3 Kết luận Mặc dù cố gắng hoàn thành đề tài đồ án môn học với tất nổ lực để hoàn thành đề tài kinh nghiệm lượng kiến thức hạn chế nên chắn khơng tránh khỏi thiếu sót định, kính mong đóng góp ý kiến q thầy để làm trở nên hoàn thiện TÀI LIỆU THAM KHẢO Tiếng Việt [1] Machine Learning bản, Vũ Hữu Tiệp, 2018 (EBook) Tiếng Anh [2] Python Machine Learning For Beginners, AI Publishing, 2020 [3] Machine Learning For Absolute Beginners, Oliver Theobald, 2017 Website [4] Thông tin chung (https://machinelearningcoban.com/) [5] Dữ liệu bệnh tim (https://archive.ics.uci.edu/ml/datasets/Heart+Disease? ) 41 [6] Chia liệu: Tập huấn luyện – Tập kiểm thử (https://tek4.vn/training-set-vatesting-set-van-de-danh-gia-cac-mo-hinh-machine-learning/ ) [7] Các khái niệm (https://khanh-personal.gitbook.io/ml-book-vn/khai-niem-co-ban) [8] Thuật toán K-NN (https://machinelearningcoban.com/2017/01/08/knn/) [9] Luận văn học có giám sát (https://www.slideshare.net/trongthuy3/luan-van-nghiencuu-thuat-toan-knearest-neighbor-haym-9d) [10] Thông tin bệnh tim (https://careplusvn.com/vi/benh-tim-mach-la-gi-dau-hieusom-nhat-va-cach-dieu-tri) 42