Giới thiệu dự án

Bệnh tim mạch (Cardiovascular Diseases - CVD) là nguyên nhân gây tử vong hàng đầu trên toàn cầu. Theo thống kê của Tổ chức Y tế Thế giới (WHO), các bệnh lý liên quan đến tim mạch chiếm tới 31% tổng số ca tử vong toàn cầu mỗi năm. Tại Việt Nam, số liệu thống kê y tế ghi nhận bệnh tim mạch chịu trách nhiệm cho hơn 170.000 ca tử vong thường niên (tương đương khoảng 31% tổng số ca tử vong do mọi nguyên nhân). Phần lớn các biến cố tim mạch nguy hiểm có thể được phòng ngừa hoặc điều trị hiệu quả nếu phát hiện ở giai đoạn sớm thông qua các dấu hiệu lâm sàng và cận lâm sàng.

Tuy nhiên, quá trình chẩn đoán lâm sàng bệnh tim truyền thống đối mặt với nhiều rào cản:

  • Áp lực quá tải: Đội ngũ y bác sĩ tại các cơ sở tuyến đầu chịu áp lực phân tích khối lượng lớn dữ liệu bệnh án phức tạp trong thời gian ngắn.
  • Rủi ro chủ quan: Sai số chẩn đoán do phán đoán chủ quan hoặc thiếu sót khi đánh giá đồng thời nhiều chỉ số phi tuyến tính.
  • Chi phí cận lâm sàng cao: Việc lạm dụng các xét nghiệm can thiệp chuyên sâu (như chụp mạch vành có cản quang) gây tốn kém chi phí và tiềm ẩn nguy cơ cho bệnh nhân.

Đề tài "Hệ hỗ trợ chẩn đoán bệnh tim dựa trên kỹ thuật máy học" (Decision Support System in the Diagnosis of Heart Disease Based on Machine Learning) do sinh viên Đặng Minh Tiến và Trương Hoàng Khang (Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM), dưới sự hướng dẫn của TS. Dương Minh Đức thực hiện, nhằm giải quyết bài toán trên bằng cách ứng dụng công nghệ trí tuệ nhân tạo (AI) và khai phá dữ liệu y tế (Medical Data Mining).

+-----------------------------------------------------------------------------------+
|                            HỆ THỐNG CDSS CHẨN ĐOÁN BỆNH TIM                        |
|                                                                                   |
|  [Dữ liệu thô 75 thuộc tính] ---> [Lọc CFS / Pearson] ---> [Trích xuất PCA]       |
|                                                                   |               |
|  [Mobile App UI] <--- [REST API Server] <--- [Random Forest (Error: 2.26%)]       |
+-----------------------------------------------------------------------------------+

Mục tiêu của dự án:

  1. Nghiên cứu và chuẩn hóa dữ liệu: Khai thác và tiền xử lý bộ dữ liệu bệnh tim chuẩn quốc tế từ Cleveland Clinic Foundation (UCI Machine Learning Repository).
  2. Tối ưu hóa không gian đặc trưng: Áp dụng phương pháp lựa chọn đặc trưng dựa trên hệ số tương quan Pearson kết hợp giải thuật giảm chiều không gian PCA (Principal Component Analysis).
  3. Phát triển và tinh chỉnh mô hình máy học: Huấn luyện, đánh giá và tìm bộ siêu tham số tối ưu (Hyperparameter Grid Search) kết hợp kiểm chứng chéo 10-fold (10-Fold Cross-Validation) trên các thuật toán phân lớp: Random Forest, Support Vector Machine (SVM), Gaussian Process Classification (GPC), K-Nearest Neighbors (KNN), Logistic Regression (LR), Decision Tree (DT).
  4. Vượt chuẩn hiệu năng cơ sở: Giảm tỷ lệ phân lớp lỗi xuống dưới mức 5% (vượt trội so với mốc cơ sở 13.34% của nhóm tác giả quốc tế Loris Nanni et al. [11]).
  5. Hiện thực hóa giải pháp ứng dụng: Xây dựng hoàn chỉnh hệ thống hỗ trợ ra quyết định lâm sàng (Clinical Decision Support System - CDSS) gồm backend API và ứng dụng di động cho bác sĩ.

Phạm vi và giới hạn:

  • Phạm vi dữ liệu: Huấn luyện và đánh giá trên tập dữ liệu chuẩn Cleveland Heart Disease Database (303 mẫu, ban đầu gồm 75 thuộc tính, rút gọn thành 13 thuộc tính cốt lõi và nhãn chẩn đoán nhị phân).
  • Phạm vi ứng dụng: Đóng vai trò là hệ thống hỗ trợ ra quyết định lâm sàng (CDSS) tuyến đầu cho phòng khám, bệnh viện hoặc hệ thống khám chữa bệnh từ xa (Telemedicine), không thay thế hoàn toàn chỉ định chuyên môn của bác sĩ chuyên khoa.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Nghiên cứu khai phá dữ liệu trong chẩn đoán tim mạch đã ghi nhận nhiều công trình tiêu biểu, nhưng vẫn tồn tại những hạn chế về tỷ lệ lỗi hoặc tính khả thi khi triển khai thực tế.

Giải pháp nghiên cứu Kỹ thuật áp dụng Ưu điểm Nhược điểm / Tỷ lệ lỗi
Loris Nanni et al. (2020) [11] GPC + Random Subspace Kết hợp đa bộ phân lớp, xử lý tốt dữ liệu phi tuyến tính Tỷ lệ lỗi còn ở mức 13.34%; chi phí tính toán cao
Era Singh et al. (2015) [5] K-means + MAFIA Algorithm Phân cụm và trích xuất tập phổ biến nhanh Độ chính xác chỉ đạt 89.00% (tỷ lệ lỗi ~11%); nhạy cảm với nhiễu
Sellappan & Rafiah (2008) [12] Decision Tree, Naive Bayes, ANN Trực quan hóa quy tắc suy diễn tốt Dễ bị quá khớp (Overfitting); độ đặc hiệu chưa đồng đều
Giải pháp đề xuất trong đề tài Pearson CFS + PCA + Random Forest (Tối ưu hóa) Rút trích đặc trưng tương quan cao, loại bỏ đa cộng tuyến, tối ưu tham số toàn cục Tỷ lệ phân lớp lỗi giảm sâu kỷ lục còn 2.26% (Độ chính xác 97.74%)

Xác định yêu cầu theo mô hình MoSCoW:

  • Must have (Bắt buộc): Pipeline tiền xử lý dữ liệu (chuẩn hóa Min-Max/StandardScaler, xử lý missing values), mô-đun lựa chọn đặc trưng Pearson, mô hình phân lớp Random Forest tối ưu, RESTful API endpoint tiếp nhận 13 thông số sinh hiệu, màn hình chẩn đoán trên Mobile App.
  • Should have (Nên có): Kiểm thử chéo 10-fold, bảng ma trận nhầm lẫn (Confusion Matrix), tính toán thời gian phản hồi suy luận (Latency < 200ms).
  • Could have (Có thể có): Hỗ trợ xuất báo cáo chẩn đoán định dạng PDF cho bệnh nhân, trực quan hóa biểu đồ ECG.
  • Won't have (Chưa hỗ trợ): Phân lớp đa mức độ suy tim theo thang đo NYHA I-IV (giai đoạn hiện tại tập trung phân loại nhị phân: Có/Không mắc bệnh).

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình Client-Server phân tầng hướng dịch vụ:

[ Bác sĩ / Người dùng ]
          │ (Nhập liệu 13 chỉ số lâm sàng)
          ▼
[ Flutter/Android Mobile Client ]
          │ (HTTP/HTTPS REST API JSON)
          ▼
[ Nginx Reverse Proxy / Gunicorn ]
          │
[ Flask/Python Machine Learning Backend ]
    ├── Data Preprocessing & Validation
    ├── Feature Selection (Pearson Filter)
    ├── Feature Extraction (PCA Transformation)
    └── Model Engine (Optimized Random Forest Pipeline)
          │
[ Kết quả dự đoán + Độ tin cậy (%) ]

Technology Stack và phiên bản:

  • Ngôn ngữ lập trình lõi: Python 3.8.10.
  • Thư viện Máy học & Tính toán khoa học: Scikit-learn v0.24.2, NumPy v1.20.3, Pandas v1.2.4, SciPy v1.6.2.
  • Môi trường Server & Quản lý gói: Anaconda 4.10.x trên nền tảng hệ điều hành Ubuntu 20.04 LTS.
  • Backend API Framework: Flask v2.0.1 (WSGI server qua Gunicorn 20.1.0).
  • Ứng dụng di động (Frontend): Flutter SDK v2.2.x / Dart v2.13.x (hỗ trợ Android & iOS).

Thiết kế thuộc tính đầu vào (Input Features):

Hệ thống tiếp nhận 13 thuộc tính lâm sàng chuẩn sau quá trình tiền xử lý:

  1. age: Độ tuổi bệnh nhân (29 – 77 tuổi).
  2. sex: Giới tính ($1 = \text{Nam}, 0 = \text{Nữ}$).
  3. cp: Loại đau ngực (1: Điển hình; 2: Không điển hình; 3: Không do tim; 4: Không triệu chứng).
  4. trestbps: Huyết áp tâm thu lúc nghỉ ngơi ($94 - 200\text{ mmHg}$).
  5. chol: Nồng độ Cholesterol trong huyết thanh ($126 - 564\text{ mg/dl}$).
  6. fbs: Đường huyết lúc đói $> 120\text{ mg/dl}$ ($1 = \text{Đúng}, 0 = \text{Sai}$).
  7. restecg: Kết quả điện tâm đồ lúc nghỉ (0: Bình thường; 1: Bất thường sóng ST-T; 2: Phì đại thất trái theo tiêu chí Estes).
  8. thalach: Nhịp tim tối đa đạt được ($71 - 202\text{ bpm}$).
  9. exang: Đau thắt ngực do gắng sức ($1 = \text{Có}, 0 = \text{Không}$).
  10. oldpeak: Mức độ ST chênh xuống khi vận động so với lúc nghỉ ($0.0 - 6.2$).
  11. slope: Độ dốc đoạn ST khi gắng sức đỉnh điểm (1: Dốc lên; 2: Đi ngang; 3: Dốc xuống).
  12. ca: Số lượng mạch máu chính được nhuộm màu qua soi huỳnh quang ($0 - 3$).
  13. thal: Kết quả xạ hình tưới máu cơ tim Thallium (3: Bình thường; 6: Khiếm khuyết cố định; 7: Khiếm khuyết có thể đảo ngược).

Methodology

Quy trình phát triển hệ thống được tổ chức theo phương pháp luận khoa học dữ liệu CRISP-DM kết hợp mô hình Agile gồm 6 giai đoạn:

  1. Giai đoạn 1 (15/09 - 30/09/2020): Nghiên cứu lý thuyết máy học, giải thuật phân lớp độc lập (Standalone) và đa bộ phân lớp (Ensemble/Multiclassifier).
  2. Giai đoạn 2 (01/10 - 14/10/2020): Xây dựng môi trường thực nghiệm với Python và Scikit-learn.
  3. Giai đoạn 3 (15/10 - 31/10/2020): Tiền xử lý dữ liệu Cleveland, làm sạch và chuẩn hóa 303 mẫu dữ liệu.
  4. Giai đoạn 4 (01/11 - 15/11/2020): Thực nghiệm đo lường hiệu năng các bộ phân lớp cơ bản (DT, SVM, GPC, KNN, LR, RF).
  5. Giai đoạn 5 (16/11 - 30/11/2020): Ứng dụng kỹ thuật lựa chọn đặc trưng Pearson CFS kết hợp PCA; chạy Grid Search vét cạn tìm siêu tham số tối ưu và kiểm chứng chéo 10-fold.
  6. Giai đoạn 6 & Hoàn thiện (01/12/2020 - 08/01/2021): Đóng gói mô hình thành REST API, phát triển ứng dụng di động và kiểm thử tổng thể.

Implementation và kết quả

Development Process & Key Algorithms

Hạt nhân của giải pháp là sự kết hợp chặt chẽ giữa 3 thuật toán: Lựa chọn đặc trưng tương quan Pearson, Trích xuất đặc trưng PCA và Bộ phân loại Rừng ngẫu nhiên (Random Forest).

1. Lọc đặc trưng tương quan Pearson (Correlation-based Feature Selection):

Hệ số tương quan tuyến tính Pearson ($r_{xy}$) giữa biến đặc trưng $X$ và nhãn chẩn đoán $Y$ được tính theo công thức: $$r_{xy} = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2} \sqrt{\sum_{i=1}^{n} (y_i - \bar{y})^2}}$$

Các đặc trưng có giá trị tuyệt đối $|r_{xy}|$ cao nhất (như cp, thalach, exang, oldpeak, ca, thal) được ưu tiên giữ lại, loại bỏ các thuộc tính có độ tương quan yếu hoặc nhiễu.

2. Giảm chiều không gian dữ liệu bằng PCA:

Phép biến đổi PCA tìm các thành phần chính (Principal Components) bằng cách giải bài toán tìm trị riêng ($\lambda$) và vector riêng ($v$) của ma trận hiệp phương sai $\mathbf{\Sigma}$: $$\mathbf{\Sigma} v = \lambda v$$ Chiếu không gian dữ liệu gốc sang không gian trực giao mới giúp loại bỏ hoàn toàn hiện tượng đa cộng tuyến giữa các biến số sinh hiệu mà vẫn giữ lại phương sai lớn nhất của dữ liệu.

3. Bộ phân lớp Rừng ngẫu nhiên (Random Forest):

Tập hợp $B$ cây quyết định không cắt tỉa ${h(x, \Theta_k)}_{k=1}^B$, áp dụng kỹ thuật Bootstrap Aggregating (Bagging) và chọn ngẫu nhiên tập con thuộc tính tại mỗi nút phân chia. Quyết định cuối cùng được đưa ra dựa trên cơ chế bỏ phiếu theo số đông (Majority Voting): $$\hat{C}(x) = \operatorname{argmax}c \sum{k=1}^{B} I(h_k(x) = c)$$

# Pipeline cài đặt thực nghiệm mô hình đề xuất
import numpy as np
import pandas as pd
from sklearn.model_selection import GridSearchCV, StratifiedKFold
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix

# 1. Load và tiền xử lý dữ liệu
def build_heart_disease_pipeline():
    # Định nghĩa Pipeline tích hợp: Chuẩn hóa -> PCA -> Random Forest
    pipe = Pipeline([
        ('scaler', StandardScaler()),
        ('pca', PCA(n_components=0.95)), # Giữ lại 95% phương sai dữ liệu
        ('rf', RandomForestClassifier(random_state=42))
    ])
    
    # 2. Không gian siêu tham số vét cạn (Grid Search)
    param_grid = {
        'rf__n_estimators': [50, 100, 150, 200, 300],
        'rf__max_depth': [None, 5, 10, 15, 20],
        'rf__min_samples_split': [2, 4, 6],
        'rf__min_samples_leaf': [1, 2, 4],
        'rf__criterion': ['gini', 'entropy']
    }
    
    # 3. Đánh giá kiểm chứng chéo 10-Fold
    cv = StratifiedKFold(n_splits=10, shuffle=True, random_state=42)
    grid_search = GridSearchCV(
        estimator=pipe,
        param_grid=param_grid,
        scoring='accuracy',
        cv=cv,
        n_jobs=-1,
        verbose=1
    )
    return grid_search

if __name__ == "__main__":
    print("[INFO] Khởi tạo mô hình chẩn đoán bệnh tim tối ưu...")
    model_pipeline = build_heart_disease_pipeline()
    print("[INFO] Sẵn sàng huấn luyện và đánh giá trên bộ dữ liệu Cleveland.")

Testing và Validation

Thực nghiệm được thực hiện trên 303 bản ghi y tế của Cleveland Dataset với cơ chế kiểm chứng chéo 10-Fold Cross-Validation để triệt tiêu hiện tượng bias phân chia dữ liệu.

Bảng so sánh hiệu năng các mô hình thực nghiệm:

Thuật toán / Mô hình phân lớp Kỹ thuật kết hợp Tỷ lệ phân lớp lỗi (%) Độ chính xác (Accuracy %)
K-Nearest Neighbors (KNN) Standalone (Mặc định) 16.50% 83.50%
Decision Tree (Cây quyết định) Standalone (CART) 18.15% 81.85%
Support Vector Machine (SVM) RBF Kernel 14.85% 85.15%
Logistic Regression (LR) Standalone (Pearson Filter) 7.00% 93.00%
Gaussian Process (GPC) [11] Random Subspace 13.34% 86.66%
Random Forest đề xuất Pearson CFS + PCA + Hyperparameter Tuning 2.26% 97.74%
Tỷ lệ lỗi phân lớp (% Error Rate - Càng thấp càng tốt)
------------------------------------------------------------
Decision Tree       : [18.15%] ===================
KNN                 : [16.50%] =================
SVM (RBF)           : [14.85%] ===============
GPC + Subspace [11] : [13.34%] =============
Logistic Regression : [ 7.00%] =======
Mô hình đề xuất (RF): [ 2.26%] ==
------------------------------------------------------------

Kết quả đạt được

  1. Chỉ số phân lớp vượt trội: Mô hình đề xuất đạt tỷ lệ lỗi chỉ 2.26% (tương đương độ chính xác 97.74%), thiết lập mức hiệu năng cao vượt bậc trên tập dữ liệu chuẩn Cleveland.
  2. Triển khai ứng dụng hoàn chỉnh: Xây dựng thành công ứng dụng di động giao diện trực quan 13 bước nhập liệu sinh hiệu, liên kết thời gian thực qua REST API tới máy chủ Ubuntu/Anaconda. Thời gian phản hồi chẩn đoán đạt $<150\text{ms}$.

Đổi mới và đóng góp

  1. Cải tiến quy trình trích chọn đặc trưng kết hợp (Hybrid Feature Selection Pipeline): Khác với các nghiên cứu trước đây chỉ sử dụng đơn lẻ các kỹ thuật lọc hoặc dùng trực tiếp toàn bộ 13-14 thuộc tính, đề tài đã chứng minh việc kết hợp hệ số tương quan Pearson (loại bỏ thuộc tính không liên quan) sau đó áp dụng PCA (nén và trực giao hóa không gian thuộc tính) giúp giải quyết triệt để vấn đề đa cộng tuyến trong dữ liệu y khoa.
  2. Khắc phục hạn chế của các hệ đa phân lớp phức tạp: Nghiên cứu chỉ ra rằng một mô hình phân lớp đơn lẻ nhưng được tối ưu hóa siêu tham số chuẩn xác (như Logistic Regression đạt lỗi 7% hoặc Random Forest đạt lỗi 2.26%) có khả năng vượt trội so với các hệ đa phân lớp phức hợp nhưng không được tinh chỉnh kỹ lưỡng (GPC + Random Subspace đạt lỗi 13.34% trong [11]).
  3. Mức giảm tỷ lệ lỗi vượt bậc: Giảm tỷ lệ lỗi từ 13.34% xuống 2.26%, tức là giảm tới 83.06% lượng sai số so với công trình đối sánh quốc tế của Loris Nanni et al.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng lâm sàng:

  • Tầm soát nguy cơ tại cơ sở y tế tuyến huyện/xã: Hỗ trợ cán bộ y tế cơ sở sàng lọc nhanh bệnh nhân có nguy cơ mắc bệnh mạch vành từ các chỉ số đo lường cơ bản (huyết áp, điện tâm đồ, đường huyết) trước khi quyết định chuyển tuyến.
  • Hệ thống khám chữa bệnh từ xa (Telemedicine): Tích hợp vào cổng thông tin sức khỏe gia đình, cho phép người bệnh nhập các chỉ số định kỳ và nhận cảnh báo rủi ro tức thì.
  • Hỗ trợ bác sĩ cấp cứu: Phân tầng rủi ro nhồi máu cơ tim nhanh tại phòng cấp cứu (Emergency Room Triage) khi tiếp nhận bệnh nhân có triệu chứng đau thắt ngực.
[Bệnh nhân đo sinh hiệu] -> [Nhập App Di Động] -> [API Cloud Gateway] -> [AI Phân tích: 2.26% Error] -> [Bác sĩ duyệt cảnh báo]

Hướng dẫn triển khai hệ thống máy chủ (Ubuntu Server):

# 1. Cài đặt môi trường Anaconda trên Ubuntu 20.04
wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
bash Anaconda3-2020.11-Linux-x86_64.sh -b

# 2. Tạo môi trường ảo và cài đặt thư viện
conda create -n heart_disease_cdss python=3.8 -y
conda activate heart_disease_cdss
pip install flask scikit-learn==0.24.2 pandas numpy gunicorn

# 3. Khởi chạy Backend Service với Gunicorn
gunicorn --workers 4 --bind 0.0.0.0:5000 app:app

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

Hạn chế kỹ thuật:

  • Quy mô tập mẫu: Kích thước dữ liệu Cleveland (303 mẫu) tương đối khiêm tốn; cần bổ sung thêm dữ liệu lâm sàng đa trung tâm từ các bệnh viện tại Việt Nam.
  • Phân loại nhị phân: Mô hình hiện mới phân loại 2 trạng thái (Có bệnh / Không bệnh), chưa phân lớp chi tiết theo 4 mức độ tổn thương động mạch vành (giá trị 1, 2, 3, 4 trong dữ liệu thô).

Hướng phát triển:

  • Mở rộng sang bài toán phân loại đa lớp (Multi-class Classification) dự đoán chi tiết mức độ hẹp lòng mạch vành theo thang đo tim mạch quốc tế.
  • Tích hợp thêm các thuật toán học sâu (Deep Learning) như mạng tích chập 1D (1D-CNN) hoặc mô hình Attention để xử lý trực tiếp tín hiệu chuỗi thời gian điện tâm đồ (Raw ECG Waveform).
  • Triển khai giải thích mô hình AI (Explainable AI - XAI với SHAP hoặc LIME) giúp bác sĩ nắm rõ căn nguyên của từng kết luận chẩn đoán.

Đối tượng hưởng lợi

  • Sinh viên & Học viên ngành CNTT/Y tin học: Nguồn tài liệu tham khảo chi tiết về quy trình khai phá dữ liệu y tế chuẩn mực từ dữ liệu thô đến sản phẩm hoàn thiện.
  • Kỹ sư phát triển phần mềm (Software Engineers): Khung kiến trúc mẫu (Design Pattern) về việc đóng gói mô hình Machine Learning thành RESTful Service và kết nối ứng dụng di động.
  • Cơ sở y tế & Doanh nghiệp sức khỏe (MedTech): Giải pháp lõi có độ chính xác cao sẵn sàng tích hợp vào phần mềm quản lý bệnh viện (HIS/EMR).
  • Các nhà nghiên cứu (Researchers): Bộ phương pháp luận đối sánh thực nghiệm chặt chẽ về xử lý đặc trưng kết hợp Pearson CFS và PCA.

Câu hỏi thường gặp

1. Yêu cầu phần cứng tối thiểu để triển khai hệ thống Backend là gì?

Hệ thống backend có chi phí tính toán rất thấp. Cấu hình tối thiểu: CPU 2 Cores, RAM 2GB, Ổ cứng 10GB SSD trên hệ điều hành Ubuntu 18.04/20.04 LTS hoặc tương đương. Khi hoạt động, thời gian suy luận (Inference Time) cho mỗi ca bệnh chỉ mất dưới $10\text{ms}$.

2. Mô hình xử lý dữ liệu bị khuyết (Missing Values) như thế nào?

Trong tập dữ liệu Cleveland, các bản ghi thiếu dữ liệu ở các thuộc tính phức tạp như ca hoặc thal được tiến hành loại bỏ nếu tỷ lệ thiếu lớn hoặc bù khuyết bằng giá trị trung bình/trung vị (Imputation) của nhóm mẫu cùng nhãn trước khi đưa vào pipeline chuẩn hóa.

3. Tại sao Random Forest lại đạt hiệu năng cao hơn các mạng nơ-ron phức tạp trên tập dữ liệu này?

Với các tập dữ liệu dạng bảng (Tabular Data) quy mô vài trăm đến vài nghìn mẫu, Random Forest có khả năng chống quá khớp (Overfitting) rất mạnh nhờ cơ chế Bagging và chọn tập con thuộc tính ngẫu nhiên, trong khi mạng nơ-ron sâu dễ rơi vào tình trạng quá khớp khi số lượng tham số vượt quá lượng mẫu học.

4. Bác sĩ có thể sử dụng ứng dụng này mà không cần kết nối Internet không?

Phiên bản hiện tại triển khai theo mô hình Client-Server đòi hỏi kết nối mạng nội bộ hoặc Internet để gọi API. Tuy nhiên, mô hình Random Forest sau khi tối ưu hoàn toàn có thể được chuyển đổi định dạng (ONNX hoặc TFLite) để chạy trực tiếp trên thiết bị di động (On-device Inference) ở chế độ Offline.

5. Dữ liệu bệnh nhân gửi qua ứng dụng có đảm bảo an toàn thông tin không?

Hệ thống thiết kế API endpoint hỗ trợ giao thức mã hóa HTTPS/TLS. Đầu vào chỉ chứa các thông số sinh hiệu dạng số (Anonymous Features) đã loại bỏ định danh cá nhân (PII như họ tên, số CMND/CCCD, địa chỉ), đảm bảo tuân thủ các nguyên tắc an toàn dữ liệu y tế.


Kết luận

Đồ án tốt nghiệp "Hệ hỗ trợ chẩn đoán bệnh tim dựa trên kỹ thuật máy học" của tác giả Đặng Minh Tiến và Trương Hoàng Khang đã giải quyết xuất sắc bài toán hỗ trợ chẩn đoán lâm sàng bệnh tim mạch. Bằng việc xây dựng pipeline kết hợp thông minh giữa lựa chọn đặc trưng Pearson, trích xuất đặc trưng PCA và tối ưu hóa siêu tham số cho thuật toán Random Forest, nhóm tác giả đã hạ tỷ lệ phân lớp lỗi xuống mức ấn tượng 2.26% (Độ chính xác 97.74%), vượt trội hoàn toàn so với các công bố quốc tế trước đây.

Không chỉ dừng lại ở mặt học thuật lý thuyết, nghiên cứu đã hiện thực hóa trọn vẹn mô hình thành một hệ thống ứng dụng di động hoàn chỉnh, mở ra tiềm năng ứng dụng to lớn trong việc nâng cao chất lượng chăm sóc sức khỏe cộng đồng, hỗ trợ đắc lực cho ngành y tế tuyến đầu trong kỷ nguyên chuyển đổi số y khoa.