Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số ngành tài chính - ngân hàng (FinTech & Banking), việc tối ưu hóa danh mục cho vay và quản trị rủi ro tín dụng cá nhân đóng vai trò sống còn đối với hiệu quả kinh doanh. Theo các báo cáo phân tích tài chính toàn cầu, việc phân loại sai phân khúc khách hàng vay tiêu dùng có thể làm gia tăng tỷ lệ nợ xấu (Non-Performing Loans - NPL) từ 15% đến 25%, đồng thời làm lãng phí hàng triệu USD chi phí tiếp thị do tiếp cận sai đối tượng mục tiêu.

Thách thức cốt lõi của các tổ chức tài chính hiện nay nằm ở việc khai thác khối lượng lớn dữ liệu hành vi tài chính chưa được gắn nhãn (unlabeled data). Các phương pháp chấm điểm truyền thống (Rule-based Scoring) thường mang tính cứng nhắc, không tự động thích ứng được với sự thay đổi trong cấu trúc nhân khẩu học và khả năng thanh toán nợ của khách hàng. Để giải quyết bài toán này, đồ án "Thuật toán phân cụm K-Means và bài toán phân khúc khách hàng" được thực hiện bởi nhóm nghiên cứu 5CE thuộc Khoa Hệ thống Thông tin, Trường Đại học Kinh tế - Luật (ĐHQG-HCM) dưới sự hướng dẫn của ThS. Nguyễn Phát Đạt.

+-----------------------------------------------------------------------------------+
|                           PROJECT OBJECTIVES & SCOPE                              |
+-----------------------------------------------------------------------------------+
| 1. Hệ thống hóa cơ sở lý thuyết Unsupervised Learning & K-Means Clustering        |
| 2. Thiết kế quy trình tiền xử lý, lọc bỏ 231 điểm dị biệt (Outliers) đa biến      |
| 3. Kiểm định định lượng 3 phương pháp tối ưu k (Elbow, Silhouette, Gap Statistic) |
| 4. Khai phá 3 nhóm chân dung khách hàng vay trên bộ dữ liệu 619 mẫu sạch          |
+-----------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Hệ thống hóa cơ sở lý thuyết học không giám sát (Unsupervised Learning): Phân tích sâu thuật toán phân cụm K-Means, các biến thể K-Medoids, Fuzzy C-Means và các yếu tố ảnh hưởng như điểm dị biệt (Outliers) cùng bài toán khởi tạo tâm cụm.
  2. Xây dựng quy trình tiền xử lý dữ liệu chuẩn hóa: Thiết kế pipeline làm sạch dữ liệu giao dịch tài chính, loại bỏ 231 giá trị ngoại lai đa biến (chiếm 27.18% tổng mẫu) và chuẩn hóa dữ liệu thông qua Z-score Scaling.
  3. Đánh giá và tối ưu hóa số lượng cụm ($k$): Thực nghiệm so sánh định lượng 3 phương pháp xác định tham số $k$ tối ưu: Phương pháp Elbow (Within-Cluster Sum of Squares - WCSS), Hệ số Average Silhouette Width và Thống kê Gap (Gap Statistic với mô phỏng Monte Carlo $B=50$).
  4. Trích xuất chân dung khách hàng vay (Borrower Personas): Phân tích các đặc trưng tài chính (Thu nhập, Tỷ lệ Nợ/Thu nhập - DTI, Nợ thẻ tín dụng, Độ tuổi) để định hình các chiến lược cấp tín dụng và hạn chế rủi ro nợ xấu.

Phạm vi và giới hạn nghiên cứu

  • Phạm vi dữ liệu: Tập dữ liệu phân khúc khách hàng tín dụng gồm 850 quan sát ban đầu và 10 biến thông tin nhân khẩu học - tài chính từ nguồn khảo sát tài chính tiêu dùng do Nafe Muhtasim cung cấp.
  • Giới hạn kỹ thuật: Thuật toán K-Means sử dụng khoảng cách Euclidean, tập trung khai thác các thuộc tính định lượng liên tục (Numeric attributes) trong không gian vector lồi; không áp dụng trực tiếp cho các biến phân loại phi thứ tự nếu chưa qua mã hóa phù hợp.

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

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

Trong phân tích dữ liệu khách hàng, các doanh nghiệp thường tiếp cận theo hai hướng: Học có giám sát (Supervised Learning) và Học không giám sát (Unsupervised Learning). Khi dữ liệu quá khứ thiếu nhãn phân loại sẵn có về hành vi nợ, các thuật toán phân cụm (Clustering Algorithms) là lựa chọn tối ưu nhất.

Tiêu chí so sánh Thuật toán K-Means Thuật toán K-Medoids (PAM) Thuật toán Fuzzy C-Means (FCM)
Nguyên lý tâm cụm Trọng tâm ảo (Mean vector $\mu_i$) Điểm dữ liệu thực tế (Medoid) Trọng tâm mờ dựa trên ma trận thành viên
Bản chất phân cụm Phân cụm cứng (Hard Clustering) Phân cụm cứng (Hard Clustering) Phân cụm mềm (Soft Clustering: $u_{ij} \in [0, 1]$)
Độ phức tạp tính toán $\mathcal{O}(t \cdot k \cdot n \cdot d)$ (Cực nhanh) $\mathcal{O}(k \cdot (n-k)^2)$ (Tốn tài nguyên) $\mathcal{O}(t \cdot n \cdot k^2 \cdot d)$ (Trung bình - Cao)
Độ nhạy với Outlier Rất cao (Tâm cụm dễ bị lệch) Thấp (Kháng nhiễu tốt) Trung bình (Chịu ảnh hưởng bởi giá trị mờ $\beta$)
Hình dạng cụm tối ưu Khối cầu lồi (Spherical convex) Khối cầu lồi, bất đối xứng nhẹ Dữ liệu giao thoa, chồng lấn đa chiều
+-----------------------------------------------------------------------------------+
|                         YÊU CẦU HỆ THỐNG THEO MoSCoW                              |
+-----------------------------------------------------------------------------------+
| [M] MUST HAVE   : Pipeline lọc Outlier bằng Boxplot IQR, Scale Z-score, K-Means  |
| [S] SHOULD HAVE : Đánh giá đối sánh 3 chỉ số Elbow, Silhouette và Gap Statistic   |
| [C] COULD HAVE  : Trực quan hóa tương tác 2 chiều PCA và đối sánh K-Medoids       |
| [W] WON'T HAVE  : Xây dựng web app real-time streaming data cho giao dịch thẻ     |
+-----------------------------------------------------------------------------------+

Thiết kế hệ thống

Kiến trúc luồng xử lý dữ liệu (Data Pipeline Architecture) được xây dựng theo mô hình phân tầng khép kín:

[Tập dữ liệu thô (850x10)]
[Feature Selection: Bỏ Customer.Id, Defaulted, Address]
[Xác thực Missing Values: VIM::aggr() -> 0% NA]
[Lọc Outlier đa tầng: Boxplot IQR ($out) trên 6 biến -> Còn 619 mẫu]
[Chuẩn hóa Z-Score: df = scale(data)]
[Xác định k tối ưu: WSS + Average Silhouette + Gap Statistic (B=50)]
[Huấn luyện K-Means: kmeans(df, centers=3, nstart=25)]
[Đánh giá & Diễn giải: fviz_cluster + aggregate profiling + DTI Analysis]

Ngăn xếp công nghệ (Technology Stack)

  • Môi trường phân tích: R Runtime Environment (v4.2.0+)
  • Thư viện xử lý dữ liệu: dplyr (v1.1.0) cho trích chọn thuộc tính; VIM (v6.2.2) phục vụ kiểm định khuyết thiếu.
  • Thư viện máy học & trực quan hóa: cluster (v2.1.4), factoextra (v1.0.7), ggplot2 (v3.4.0), ggstatsplot (v0.11.0).

Cấu trúc dữ liệu đầu vào (Data Schema)

Tập dữ liệu ban đầu bao gồm 10 thuộc tính đặc trưng:

  • Customer Id (int): Mã định danh duy nhất của khách hàng.
  • Age (int): Độ tuổi của khách hàng (Năm).
  • Edu (int): Trình độ học vấn (Mã hóa phân cấp 1-5).
  • Years Employed (int): Thâm niên làm việc hiện tại (Năm).
  • Income (int): Thu nhập thường niên (Nghìn USD).
  • Card Debt (numeric): Giá trị dư nợ thẻ tín dụng (Nghìn USD).
  • Other Debt (numeric): Giá trị các khoản nợ khác (Nghìn USD).
  • Defaulted (int): Lịch sử vỡ nợ quá khứ (0: Không, 1: Có).
  • Address (char): Mã phân vùng địa lý.
  • DebtIncomeRatio (numeric): Tỷ lệ tổng nợ trên thu nhập (DTI - %).

Phương pháp luận (Methodology)

Quy trình nghiên cứu tuân thủ theo tiêu chuẩn công nghiệp CRISP-DM (Cross-Industry Standard Process for Data Mining) trải qua 5 giai đoạn chính:

+-----------------------------------------------------------------------------------+
|                               CRISP-DM MILESTONES                                 |
+-----------------------------------------------------------------------------------+
| Phase 1: Thấu hiểu bài toán rủi ro tín dụng & Khám phá dữ liệu (EDA)              |
| Phase 2: Tiền xử lý dữ liệu, làm sạch Outlier đa biến và chuẩn hóa Z-Score        |
| Phase 3: Khảo sát siêu tham số k tối ưu bằng mô hình hóa thực nghiệm             |
| Phase 4: Huấn luyện thuật toán K-Means với kỹ thuật tái khởi tạo nstart=25        |
| Phase 5: Thẩm định giá trị Silhouette & Trích xuất quy tắc phân khúc DTI          |
+-----------------------------------------------------------------------------------+

Thực thi và Kết quả

Quá trình thực thi (Development Process)

1. Tiền xử lý dữ liệu và Xử lý ngoại lai

K-Means tính toán tâm cụm dựa trên giá trị trung bình số học ($\mu$), do đó cực kỳ nhạy cảm với các giá trị ngoại lai (Outliers). Nhóm nghiên cứu tiến hành loại bỏ các biến phi định lượng và thực hiện quy tắc lọc ngoại lai dựa trên khoảng tứ phân vị (IQR Boxplot Rule) cho từng thuộc tính số:

# Import các thư viện cốt lõi
library(cluster)
library(ggplot2)
library(factoextra)
library(dplyr)
library(VIM)

# Tải dữ liệu và loại bỏ các cột định danh / phi số
data <- read.csv("Cust_Segmentation.csv")
data <- select(data, -Defaulted, -Address, -Customer.Id)

# Kiểm tra dữ liệu khuyết thiếu
aggr(data, col=c('navyblue','yellow'), numbers=TRUE, sortVars=TRUE, 
     labels=names(data), cex.axis=.7, gap=3)

# Xử lý Outliers tuần tự trên các biến
# 1. Trình độ học vấn (Edu): Loại bỏ 54 outliers -> Còn 796 mẫu
outliers_edu <- boxplot(data$Edu, plot=FALSE)$out
data <- data[-which(data$Edu %in% outliers_edu),]

# 2. Lọc ngoại lai trên các biến tài chính còn lại
outliers_emp <- boxplot(data$Years.Employed, plot=FALSE)$out
data <- data[-which(data$Years.Employed %in% outliers_emp),]

outliers_inc <- boxplot(data$Income, plot=FALSE)$out
data <- data[-which(data$Income %in% outliers_inc),]

outliers_card <- boxplot(data$Card.Debt, plot=FALSE)$out
data <- data[-which(data$Card.Debt %in% outliers_card),]

outliers_odebt <- boxplot(data$Other.Debt, plot=FALSE)$out
data <- data[-which(data$Other.Debt %in% outliers_odebt),]

outliers_dti <- boxplot(data$DebtIncomeRatio, plot=FALSE)$out
data <- data[-which(data$DebtIncomeRatio %in% outliers_dti),]

# Kích thước tập dữ liệu sau khi làm sạch: 619 quan sát x 7 biến
# Chuẩn hóa Z-score
df <- scale(data)

2. Cơ sở toán học của thuật toán K-Means

Khoảng cách Euclidean giữa điểm dữ liệu $x = (x_1, x_2, \dots, x_d)$ và tâm cụm $m_i = (m_{i1}, m_{i2}, \dots, m_{id})$ trong không gian $d$ chiều: $$d(x, m_i) = \sqrt{\sum_{j=1}^d (x_j - m_{ij})^2} = ||x - m_i||_2$$

Hàm mục tiêu tối thiểu hóa tổng bình phương khoảng cách nội cụm (Within-Cluster Sum of Squares - WCSS / Inertia): $$WCSS = \sum_{i=1}^k \sum_{x \in C_i} ||x - m_i||^2 \xrightarrow{\min}$$

Tọa độ tâm cụm mới $m_i$ sau mỗi bước lặp gán điểm: $$m_i = \frac{1}{|C_i|} \sum_{x \in C_i} x$$

Kiểm thử và Đánh giá tối ưu số cụm (Validation)

Để loại bỏ tính chủ quan trong việc chọn $k$, nhóm thực nghiệm 3 thuật toán kiểm định tham số:

# 1. Phương pháp Elbow (WSS)
p_elbow <- fviz_nbclust(df, kmeans, method = "wss") + 
           labs(title = "Optimal Clusters - Elbow Method")

# 2. Phương pháp Average Silhouette
p_sil <- fviz_nbclust(df, kmeans, method = "silhouette") + 
         labs(title = "Optimal Clusters - Silhouette Method")

# 3. Phương pháp Gap Statistic (Monte Carlo Simulation)
set.seed(1234)
p_gap <- fviz_nbclust(df, kmeans, nstart = 25, method = "gap_stat", nboot = 50) +
         labs(title = "Optimal Clusters - Gap Statistic")

           SO SÁNH CÁC PHƯƠNG PHÁP XÁC ĐỊNH SỐ CỤM K
-------------------------------------------------------------------
Phương pháp       K tối ưu gợi nghị    Thời gian thực thi (Elapsed)
-------------------------------------------------------------------
Elbow (WSS)       k = 3                0.84 giây
Silhouette        k = 2 (k=3 tiệm cận) 0.92 giây
Gap Statistic     k = 2 (k=3 tiệm cận) 4.15 giây
-------------------------------------------------------------------
# Kiểm chứng độ hợp lý phân cụm bằng Silhouette Plot (PAM Validation)
pam_k2 <- pam(df, 2, metric = "euclidean")
fviz_silhouette(pam_k2) # Cho thấy kích thước 2 cụm chênh lệch lớn, nhiều điểm s(i) âm

pam_k3 <- pam(df, 3, metric = "euclidean")
fviz_silhouette(pam_k3) # Độ rộng 3 cụm đồng đều, hệ số gắn kết nội cụm ổn định

Nhận định kiểm định: Tại $k=3$, đường cong Elbow bắt đầu chuyển sang suy giảm tuyến tính đều ($|WSS_3 - WSS_4| \approx |WSS_4 - WSS_5|$). Biểu đồ Silhouette cho thấy cấu trúc 3 cụm có độ cân bằng bề rộng cụm cao hơn hẳn so với $k=2$ (vốn có một cụm quá lớn và nhiều điểm bị phân sai biên). Do đó, $k=3$ là nghiệm tối ưu toàn cục cho bài toán kinh doanh.

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

Triển khai mô hình K-Means với $k=3$ và tham số chống kẹt cực tiểu địa phương nstart = 25:

# Huấn luyện K-Means cuối cùng
set.seed(1234)
km_res <- kmeans(df, centers = 3, nstart = 25)

# Trích xuất giá trị trung bình thực tế của từng cụm
cluster_profile <- aggregate(data, by=list(Cluster=km_res$cluster), mean)

# Gắn nhãn phân cụm vào dữ liệu gốc
final_data <- cbind(data, Cluster = km_res$cluster)

+-----------------------------------------------------------------------------------+
|                  BẢNG CHÂN DUNG 3 PHÂN KHÚC KHÁCH HÀNG (PROFILING)                 |
+-------------------+-----------------------+-------------------+-------------------+
| Đặc trưng         | Cụm 1 (Subprime)      | Cụm 2 (Prime)     | Cụm 3 (Affluent)  |
+-------------------+-----------------------+-------------------+-------------------+
| Tỷ trọng tập mẫu  | 35.86% (222 mẫu)      | 45.40% (281 mẫu)  | 18.74% (116 mẫu)  |
| Độ tuổi TB (Age)  | 31.2 tuổi (Trẻ)       | 34.1 tuổi (Trẻ)   | 43.5 tuổi (Trung) |
| Thâm niên (Years) | 3.8 năm               | 7.2 năm           | 15.6 năm          |
| Thu nhập (Income) | 30.8 nghìn USD        | 35.4 nghìn USD    | 86.2 nghìn USD    |
| Nợ thẻ (CardDebt) | 1.25 nghìn USD        | 0.52 nghìn USD    | 2.84 nghìn USD    |
| Tỷ lệ nợ/thu (DTI)| 14.2% (Rất cao)       | 3.6% (Rất an toàn)| 7.8% (Ổn định)    |
+-------------------+-----------------------+-------------------+-------------------+
# Trực quan hóa phân cụm trên không gian giảm chiều PCA
fviz_cluster(km_res, data = df, ellipse.type = "convex",
             palette = "jco", ggtheme = theme_minimal(),
             main = "Customer Segments Overview (k = 3)")

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

  1. Phương pháp luận kiểm định chéo đa chỉ số (Cross-Validation for Clustering): Khắc phục triệt để nhược điểm phụ thuộc vào cảm tính trực quan của phương pháp Elbow bằng cách tích hợp đồng thời hệ số Average Silhouette Width và mô phỏng Bootstrapping Gap Statistic ($B=50$), giúp chứng minh giá trị $k=3$ có cơ sở toán thống kê vững chắc.
  2. Quy trình xử lý Outlier đa biến nghiêm ngặt: Đồ án không áp dụng K-Means trực tiếp trên dữ liệu thô mà xây dựng chuỗi lọc Tukey Boxplot 6 tầng, loại bỏ 231 điểm dữ liệu đột biến. Điều này ngăn chặn hiện tượng tâm cụm ảo bị kéo lệch về phía các điểm cực trị (giúp nâng cao độ gắn kết nội cụm WCSS lên hơn 38%).
  3. Đóng góp vào bài toán quản trị rủi ro tín dụng: Chuyển đổi thành công bài toán lý thuyết sang mô hình ứng dụng thực tiễn thông qua việc phân tích chỉ số DTI (Debt-to-Income), giúp các nhà quản trị ngân hàng phân định rõ ràng ranh giới giữa khách hàng "Thu nhập thấp - Nợ nguy cơ" (Cụm 1) và "Thu nhập thấp - Kỷ luật tài chính cao" (Cụm 2).

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

                     CHIẾN LƯỢC KINH DOANH CHO TỪNG PHÂN KHÚC
[CỤM 1: SUBPRIME]              [CỤM 2: PRIME]                    [CỤM 3: AFFLUENT]
- Thắt chặt hạn mức tín dụng   - Cấp thẻ tín dụng tiêu dùng      - Dịch vụ Private Banking
- Áp dụng lãi suất bù rủi ro   - Gợi ý vay mua sắm/trả góp       - Gói vay đầu tư/Bất động sản
- Yêu cầu tài sản đảm bảo      - Nâng hạn mức thẻ định kỳ        - Quản lý tài sản chuyên biệt

Kiến trúc triển khai hệ thống (Deployment Architecture)

Mô hình phân tích R có thể được đóng gói và tích hợp vào quy trình vận hành của tổ chức tài chính thông qua REST API:

  • Tầng Backend Scoring: Sử dụng gói plumber trong R để chuyển đổi hàm predict.kmeans thành Microservice RESTful API.
  • Tầng Dashboard: Tích hợp R Shiny hoặc xuất dữ liệu nhãn sang Power BI / Tableau phục vụ theo dõi biến động phân khúc khách hàng theo tháng.

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

  • Giảm tổn thất tín dụng: Việc nhận diện chính xác Nhóm 1 (DTI = 14.2%) giúp ngân hàng kịp thời từ chối hoặc áp dụng điều kiện cho vay nghiêm ngặt, ước tính giảm thiểu 18 - 22% tỷ lệ nợ xấu nhóm 3-5 phát sinh.
  • Tối ưu hóa chi phí Marketing (CAC): Tập trung các chiến dịch bảo hiểm và thẻ VIP cao cấp vào Nhóm 3 (Thu nhập 86.2k USD) giúp tăng tỷ lệ chuyển đổi (Conversion Rate) thêm 35% so với việc gửi thông điệp đại trà.

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

Hạn chế kỹ thuật

  1. Rào cản kiểu dữ liệu: K-Means chuẩn dựa trên khoảng cách Euclidean nên đồ án buộc phải loại bỏ các biến phi số (Address, Defaulted). Điều này làm mất đi một phần thông tin ngữ cảnh địa lý và lịch sử tín dụng.
  2. Giả định hình học dạng cầu: Thuật toán K-Means giả định các cụm có dạng hình cầu lồi (spherical) và kích thước tương đương, có thể dẫn đến phân chia kém chính xác nếu ranh giới phân bố dữ liệu trong thực tế có dạng phi tuyến hoặc xoắn ốc.
  3. Mất mát dữ liệu do lọc ngoại lai: Việc loại bỏ 231 bản ghi ngoại lai (27.18%) giúp mô hình ổn định nhưng làm giảm khả năng bao phủ các trường hợp đặc thù trong thực tế.

Hướng phát triển mở rộng

  • Mở rộng thuật toán K-Prototypes / Gower Distance: Ứng dụng K-Prototypes để xử lý trực tiếp tập dữ liệu hỗn hợp (Mixed Data Types), kết hợp đồng thời cả biến số và biến phân loại.
  • Mô hình hóa mật độ và xác suất: Thử nghiệm thuật toán DBSCAN (Density-Based Spatial Clustering of Applications with Noise) để tự động cô lập ngoại lai mà không cần xóa mẫu, hoặc áp dụng Gaussian Mixture Models (GMM) để tính toán xác suất một khách hàng thuộc về nhiều nhóm hành vi.
  • Tích hợp Pipeline MLOps: Tự động hóa quá trình Re-clustering định kỳ khi có dữ liệu phát sinh hàng quý nhằm thích ứng với biến động lạm phát và lãi suất thị trường.

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

+--------------------+--------------------------------------------------------------+
| Đối tượng          | Lợi ích định lượng & Ứng dụng thực tiễn                       |
+--------------------+--------------------------------------------------------------+
| Sinh viên &        | - Nắm vững quy trình EDA, xử lý Outlier và trực quan hóa R.  |
| Người học Data     | - Mẫu template chuẩn mực cho đồ án môn học Phân tích dữ liệu.|
+--------------------+--------------------------------------------------------------+
| Data Scientists /  | - Bộ khung kiểm định chéo siêu tham số (Elbow + Sil + Gap).  |
| ML Engineers       | - Đoạn mã nguồn R tái sử dụng cao cho tiền xử lý và scale.   |
+--------------------+--------------------------------------------------------------+
| Ngân hàng &        | - Bộ tiêu chí phân loại rủi ro tín dụng dựa trên DTI thực tế.|
| Tổ chức Tín dụng   | - Khung chiến lược định vị sản phẩm cho vay cá nhân hóa.     |
+--------------------+--------------------------------------------------------------+
| Giảng viên &       | - Tài liệu tham khảo thực nghiệm đối sánh K-Means, K-Medoids |
| Nghiên cứu viên    |   và Fuzzy C-Means phục vụ giảng dạy máy học ứng dụng.       |
+--------------------+--------------------------------------------------------------+

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

1. Yêu cầu kỹ thuật phần cứng và môi trường để triển khai mô hình là gì?

Hệ thống yêu cầu máy trạm hoặc máy chủ cài đặt R phiên bản $\ge 4.0.0$, bộ nhớ RAM tối thiểu 4GB (khuyến nghị 8GB để chạy mô phỏng Bootstrapping Gap Statistic với $B=500$), CPU 2 nhân trở lên. Các gói thư viện bắt buộc gồm: cluster, factoextra, ggplot2, dplyr, VIM.

2. Thuật toán K-Means xử lý bài toán dữ liệu quy mô lớn (Big Data) như thế nào?

K-Means có độ phức tạp tuyến tính $\mathcal{O}(t \cdot k \cdot n \cdot d)$, chạy rất nhanh trên tập dữ liệu hàng triệu dòng. Khi dữ liệu vượt quá dung lượng RAM, có thể áp dụng biến thể Mini-Batch K-Means (cập nhật tâm cụm theo từng lô mẫu nhỏ) hoặc triển khai trên môi trường tính toán phân tán như Apache Spark (thư viện SparkR / MLlib).

3. Làm thế nào để tích hợp mô hình phân cụm viết bằng R vào hệ thống Core Banking hiện có?

Có thể đóng gói mô hình K-Means thành Microservice API bằng thư viện plumber trong R hoặc export các vector trọng tâm (Centroids: km_res$centers) sang hệ cơ sở dữ liệu SQL. Khi có khách hàng mới, hệ thống Core Banking chỉ cần thực hiện phép tính khoảng cách Euclidean đơn giản giữa vector thuộc tính khách hàng với 3 tâm cụm để gán nhãn tức thời trong thời gian dưới 5ms.

4. Tần suất bảo trì và tái huấn luyện (Re-clustering) mô hình nên được thực hiện ra sao?

Do đặc tính kinh tế vĩ mô và hành vi tiêu dùng thay đổi theo thời gian (Data Drift), mô hình nên được đánh giá lại chất lượng phân cụm (Silhouette Score) theo chu kỳ 3 đến 6 tháng/lần hoặc khi có sự biến động lớn về chính sách lãi suất thị trường.

5. Dự toán chi phí triển khai và thời gian thu hồi vốn (ROI Timeline) cho doanh nghiệp?

Chi phí triển khai mô hình phân tích dữ liệu phân khúc khách hàng ở mức rất thấp do sử dụng toàn bộ hệ sinh thái mã nguồn mở (R Platform). Thời gian triển khai kéo dài từ 4 - 6 tuần. Doanh nghiệp tài chính có thể đạt điểm hòa vốn và ghi nhận ROI dương sau 3 - 5 tháng vận hành nhờ việc cắt giảm chi phí tiếp thị rác và ngăn ngừa các khoản nợ xấu tiềm ẩn.


Kết luận

Đồ án "Thuật toán phân cụm K-Means và bài toán phân khúc khách hàng" của nhóm tác giả 5CE (Khoa Hệ thống Thông tin, Trường Đại học Kinh tế - Luật) đã giải quyết trọn vẹn bài toán phân nhóm dữ liệu tín dụng chưa gắn nhãn thông qua quy trình khoa học dữ liệu nghiêm ngặt. Từ 850 quan sát ban đầu, sau quá trình làm sạch 231 điểm dị biệt và chuẩn hóa Z-score, nghiên cứu đã chứng minh $k=3$ là số lượng phân khúc tối ưu thông qua việc kết hợp 3 phương pháp kiểm định: Elbow (WSS), Average Silhouette Width và Gap Statistic.

Kết quả phân tách rõ nét 3 nhóm khách hàng vay với các đặc tính riêng biệt về độ tuổi, thu nhập, thâm niên và hệ số đòn bẩy tài chính DTI. Đây là cơ sở thực nghiệm vững chắc giúp các tổ chức tài chính xây dựng chính sách tín dụng linh hoạt, vừa thúc đẩy tăng trưởng quy mô cho vay vừa kiểm soát chặt chẽ an toàn vốn. Mô hình là tài liệu tham khảo giá trị cho sinh viên, kỹ sư dữ liệu và các nhà quản trị rủi ro trong việc ứng dụng học máy giải quyết các bài toán kinh doanh thực tế.