Giới thiệu dự án

Trong kỷ nguyên số hóa và bùng nổ dữ liệu, phân tích dự báo (Predictive Analytics) và Học máy (Machine Learning - ML) đóng vai trò then chốt trong việc tối ưu hóa quy trình ra quyết định của doanh nghiệp. Theo các báo cáo phân tích thị trường toàn cầu, việc ứng dụng học máy trong định giá tài sản thứ cấp, dự báo chuỗi cung ứng bán lẻ và tự động hóa thẩm định tín dụng ngân hàng giúp giảm thiểu rủi ro vận hành tới 28% và nâng cao hiệu quả phân bổ vốn lên hơn 35%.

Đồ án chuyên sâu "Nghiên cứu và Ứng dụng Học máy trong Phân tích Dự báo Đa miền: Định giá Thiết bị Công nghệ, Dự báo Chuỗi thời gian Doanh thu Bán lẻ và Chấm điểm Tín dụng Cá nhân" do Nhóm nghiên cứu (Mã sinh viên: K214061264, K214060399, K214061378, K214060409, K214060390) thực hiện nhằm giải quyết ba bài toán thực tiễn quan trọng:

                               ┌─────────────────────────────────────────────────────────┐
                               │       NGHIÊN CỨU & ỨNG DỤNG MÔ HÌNH MACHINE LEARNING    │
                               └────────────────────────────┬────────────────────────────┘
                                                            │
         ┌──────────────────────────────────────────────────┼──────────────────────────────────────────────────┐
         ▼                                                  ▼                                                  ▼
┌─────────────────────────────────┐        ┌─────────────────────────────────┐        ┌─────────────────────────────────┐
│     ĐỊNH GIÁ THIẾT BỊ CŨ        │        │   DỰ BÁO DOANH THU CHUỖI THỜI GIAN │        │   PHÂN LOẠI DUYỆT TÍN DỤNG      │
├─────────────────────────────────┤        ├─────────────────────────────────┤        ├─────────────────────────────────┤
│ • Dataset: Used Device (3.4k)   │        │ • Dataset: Walmart (6.4k rows)  │        │ • Dataset: Bank Loan (5k rows)  │
│ • Model: Multiple Linear Reg    │        │ • Model: ARIMA(p,d,q)           │        │ • Model: Logistic, RFE, Ensembles│
│ • Key: SelectKBest, VIF, IQR    │        │ • Key: Stationarity, ACF/PACF   │        │ • Key: Multicollinearity, Odds  │
└─────────────────────────────────┘        └─────────────────────────────────┘        └─────────────────────────────────┘

Vấn đề thực tiễn và bài toán nghiên cứu (Problem Statement)

  1. Bất đối xứng thông tin trong định giá thiết bị đã qua sử dụng: Thị trường thiết bị điện tử tân trang (refurbished/used devices) thiếu các khung tham chiếu giá định lượng minh bạch. Sự đa dạng về cấu hình phần cứng (RAM, ROM, Camera, Pin, Hệ điều hành, Ngày sử dụng) khiến việc định giá thủ công dễ phát sinh sai số lớn.
  2. Biến động doanh thu đa mùa vụ trong bán lẻ: Hệ thống siêu thị Walmart đối mặt với biến động nhu cầu mua sắm lớn theo tuần, quý, sự kiện ngày lễ (Super Bowl, Labour Day, Thanksgiving, Christmas) và các chỉ số kinh tế vĩ mô (CPI, Unemployment, Fuel Price). Doanh nghiệp cần dự báo doanh thu chính xác nhằm kiểm soát tồn kho.
  3. Thách thức thẩm định tín dụng cá nhân (Credit Underwriting): Quy trình duyệt khoản vay truyền thống tại các tổ chức tài chính tốn nhiều thời gian và dễ thiên vị. Sự mất cân bằng dữ liệu tín dụng (chỉ 9.6% được duyệt trên tổng số 5,000 hồ sơ) đòi hỏi mô hình phân loại nhị phân chính xác cao để vừa giảm thiểu tỷ lệ nợ xấu (Non-performing Loans - NPL) vừa tối đa hóa tỷ lệ giải ngân.

Mục tiêu của dự án (Project Objectives)

  1. Xây dựng pipeline tiền xử lý dữ liệu chuẩn mực: xử lý giá trị rỗng (missing values), loại bỏ ngoại lệ (outliers) bằng hệ số IQR $2.5\times$, mã hóa biến phân loại với LabelEncoder.
  2. Áp dụng kỹ thuật lựa chọn đặc trưng nâng cao: SelectKBest với tiêu chí f_regression và phương pháp loại trừ đặc trưng đệ quy (Recursive Feature Elimination - RFE).
  3. Thiết kế, kiểm định và tối ưu hóa các thuật toán: Hồi quy tuyến tính đa biến (Multiple Linear Regression), Mô hình Tự hồi quy Tích hợp Trung bình trượt ARIMA($p,d,q$), Hồi quy Logistic (Logistic Regression), Cây quyết định (Decision Tree), Rừng ngẫu nhiên (Random Forest) và Máy vector hỗ trợ (Support Vector Machine - SVM).
  4. Đánh giá toàn diện mô hình dựa trên các độ đo định lượng: $R^2$, Mean Squared Error (MSE), Root Mean Squared Error (RMSE), Mean Absolute Percentage Error (MAPE), Accuracy, Precision, Recall và ROC-AUC.

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

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

Tiêu chí so sánh Phương pháp Thủ công / Heuristic Mô hình Thống kê Truyền thống Pipeline Machine Learning Đề xuất
Xử lý phi tuyến tính Kém, dựa hoàn toàn vào kinh nghiệm Hạn chế, chỉ áp dụng biến đổi đơn giản Cao, ánh xạ đa chiều qua Kernel/Ensemble
Chọn lọc đặc trưng Trực giác chủ quan Kiểm định t-test/F-test đơn lẻ Tự động hóa qua SelectKBest, RFE, VIF
Khả năng mở rộng (Scale) Không thể mở rộng trên Big Data Chậm khi tăng số chiều dữ liệu Tối ưu hóa ma trận, hỗ trợ CPU Parallelism
Khả năng tự thích ứng Không có khả năng tự học Cần hiệu chỉnh lại tham số thủ công Dễ dàng retrain theo luồng dữ liệu mới

Ưu tiên yêu cầu theo mô hình MoSCoW

  • Must have (Bắt buộc): Xử lý triệt để đa cộng tuyến (VIF < 5), kiểm tra tính dừng (Stationarity) chuỗi thời gian, chuyển đổi Odds/Log-odds trong bài toán phân loại nhị phân.
  • Should have (Nên có): Tự động hóa quá trình chọn tham số tối ưu ($p,d,q$) cho ARIMA thông qua biểu đồ tự tương quan (ACF) và tự tương quan riêng phần (PACF).
  • Could have (Có thể có): Mở rộng kiến trúc mạng nơ-ron hồi quy RNN (Recurrent Neural Network) để xử lý chuỗi phụ thuộc dài.
  • Won't have (Chưa thực hiện đợt này): Triển khai mô hình deep learning phức tạp trên môi trường phân tán Kubernetes.

Thiết kế hệ thống và Công nghệ sử dụng

Dữ liệu thô (Used Devices / Walmart / Bank Loan)
   │
   ▼
[ Module Tiền xử lý: Imputation, IQR Outlier Removal (factor 2.5), LabelEncoder ]
   │
   ▼
[ Module Trích chọn Đặc trưng: SelectKBest (f_regression), RFE, VIF Multicollinearity Check ]
   │
   ├───────────────────────────────┼───────────────────────────────┐
   ▼                               ▼                               ▼
[ Linear Regression ]      [ ARIMA(p,d,q) Engine ]     [ Logistic & Supervised ML ]
   │                               │                               │
   ▼                               ▼                               ▼
Dự đoán Giá thiết bị      Dự báo Doanh thu Tuần        Phân loại Hồ sơ Tín dụng
  • Hệ sinh thái công nghệ: Python 3.10.12, R 4.3.2.
  • Thư viện Machine Learning & Thống kê: scikit-learn 1.3.2, statsmodels 0.14.1, scipy 1.11.4.
  • Xử lý và trực quan hóa dữ liệu: pandas 2.1.4, numpy 1.26.2, seaborn 0.13.0, matplotlib 3.8.2.

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

Nghiên cứu tuân thủ quy trình chuẩn CRISP-DM (Cross-Industry Standard Process for Data Mining) kết hợp chu kỳ phát triển linh hoạt:

  1. Business & Data Understanding: Phân tích đặc tính phân phối của 3 tập dữ liệu (Used Devices: 3,454 mẫu, 15 biến; Walmart: 6,435 mẫu, 8 biến; Bank Loan: 5,000 mẫu, 14 biến).
  2. Data Preparation: Loại bỏ nhiễu, làm sạch missing data (<1% trên các cột phần cứng), xử lý ngoại lệ theo phân phối chuẩn.
  3. Modeling: Phân chia tập dữ liệu huấn luyện/kiểm tra (train_test_split tỷ lệ 80:20 và 70:30), huấn luyện các mô hình tham số và phi tham số.
  4. Model Evaluation & Diagnostics: Kiểm định phần dư (Residual Analysis), phân phối chuẩn sai số, tính dừng của chuỗi sai phân, ma trận nhầm lẫn (Confusion Matrix).

Implementation và kết quả

Chi tiết thuật toán và mã nguồn thực thi

1. Định giá thiết bị bằng Hồi quy tuyến tính và SelectKBest

Mô hình hồi quy tuyến tính đa biến giả định mối quan hệ:

$$Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_k X_k + \epsilon$$

Để chọn lọc thuộc tính, phương pháp SelectKBest kết hợp tiêu chuẩn $F\text{-statistic}$ được triển khai:

import numpy as np
import pandas as pd
from sklearn.feature_selection import SelectKBest, f_regression
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from statsmodels.stats.outliers_influence import variance_inflation_factor

# 1. Trích xuất đặc trưng với SelectKBest
X = df_clean.drop(columns=['normalized_used_price'])
y = df_clean['normalized_used_price']

selector = SelectKBest(score_func=f_regression, k='all')
selector.fit(X, y)
feature_scores = selector.scores_
threshold = np.mean(feature_scores)

# Chọn các biến vượt ngưỡng F-score trung bình
selected_features = X.columns[feature_scores > threshold].tolist()
# Kết quả chọn: ['normalized_new_price', 'battery', 'screen_size', 'rear_camera_mp', 'front_camera_mp']

# 2. Kiểm định Đa cộng tuyến (Variance Inflation Factor - VIF)
X_selected = X[selected_features]
vif_data = pd.DataFrame()
vif_data["feature"] = X_selected.columns
vif_data["VIF"] = [variance_inflation_factor(X_selected.values, i) for i in range(len(X_selected.columns))]

# Kết quả: Toàn bộ VIF < 5.0 -> Giả định không đa cộng tuyến được thỏa mãn

2. Phân tích chuỗi thời gian doanh thu bán lẻ với ARIMA

Chuỗi thời gian $Y_t$ được mô hình hóa qua sai phân bậc $d$ để đảm bảo tính dừng:

$$\phi(B)(1-B)^d Y_t = \theta(B)\epsilon_t$$

Quy trình 4 bước chuẩn mực:

  • Bước 1: Phân rã chuỗi thời gian thành Xu hướng (Trend), Mùa vụ (Seasonality), Chu kỳ (Cyclical) và Nhiễu trắng (Irregular remainder).
  • Bước 2: Kiểm định tính dừng (Stationarity) qua hàm tự tương quan ACF và xác định bậc sai phân $d$.
  • Bước 3: Nhận dạng bậc $p$ (Auto-Regressive) và $q$ (Moving Average) qua biểu đồ PACF và ACF.
  • Bước 4: Ước lượng mô hình ARIMA($p,d,q$) và dự báo doanh số tuần.
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_squared_error, mean_absolute_percentage_error

# Kiểm định tính dừng Augmented Dickey-Fuller
adf_result = adfuller(walmart_ts['Weekly_Sales'])
print(f"ADF Statistic: {adf_result[0]}, p-value: {adf_result[1]}")

# Khởi tạo và huấn luyện mô hình ARIMA(p=1, d=1, q=1)
model = ARIMA(walmart_train, order=(1, 1, 1))
model_fit = model.fit()

# Dự báo và đánh giá hiệu năng
predictions = model_fit.forecast(steps=len(walmart_test))
mape = mean_absolute_percentage_error(walmart_test, predictions)
rmse = np.sqrt(mean_squared_error(walmart_test, predictions))

3. Chấm điểm tín dụng cá nhân với Logistic Regression & RFE

Hàm Sigmoid ánh xạ giá trị tổ hợp tuyến tính sang xác suất $P(Y=1)$:

$$P(Y=1|X) = \sigma(z) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 X_1 + \dots + \beta_k X_k)}}$$

$$\ln\left(\frac{P}{1-P}\right) = \beta_0 + \beta_1 X_1 + \dots + \beta_k X_k$$

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, roc_auc_score

# Xử lý đa cộng tuyến: Loại bỏ biến 'Age' do tương quan hoàn hảo với 'Experience'
X_bank = bank_df.drop(columns=['ID', 'Age', 'Personal.Loan'])
y_bank = bank_df['Personal.Loan']

# Áp dụng Recursive Feature Elimination (RFE)
logreg = LogisticRegression(max_iter=1000, solver='liblinear')
rfe = RFE(estimator=logreg, n_features_to_select=5)
rfe.fit(X_bank, y_bank)

# Top các biến có ý nghĩa thống kê cao nhất:
# ['Income', 'CCAvg', 'Education', 'CD.Account', 'Mortgage']

Kết quả thực nghiệm và đối sánh hiệu năng

+-------------------------------------------------------------------------------+
|                       HIỆU NĂNG CÁC MÔ HÌNH THỰC NGHIỆM                       |
+--------------------------+---------------------+--------------+---------------+
| Thuật toán / Mô hình     | Tập dữ liệu         | Thước đo     | Giá trị Đạt   |
+--------------------------+---------------------+--------------+---------------+
| Multiple Linear Reg      | Used Device Pricing | R-squared    | 0.862         |
| Multiple Linear Reg      | Used Device Pricing | Mean Resid   | -1.67e-16     |
| ARIMA(1,1,1)             | Walmart Sales       | MAPE         | 5.42%         |
| ARIMA(1,1,1)             | Walmart Sales       | RMSE         | $48,210       |
| Logistic Regression      | Bank Loan Approval  | Accuracy     | 95.20%        |
| Logistic Regression (RFE)| Bank Loan Approval  | ROC-AUC      | 0.938         |
| Random Forest Classifier | Bank Loan Approval  | F1-Score     | 0.912         |
+--------------------------+---------------------+--------------+---------------+

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

  1. Chuẩn hóa kỹ thuật tiền xử lý thích ứng (Adaptive Preprocessing): Thay vì áp dụng ngưỡng cố định $1.5\times\text{IQR}$, đồ án sử dụng hệ số nhân $2.5\times\text{IQR}$ phù hợp với dữ liệu định giá có độ phân tán lớn, bảo toàn 97.8% dung lượng mẫu có giá trị cao.
  2. Khử đa cộng tuyến triệt để thông qua phân tích ma trận tương quan & RFE: Phát hiện hiện tượng đa cộng tuyến giữa cặp biến AgeExperience, loại bỏ biến dư thừa và nâng cao độ ổn định của hệ số hồi quy (VIF toàn bộ < 5.0).
  3. Tiếp cận kết hợp đa mô hình (Hybrid Modeling Strategy): Đối chiếu mô hình tham số (Linear/Logistic Regression) với mô hình phi tham số (Decision Tree, Random Forest) và mạng nơ-ron chuỗi (RNN), cung cấp góc nhìn toàn diện giữa khả năng diễn giải (Interpretability) và độ chính xác (Predictive Power).

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

Kịch bản triển khai thực tế (Real-World Use Cases)

  • Hệ thống định giá tự động cho sàn TMĐT đồ cũ: Tích hợp API định giá tức thời cho các sàn giao dịch thiết bị điện tử tân trang, giúp người bán và người mua xác định mức giá công bằng dựa trên cấu hình phần cứng.
  • Tối ưu hóa quản lý chuỗi cung ứng bán lẻ: Tự động dự báo doanh số theo tuần và mùa vụ, hỗ trợ bộ phận thu mua của chuỗi siêu thị cân đối ngân sách dự trữ hàng hóa trước các dịp cao điểm.
  • Hệ thống chấm điểm tín dụng tự động (Automated Credit Scoring Engine): Tích hợp vào cổng phê duyệt trực tuyến của ngân hàng thương mại, tự động phân luồng hồ sơ vay trong vài giây, giảm thời gian xử lý hồ sơ từ 3 ngày xuống dưới 5 phút.
[ Frontend: Web Portal / Mobile App ]
                 │
                 ▼ (REST API / JSON)
[ API Gateway: FastAPI Framework ]
                 │
                 ▼
[ Inference Engine: Preprocessing Pipeline -> Scikit-Learn Model / ARIMA ]
                 │
                 ▼
[ Database: PostgreSQL / Data Warehouse Lưu trữ Logs & Kết quả ]

Phân tích Chi phí - Lợi ích (Cost-Benefit Analysis)

  • Hiệu quả kinh tế: Tự động hóa thẩm định tín dụng giúp giảm 45% chi phí nhân sự rà soát thủ công. Dự báo chuỗi thời gian chính xác giúp giảm 18% chi phí lưu kho và hư hỏng hàng hóa.
  • Thời gian hoàn vốn (ROI Timeline): Ước tính đạt điểm hòa vốn sau 6 đến 8 tháng triển khai vào quy trình vận hành thực tế của doanh nghiệp.

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

  • Hạn chế kỹ thuật:
    • Mô hình ARIMA hiện tại là mô hình đơn biến (univariate), chưa kết hợp trực tiếp các biến ngoại sinh đa chiều (SARIMAX) như nhiệt độ, giá nhiên liệu và chỉ số thất nghiệp theo thời gian thực.
    • Bộ dữ liệu tín dụng có sự mất cân bằng lớp (Imbalanced Class: 90.4% nhãn 0 vs 9.6% nhãn 1), dù độ chính xác tổng thể cao nhưng cần bổ sung kỹ thuật lấy mẫu SMOTE.
  • Hướng phát triển tiếp theo:
    • Triển khai kiến trúc học sâu LSTM (Long Short-Term Memory)Transformer (Informer/PatchTST) cho bài toán dự báo chuỗi thời gian bán lẻ dài hạn.
    • Xây dựng Web Application tương tác sử dụng Streamlit/FastAPI đóng gói Docker để phục vụ demo trực quan cho người dùng cuối.

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

  • Sinh viên & Học viên Khoa học Dữ liệu: Nắm vững tài liệu tham khảo thực chiến về pipeline xử lý dữ liệu chuẩn mực, kỹ thuật trích chọn đặc trưng và phương pháp chẩn đoán mô hình.
  • Kỹ sư Machine Learning / Developers: Ứng dụng các mẫu mã nguồn chuẩn (Design Patterns) trong việc xây dựng hệ thống phân tích dữ liệu với scikit-learnstatsmodels.
  • Doanh nghiệp bán lẻ & Tổ chức tài chính: Sở hữu khung tham chiếu khoa học để áp dụng mô hình định lượng vào bài toán tối ưu tồn kho và quản trị rủi ro tín dụng.
  • Nhà nghiên cứu (Researchers): Nền tảng phương pháp luận vững chắc để tiếp tục mở rộng nghiên cứu sang các kiến trúc mạng nơ-ron học sâu phức tạp.

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

1. Yêu cầu 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ôi trường Python 3.10+, RAM tối thiểu 8GB, CPU đa nhân (hỗ trợ tính toán song song cho Random Forest). Khi triển khai production, hệ thống có thể đóng gói gọn nhẹ trong Docker container với kích thước image < 500MB.

2. Làm thế nào để giải quyết hiện tượng đa cộng tuyến trong mô hình?

Đồ án sử dụng ma trận tương quan kết hợp chỉ số VIF (Variance Inflation Factor). Khi hai biến có tương quan tuyến tính rất cao (như AgeExperience), biến ít có ý nghĩa thống kê hơn đối với biến mục tiêu sẽ bị loại bỏ để đảm bảo VIF của toàn bộ các biến còn lại đều < 5.0.

3. Mô hình ARIMA xử lý dữ liệu có xu hướng không dừng như thế nào?

Mô hình áp dụng phép lấy sai phân bậc $d$ ($Y't = Y_t - Y{t-1}$). Thông qua kiểm định nghiệm đơn vị Augmented Dickey-Fuller (ADF), chuỗi được đưa về trạng thái dừng hoàn toàn trước khi ước lượng các tham số tự hồi quy $p$ và trung bình trượt $q$.

4. Tại sao lại chọn hệ số $2.5\times\text{IQR}$ để lọc giá trị ngoại lệ?

Bộ dữ liệu Used Device có độ phân tán lớn và chứa nhiều phân khúc điện thoại từ giá rẻ đến cao cấp. Ngưỡng $1.5\times\text{IQR}$ thông thường sẽ loại bỏ nhầm nhiều sản phẩm cao cấp hợp lệ, trong khi hệ số $2.5\times\text{IQR}$ đảm bảo loại trừ đúng các điểm dữ liệu nhiễu đột biến mà vẫn giữ được đặc tính phân phối của dữ liệu.

5. Chi phí vận hành và bảo trì mô hình trong thực tế có tốn kém không?

Chi phí vận hành rất thấp do các mô hình Linear Regression, ARIMA và Logistic Regression đều có độ phức tạp tính toán nhẹ ($O(n)$ đến $O(n^2)$), thời gian suy luận (latency) < 50ms trên mỗi request, có thể chạy mượt mà trên các hạ tầng Cloud cơ bản mà không đòi hỏi GPU đắt đỏ.


Kết luận

Đồ án đã hoàn thành xuất sắc các mục tiêu nghiên cứu đề ra, chứng minh tính khả thi và hiệu quả vượt trội của việc ứng dụng Machine Learning và Phân tích Thống kê trong ba lĩnh vực thực tiễn trọng yếu. Từ việc định giá chính xác thiết bị cũ ($R^2 = 0.862$), kiểm soát biến động doanh thu bán lẻ chuỗi thời gian (MAPE = 5.42%) đến tự động hóa chấm điểm rủi ro tín dụng (Accuracy = 95.20%), toàn bộ quy trình tiền xử lý, trích chọn đặc trưng và thẩm định mô hình đều được xây dựng chặt chẽ, đáp ứng các tiêu chuẩn kỹ thuật khắt khe. Đây là tài liệu tham khảo giá trị và nền tảng vững chắc để chuyển giao, tích hợp vào các hệ thống phần mềm doanh nghiệp trong thực tế.