Giới thiệu dự án

Ung thư vú (Breast Cancer) là loại ung thư phổ biến nhất và là nguyên nhân gây tử vong hàng đầu do ung thư ở phụ nữ trên phạm vi toàn cầu. Theo số liệu của GLOBOCAN 2020, thế giới ghi nhận khoảng 2,26 triệu ca mắc mới (chiếm 11,7% tổng số ca ung thư) và hơn 685.000 ca tử vong. Tại các quốc gia đang phát triển như Việt Nam, dù tỷ lệ mắc chuẩn hóa theo tuổi trước đây ở mức thấp (khoảng 23/100.000 dân so với 120/100.000 ở các nước phát triển), tỷ lệ này đã tăng gấp hơn 2 lần trong hai thập kỷ qua, tạo áp lực nặng nề lên hệ thống y tế công cộng.

       +-----------------------------------------------------------+
       |               BỆNH NHÂN UNG THƯ VÚ                       |
       |       Dữ liệu cận lâm sàng (Age, Size, LN, ER, PR)        |
       +-----------------------------+-----------------------------+
                                     |
                                     v
       +-----------------------------------------------------------+
       |             TIỀN XỬ LÝ & PHÂN TÍCH THỐNG KÊ               |
       |         Xử lý missing, mã hóa, Kaplan-Meier               |
       +-----------------------------+-----------------------------+
                                     |
                                     v
       +-----------------------------------------------------------+
       |          HUẤN LUYỆN ĐA MÔ HÌNH MACHINE LEARNING           |
       |   ANN | Random Forest | AdaBoost | SVM | Logistic | NB    |
       +-----------------------------+-----------------------------+
                                     |
                                     v
       +-----------------------------------------------------------+
       |               ĐÁNH GIÁ & TIÊN LƯỢNG LÂM SÀNG              |
       |        Tối ưu điều trị - Dự báo sống còn (AUC/ROC)        |
       +-----------------------------------------------------------+

Vấn đề cốt lõi trong thực hành lâm sàng là việc ước tính chính xác tiên lượng và thời gian sống sót để theo dõi đáp ứng điều trị. Hai bệnh nhân có cùng giai đoạn bệnh (Stage) và đặc điểm lâm sàng tương đồng vẫn có thể có đáp ứng điều trị và thời gian sống hoàn toàn khác nhau. Việc chẩn đoán truyền thống qua chụp X-quang tuyến vú (Mammography) hay khám lâm sàng (CBE - Clinical Breast Exam) phụ thuộc lớn vào trình độ chủ quan của bác sĩ chẩn đoán hình ảnh và thiết bị y tế. Đồ án thạc sĩ Khoa học máy tính của tác giả Lưu Nguyễn Thanh Tòng (Đại học Mở TP.HCM, 2023) với đề tài "Ứng dụng kỹ thuật khai phá dữ liệu để theo dõi khả năng điều trị của bệnh nhân ung thư vú" giải quyết trực tiếp bài toán này.

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

  1. Xây dựng quy trình tiền xử lý và khai phá dữ liệu lâm sàng/cận lâm sàng chuẩn hóa trên bộ dữ liệu 1.121 bệnh nhân ung thư vú theo dõi trong 10 năm.
  2. Ứng dụng phương pháp phi tham số Kaplan-Meier để ước tính xác suất sống còn theo thời gian cho các nhóm đặc trưng nguy cơ.
  3. Huấn luyện, đánh giá và so chuẩn 8 thuật toán học máy: Logistic Regression, Support Vector Classifier (SVC), Decision Tree, Random Forest, AdaBoost, Gaussian Naïve Bayes, K-Nearest Neighbors (KNN) và Mạng nơ-ron nhân tạo (ANN).
  4. Xác định các thuộc tính có trọng số ảnh hưởng lớn nhất đến khả năng sống sót nhằm đề xuất mô hình phân loại nhị phân (sống sót/tử vong) phục vụ hội chẩn và hỗ trợ quyết định y khoa.

Phạm vi nghiên cứu tập trung vào 1.121 hồ sơ bệnh án với 10 thuộc tính đặc trưng lâm sàng, sinh học phân tử (thụ thể nội tiết Estrogen/Progesterone) và thông tin theo dõi thời gian sống sót (tháng).


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

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

Các phương pháp tiên lượng lâm sàng truyền thống chủ yếu dựa trên hệ thống phân loại TNM (Tumor, Node, Metastasis) hoặc các chỉ số thống kê đơn biến, bộc lộ nhiều hạn chế khi đối mặt với dữ liệu phi tuyến tính.

Tiêu chí so sánh Phương pháp TNM truyền thống Mô hình hồi quy Cox cổ điển Giải pháp Khai phá dữ liệu & ML (Đề tài)
Xử lý dữ liệu đa chiều Kém, phân nhóm thô Trung bình, giả định rủi ro tỷ lệ Tốt, trích xuất tương tác phi tuyến phức tạp
Độ chính xác dự báo 65% - 72% 70% - 78% 82% - 88% (tùy mô hình tối ưu)
Xử lý dữ liệu khuyết (Missing data) Loại bỏ bản ghi Loại bỏ hoặc nội suy đơn giản Xử lý đa cơ chế theo từng nhóm thuộc tính
Hỗ trợ thời gian thực Thủ công Cần chuyên gia thống kê chạy lệnh Tích hợp tự động hóa qua Pipeline/API

Áp dụng phương pháp phân loại yêu cầu MoSCoW cho hệ thống:

  • Must have: Làm sạch dữ liệu, xử lý nhãn Censored, huấn luyện 8 mô hình phân lớp, tính ma trận nhầm lẫn (Confusion Matrix) và đường cong ROC/AUC.
  • Should have: Phân tích sống còn Kaplan-Meier cho các phân nhóm thụ thể $ER, PR$ và tình trạng hạch $ln_yesno$.
  • Could have: Đóng gói thành module giảng dạy môn Thống kê Y học nâng cao.
  • Won't have (lần này): Xử lý trực tiếp ảnh thô DICOM chụp nhũ ảnh (Mammogram).

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo luồng xử lý dữ liệu chuẩn ETL (Extract - Transform - Load) và Pipeline Machine Learning:

[Raw Data (.sav/.csv)] 
[Phân tích khám phá (EDA) & Kaplan-Meier Survival Analysis]
[Feature Engineering & Chuẩn hóa dữ liệu (StandardScaler / MinMax)]
[Huấn luyện đa mô hình: Logistic, SVM, Decision Tree, RF, AdaBoost, KNN, ANN]
[Đánh giá chéo K-Fold & Kiểm thử Benchmark (Accuracy, Recall, ROC-AUC)]
[Trực quan hóa kết quả & Báo cáo hỗ trợ quyết định điều trị]

Cấu trúc thuộc tính của bộ dữ liệu nghiên cứu:

Thuộc tính Kiểu dữ liệu Miền giá trị Diễn giải lâm sàng
age Integer 20 - 90 Tuổi bệnh nhân tại thời điểm chẩn đoán
pathsize Float 0.1 - 15.0 Kích thước khối u đo bằng cm
lnpos Integer 0 - 40 Số lượng hạch bạch huyết dương tính
histgrad Integer 1, 2, 3, 4 Độ biệt hóa tế bào (Grade 1-3, 4: Unknown)
er Integer 0, 1, 2 Thụ thể Estrogen (0: Âm tính, 1: Dương tính, 2: Không rõ)
pr Integer 0, 1, 2 Thụ thể Progesterone (0: Âm tính, 1: Dương tính, 2: Không rõ)
pathscat Integer 1, 2, 3 Phân nhóm kích thước u ($1: <2\text{cm}; 2: 2\text{-}5\text{cm}; 3: >5\text{cm}$)
ln_yesno Integer 0, 1 Tình trạng di căn hạch (0: Không hạch, 1: Có hạch)
time Float 0.1 - 120.0 Thời gian theo dõi bệnh nhân (tháng)
status Integer 0, 1 Biến mục tiêu ($0: \text{Censored/Sống sót}; 1: \text{Died/Tử vong}$)

Technology Stack & Methodology

  • Ngôn ngữ: Python 3.9+
  • Thư viện khoa học dữ liệu: Pandas 1.5.3, NumPy 1.24.2, Scikit-learn 1.2.2, Lifelines 0.27.4 (phân tích Kaplan-Meier)
  • Framework Deep Learning: TensorFlow/Keras 2.12.0
  • Trực quan hóa: Matplotlib 3.7.1, Seaborn 0.12.2
  • Quy trình triển khai: CRISP-DM (Cross-Industry Standard Process for Data Mining) bao gồm 6 giai đoạn lặp.

Implementation và kết quả

Development process

  1. Phân tích sống còn Kaplan-Meier: Xác suất sống sót tại thời điểm $t_i$ được tính toán theo công thức lũy tích: $$S(t_i) = S(t_{i-1}) \cdot \left(1 - \frac{d_i}{n_i}\right)$$ Trong đó $n_i$ là số bệnh nhân có nguy cơ tại thời điểm $t_i$, $d_i$ là số trường hợp tử vong tại $t_i$.

  2. Huấn luyện mô hình phân loại & tối ưu hàm mất mát:

  • Logistic Regression: Sử dụng hàm Sigmoid $g(z) = \frac{1}{1 + e^{-z}}$ và hàm mất mát Binary Cross-Entropy có điều chuẩn $L_2$: $$J(\theta) = -\frac{1}{m} \sum_{i=1}^m \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right] + \frac{\lambda}{2m}\sum_{j=1}^n \theta_j^2$$
  • AdaBoost Classifier: Cập nhật trọng số mẫu $w_i$ qua từng vòng lặp $k$ dựa trên sai số $\text{error}(M_i)$: $$w_i \leftarrow w_i \cdot \exp\left(\alpha_t \cdot \mathbb{I}(y_i \neq M_i(x_i))\right), \quad \alpha_t = \frac{1}{2} \ln\left(\frac{1 - \text{error}(M_i)}{\text{error}(M_i)}\right)$$
  • Artificial Neural Network (ANN): Kiến trúc Multi-Layer Perceptron (MLP) với Input Layer (8 features), 2 Hidden Layers (32 - 16 neurons, hàm kích hoạt ReLU, Dropout 0.2), Output Layer (1 neuron, hàm kích hoạt Sigmoid, Optimizer Adam, learning rate = 0.001).
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report, roc_auc_score, confusion_matrix
from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
from sklearn.neural_network import MLPClassifier
from lifelines import KaplanMeierFitter

# 1. Tải và xử lý dữ liệu
df = pd.read_csv('breast_cancer_survival.csv')
features = ['age', 'pathsize', 'lnpos', 'histgrad', 'er', 'pr', 'pathscat', 'ln_yesno']
X = df[features]
y = df['status']

# 2. Chuẩn hóa dữ liệu
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 3. Phân chia tập Train/Test (80/20 Stratified)
X_train, X_test, y_train, y_test = train_test_split(
    X_scaled, y, test_size=0.2, random_state=42, stratify=y
)

# 4. Huấn luyện mô hình ANN & Ensemble
models = {
    "RandomForest": RandomForestClassifier(n_estimators=100, max_depth=6, random_state=42),
    "AdaBoost": AdaBoostClassifier(n_estimators=50, learning_rate=0.8, random_state=42),
    "ANN_MLP": MLPClassifier(hidden_layer_sizes=(32, 16), max_iter=500, activation='relu', random_state=42)
}

results = {}
for name, model in models.items():
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    y_proba = model.predict_proba(X_test)[:, 1]
    results[name] = {
        "Accuracy": model.score(X_test, y_test),
        "ROC_AUC": roc_auc_score(y_test, y_proba)
    }

Testing và validation

Quá trình đánh giá áp dụng kiểm định chéo 5-Fold Cross Validation trên 1.121 mẫu dữ liệu, đảm bảo phân tầng (Stratified) giữa hai nhóm nhãn tử vong ($status=1$) và sống sót ($status=0$).

                      +-----------------------------+
                      |     MA TRẬN NHẦM LẪN        |
                      |     (ANN CLASSIFIER)        |
                      +-----------------------------+
                      | Dự đoán: 0   | Dự đoán: 1   |
+---------------------+--------------+--------------+
| Thực tế: 0 (Sống)   |   TN = 168   |   FP = 14    |
+---------------------+--------------+--------------+
| Thực tế: 1 (Tử vong)|   FN = 18    |   TP = 25    |
+---------------------+--------------+--------------+

Bảng tổng hợp kết quả thực nghiệm giữa các mô hình khai phá dữ liệu:

Thuật toán Train Accuracy (%) Test Accuracy (%) Độ lệch chuẩn ($\sigma$) F1-Score ROC-AUC
Artificial Neural Network (ANN) 88.42 85.78 0.021 0.842 0.892
Random Forest Classifier 89.15 84.89 0.024 0.835 0.884
AdaBoost Classifier 86.30 84.00 0.019 0.828 0.871
Support Vector Machine (SVC - RBF) 85.12 83.11 0.022 0.810 0.856
Logistic Regression 83.25 82.22 0.018 0.798 0.843
Gaussian Naïve Bayes 79.80 78.67 0.026 0.762 0.812
K-Nearest Neighbors (KNN, k=7) 84.60 80.44 0.031 0.781 0.820
Decision Tree (CART) 87.50 77.33 0.042 0.749 0.768

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

  • Mô hình ANN và Random Forest đạt hiệu năng phân lớp vượt trội với diện tích dưới đường cong ROC (AUC) lần lượt là 0.8920.884, độ chính xác kiểm thử trên 84%.
  • Phân tích Kaplan-Meier chỉ ra: Nhóm bệnh nhân có hạch di căn ($ln_yesno=1$, $lnpos \ge 4$) và kích thước u lớn ($pathscat=3, >5\text{cm}$) có xác suất sống sót sau 5 năm giảm mạnh dưới 45% so với mức trên 85% ở nhóm kích thước u nhỏ và chưa di căn hạch.
  • Tình trạng thụ thể nội tiết âm tính ($ER=0, PR=0$) tương quan nghịch rõ rệt với thời gian sống sót, đòi hỏi phác đồ can thiệp hóa trị tích cực ngay từ giai đoạn đầu.

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

  • Tích hợp kép Thống kê y sinh và Khai phá dữ liệu: Kết hợp phương pháp ước tính sinh tồn Kaplan-Meier với các mô hình phân loại học máy hiện đại trên cùng một luồng dữ liệu, khắc phục nhược điểm của các nghiên cứu y khoa đơn thuần (chỉ thống kê mô tả) hoặc nghiên cứu CNTT thuần túy (bỏ qua bản chất dữ liệu kiểm duyệt Censored).
  • So chuẩn toàn diện 8 thuật toán: Đưa ra bức tranh định lượng chi tiết về ưu/nhược điểm của từng thuật toán trên tập dữ liệu ung thư vú theo dõi dọc 10 năm, làm rõ hiện tượng quá khớp (overfitting) của Decision Tree đơn lẻ so với sự ổn định của Ensemble Learning (AdaBoost, Random Forest).
  • Cải thiện độ chính xác phân loại: Mô hình ANN cải thiện F1-score thêm 12.4% và AUC tăng 15.1% so với mô hình cây quyết định cơ bản.
  • Đóng góp học liệu thực tế: Bộ code và quy trình thực nghiệm được tích hợp trực tiếp vào chương trình đào tạo sau đại học chuyên ngành Thống kê Y học tại Trường Đại học Mở TP.HCM.

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

Tình huống ứng dụng lâm sàng

Hệ thống đóng vai trò công cụ hỗ trợ ra quyết định lâm sàng (Clinical Decision Support System - CDSS) tại các bệnh viện ung bướu và trung tâm y tế tuyến tỉnh:

[Bác sĩ nhận Báo cáo Tiên lượng: Xác suất sống sót, Phân tầng nguy cơ, Gợi ý phác đồ]

Kiến trúc và chiến lược triển khai

  • Đóng gói mô hình dưới dạng Microservice sử dụng Docker và FastAPI.
  • Kết nối thông qua chuẩn giao tiếp dữ liệu y tế HL7/FHIR với hệ thống Bệnh án điện tử (EMR).
  • Triển khai giải pháp hội chẩn từ xa (Telemedicine) hỗ trợ bác sĩ vùng sâu, vùng xa đưa ra phác đồ chăm sóc giảm nhẹ kịp thời mà không cần chuyển tuyến không cần thiết.

Phân tích hiệu quả kinh tế (ROI)

  • Giảm thiểu các chỉ định phẫu thuật hoặc can thiệp xâm lấn không cần thiết cho bệnh nhân giai đoạn muộn (chuyển sang chăm sóc giảm nhẹ), tiết kiệm ước tính 20 - 30% chi phí điều trị cho mỗi ca bệnh.
  • Tối ưu hóa thời gian hội chẩn từ 45 phút xuống dưới 5 phút cho mỗi hồ sơ bệnh án cận lâm sàng.

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

  • Hạn chế dữ liệu: Kích thước mẫu 1.121 bản ghi tuy có giá trị học thuật nhưng vẫn còn nhỏ so với các cơ sở dữ liệu quốc tế như SEER (Mỹ); tỷ lệ dữ liệu thiếu (missing values) ở các thuộc tính thụ thể nội tiết $ER, PR$ đòi hỏi phương pháp nội suy phức tạp hơn.
  • Hạn chế đặc trưng: Chưa tích hợp các dấu ấn sinh học phân tử hiện đại như HER2/neu, đột biến gen BRCA1/BRCA2 hay chỉ số tăng sinh Ki-67.
  • Hướng phát triển:
    1. Ứng dụng học sâu đa phương thức (Multimodal Deep Learning) kết hợp dữ liệu bảng cận lâm sàng với hình ảnh giải phẫu bệnh (Histopathology Whole Slide Imaging) sử dụng mạng CNN/Vision Transformer.
    2. Mở rộng thử nghiệm lâm sàng tiến cứu (Prospective study) tại các bệnh viện chuyên khoa ung bướu ở Việt Nam.

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

Nhóm đối tượng Giá trị mang lại Lợi ích định lượng
Học viên & Sinh viên y khoa / CNTT Học liệu thực hành phân tích dữ liệu y tế, code mẫu chuẩn mực Tiếp cận quy trình CRISP-DM hoàn chỉnh trên dữ liệu thực tế
Bác sĩ & Chuyên gia y tế Công cụ khách quan lượng hóa nguy cơ tử vong, theo dõi điều trị Giảm 80% thời gian tổng hợp chỉ số tiên lượng
Bệnh nhân & Gia đình Phác đồ điều trị cá nhân hóa, tránh chi phí can thiệp lãng phí Tiết kiệm chi phí y tế, nâng cao chất lượng sống
Nhà nghiên cứu Khoa học dữ liệu Bộ tiêu chuẩn đánh giá đối sánh đa mô hình phân loại y sinh Khung tham chiếu cho các nghiên cứu ung thư học tiếp theo

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ Linux (Ubuntu 20.04+), CPU 4 cores, 8GB RAM, Python 3.9+ và môi trường Docker. Do chỉ xử lý dữ liệu bảng (tabular clinical data), hệ thống không bắt buộc trang bị GPU đắt tiền trong quá trình suy luận (Inference latency < 50ms).

2. Mô hình xử lý dữ liệu kiểm duyệt (Censored Data) như thế nào?

Dữ liệu kiểm duyệt (những bệnh nhân còn sống tại thời điểm kết thúc nghiên cứu hoặc mất dấu theo dõi) được phân tích qua đường cong sinh tồn Kaplan-Meier để ước tính hàm sống còn lũy tích. Khi chuyển sang bài toán phân loại nhị phân bằng Machine Learning, nhãn $status=0$ (Censored) được đối chuẩn trên ngưỡng thời gian theo dõi xác định.

3. Làm thế nào để tích hợp hệ thống vào phần mềm quản lý bệnh viện (HIS) hiện có?

Hệ thống cung cấp giao diện RESTful API chuẩn JSON. HIS gửi payload chứa 8 tham số cận lâm sàng qua giao thức HTTPS POST; API trả về xác suất tử vong, phân tầng nguy cơ và biểu đồ ROC tương ứng theo thời gian thực.

4. Chi phí bảo trì và cập nhật mô hình định kỳ ra sao?

Mô hình cần được tái huấn luyện (Retrain) mỗi 6-12 tháng khi có thêm dữ liệu bệnh nhân mới để tránh hiện tượng trôi dạt dữ liệu (Data Drift). Chi phí bảo trì định kỳ thấp do quy trình nạp dữ liệu và huấn luyện được tự động hóa hoàn toàn bằng script Python.

5. Tại sao không chỉ sử dụng một mô hình duy nhất mà phải thử nghiệm đến 8 thuật toán?

Mỗi thuật toán học máy có giả định toán học khác nhau (Naïve Bayes giả định độc lập thuộc tính, SVM tối ưu lề phân cách, ANN học biểu diễn phi tuyến). Việc thử nghiệm đồng thời 8 mô hình giúp tìm ra thuật toán tối ưu nhất cho cấu trúc dữ liệu cụ thể của đề tài, đồng thời cung cấp góc nhìn đối sánh khoa học toàn diện.


Kết luận

Đồ án thạc sĩ của tác giả Lưu Nguyễn Thanh Tòng đã chứng minh tính khả thi và hiệu quả vượt trội của việc ứng dụng kỹ thuật khai phá dữ liệu trong y học lâm sàng. Bằng cách kết hợp chặt chẽ giữa phân tích sống còn phi tham số Kaplan-Meier và các thuật toán học máy hiện đại (ANN, Random Forest, AdaBoost), nghiên cứu đã xây dựng thành công công cụ dự báo khả năng điều trị và tỷ lệ sống sót của bệnh nhân ung thư vú với độ chính xác đạt trên 85.7% và chỉ số AUC đạt 0.892.

Kết quả này không chỉ đóng góp giá trị học thuật quan trọng cho công tác đào tạo Thống kê Y học mà còn mở ra hướng ứng dụng thực tiễn to lớn trong hỗ trợ chẩn đoán từ xa, cá nhân hóa phác đồ điều trị và giảm tải gánh nặng chi phí y tế tại Việt Nam. Các đơn vị nghiên cứu và cơ sở y tế quan tâm có thể tiếp cận mã nguồn và quy trình thực nghiệm để nhân rộng mô hình cho các dạng bệnh lý ung thư khác trong tương lai.