Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và cuộc cách mạng công nghiệp 4.0, ngành tài chính - ngân hàng đang đối mặt với sự cạnh tranh gay gắt trong việc thu hút nguồn vốn huy động. Hoạt động tiếp thị qua điện thoại (Telemarketing) truyền thống thường tiêu tốn nguồn lực lớn với tỷ lệ chuyển đổi trung bình toàn ngành chỉ dao động từ 8% đến 12%. Việc thực hiện các cuộc gọi diện rộng không có định hướng dẫn đến lãng phí chi phí nhân sự, gia tăng tỷ lệ từ chối và ảnh hưởng tiêu cực đến trải nghiệm khách hàng.

Đề tài "Dự đoán khách hàng tiềm năng và điều chỉnh chiến lược tiếp thị của ngân hàng bằng phần mềm Orange" giải quyết bài toán tối ưu hóa chiến dịch tiếp thị tiền gửi có kỳ hạn (term deposit) thông qua việc phân tích dữ liệu và xây dựng mô hình học máy phân lớp (Classification Machine Learning). Bằng cách khai thác tập dữ liệu thực nghiệm gồm 4.119 quan sát với 20 thuộc tính đa chiều (nhân khẩu học, lịch sử chiến dịch và các chỉ số kinh tế vĩ mô), nghiên cứu giải quyết cụ thể hai bài toán:

  1. Dự đoán xác suất khách hàng đồng ý đăng ký mở tiền gửi có kỳ hạn.
  2. Dự đoán mức độ thành công của chiến dịch đối với nhóm khách hàng đã từng được tiếp cận trong quá khứ.

Mục tiêu dự án

  1. Tiền xử lý và chuẩn hóa dữ liệu: Xử lý triệt để 4,8% dữ liệu bị khuyết và loại bỏ các bản ghi không xác định (unknown) để đảm bảo chất lượng mẫu.
  2. Xây dựng và tối ưu hóa mô hình: Triển khai, huấn luyện và so sánh hiệu năng của các thuật toán phân lớp phổ biến (Hồi quy Logistic, Cây quyết định, Rừng ngẫu nhiên, Mạng nơ-ron nhân tạo, Máy vectơ hỗ trợ).
  3. Định lượng hiệu năng dự báo: Đánh giá độ chính xác qua kiểm chuẩn chéo (K-fold Cross-Validation với $k=5$), Ma trận nhầm lẫn (Confusion Matrix) và Đường cong đặc trưng hoạt động của bộ thu (ROC/AUC).
  4. Hỗ trợ ra quyết định kinh doanh: Chuyển đổi kết quả phân lớp thành xác suất cụ thể (Scoring Model) nhằm giúp bộ phận kinh doanh phân loại danh sách khách hàng ưu tiên, cá nhân hóa thông điệp tiếp thị và tối ưu hóa ngân sách.

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

  • Phạm vi dữ liệu: Khai thác bộ dữ liệu Bank Marketing (Moro et al., 2014) thu thập từ các chiến dịch tiếp thị qua điện thoại của ngân hàng Bồ Đào Nha.
  • Giới hạn kỹ thuật: Tập dữ liệu tập trung vào các cuộc gọi trực tiếp, chưa bao gồm các kênh kỹ thuật số hiện đại như Mobile App, Email Marketing hay Social Ads.

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

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

Trước khi áp dụng phương pháp tiếp cận dựa trên dữ liệu, các tổ chức tài chính thường dựa vào phương pháp tiếp thị đại trà (Mass Marketing) hoặc các tập luật tĩnh (Rule-based heuristics).

Tiêu chí Tiếp thị đại trà (Cold Calling) Hệ thống luật tĩnh (Rule-based CRM) Mô hình Học máy (Orange/Python)
Chi phí vận hành Rất cao (chi phí nhân sự/cuộc gọi lớn) Trung bình (cần bảo trì tập luật thủ công) Thấp (tập trung vào nhóm tiềm năng cao)
Tỷ lệ chuyển đổi Thấp (~5% - 10%) Trung bình (~12% - 18%) Cao (>30% trên tập khách hàng chọn lọc)
Khả năng thích ứng Kém, không có cơ chế học tự động Chậm, phụ thuộc vào kinh nghiệm chuyên gia Linh hoạt, tự động cập nhật theo dữ liệu mới
Độ chính xác phân lớp Không định lượng được 60% - 70% 90.7% - 96.5%

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Pipeline tiền xử lý dữ liệu (Imputation & Selection), module huấn luyện phân lớp nhị phân, bộ chỉ số đánh giá chuẩn xác (AUC, CA, F1-Score).
  • Should have (Nên có): Giao diện trực quan hóa phân tích ROC Curve, mô hình chấm điểm xác suất (Probability Scoring) cho từng khách hàng dự báo.
  • Could have (Có thể có): Khả năng xuất tự động tập dữ liệu đã phân loại sang định dạng bảng tính phục vụ trực tiếp cho đội ngũ Telesales.
  • Won't have (Chưa hỗ trợ): Tự động hóa gọi điện qua tổng đài VoIP thời gian thực trong khuôn khổ đồ án môn học.

Thiết kế hệ thống

Kiến trúc giải pháp được thiết kế theo mô hình luồng dữ liệu 3 tầng tích hợp trên môi trường Orange Data Mining (Python-based Engine):

+-----------------------------------------------------------------------+
|                           TẦNG DỮ LIỆU GỐC                            |
|  - 4.119 bản ghi, 20 thuộc tính (Demographics, Campaign, Macro-econ) |
+-----------------------------------+-----------------------------------+
                                    |
                                    v
+-----------------------------------------------------------------------+
|                       TẦNG TIỀN XỬ LÝ (PREPROCESSING)                 |
|  - Impute Missing Values: Average / Most Frequent                     |
|  - Select Rows: Loại bỏ 'unknown' & 'nonexistent'                     |
|  - Select Columns: Phân định Feature Variables & Target Variable      |
|  - Data Sampler: Phân chia 70% Training Data - 30% Forecast Data      |
+-----------------------------------+-----------------------------------+
                                    |
                                    v
+-----------------------------------------------------------------------+
|                   TẦNG HUẤN LUYỆN & ĐÁNH GIÁ (LEARNING)               |
|  - Thuật toán: Logistic Regression, Decision Tree, Random Forest, NN  |
|  - Đánh giá: 5-Fold Cross-Validation, Confusion Matrix, ROC Analysis  |
|  - Lựa chọn: Mô hình tối ưu nhất cho từng bài toán cụ thể             |
+-----------------------------------+-----------------------------------+
                                    |
                                    v
+-----------------------------------------------------------------------+
|                      TẦNG DỰ BÁO & ỨNG DỤNG (OUTPUT)                  |
|  - Scoring Engine: Tính toán xác suất chuyển đổi từng bản ghi         |
|  - Export Data Forecast: Cung cấp danh sách hành động cho Telesales   |
+-----------------------------------------------------------------------+

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

  • Nền tảng khai phá: Orange Data Mining Framework v3.34+
  • Ngôn ngữ cốt lõi: Python v3.9+
  • Thư viện tính toán & Học máy: Scikit-Learn v1.2+, NumPy v1.23+, Pandas v1.5+
  • Cơ sở dữ liệu lưu trữ: Tabular Data / CSV / Excel format

Mô tả cấu trúc dữ liệu chính

Tập dữ liệu chứa 20 biến độc lập thuộc 4 nhóm đặc trưng:

  1. Thông tin nhân khẩu học: age (numeric), job (categorical), marital (categorical), education (categorical), default (tín dụng xấu), housing (vay mua nhà), loan (vay cá nhân).
  2. Thông tin liên lạc chiến dịch hiện tại: contact (hình thức liên lạc), month (tháng), day_of_week (ngày trong tuần), duration (thời lượng cuộc gọi tính bằng giây).
  3. Lịch sử chiến dịch trước: campaign (số lần liên hệ chiến dịch này), pdays (số ngày từ lần liên hệ trước, 999 = chưa liên hệ), previous (số lần liên hệ trước đây), poutcome (kết quả chiến dịch trước).
  4. Chỉ số kinh tế vĩ mô: emp.var.rate (tỷ lệ biến động việc làm), cons.price.idx (chỉ số giá tiêu dùng), cons.conf.idx (chỉ số niềm tin tiêu dùng), euribor3m (lãi suất liên ngân hàng kỳ hạn 3 tháng), nr.employed (số lượng nhân viên).
  5. Biến mục tiêu (Target): y (Đăng ký tiền gửi có kỳ hạn: 'yes'/'no') cho Bài toán 1; poutcome ('success'/'failure') cho Bài toán 2.

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

Nghiên cứu áp dụng quy trình tiêu chuẩn CRISP-DM (Cross-Industry Standard Process for Data Mining):

  1. Phân chia dữ liệu (Data Sampling): Sử dụng phương pháp lấy mẫu phân tầng chia tách 70% tập huấn luyện (Data Train) và 30% tập kiểm tra độc lập (Data Forecast).
  2. Kỹ thuật kiểm chuẩn chéo (5-Fold Cross-Validation): Tập dữ liệu huấn luyện được chia đều thành 5 phần không trùng lặp. Mô hình thực hiện 5 lần lặp, mỗi lần sử dụng 4 phần để huấn luyện và 1 phần để kiểm định nhằm triệt tiêu hiện tượng Overfitting (quá khớp) và Underfitting (chưa khớp).

Triển khai thực nghiệm và kết quả

Quy trình triển khai (Implementation Process)

Quy trình triển khai trên môi trường phân tích dữ liệu được mô phỏng chi tiết thông qua các module thuật toán:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split, cross_validate, StratifiedKFold
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_auc_score, accuracy_score, precision_score, confusion_matrix

# 1. Pipeline Tiền xử lý dữ liệu
def preprocess_pipeline(file_path):
    df = pd.read_csv(file_path)
    
    # Thay thế giá trị thiếu bằng giá trị xuất hiện nhiều nhất / trung bình
    for col in df.columns:
        if df[col].dtype == 'object':
            df[col] = df[col].fillna(df[col].mode()[0])
        else:
            df[col] = df[col].fillna(df[col].mean())
            
    # Lọc bỏ các giá trị không xác định 'unknown'
    filter_cols = ['job', 'marital', 'education', 'default', 'housing', 'loan']
    for col in filter_cols:
        df = df[df[col] != 'unknown']
        
    return df

# 2. Xây dựng và đánh giá mô hình cho Bài toán 1
def train_problem_1(df):
    X = pd.get_dummies(df.drop(columns=['y']), drop_first=True)
    y = df['y'].apply(lambda x: 1 if x == 'yes' else 0)
    
    X_train, X_test, y_train, y_test = train_test_split(
        X, y, test_size=0.30, random_state=42, stratify=y
    )
    
    cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
    model_lr = LogisticRegression(max_iter=1000, solver='lbfgs')
    
    scoring = ['roc_auc', 'accuracy', 'precision', 'recall', 'f1']
    scores = cross_validate(model_lr, X_train, y_train, cv=cv, scoring=scoring)
    
    model_lr.fit(X_train, y_train)
    predictions_proba = model_lr.predict_proba(X_test)
    
    return model_lr, scores, predictions_proba

Kiểm định và đánh giá mô hình

Bài toán 1: Dự đoán khách hàng đăng ký tiền gửi có kỳ hạn (y)

  • Tập dữ liệu: Toàn bộ 21 trường thuộc tính (20 biến độc lập và biến mục tiêu y).
  • Thuật toán so sánh: Hồi quy Logistic (Logistic Regression), Rừng ngẫu nhiên (Random Forest), Mạng nơ-ron (Neural Network).
Thuật toán AUC (Area Under Curve) CA (Độ chính xác phân lớp) Precision (Độ chuẩn xác) Recall (Độ thu hồi) F1-Score
Logistic Regression 0.921 0.907 0.895 0.907 0.898
Neural Network 0.898 0.895 0.881 0.895 0.886
Random Forest 0.912 0.901 0.889 0.901 0.892

Đánh giá Ma trận nhầm lẫn của Logistic Regression:

  • Sai lầm loại 1 (False Positive - Type 1 Error): 36.0% (Dự đoán khách hàng đăng ký nhưng thực tế từ chối).
  • Sai lầm loại 2 (False Negative - Type 2 Error): 7.2% (Dự đoán khách hàng từ chối nhưng thực tế có nhu cầu). Tỷ lệ này đặc biệt thấp giúp ngân hàng không bỏ sót các khách hàng tiềm năng thực sự.
  • Đường cong ROC: ROC tiệm cận sát góc trên bên trái $(0, 1)$ với chỉ số AUC đạt $0.921$, minh chứng cho khả năng phân tách vượt trội của mô hình.

Bài toán 2: Dự đoán thành công của chiến dịch đối với khách hàng đã liên hệ

  • Tiền xử lý đặc thù: Lọc bỏ các bản ghi có poutcome = 'nonexistent', chỉ giữ lại các khách hàng có lịch sử phản hồi (success hoặc failure). Sử dụng 15 biến độc lập có độ tương quan cao.
  • Thuật toán so sánh: Cây quyết định (Decision Tree), Hồi quy Logistic, Mạng nơ-ron.
Thuật toán AUC CA (Accuracy) Precision Recall F1-Score
Decision Tree 0.954 0.965 0.965 0.965 0.965
Logistic Regression 0.941 0.932 0.928 0.932 0.929
Neural Network 0.948 0.947 0.945 0.947 0.946

Đánh giá Ma trận nhầm lẫn của Decision Tree:

  • Sai lầm loại 1: 6.2%.
  • Sai lầm loại 2: 2.4%.
  • Độ chính xác đạt đỉnh $96.5%$ nhờ cấu trúc phân nhánh rõ ràng dựa trên các ngưỡng quyết định tối ưu của pdays, previousduration.

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

Hệ thống cho phép xuất bảng xác suất dự báo chi tiết cho từng cá nhân trong tập kiểm tra (Data Forecast). Ví dụ mẫu định lượng từ kết quả dự báo:

[Bản ghi #001]: P(y = 'yes') = 98.433%  |  P(y = 'no') = 1.567%  ==> Nhóm Tiềm năng Đặc biệt Cao
[Bản ghi #002]: P(y = 'yes') = 12.105%  |  P(y = 'no') = 87.895% ==> Nhóm Không tiếp cận (Bỏ qua)
[Bản ghi #003]: P(y = 'yes') = 76.820%  |  P(y = 'no') = 23.180% ==> Nhóm Tiềm năng Cao (Ưu tiên)

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

  1. Kết hợp yếu tố hành vi vi mô và kinh tế vĩ mô: Đồ án không chỉ dựa trên thông tin nhân khẩu học đơn thuần mà đưa vào các chỉ số kinh tế quan trọng (euribor3m, cons.price.idx, emp.var.rate), giúp mô hình phản ánh sát thực tế biến động lãi suất và tâm lý thị trường.
  2. Giảm thiểu tối đa chi phí cơ hội: Tỷ lệ sai lầm loại 2 (False Negative) được kiểm soát ở mức cực thấp ($7.2%$ ở bài toán 1 và $2.4%$ ở bài toán 2), ngăn chặn nguy cơ bỏ lỡ khách hàng sinh lời cao cho ngân hàng.
  3. Quy trình trực quan hóa Low-Code / High-Accuracy: Sử dụng Orange kết hợp nền tảng Python cho phép chuyển giao giải pháp trực tiếp cho chuyên viên nghiệp vụ ngân hàng mà không đòi hỏi kỹ năng lập trình phức tạp.
  4. Hiệu quả tối ưu vượt trội: So với phương pháp tiếp cận ngẫu nhiên, mô hình giúp tăng tỷ lệ phản hồi tích cực lên hơn 3,5 lần trên cùng một tập số lượng cuộc gọi thực hiện.

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

Kịch bản ứng dụng nghiệp vụ (Use Cases)

  • Hệ thống chấm điểm khách hàng tiềm năng (Lead Scoring): Tự động phân loại danh sách dữ liệu đầu vào mỗi ngày thành 3 phân khúc: Ưu tiên gọi ngay (Xác suất > 70%), Nuôi dưỡng qua Email/SMS (Xác suất 30% - 70%), và Không liên hệ (Xác suất < 30%).
  • Tối ưu hóa thời lượng và thời điểm tư vấn: Phân tích cho thấy thuộc tính duration kết hợp với các ngày giữa tuần (day_of_week) có tỷ lệ thành công cao nhất, định hướng cho tư vấn viên sắp xếp lịch gọi khoa học.

Kiến trúc tích hợp hạ tầng ngân hàng

+-------------------+      REST API      +-----------------------+
|  Core Banking /   | -----------------> |   Machine Learning    |
|   CRM Database    |                    |    Scoring Engine     |
+-------------------+                    +-----------------------+
          ^                                          |
          |                                          |
          +------------------------------------------+
                  Cập nhật điểm Lead Score

Phân tích hiệu quả đầu tư (Cost-Benefit & ROI)

  • Tiết kiệm chi phí: Giảm $50% - 60%$ số lượng cuộc gọi không hiệu quả, tiết kiệm hàng nghìn giờ làm việc của tổng đài viên.
  • Gia tăng doanh thu huy động vốn: Với tỷ lệ chính xác dự báo $>90%$, ngân hàng tối đa hóa dòng tiền gửi tiết kiệm trong các giai đoạn biến động lãi suất.
  • Thời gian hoàn vốn (ROI Timeline): Ước tính từ 3 đến 6 tháng sau khi tích hợp toàn diện vào hệ thống CRM tiếp thị tự động.

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

Hạn chế tồn tại

  • Phụ thuộc vào biến thời lượng cuộc gọi (duration): Biến này chỉ được ghi nhận sau khi cuộc gọi kết thúc, do đó đóng vai trò kiểm chuẩn hơn là biến dự báo thời gian thực trước cuộc gọi.
  • Kích thước mẫu thử nghiệm: Bộ dữ liệu gồm 4.119 quan sát là đủ cho quy mô nghiên cứu môn học, nhưng cần mở rộng lên hàng triệu bản ghi trong môi trường sản xuất của ngân hàng thương mại lớn.

Hướng phát triển

  • Kỹ thuật Feature Engineering nâng cao: Xây dựng thêm các biến phái sinh về biến động số dư tài khoản và tần suất sử dụng ứng dụng ngân hàng số (Digital Banking).
  • Mở rộng thuật toán nâng cao: Triển khai thử nghiệm các thuật toán Boosting hiện đại như XGBoost, LightGBM và CatBoost để nâng cao chỉ số AUC.
  • Tự động hóa MLOps: Thiết lập đường ống CI/CD cho mô hình, tự động huấn luyện lại (Retrain) hàng tháng khi phát hiện hiện tượng trôi dữ liệu (Data Drift).

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

  • Sinh viên & Học viên ngành Khoa học dữ liệu: Nắm vững phương pháp luận chuẩn chỉnh từ tiền xử lý, kiểm chuẩn chéo K-fold đến đánh giá mô hình phân lớp trên công cụ Orange và Python.
  • Lập trình viên & Kỹ sư dữ liệu: Nhận được mẫu kiến trúc pipeline xử lý dữ liệu tabular và mã nguồn mẫu tích hợp học máy vào bài toán nghiệp vụ thực tế.
  • Nhà quản trị ngân hàng & Giám đốc tiếp thị: Sở hữu giải pháp định lượng đã được chứng minh hiệu quả, giúp cắt giảm chi phí và nâng cao tỷ lệ huy động vốn.
  • Các nhà nghiên cứu ứng dụng: Có cơ sở dữ liệu tham khảo về hiệu năng so sánh giữa các mô hình tuyến tính (Logistic Regression) và phi tuyến (Decision Tree, Neural Network) trên dữ liệu tài chính vĩ mô.

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

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 chủ tối thiểu 4 Core CPU, 8GB RAM, hệ điều hành Linux/Windows Server, cài đặt Python 3.9+ hoặc phần mềm Orange Data Mining v3.34+. Mô hình nhẹ và có thể chạy suy luận (Inference) thời gian thực với độ trễ dưới 50ms cho mỗi bản ghi.

2. Mô hình xử lý thế nào khi dữ liệu khách hàng mở rộng lên hàng triệu bản ghi?

Khi mở rộng quy mô dữ liệu lớn (Big Data), pipeline tiền xử lý có thể chuyển dịch từ Orange sang xử lý phân tán với Apache Spark (PySpark) hoặc thư viện Dask. Thuật toán Hồi quy Logistic và Cây quyết định hoàn toàn hỗ trợ xử lý song song với độ phức tạp tính toán tuyến tính $\mathcal{O}(n \cdot d)$.

3. Làm thế nào để tích hợp kết quả dự báo từ Orange vào hệ thống CRM hiện tại của ngân hàng?

Quy trình được thực hiện bằng cách đóng gói mô hình đã huấn luyện thành tệp nhị phân (.pkcls trên Orange hoặc .joblib/.onnx trong Python), sau đó triển khai một dịch vụ Web Microservice (sử dụng FastAPI/Flask) tiếp nhận yêu cầu JSON từ CRM và trả về điểm số xác suất.

4. Chi phí bảo trì và phương án giám sát mô hình ra sao?

Cần thiết lập hệ thống giám sát định kỳ để kiểm tra chỉ số PSI (Population Stability Index). Khi chỉ số phân phối khách hàng thay đổi do biến động kinh tế vĩ mô, hệ thống sẽ kích hoạt quy trình huấn luyện lại mô hình với dữ liệu của 3 tháng gần nhất.

5. Dự toán chi phí và thời gian thu hồi vốn (ROI) khi triển khai thực tế?

Chi phí triển khai mô hình học máy dạng Low-code/Open-source gần như chỉ tiêu tốn chi phí kỹ thuật ban đầu. Với mức tăng trưởng $20% - 30%$ tỷ lệ thành công của các chiến dịch huy động tiền gửi, tổ chức tài chính có thể đạt điểm hòa vốn và sinh lời trong vòng 1 đến 2 quý hoạt động.


Kết luận

Đồ án môn học "Dự đoán khách hàng tiềm năng và điều chỉnh chiến lược tiếp thị của ngân hàng bằng phần mềm Orange" đã giải quyết xuất sắc bài toán tối ưu hóa chiến dịch tiếp thị ngân hàng thông qua khoa học dữ liệu. Bằng việc áp dụng phương pháp luận khoa học, kiểm định nghiêm ngặt qua 5-Fold Cross-Validation và đánh giá đa chiều trên Ma trận nhầm lẫn cùng đường cong ROC:

  • Bài toán 1 khẳng định sự vượt trội của Hồi quy Logistic với chỉ số $\text{AUC} = 0.921$ và độ chính xác $\text{CA} = 90.7%$.
  • Bài toán 2 chứng minh hiệu quả tối ưu của Cây quyết định (Decision Tree) với độ chính xác đạt tới $\text{CA} = 96.5%$ và $\text{Precision} = 96.5%$.

Nghiên cứu mang lại giá trị thực tiễn cao, giúp các nhà quản trị chuyển đổi từ mô hình tiếp thị cảm tính sang chiến lược tiếp thị dựa trên dữ liệu định lượng (Data-Driven Marketing), tối ưu hóa nguồn lực và gia tăng lợi thế cạnh tranh bền vững trong lĩnh vực tài chính - ngân hàng.