1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn học xây dựng ứng dụng book store và dự Đoán bệnh tim

58 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Book Store Và Dự Đoán Bệnh Tim
Tác giả Nguyễn Hoàng Sơn Tùng
Người hướng dẫn Ths. Hà Minh Tân
Trường học Trường Đại Học Nguyễn Tất Thành
Chuyên ngành Khoa Học Dữ Liệu
Thể loại tiểu luận
Năm xuất bản 2024
Thành phố Tp.HCM
Định dạng
Số trang 58
Dung lượng 9,07 MB

Cấu trúc

  • PHẦN I: XÂY DỰNG APP BOOK STORE (12)
  • CHƯƠNG I. GIỚI THIỆU (12)
    • 1. Giới thiệu đề tài (12)
    • 2. Lý do chọn đề tài (12)
    • 3. Mục tiêu của đề tài (13)
    • 4. Công nghệ áp dụng (13)
  • CHƯƠNG II. CƠ SỞ LÝ THUYẾT (14)
    • 1.1 Khái niệm về lập trình đa nền tảng (14)
    • 1.2 Ưu và nhược điểm của lập trình đa nền tảng (15)
    • 1.4 Một số phương pháp và công nghệ thường được sử dụng để lập trình đa nền tảng (16)
    • 1.5 Những thách thức của lập trình đa nền tảng (17)
    • 2. Giới thiệu về hệ điều hành Android (19)
      • 2.1 Android là gì? (19)
      • 2.2 Lịch sử và phiên bản (19)
      • 2.3 Cấu trúc Android và Android Project (20)
      • 2.4 Môi trường làm việc Android (21)
    • 3. Tổng quan về Flutter và Dart (22)
      • 3.1 Flutter (22)
      • 3.2 Các công cụ hỗ trợ phát triển ứng dụng Flutter (25)
      • 3.3 Dart (25)
      • 3.4 UX/ UI (27)
      • 3.5 Những điều cần lưu ý khi sử dụng Flutter Nhược điểm của Flutter (31)
  • Chương III. Xây dựng và thiết kế giao diện (32)
  • Chương IV. Kết luận và hướng phát triển (40)
    • 1. Kết Luận (40)
    • 2. Hướng phát triển (40)
  • PHẦN II: DỰ ĐOÁN BỆNH TIM (41)
  • CHƯƠNG I: GIỚI THIỆU (41)
    • 1. Lý do chọn đề tài (41)
    • 2. Mục tiêu của đề tài (41)
    • 3. Phương pháp của đề tài (41)
    • 4. Đối tượng và phạm vị nghiên cứu (42)
  • CHƯƠNG II: THỰC NGHIỆM VỚI PYTHON (43)
    • 1. Thực nghiệm với thư viện Python (43)
      • 2.1 Kết quả đạt được (57)
      • 2.2 Hạn chế và hướng phát triển (57)
  • TÀI LIỆU THAM KHẢO (58)

Nội dung

CƠ SỞ LÝ THUYẾT1.Tổng quan về lập trình đa nền tảng 1.1 Khái niệm về lập trình đa nền tảng Trong thời đại công nghệ số hiện nay, khi bạn phục vụ cho các đối tượng sửdụng nhiều nền tảng k

GIỚI THIỆU

Giới thiệu đề tài

Trong thời đại công nghệ thông tin phát triển mạnh mẽ, thương mại điện tử đã có những biến đổi sâu sắc, đặc biệt trong ngành bán lẻ sách Việc xây dựng ứng dụng book store trở nên thiết yếu, giúp người dùng tiếp cận việc đọc và kiến thức một cách dễ dàng hơn Thay vì mang theo sách nặng, giờ đây bạn có thể sở hữu cả thư viện trong chiếc điện thoại thông minh hoặc máy tính bảng của mình.

Lý do chọn đề tài

Thị trường sách đang biến đổi nhanh chóng nhờ công nghệ, với người đọc ngày càng ưu tiên mua sắm trực tuyến thay vì phương thức truyền thống Việc phát triển ứng dụng book store phản ánh sự nhận thức về xu hướng này và mong muốn thích ứng để duy trì kết nối với độc giả trong kỷ nguyên số.

Ứng dụng đọc sách mang lại nhiều lợi ích, cho phép người dùng tiếp cận sách mọi lúc, mọi nơi chỉ với kết nối Internet Người dùng có thể dễ dàng đọc sách trên điện thoại thông minh, máy tính bảng hoặc laptop mà không cần phải mang theo sách giấy.

Thư viện sở hữu một kho sách phong phú với đa dạng thể loại, bao gồm văn học, khoa học, kinh doanh và kỹ năng Người dùng dễ dàng tìm kiếm và chọn lựa cuốn sách phù hợp với nhu cầu của mình.

Cấp kho sách miễn phí hoặc giá thành hợp lý Người dùng có thể tiết kiệm được chi phí mua sách giấy.

Mục tiêu của đề tài

- Xây dựng ứng dụng book store có giao diện thân thiện người dùng, dễ dàng sử dụng, dễ dàng tìm kiếm.

- Khách hàng có thể nhận được thông báo khi có những chương trình khuyến mãi đặc biệt.

Công nghệ áp dụng

- Ngôn ngữ lập trình Dart.

CƠ SỞ LÝ THUYẾT

Khái niệm về lập trình đa nền tảng

Trong thời đại công nghệ số hiện nay, việc phát triển ứng dụng đa nền tảng (cross-platform) là rất cần thiết để phục vụ người dùng trên các hệ điều hành khác nhau như iOS, Android và Windows Phone.

Đa nền tảng là thuật ngữ chỉ các phần mềm hoặc phương thức điện toán có khả năng hoạt động trên nhiều hệ điều hành và kiến trúc máy tính khác nhau Một phần mềm được coi là đa nền tảng khi nó có thể chạy trên hơn một nền tảng Hiện nay, có nhiều loại phần mềm đa nền tảng, nhưng chúng thường được phân loại thành hai nhóm chính.

Phần mềm có khả năng hoạt động trên mọi nền tảng mà không cần biên dịch hay thông dịch, nhờ vào việc lập trình viên sử dụng ngôn ngữ thông dịch hoặc chuyển đổi phần mềm sang mã bytecode trước đó.

Phần mềm đa nền tảng có thiết kế đơn giản và dễ sử dụng, nhưng cần thêm bước thiết kế hoặc biên dịch cho từng phiên bản trên các nền tảng hỗ trợ.

Ưu và nhược điểm của lập trình đa nền tảng

- Sản phẩm được tạo ra từ lập trình đa nền tảng sẽ nhanh chóng tiếp cận được đến nhiều đối tượng người dùng hơn.

- Tiết kiệm chi phí cho chủ sở hữu khi thực hiện.

- Tiết kiệm thời gian công sức cho các lập trình viên trong việc xây dựng và phát triển ứng dụng phục vụ nhu cầu người dùng.

Hầu hết các ứng dụng được phát triển bằng công nghệ lập trình đa nền tảng đều sử dụng những công nghệ hiện đại và tiên tiến, nhằm mang đến trải nghiệm tối ưu cho người dùng.

- Thuận tiện hơn trong việc triển khai và duy trì hoạt động hóa ứng dụng trên các nền tảng thiết bị.

- Các đoạn code xây dựng chương trình có thể tái sử dụng lại nhiều lần.

- Chương trình được xây dựng với cấu trúc liền mạch, tuân thủ chặt chẽ theo mô hình MVC hay MVVM, giúp chúng không phục thuộc vào OS.

- Việc lập trình đa nền tảng sẽ khó khai thác triệt để thư viện trong những nền tảnh lớn, phổ biến là Android và iOS.

Việc đảm bảo chất lượng ứng dụng trên các nền tảng khác nhau gặp nhiều khó khăn, bao gồm vấn đề về giao diện hiển thị, công cụ sử dụng và ngôn ngữ trong API Bên cạnh đó, các yêu cầu xử lý từ các bên liên quan cũng là một thách thức lớn cần được giải quyết.

- Bị giới hạn trong khả năng linh hoạt so với các ứng dụng được xây dựng dành riêng cho một nền tảng nhất định.

3 Lợi ích của việc lập trình đa nền tảng

Thiết kế và phát triển ứng dụng có thể tốn thời gian, nhưng với giải pháp đúng, bạn có thể tạo ra một ứng dụng hoạt động trên nhiều nền tảng hệ điều hành khác nhau Điều này giúp tiết kiệm thời gian và tài nguyên, đồng thời mở rộng khả năng tiếp cận người dùng.

Mã code chỉ cần viết một lần nhưng có thể tái sử dụng nhiều lần, giúp tiết kiệm thời gian và công sức trong quá trình thực hiện.

- Ứng dụng có tính đồng nhất cao, mang đến cho người dùng chung một trải nghiệm khi sử dụng trên các nền tảng thiết bị khác nhau.

Trong các nền tảng lập trình đa nền tảng, có nhiều Plugin hữu ích được cung cấp sẵn, giúp nhà phát triển dễ dàng và nhanh chóng thực hiện các thay đổi khi cần thiết.

- Tiếp cận được với nhiều nhóm khách hàng đối tượng trên thị trường hiện nay hơn.

- Dễ dàng khắc phục các sự cố xảy ra trong quá trình vận hành của ứng dụng.

Một số phương pháp và công nghệ thường được sử dụng để lập trình đa nền tảng

Ngôn ngữ lập trình đa nền tảng:

- Java: Java Virtual Machine (JVM) cho phép chạy mã nguồn Java trên nhiều hệ điều hành.

- Python: Có sẵn trên nhiều hệ điều hành và có thể được triển khai một cách dễ dàng.

- C# và NET Core: Cho phép phát triển ứng dụng chạy trên nhiều nền tảng, bao gồm Windows, Linux và macOS.

- Flutter/Dart và React Native/JavaScript: Dùng để phát triển ứng dụng di động đa nền tảng.

- Qt: Một framework C++ hỗ trợ phát triển ứng dụng đa nền tảng trên nhiều hệ điều hành.

- Electron: Sử dụng HTML, CSS và JavaScript để xây dựng ứng dụng desktop chạy trên nền tảng Windows, macOS và Linux.

Máy ảo và Trình biên dịch:

- Máy ảo Java (JVM): Cho phép chạy mã nguồn Java trên nhiều hệ điều hành.

- Mono (.NET): Một implementation của NET Framework cho phép chạy ứng dụng NET trên nền tảng khác nhau.

- Docker: Cho phép đóng gói ứng dụng cùng với môi trường chạy của nó, giúp chuyển đổi giữa các môi trường một cách dễ dàng.

- HTML5, CSS3, JavaScript: Phát triển ứng dụng web-based để có thể truy cập từ bất kỳ trình duyệt nào.

Những thách thức của lập trình đa nền tảng

Lập trình đa nền tảng mang lại nhiều lợi ích nhưng cũng đối mặt với những thách thức đáng kể Một số khía cạnh phổ biến của việc phát triển ứng dụng đa nền tảng bao gồm khả năng tiếp cận nhiều hệ điều hành và thiết bị, tuy nhiên, việc đảm bảo hiệu suất tối ưu và trải nghiệm người dùng đồng nhất vẫn là một thách thức lớn.

Sự Đa Dạng Của Hệ Điều Hành và Thiết Bị:

Mỗi hệ điều hành và thiết bị đều có những đặc điểm và hạn chế riêng, điều này tạo ra thách thức trong việc đảm bảo ứng dụng hoạt động mượt mà trên tất cả các nền tảng Việc xử lý sự khác biệt về giao diện và chức năng là một yếu tố quan trọng cần được chú ý.

Tối ưu hóa mã nguồn cho các ứng dụng đa nền tảng là một nhiệm vụ phức tạp, đòi hỏi thiết kế cẩn thận để đảm bảo hiệu suất tối ưu trên mọi nền tảng Việc này không chỉ giúp cải thiện trải nghiệm người dùng mà còn nâng cao hiệu quả hoạt động của ứng dụng.

Phiên Bản và Tính Năng Khác Nhau:

Duy trì và cập nhật ứng dụng trên nhiều nền tảng là một thách thức lớn do sự khác biệt về phiên bản hệ điều hành và yêu cầu tính năng riêng biệt của từng nền tảng.

Chấp nhận tiêu chuẩn ngành là rất quan trọng, vì một số nền tảng không tuân thủ có thể làm tăng độ phức tạp trong việc phát triển và duy trì ứng dụng đa nền tảng.

Giao Diện Người Dùng Đồng Nhất:

Việc thiết kế một giao diện người dùng đồng nhất gặp khó khăn do sự khác biệt trong quy định thiết kế và trải nghiệm người dùng trên các nền tảng khác nhau.

Thách Thức Tương Tác Phần Cứng:

Tương tác với các chức năng phần cứng đặc biệt của từng thiết bị, như cảm biến và máy ảnh, có thể gây ra những thách thức trong việc đảm bảo tính tương thích đa nền tảng.

Chia Sẻ Mã Nguồn và Tài Nguyên:

Quản lý mã nguồn và tài nguyên cho phép chia sẻ hiệu quả giữa các phiên bản ứng dụng trên nhiều nền tảng khác nhau, đòi hỏi sự chú ý và quản lý cẩn thận.

Chấp Nhận Phiên Bản Mới:

Duy trì và hỗ trợ các phiên bản mới của hệ điều hành và framework là một thách thức lớn, đặc biệt khi có sự chậm trễ trong việc cập nhật những thay đổi này.

Giới thiệu về hệ điều hành Android

- Là một gói phần mềm và hệ điều hành dựa trên linux cho các thiết bị di động như máy tính bảng và điện thoại thông minh.

- Được phát triển bởi Google và sau đó là OHA (Open Handset Alliance).

- Sử dụng chủ yếu Java để viết mã mặc dù các ngôn ngữ khác có thể được sử dụng.

- Có nhiều phiên bản được đặt tên: Lollilop, KitkatJelly, Bean, Froyo.

- Mục tiêu của Android: Tạo ra một sản phẩm trong thế giới thực để cải thiện trải nghiệm di động cho người dùng

Các tính năng của Android:

- Android Platform có thể tùy biến

Người dùng Android có thể lựa chọn từ nhiều ứng dụng đa dạng, cung cấp các chức năng và dịch vụ thú vị như dự báo thời tiết, gửi tin nhắn, duyệt web, lưu trữ dữ liệu với SQLite và kết nối liên lạc qua wifi, bluetooth và nhiều phương thức khác.

2.2 Lịch sử và phiên bản

In October 2003, Android Inc was founded by Andy Rubin, Rich Miner, Nick Sears, and Chris White, initially aiming to develop an operating system for digital cameras.

OS cho smart mobile cạnh tranh với các mobile OS hiện có Symbian (của Nokia) Windows Mobile (của Microsoft)

- Trải qua 13 bản cập nhật lớn

- Phiên bản mới nhất (2017): Android Oreo

2.3 Cấu trúc Android và Android Project

Hình 2 3 Cấu trúc Android Project

2.4 Môi trường làm việc Android

Android Studio integrates essential software for Android application development into a single installation, including Eclipse IDE, Android SDK, and Eclipse Plugin, available for download at developer.android.com.

Tổng quan về Flutter và Dart

Hình 2.5 Flutter và Dart 3.1 Flutter

Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android, được phát triển bởi Google Nền tảng này ngày càng trở nên phổ biến trong việc tạo ra các ứng dụng gốc cho hệ sinh thái Google.

Flutter was developed to address common challenges in mobile app development, specifically focusing on Fast Development and Native Performance Unlike React Native, which prioritizes Fast Development, and pure native code that ensures Native Performance, Flutter successfully combines both advantages.

Flutter hoàn toàn miễn phí và cũng là mã nguồn mở.

 Các thành phần của Flutter:

- Flutter thường bao gồm 2 thành phần chính quan trọng như sau:

SDK (Bộ công cụ phát triển phần mềm) là tập hợp các công cụ hỗ trợ người dùng trong việc phát triển ứng dụng nền Nó thường bao gồm các công cụ biên dịch mã thành mã gốc dành cho hệ điều hành iOS và Android.

+ Một Framework (UI Library based on widgets):

Mỗi tập hợp các thành phần giao diện người dùng đều cho phép tái sử dụng dễ dàng, giúp người dùng cá nhân hóa theo nhu cầu riêng của mình.

 Các tính năng của Flutter:

- Flutter trong mắt của các chuyên gia đã và đang là một react framework.

- Flutter sử dụng một dạng ngôn ngữ lập trình Dart vô cùng đơn giản và dễ học

- Flutter có thể phát triển nhanh chóng các ứng dụng một cách dễ dàng

- Các giao diện của người dùng thường rất đẹp và linh hoạt

- Nó có thể thực hiện hỗ trợ được rất nhiều widget khác nhau.

- Flutter sẽ được thể hiện ngay cùng trên một nền tảng hoàn toàn khác

- Các ứng dụng sở hữu hiệu năng làm việc cao và nhanh chóng

 Tại sao nên sử dụng Flutter

Những lý do chính nên chọn sử dụng Flutter:

- Multi-platform: Flutter cho phép xây dựng ứng dụng cho nhiều nền tảng, bao gồm Android, iOS, Web, desktop, v.v

Chức năng hot reload cho phép lập trình viên thay đổi mã nguồn và giao diện một cách nhanh chóng mà không cần khởi động lại ứng dụng, từ đó mang lại kết quả ngay lập tức Tính năng này giúp tăng tốc độ phát triển ứng dụng, nâng cao hiệu quả công việc của lập trình viên.

Flutter sở hữu một cộng đồng mạnh mẽ và tài liệu phong phú, mang lại sự hỗ trợ đáng kể cho người dùng Điều này giúp quá trình học tập và giải quyết các vấn đề trong phát triển ứng dụng trở nên dễ dàng và hiệu quả hơn.

Flutter mang đến hiệu suất cao và giao diện đẹp nhờ vào các công cụ và thư viện tối ưu hóa, giúp đảm bảo các ứng dụng hoạt động mượt mà.

Expressive and Flexible UI - UI đẹp và biểu cảm:

Flutter offers a wide range of components to create stunning user interfaces inspired by Material Design and Cupertino styles It supports numerous motion APIs and provides smooth scrolling features, enhancing the overall user experience.

Flutter widgets seamlessly integrate platform-specific features such as scrolling, navigation, icons, and fonts to deliver optimal performance on both iOS and Android.

 Quá trình truy cập với nhiều tính năng và SDK native:

Làm cho các ứng dụng của bạn sẽ trở nên sống động hơn rất nhiều nhờ vào API của platform, SDK của các bên thứ ba và native code.

Điều này cho phép lập trình viên tái sử dụng mã Java, Swift và ObjC hiện có, giúp họ thực hiện mọi tính năng của SDK native trên iOS và Android.

 Phát triển ứng dụng thống nhất:

Flutter có các công cụ và thư viện để giúp bạn dễ dàng đưa ý tưởng của mình vào cuộc sống trên iOS và Android.

Nếu bạn chưa có kinh nghiệm phát triển ứng dụng di động, Flutter là lựa chọn lý tưởng để tạo ra các ứng dụng đẹp mắt một cách nhanh chóng Đối với các nhà phát triển iOS hoặc Android có kinh nghiệm, Flutter cho phép bạn sử dụng các View và tận dụng lại mã nguồn Java, Kotlin, ObjC hoặc Swift.

 Đặc điểm ngôn ngữ Flutter:

• Hiệu năng cao (High performance)

• Kiểm soát hoàn toàn UI (Full control of the UI): hỗ trợ rất nhiều widget khác nhau, giao diện người dùng đẹp và linh hoạt, thể hiện cùng một

UI trên nhiều nền tảng

• Ngôn ngữ Dart (Dart programming language): đơn giản, dễ học, Dart có một kho lớn các gói phần mềm cho phép mở rộng

• Được hỗ trợ bởi Google (Being backed by Google)

• Framework mã nguồn mở (Open source framework)

• Hot Reload: Flutter cung cấp khả năng ghi nhớ state của ứng dụng

3.2 Các công cụ hỗ trợ phát triển ứng dụng Flutter

Flutter application development tools include Android Studio, Visual Studio Code, and IntelliJ IDEA, each offering unique features and benefits that enhance the development experience.

Android Studio là một IDE do Google phát triển, chuyên dụng cho việc tạo ứng dụng Android Nó hỗ trợ phát triển Flutter, giúp lập trình viên dễ dàng tạo, thử nghiệm và triển khai ứng dụng Với tính năng mã hóa, gỡ lỗi, kiểm tra lỗi, quản lý phiên bản và triển khai ứng dụng trên nhiều thiết bị, Android Studio là công cụ lý tưởng cho các nhà phát triển.

Visual Studio Code là một trình soạn thảo mã nguồn mở do Microsoft phát triển, nổi bật trong việc hỗ trợ phát triển ứng dụng Flutter Công cụ này có khả năng mở rộng thông qua các tiện ích bổ sung và tiện ích mở rộng, mang lại trải nghiệm lập trình linh hoạt Visual Studio Code cũng cung cấp tính năng tải lại nóng, hỗ trợ mã hóa, gỡ lỗi, kiểm tra lỗi, quản lý phiên bản và triển khai ứng dụng trên nhiều thiết bị khác nhau.

IntelliJ IDEA là một IDE do JetBrains phát triển, hỗ trợ việc phát triển ứng dụng Android và iOS, cùng với khả năng phát triển Flutter Công cụ này cho phép các nhà phát triển tạo, thử nghiệm và triển khai ứng dụng Flutter một cách hiệu quả IntelliJ IDEA cung cấp các tính năng như mã hóa, gỡ lỗi, kiểm tra lỗi, quản lý phiên bản và triển khai ứng dụng trên nhiều thiết bị khác nhau.

Xây dựng và thiết kế giao diện

1 Giao diện màn hình chính

Hình 3.1 Giao diện màn hình chính

2 Button “Wishlist” Danh sách yêu thích

4 Bestsellers Chương trình khuyến mãi

5 Our top pick Sự lựa chọn hàng đầu

2 Giao diện người dùng đăng nhập

1 Nhập Name Nhập tên đã đăng ký

2 Nhập email Nhập email đã đăng ký

3 Nhập password Nhập password để đăng ký.

Mật khảu sẽ hiển thị dưới dạng *****

4 Button “Sign up” Tiến hành đăng ký vào tài khoản

Hình 3.2 Giao diện người dùng đăng nhập

3 Giao diện người dùng đăng ký

Hình 3.3 Giao diện người dùng đăng ký

1 Nhập email Nhập email đã đăng ký

2 Nhập password Nhập password để đăng ký.

Mật khảu sẽ hiển thị dưới dạng *****

3 Button “Sign up” Tiến hành đăng ký tài khoản

4 First & Last name Nhập họ và tên để đăng ký

5 Mobile Phone Nhập số điện thoại để đăng ký

6 Group Special Code Có nhập mã nhóm ( Không bắt buộc)

4 Giao diện trang menu (Drawer)

4 Sell With Us Bán hàng

6 Pop-up Leasing Cho thuê không gian quảng cao tạm thời

Hình 3.4 Giao diện menu (Drawer)

5 Giao diện khi đang đọc sách

Hình 3.5 Giao diện khi đang đọc sách

1 Dark Mode & Light Mode Chế độ màn hình tối & sáng

3 < Quay trở lại trang trước

GIỚI THIỆU

Lý do chọn đề tài

Bệnh tim mạch là một trong những nguyên nhân gây tử vong cao nhất tại Việt Nam, thuộc nhóm bệnh không lây nhiễm Việc nhận biết sớm triệu chứng của các bệnh tim mạch giúp người dân thăm khám và tầm soát kịp thời, từ đó hạn chế biến chứng nguy hiểm Dự đoán nguy cơ mắc bệnh tim có thể mở ra cơ hội thực hiện xét nghiệm không xâm lấn cho những người có nguy cơ từ trung bình đến cao mà không cần phải đến phòng khám.

Mục tiêu của đề tài

Sử dụng một tệp dữ liệu với hơn 300 người, nghiên cứu này áp dụng Hồi quy Logistic để dự đoán nguy cơ mắc bệnh tim mạch Phương pháp này cho phép đạt được độ chính xác từ 70-80% trong việc xác định những người có khả năng gặp phải vấn đề về tim mạch.

Phương pháp của đề tài

Mô hình hồi quy Logistic bội là một kỹ thuật thống kê hiệu quả, sử dụng nguyên tắc bình phương nhỏ nhất để ước lượng các tham số Mô hình này giúp phân tích mối quan hệ giữa biến phụ thuộc nhị phân và một hoặc nhiều biến độc lập.

Giá trị của các tham số b0, b1, , bk được ước lượng bằng phương pháp bình phương bé nhất, với mục tiêu giảm tổng bình phương giá trị phần dư Phương pháp này đảm bảo các ước lượng không chệch và đạt được kết quả tốt nhất khi không có đa tuyến Bằng cách áp dụng phân tích thành phần chính, các biến trực giao sẽ được tạo ra, cho phép chuyển đổi Logistic của các biến giải thích Đề tài nghiên cứu này sử dụng hồi quy Logistic, thuộc nhóm học có giám sát, để phân tích dữ liệu và dự đoán khả năng mắc bệnh tim mạch ở bệnh nhân.

Đối tượng và phạm vị nghiên cứu

Tập dữ liệu từ năm 1988 bao gồm bốn cơ sở dữ liệu: Cleveland, Hungary, Thụy Sĩ và Long Beach V, với tổng cộng 76 thuộc tính, trong đó có thuộc tính dự đoán Tuy nhiên, các nghiên cứu đã công bố chỉ sử dụng một tập hợp con gồm 14 thuộc tính Trường "mục tiêu" trong tập dữ liệu này chỉ ra sự hiện diện của bệnh tim ở bệnh nhân, được biểu thị bằng số nguyên với giá trị 0 cho không bệnh và 1 cho bệnh.

THỰC NGHIỆM VỚI PYTHON

Thực nghiệm với thư viện Python

Trước khi thực nghiệm bài toán với thư viện phải chắc chắn chúng ta đã import đầy đủ các thư viện của python.

Hình 4 1 Thêm thư viện và mô hình

Load tập dữ liệu đã lưu ở google drive, kết nối google vào google colab để truy cập dữ liệu:

Hình 4 2 Tải dữ liệu lên

Trước khi phân tích dữ liệu, cần hiểu rõ thông tin về dữ liệu, bao gồm ý nghĩa của các cột và dòng Thông tin này thường được cung cấp kèm theo khi nhận dữ liệu từ công ty, doanh nghiệp hoặc các nguồn như Kaggle.

1.3 Kiểm tra và phân tích dữ liệu

Xem các thông tin tổng quát về dữ liệu.

Hình 4 3 In ra dữ liệu

Hình 4 4 Thông tin dữ liệu

Xem thông tin kiểu dữ liệu và kiểm tra có giá trị null không

Hình 4 5 Xem số lượng người bệnh và không bệnh

- 1 ở đây là người bị bệnh tim mạch số lượng 164 còn

- 0 là người không bị bệnh số lượng 139.

Tiếp theo chúng ta trực quan hóa dữ liệu lên

Hình 4 6 Biểu đồ bệnh và không bệnh

Hình 4 7 Thông số 5 cột quan trọng

Tất cả các giá trị cực trị, bao gồm tối thiểu và tối đa, có thể xuất hiện trong các tình huống lâm sàng thực tế, vì vậy việc giữ nguyên những giá trị này là rất quan trọng.

Hình 4 8 Biểu đồ trực quan

Dựa vào các sơ đồ, không có cặp giá trị nào thể hiện mối tương quan cao rõ ràng, vì vậy không cần loại bỏ tính năng nào ở giai đoạn này Đồng thời, có thể nhận thấy mối tương quan nghịch giữa 'tuổi' và 'max_heart_rate', cũng như mối tương quan dương giữa 'tuổi' và 'huyết áp'.

Một ma trận tương quan sẽ đảm bảo cho chúng ta biết liệu điều trên có đúng hay không.

Hình 4 9 Biểu đồ tổng thể

Hình 4.10 Sự tương quan mỗi cột

Ngoài hai mối quan hệ đã đề cập, 'max_heart_rate' và 'ST_depression' cũng có mối quan hệ phụ thuộc quan trọng Kết luận cho thấy cả 'tuổi' và 'max_heart_rate' đều có vai trò quan trọng trong việc dự đoán bệnh tim Hãy cùng xem xét sự phân phối của các yếu tố này.

Sự phân bố tuổi của bệnh nhân khỏe mạnh rộng hơn so với bệnh nhân mắc bệnh, với nguy cơ cao nhất ở độ tuổi sáu mươi Mặc dù phân bổ nhịp tim tối đa không khác biệt nhiều, nhưng nguy cơ đạt đỉnh khi giá trị nhịp tim tối đa (max_heart_rate) nằm trong khoảng từ 150 đến 170 Giá trị nhịp tim cao hơn thường phổ biến hơn ở bệnh nhân khỏe mạnh Biểu đồ dưới đây sẽ cung cấp một cái nhìn sâu sắc hơn về vấn đề này.

Hình 4 12 Góc nhìn biểu đồ tuổi

Hình 4 13 Phân loại theo tuổi

Hình 4 14 Biểu đồ đánh giá

1 Đàn ông dễ mắc bệnh tim hơn phụ nữ.

2 Số lượng mạch máu được phát hiện qua soi huỳnh quang càng nhiều thì nguy cơ mắc bệnh càng cao.

3 Mặc dù cơn đau ngực nhẹ có thể là một triệu chứng xấu khi tiếp cận các vấn đề về tim (đặc biệt là ở nam giới), nhưng cơn đau dữ dội lại là một cảnh báo nghiêm trọng!

4 Nguy cơ mắc bệnh tim thậm chí có thể cao hơn gấp 3 lần đối với những người từng bị đau thắt ngực do tập thể dục.

5 Độ dốc bằng phẳng (giá trị = 2) và độ dốc xuống (giá trị = 3) của bài tập cao điểm cho thấy nguy cơ mắc bệnh cao

Hình 4 15 Đường huyết lúc đói

Hình 4.16 Hiển thị cột giá trị bị thiếu

Cả hai cột chứa giá trị thiếu đều được phân loại, và trong trường hợp này, mode (giá trị xuất hiện thường xuyên nhất trong một vectơ nhất định) thường được sử dụng để thay thế các giá trị 'nans'.

Hình 4 17 Điền giá trị thiếu bằng mode

Khi có dữ liệu sạch, nhãn có thể được tách ra khỏi khung dữ liệu Đây cũng là thời điểm thích hợp để chia tách dữ liệu thành tập huấn luyện và tập kiểm tra, với 30% tổng dữ liệu được phân bổ cho tập kiểm tra, đây là tỷ lệ phân chia tiêu chuẩn cho kích thước dữ liệu này.

Hình 4 18 Trích xuất và chia dữ liệu

Trước khi áp dụng vào các thuật toán học máy, dữ liệu cần phải được chuẩn hóa Quá trình chuẩn hóa giúp chia tỷ lệ dữ liệu và cung cấp thông tin về độ lệch chuẩn so với giá trị trung bình Cụ thể, giá trị trung bình của dữ liệu được chuẩn hóa sẽ là 0 và độ lệch chuẩn sẽ là 1.

Hình 4 19 Ma trận đặc trưng tỷ lệ

Hình 4 20 Tạo hàm training mô hình

Hàm nhận vào các tham số X_train, y_train, X_test, y_test, classifier và kwargs để tạo và huấn luyện nhiều mô hình máy học Qua vòng lặp for, mô hình được khởi tạo từ lớp bộ phân loại với các đối số từ khóa bổ sung Quá trình huấn luyện sử dụng phương thức fit với dữ liệu huấn luyện Độ chính xác của mô hình được đánh giá trên cả tập huấn luyện và tập kiểm thử thông qua phương thức score, và kết quả được hiển thị dưới dạng phần trăm Cuối cùng, hàm trả về mô hình đã được huấn luyện để phục vụ cho các dự đoán sau này.

Hình 21 Xem score của mô hình

Kết quả đạt được là:

● Chúng ta có thể dự đoán người đó có bệnh không dựa trên các thông số về giới tính tuổi,

● Trạng thái tức ngực và tình trạng căng thẳng cao gây nguyên nhân rất lớn đến bệnh tim mạch

● Cuối cùng là phương pháp giảm tỷ lệ đoán sai.

2.2 Hạn chế và hướng phát triển

Hồi quy logistic không thể dự đoán kết quả liên tục, điều này được minh chứng qua ví dụ trong lĩnh vực y tế Cụ thể, nó không thể ước lượng mức tăng nhiệt độ của bệnh nhân viêm phổi, vì nhiệt độ là một biến liên tục Hồi quy logistic chỉ phù hợp khi biến phụ thuộc là lưỡng phân, điều này hạn chế khả năng áp dụng của nó trong một số tình huống thực tế.

Trong tương lai, tôi sẽ nỗ lực xây dựng lại mô hình từ đầu, không chỉ dừng lại ở việc dự đoán bệnh mà còn có khả năng tính toán thời gian mà một người có thể mắc bệnh Tôi cam kết tiếp tục cải thiện bài toán này và phát triển nó ngày càng xa hơn.

Ngày đăng: 14/12/2024, 22:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w