Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
4,27 MB
Nội dung
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÔN NHẬP MÔN HỌC MÁY ĐỀ TI: DỰ ĐỐN CĨ HAY KHƠNG BỊ BỆNH TIM MẠCH SỬ DỤNG KNN, LOGISTICREGRESSION, RANDOMFORESTCLASSIFIER Sinh viên thực : PHAN TIẾN HUY NGUYỄN XUÂN ĐỨC PHÙNG THÁI SƠN Giảng viên hướng dẫn : HONG VĂN QUÝ : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D15CNPM2 Khóa : 2020-2025 Hà Nội, tháng 04 năm 2023 PHIẾU CHẤM ĐIỂM ST T Họ tên sinh viên Phan Tiến Huy 20810310298 Nguyễn Xuân Đức 20810310291 Nội dung thực Điểm Chữ ký Thuật toán Logictis Regression Thuật toán RamdomForestClassifie r Phùng Thái Sơn Thuật toán Knn 20810310270 Họ tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Chữ ký Ghi MỤC LỤC LỜI MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU VỀ HỌC MÁY 1.1 Giới thiệu chung học máy .2 1.2 Phân loại học máy 1.3 Công cụ học máy 1.4 Ứng dụng học máy CHƯƠNG 2: GIỚI THIỆU VỀ THUẬT TOÁN KNN, LOGISTIC REGRESSION, RANDOMFOREST CLASSIFIER 2.1 Thuật toán KNN (K-nearest neighbor) 2.2 Thuật toán Logistic Regression 2.3 Thuật toán Randomforest Classifier 11 CHƯƠNG 3: CI ĐẶT CHƯƠNG TRÌNH ỨNG DỤNG THUẬT TỐN 13 3.1 Giới thiệu tốn 13 3.1.1 Phát biểu toán 13 3.1.2 Yêu cầu 13 3.1.3 Bộ liệu 13 3.2 Xây dựng mơ hình dự đốn 16 3.2.1 Phân tích liệu dataset 16 3.2.2 Xây dựng mơ hình dự đốn so sánh độ xác mơ hình dự đốn 24 KẾT LUẬN 27 LỜI MỞ ĐẦU Công nghệ ngày phổ biến không phủ nhận tầm quan trọng hiệu mà đem lại cho sống Bất kỳ lĩnh vực nào, góp mặt trí tuệ nhân tạo giúp người làm việc hồn thành tốt cơng việc Và gần đây, thuật ngữ “machine learning” nhiều người quan tâm Thay phải code phần mềm với cách thức thủ công theo hướng dẫn cụ thể nhằm hồn thành nhiệm vụ đề máy tự “học hỏi” cách sử dụng lượng lớn liệu thuật toán cho phép thực tác vụ Những điều hiểu thực tự động, nhanh chóng để tạo mơ hình cho phép phân tích liệu có quy mơ lớn phức tạp đồng thời đưa kết cách nhanh xác Chính hiệu cơng việc lợi ích vượt bậc mà đem lại cho khiến machine learning ngày trọng quan tâm nhiều đặc biết ứng dụng y tế Vì chúng em định chọn đề tài: “Dự đoán có hay khơng bị bênh tim mạch sử dụng Knn, Logistic Regression, Ramdom Forest Classifier” để làm báo cáo Chúng em xin chân thành gửi lời cảm ơn tới thầy giáo Trường Đại học Điện Lực nói chung thầy cô giáo Khoa Công nghệ thơng tin nói riêng tận tình giảng dạy, truyền đạt cho chúng em kiến thức kinh nghiệm quý báu suốt trình học Đặc biệt, em gửi lời cảm ơn đến thầy Hoàng Văn Quý tận tình theo sát giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình nghiên cứu học tập chúng em CHƯƠNG 1: GIỚI THIỆU VỀ HỌC MÁY 1.1 Giới thiệu chung học máy Từ đời vào năm 1950, học máy trở thành lĩnh vực quan trọng khoa học máy tính trí tuệ nhân tạo Học máy phương pháp cho phép máy tính tự động học hỏi từ liệu cải thiện hiệu suất theo thời gian Học máy áp dụng rộng rãi đời sống hàng ngày chúng ta, từ sản phẩm phần mềm thiết bị điện tử Chúng ta thấy ứng dụng học máy lĩnh vực xử lý ngôn ngữ tự nhiên, thị giác máy tính, điều khiển robot, phân tích liệu nhiều lĩnh vực khác Trong học máy, có hai loại học có giám sát học khơng giám sát Học có giám sát q trình học từ liệu gán nhãn, học khơng giám sát q trình học từ liệu không gán nhãn Cả hai loại học có ứng dụng khác đóng vai trò quan trọng học máy Một số thuật toán học máy phổ biến bao gồm hồi quy tuyến tính, phân loại, cụm, rừng ngẫu nhiên, mạng nơ-ron học sâu Chúng ta sử dụng công cụ thư viện Python, R, TensorFlow, scikit-learn, Keras PyTorch để xây dựng mơ hình học máy Trong tương lai, học máy tiếp tục phát triển đóng vai trị ngày quan trọng lĩnh vực khác Có thể dự đốn thấy nhiều phát triển lĩnh vực học sâu, học tăng cường học máy giám sát đa tác vụ 1.2 Phân loại học máy Machine Learning chưa thể tách biệt khỏi người Tuy nhiên, tùy theo phân loại mà mức độ tham gia người trình vận hành khác Cụ thể Machine Learning có phân loại sau: Supervised learning– Học tập giám sát: Con người lập trình liệu đầu vào bao gồm cách thức phương án mà người mong muốn Phương án đáp án gắn nhãn, xếp sẵn Machine Learning cần rà sốt trả kết có liệu có Tin nhắn rác đến từ số nguồn tự động tách khỏi hộp thư ứng dụng machine learning giúp phân loại tin nhắn email Unsupervised learning– Học tập mà không giám sát: Machine learning cung cấp thuật tốn, cơng cụ để tự xử lý mà trước kết Dễ thấy việc ứng dụng phân loại cá nhân hóa trải nghiệm khách hàng.Dữ liệu đầu vào bao gồm hành vi, lịch sử mua mua hàng hệ thống dự đoán sản phẩm phù hợp đề xuất riêng cho khách hàng Semi-supervised learning- Học tập giám sát bán phần: Đây phân loại nằm phân loại liệu đầu vào hỗn hợp bao gồm phương pháp lẫn đáp án Điểm khác biệt phương án đáp án chưa nhóm lại thành Như machine learning phải tự tìm cách giải tương thích với đáp án liệu sẵn có 1.3 Cơng cụ học máy Công cụ học máy phần mềm thư viện mã nguồn mở sử dụng để triển khai thuật toán học máy Dưới số công cụ phổ biến sử dụng lĩnh vực học máy: Scikit-learn: Đây thư viện Python sử dụng rộng rãi để triển khai thuật toán học máy Scikit-learn hỗ trợ hầu hết loại thuật toán học máy, bao gồm hồi quy, phân loại gom nhóm TensorFlow: Đây thư viện mã nguồn mở Google sử dụng để xây dựng triển khai mơ hình học sâu TensorFlow hỗ trợ kiến trúc mạng neuron phổ biến, bao gồm Convolutional Neural Networks (CNNs) Recurrent Neural Networks (RNNs) PyTorch: Là thư viện mã nguồn mở phát triển Facebook, PyTorch cung cấp cách tiếp cận linh hoạt để xây dựng triển khai mơ hình học sâu Keras: Đây thư viện Python mã nguồn mở xây dựng TensorFlow sử dụng để xây dựng triển khai mơ hình học sâu RapidMiner: Là phần mềm dựa đồ họa sử dụng để phân tích liệu triển khai thuật tốn học máy RapidMiner sử dụng để xử lý liệu lớn hỗ trợ hầu hết loại thuật toán học máy phổ biến Apache Spark MLlib: Là thư viện mã nguồn mở sử dụng để triển khai thuật toán học máy tảng phân tán Apache Hadoop Apache Spark MLlib cung cấp thuật toán học máy phân loại, hồi quy, gom nhóm lọc cộng tác Recommandé pour toi Suite du document ci-dessous 27 A Handbook OF Present-DAY English Lingua Inglese (Lingua E Fonologia)(A) 29 CH - The Pronunciation of English - A Handbook of Present-Day English Lingua Inglese 10 100% (7) A handbook of present-day english Lingua Inglese 100% (9) 100% (7) Prokaryote vs Eukaryote Worksheeet Intro to Speech 89% (28) Weka: Là phần mềm mã nguồn mở sử dụng để phân tích liệu triển khai thuật toán học máy Weka cung cấp hỗ trợ cho hầu hết loại thuật toán học máy phổ biến, bao gồm thuật toán phân loại gom nhóm Tùy thuộc vào mục đích tốn cụ thể, người dùng sử dụng công cụ khác 1.4 Ứng dụng học máy Ngày nay, Machine Learning ứng dụng rộng rãi nhiều lĩnh vực Tuy nhiên, lĩnh vực hình thức sử dụng lại khác nhiều người chưa có nhìn rõ diện phân nhánh AI Giải mã thị trường tài chính: Thị trường tài ln biến động nhiều rủi ro đặc biệt sân chơi chứng khoán Machine Learning không đảm bảo hội đầu tư chuẩn xác mà giúp định đầu tư giảm thiểu nhiều rủi ro Thơng qua q trình phân tích cặn kẽ, dự đốn kinh tế chung dẫn đến lượt mua, bán lúc phù hợp với mức lợi nhuận, rủi ro mà nhà đầu tư mong muốn Thay đổi cục diện ngành nông nghiệp Máy bay không người lái dùng để bón phân theo khu vực xác định, hệ thống ghi nhận sức khỏe vật ni hay quản lý tồn thiết bị số theo tiêu chuẩn quốc tế ứng dụng rõ nét ngành nông nghiệp Những công việc tay chân hay lo lắng mn thuở “trúng mùa giá” nhà nông giải Nông nghiệp khốc lên áo mới, sản xuất tối ưu, tối đa chất lượng sản phẩm cân cung cầu Nâng cao hiệu cải thiện chất lượng dịch vụ ngành y tế Không xa lạ máy móc tự phẫu thuật, hay tổng đài tự động tư vấn sức khỏe cho bệnh thơng thường mà người bệnh khơng cịn thời gian đến bệnh viện Ở nước phát triển, người bệnh tư vấn, xếp lịch gặp bác sĩ, chăm sóc q trình hồi phục nhờ ứng dụng machine learning Vì bác sĩ/đội ngũ y tế cần chẩn đoán trực tiếp trường hợp phức tạp giúp cho trình sử dụng dịch vụ y tế đồng Cơ quan nhà nước quản lý trật tự xã hội đảm bảo tình hình phát triển đất nước Machine learning lời giải cho quan nhà nước hay doanh nghiệp cịn có cấu trúc vận hành q cồng kềnh Những cơng việc hành lập lại giải phân loại học tập giám sát hay dự đoán hành vi xã hội dự đốn học tập khơng giám sát Thế nên, công việc tổ chức tinh giản, biến chuyển tương lai dự đoán trước giúp cho nhà nước có thời gian chuẩn bị kế sách điều phối đất nước tốt phát triển bền vững Trước sóng mạnh mẽ người tiêu dùng cá nhân nên hiểu có góc nhìn tồn diện machine learning Cao bậc hiểu, nhà quản lý đa lĩnh vực cần thẩm thấu cặn kẽ đến vận dụng vào doanh nghiệp Vì vậy, nhà quản lý hướng dẫn lại cho nhân cấp dưới, tổ chức vận hành tối ưu, sản phẩm đạt chuẩn tiêu dùng trụ vững thị trường dài hạn CHƯƠNG 2: GIỚI THIỆU VỀ THUẬT TOÁN KNN, LOGISTIC REGRESSION, RANDOMFOREST CLASSIFIER 2.1 Thuật toán KNN (K-nearest neighbor) KNN (K-Nearest Neighbors) thuật tốn học có giám sát đơn giản sử dụng nhiều khai phá liệu học máy Ý tưởng thuật tốn khơng học điều từ tập liệu học (nên KNN xếp vào loại lazy learning), tính tốn thực cần dự đốn nhãn liệu Lớp (nhãn) đối tượng liệu dự đốn từ lớp (nhãn) k hàng xóm gần Ví dụ: Giả sử ta có D tập liệu phân loại thành nhãn (+) (-) biểu diễn trục tọa độ hình vẽ điểm liệu A chưa biết nhãn Vậy làm cách để xác định nhãn A (+) hay (-)? Có thể thấy cách đơn giản so sánh tất đặc điểm liệu A với tất tập liệu học gắn nhãn xem giống nhất, liệu (đặc điểm) A giống với liệu điểm mang nhãn (+) điểm A mang nhãn (+), liệu A giống với liệu nhãn (-) mang nhãn (-), trơng đơn giản mà KNN làm Trong trường hợp KNN, thực tế khơng so sánh liệu (không phân lớp) với tất liệu khác, thực tế thực phép tính tốn học để đo khoảng cách liệu với tất điểm tập liệu học D để thực phân lớp Phép tính khoảng cách điểm Euclidian, Manhattan, trọng số, Minkowski, … CHƯƠNG 3: CI ĐẶT CHƯƠNG TRÌNH ỨNG DỤNG THUẬT TỐN 3.1 Giới thiệu tốn 3.1.1 Phát biểu toán Việc ngăn ngừa bệnh Tim trở nên cần thiết hết Các hệ thống dựa liệu tốt để dự đoán bệnh tim cải thiện tồn quy trình nghiên cứu phòng ngừa, đảm bảo nhiều người sống khỏe mạnh Đây lúc Machine Learning phát huy tác dụng Học máy giúp dự đoán bệnh Tim dự đoán đưa xác Dự án liên quan đến việc phân tích liệu bệnh nhân mắc bệnh tim với q trình xử lý liệu thích hợp Sau đó, mơ hình khác đào tạo dự đoán thực với thuật toán khác KNN, Rừng ngẫu nhiên Chúng em sử dụng nhiều thuật toán Máy học, triển khai Python, để dự đoán diện bệnh tim bệnh nhân Đây vấn đề phân loại, với tính đầu vào nhiều tham số khác biến mục tiêu biến nhị phân, dự đốn liệu có bệnh tim hay khơng Giá trị input: Thông tin bệnh nhân (Age: Tuổi, Sex: Giới tính, Cp: Loại tức ngực,….) Giá trị output: Có hay khơng bị bệnh tim mạch 3.1.2 u cầu - Lấy liệu mô tả đặc điểm bệnh nhân - Trích chọn đặc trưng từ tập liệu lấy - Tiến hành trực quan hóa liệu - Tiến hành train/ test model (Dữ liệu làm sạch) 3.1.3 Bộ liệu Tệp liệu file mở rộng CSV Trong tệp liệu có 14 cột 304 hàng: + Age: Tuổi + Sex: Giới tính (1:Nam,0:Nữ) + Cp: Loại đau ngực 0: Đau thắt ngực điển hình: đau ngực liên quan đến giảm cung cấp máu cho tim 1: Đau thắt ngực khơng điển hình: đau ngực khơng liên quan đến tim 2: Đau khơng đau thắt ngực: điển hình co thắt thực quản (không liên quan đến tim) 3: Khơng có triệu chứng: đau ngực khơng có dấu hiệu bệnh + Trestbps: Huyết áp(130-140 thường gây lo ngại) + Chol: lượng cholestoral máu + Fbs - (lượng đường máu > 120 mg/dl) (1 = true; = false) - lượng đường máu + Restecg - resting electrocardiographic results - kết điện tâm đồ 0: Khơng có càn ý 1: Sóng ST-T bất thường Có thể triệu trứng nhẹ nghiêm trọng Tín hiệu nhịp tim khơng bình thường 2: Phì đại thất trái chắn(Buồng bơm tim mở rộng) + Thalach : nhịp tim + Exang :(1 = yes; = no) :Đau thắt ngực tập thể dục + Oldpeak :Tình trạng stress + Slope: Độ dốc đoạn ST tập thể dục đỉnh 0: Độ dốc tốt tập thể dục 1: Thay đổi tối thiểu (trái tim khỏe mạnh điển hình) 2: Dấu hiệu trái tim khơng khỏe mạnh + Ca: số lượng mạch + Thal: Kết ứng suất thali - ứng suất thali 1,3: Bình thường 6: Đã bị can thiệp 7: Khơng có chuyển động máu thích hợp tập thể dục + Target – Có hay khơng bị bệnh tim (1=yes, 0=no) (Thuộc tính dự đốn) 3.2 Xây dựng mơ hình dự đốn 3.2.1 Phân tích liệu dataset Chúng ta sử dụng số thư viện (một số thư viện khác để xử lý toán) cần để xử lý phân tích trực quan liệu: Đọc liệu từ dataset vào file heart-disease.csv Kiểm tra liệu cột Đếm số liệu thiếu cột: Đếm số lượng người mắc bệnh tim khơng mắc bệnh tim Trực quan hóa mẫu cột target để thấy số lượng mắc bệnh tim khơng mắc bệnh tim Tiếp theo tìm tỉ lệ mắc bệnh theo giới tính tiếp tục trực quan hóa biểu đồ bar plot Tạo biểu đồ scatter plot hiển thị tương quan hai biến tuổi (age) nhịp tim tối đa (thalach) với biến mục tiêu (target-có hay khơng mắc bệnh tim) Vẽ biểu đồ histogram thể độ tuổi xét: Tiếp đến ta xem xét tương quan mức độ đau ngực anhe hưởng đến có bị bệnh tim hay khơng cụ thể tương quan cột cp target Tiếp theo sử dụng biểu đồ nhiệt để xem tương quan cột với Từ ta thấy thuộc tính nhãn định target có độ tương quan dương lớn với thuộc tính cp (Tức ngực), thalach(Nhịp tim), slope(Nhịp tim tập thể dục) Vì thuộc tính ảnh hưởng đến thuộc tính nhãn định target 3.2.2 Xây dựng mơ hình dự đốn so sánh độ xác mơ hình dự đốn Để xây dựng mơ hình trước hết phải tách thuộc tính thành phần thuộc tính nhãn ta có X chưa 13 cột độc lập y biến mục tiêu (target) Sau ta tạo biến, gồm X_train, y_train X_test, y_test Với đối số truyền vào giá trị X, y ta lấy từ liệu bên trên, test_size trả cho ta phần trăm liệu chia, ví dụ 0.2 tương ứng với liệu chia thành 20% giá trị test, lại liệu train random_state số tương ứng để đảm bảo lần ta chạy lại mơ hình, giá trị phân tách ngẫu nhiên nhận giống nhau, cho số Tạo hàm để train với liệu cụ thể mơ hình Knn, LogisticRegession RamdomForestClassifier kết scores cuar model Từ kết ta đánh giá độ xác mơ hình : Cuối sử dụng liệu test khác với tập liệu dataset ban đầu để dự đốn khả có bị bệnh tim hay khơng từ mơ hình dự đốn bên KẾT LUẬN Kết đạt được: chúng em cài đặt thuật toán sử dụng dụng thư viện scikit-learn trình học tập Từ chúng em đánh dánh độ xác khác ba thuật tốn đưa ưu điểm nhược điểm: KNN (K-Nearest Neighbors): Ưu điểm: Dễ hiểu, dễ cài đặt dễ triển khai Không yêu cầu giả định phân phối liệu Tốc độ huấn luyện nhanh số lượng điểm liệu tương đối nhỏ Nhược điểm: Tốc độ dự đốn chậm có số lượng liệu lớn Địi hỏi nhớ lớn để lưu trữ tồn liệu huấn luyện Khi liệu có nhiều đặc trưng, cần tốn nhiều thời gian tính khoảng cách điểm liệu Logistic Regression: Ưu điểm: Đơn giản dễ hiểu, thường sử dụng làm baseline cho mơ hình phức tạp Thực nhanh, tốn nhớ dễ cài đặt Có thể áp dụng cho toán phân loại nhị phân đa lớp Cho phép đánh giá độ quan trọng đặc trưng trình huấn luyện Nhược điểm: Khơng phù hợp với tốn phức tạp, yêu cầu phân loại tuyến tính Độ xác mơ hình bị giảm có đặc trưng tương quan mạnh Random Forests: Ưu điểm: Có khả xử lý liệu có tính phi tuyến tương quan mạnh đặc trưng Cho phép xác định độ quan trọng đặc trưng trình huấn luyện Có tính tổng qt cao, dễ dàng mở rộng cho toán phức tạp Dễ dàng triển khai không yêu cầu nhiều giả định liệu Nhược điểm: Khi số lượng lớn, tốc độ huấn luyện giảm Có thể bị overfitting số lượng lớn liệu không đủ đa dạng Khơng thực tốt với tốn phân loại liệu lớp thiểu số Do thời gian kiến thức có hạn nên báo cáo chúng em cịn nhiều sai sót, mong thầy góp ý giúp chúng em hồn thiện