SYLLABUS ECONOMIC FORECASTING (5)
Giai đoạn 7 - Economic Data Engineering (Ngày 766–825, 60 ngày)
PHẦN A: DATA SOURCES (Ngày 766–780)
Ngày 766: Tổng quan Hệ sinh thái Nguồn Dữ liệu Kinh tế Quốc tế
Mục tiêu: Có bức tranh tổng thể về các nguồn dữ liệu chính sẽ dùng trong hệ thống forecasting.
Lý thuyết: Phân loại nguồn dữ liệu: tổ chức quốc tế (IMF, World Bank, OECD), quốc gia (FRED, GSO), tần suất khác nhau.
Thực hành: Vẽ sơ đồ tổng hợp toàn bộ nguồn dữ liệu đã dùng rải rác qua các giai đoạn trước.
Ngày 767: IMF - Giới thiệu và Bộ Dữ liệu Chính
Mục tiêu: Biết các bộ dữ liệu quan trọng nhất của IMF.
Lý thuyết: International Financial Statistics (IFS), World Economic Outlook (WEO) database.
Thực hành: Duyệt qua giao diện IMF Data để tìm dữ liệu liên quan Việt Nam.
Ngày 768: IMF API - Truy cập Dữ liệu qua Python
Mục tiêu: Tự động hóa việc lấy dữ liệu IMF.
Lý thuyết: Ôn lại cấu trúc IMF API (SDMX-based).
Thực hành: Viết script Python truy vấn dữ liệu IFS cho Việt Nam qua API.
Ngày 769: World Bank - Giới thiệu và WDI
Mục tiêu: Biết bộ dữ liệu phát triển toàn diện nhất.
Lý thuyết: World Development Indicators (WDI), phạm vi bao phủ rộng (kinh tế, xã hội, môi trường).
Thực hành: Duyệt qua WDI để tìm các chỉ báo kinh tế Việt Nam có sẵn.
Ngày 770: World Bank API - Truy cập qua Python
Mục tiêu: Tự động hóa việc lấy dữ liệu World Bank.
Lý thuyết: Ôn lại thư viện
wbgapihoặcwbdata.Thực hành: Viết script Python tải toàn bộ chỉ báo GDP, lạm phát Việt Nam từ World Bank.
Ngày 771: OECD - Giới thiệu và OECD.Stat
Mục tiêu: Biết nguồn dữ liệu chuẩn cho các nước phát triển (tham chiếu so sánh).
Lý thuyết: OECD.Stat, phạm vi các chỉ báo kinh tế vĩ mô chi tiết.
Thực hành: Tìm hiểu liệu Việt Nam có dữ liệu trong OECD hay chỉ dùng để so sánh benchmark quốc tế.
Ngày 772: OECD API - Truy cập qua Python
Mục tiêu: Tự động hóa việc lấy dữ liệu OECD.
Lý thuyết: Ôn lại cấu trúc API OECD (SDMX).
Thực hành: Viết script Python truy vấn một chỉ báo OECD mẫu.
Ngày 773: FRED - Giới thiệu
Mục tiêu: Biết kho dữ liệu kinh tế lớn và tiện dụng nhất.
Lý thuyết: Federal Reserve Economic Data (FRED), hàng trăm nghìn chuỗi dữ liệu kinh tế Mỹ và quốc tế.
Thực hành: Tìm các chuỗi dữ liệu quốc tế/hàng hóa hữu ích cho mô hình Việt Nam (VD: giá dầu, lãi suất Fed Funds).
Ngày 774: FRED API - Truy cập qua Python
Mục tiêu: Thành thạo công cụ được dùng phổ biến nhất trong thực hành.
Lý thuyết: Ôn lại thư viện
fredapi.Thực hành: Viết script Python tải giá dầu WTI và lãi suất Fed Funds - hai biến quan trọng cho mô hình CPI/tỷ giá Việt Nam.
Ngày 775: GSO Việt Nam - Cấu trúc Dữ liệu
Mục tiêu: Củng cố hiểu biết về nguồn dữ liệu nội địa chính.
Lý thuyết: Ôn lại cấu trúc công bố của Tổng cục Thống kê (đã dùng xuyên suốt syllabus).
Thực hành: Tổng hợp lại toàn bộ cách thu thập dữ liệu GSO đã thực hiện qua các giai đoạn trước thành một tài liệu tham khảo.
Ngày 776: SBV và Bộ Tài chính - Nguồn Bổ sung
Mục tiêu: Biết đầy đủ các nguồn dữ liệu chính thức Việt Nam.
Lý thuyết: Ôn lại dữ liệu lãi suất, tỷ giá từ SBV; dữ liệu ngân sách từ Bộ Tài chính.
Thực hành: Lập danh sách đầy đủ URL/nguồn truy cập cho từng loại dữ liệu Việt Nam.
Ngày 777: So sánh Cấu trúc và Độ trễ Công bố
Mục tiêu: Hiểu đặc thù từng nguồn để thiết kế pipeline phù hợp.
Lý thuyết: So sánh format (API/CSV/Excel), tần suất cập nhật, độ trễ công bố giữa các nguồn.
Thực hành: Lập bảng tổng hợp so sánh toàn bộ nguồn dữ liệu (quốc tế + Việt Nam) về các tiêu chí trên.
Ngày 778: Xây dựng Data Catalog Cá nhân
Mục tiêu: Có tài liệu tham khảo tổng hợp cho toàn bộ dự án sau này.
Lý thuyết: Data catalog, tài liệu hóa nguồn gốc, tần suất, đơn vị đo của từng chuỗi dữ liệu.
Thực hành: Viết file catalog (markdown/YAML) liệt kê toàn bộ ~20-30 chuỗi dữ liệu đã dùng xuyên suốt syllabus.
Ngày 779: Project - Viết Wrapper Python Thống nhất
Mục tiêu: Đơn giản hóa việc truy cập đa nguồn.
Lý thuyết: Ôn lại API của IMF, World Bank, FRED, GSO.
Thực hành: Viết class
DataFetchervới các methodget_imf(),get_worldbank(),get_fred(), trả về DataFrame có định dạng thống nhất.
Ngày 780: Tổng kết Data Sources
Mục tiêu: Củng cố toàn bộ Phần A.
Lý thuyết: Ôn tập Ngày 766–779.
Thực hành: Kiểm tra lại
DataFetcherbằng cách tải đồng thời 5 chuỗi dữ liệu từ 3 nguồn khác nhau.
PHẦN B: ETL (Ngày 781–805)
Ngày 781: Giới thiệu ETL cho Dữ liệu Kinh tế
Mục tiêu: Hiểu quy trình Extract-Transform-Load áp dụng cho bài toán forecasting.
Lý thuyết: ETL pipeline, vai trò trong hệ thống production forecasting.
Thực hành: Vẽ sơ đồ ETL tổng quát cho hệ thống dữ liệu kinh tế Việt Nam.
Ngày 782: Ôn lại Pandas Nâng cao
Mục tiêu: Củng cố kỹ năng pandas cho xử lý dữ liệu phức tạp.
Lý thuyết: Merge, groupby, pivot, resample - ôn tập và mở rộng.
Thực hành: Thực hành merge nhiều bộ dữ liệu kinh tế có tần suất khác nhau bằng
pd.merge_asof.
Ngày 783: Xử lý Time Series với Pandas
Mục tiêu: Thành thạo các thao tác time series chuyên biệt.
Lý thuyết:
reindex,asfreq,resample, xử lý DatetimeIndex.Thực hành: Chuẩn hóa toàn bộ chuỗi dữ liệu đã thu thập về cùng index thời gian đầy đủ (không thiếu tháng).
Ngày 784: Giới thiệu Polars
Mục tiêu: Biết công cụ thay thế hiệu năng cao hơn pandas.
Lý thuyết: Polars, viết bằng Rust, nhanh hơn đáng kể cho dữ liệu lớn.
Thực hành: So sánh tốc độ đọc/xử lý cùng một file giữa pandas và polars.
Ngày 785: Polars Cơ bản
Mục tiêu: Làm quen cú pháp polars.
Lý thuyết: Polars DataFrame, lazy evaluation (khác biệt lớn với pandas eager evaluation).
Thực hành: Viết lại một vài thao tác pandas cơ bản (filter, select, groupby) bằng polars.
Ngày 786: Polars - Các Thao tác Tương đương Pandas
Mục tiêu: Có khả năng chuyển đổi qua lại giữa hai thư viện.
Lý thuyết: Bảng tra cứu tương đương pandas ↔ polars cho các thao tác phổ biến.
Thực hành: Viết lại toàn bộ pipeline chuẩn hóa dữ liệu (Ngày 783) bằng polars.
Ngày 787: Khi nào dùng Polars thay vì Pandas
Mục tiêu: Có quyết định thực dụng cho từng tình huống.
Lý thuyết: Với dữ liệu kinh tế vĩ mô (thường nhỏ, vài trăm-nghìn dòng), pandas thường đã đủ; polars hữu ích khi dữ liệu lớn (VD: dữ liệu giao dịch tần suất cao).
Thực hành: Thảo luận và quyết định công cụ chính cho hệ thống sẽ xây (khuyến nghị: pandas cho phần lớn, polars cho phần dữ liệu lớn nếu có).
Ngày 788: Giới thiệu DuckDB
Mục tiêu: Biết công cụ SQL hiệu năng cao chạy trực tiếp trên file.
Lý thuyết: DuckDB, in-process SQL OLAP database, không cần server riêng.
Thực hành: Cài đặt DuckDB, chạy truy vấn SQL đầu tiên.
Ngày 789: DuckDB - Truy vấn Cơ bản trên File
Mục tiêu: Thực hành truy vấn trực tiếp trên CSV/Parquet.
Lý thuyết: Ôn lại cú pháp SQL kết hợp đọc file trực tiếp (
SELECT * FROM 'file.csv').Thực hành: Viết truy vấn SQL tổng hợp dữ liệu từ nhiều file CSV kinh tế đã thu thập.
Ngày 790: DuckDB - Kết hợp với Pandas/Polars
Mục tiêu: Tích hợp DuckDB vào workflow Python hiện có.
Lý thuyết: DuckDB có thể đọc/ghi trực tiếp DataFrame pandas/polars.
Thực hành: Viết pipeline kết hợp: dùng DuckDB SQL để join/filter, chuyển sang pandas để tiếp tục xử lý.
Ngày 791: Thiết kế Schema Dữ liệu cho Hệ thống Forecasting
Mục tiêu: Có thiết kế dữ liệu chuẩn hóa, dễ mở rộng.
Lý thuyết: Long format vs wide format, schema chuẩn (date, indicator_code, value, source, vintage).
Thực hành: Thiết kế schema chi tiết cho toàn bộ dữ liệu kinh tế sẽ lưu trữ.
Ngày 792: Định dạng Lưu trữ
Mục tiêu: Chọn định dạng lưu trữ phù hợp.
Lý thuyết: CSV (đơn giản, dễ đọc) vs Parquet (nén tốt, nhanh, giữ kiểu dữ liệu) vs database (SQLite/PostgreSQL cho truy vấn phức tạp).
Thực hành: So sánh dung lượng và tốc độ đọc giữa CSV và Parquet cho cùng bộ dữ liệu.
Ngày 793: Xây dựng Data Pipeline Tự động - Kiến trúc
Mục tiêu: Thiết kế pipeline có thể chạy lặp lại tự động.
Lý thuyết: Kiến trúc pipeline: extract functions → transform functions → load functions, tách biệt rõ ràng.
Thực hành: Vẽ sơ đồ kiến trúc pipeline sẽ xây dựng trong project.
Ngày 794: Scheduling - Chạy Pipeline Định kỳ
Mục tiêu: Biết cách tự động hóa việc chạy pipeline theo lịch.
Lý thuyết: Cron job cơ bản, giới thiệu sơ lược Airflow (sẽ học sâu ở Giai đoạn 8).
Thực hành: Viết crontab đơn giản để chạy script Python thu thập dữ liệu hàng ngày.
Ngày 795: Idempotency trong Data Pipeline
Mục tiêu: Hiểu nguyên tắc thiết kế quan trọng cho pipeline đáng tin cậy.
Lý thuyết: Idempotency - chạy pipeline nhiều lần cho cùng kết quả, không tạo dữ liệu trùng lặp.
Thực hành: Rà soát và sửa lại pipeline đã viết để đảm bảo idempotent (dùng upsert thay vì insert đơn thuần).
Ngày 796: Logging và Monitoring cho Pipeline
Mục tiêu: Có khả năng theo dõi tình trạng pipeline.
Lý thuyết: Python
loggingmodule, các mức log (INFO, WARNING, ERROR).Thực hành: Thêm logging đầy đủ vào pipeline: log số dòng dữ liệu tải được, thời gian chạy, lỗi nếu có.
Ngày 797: Xử lý Lỗi trong Pipeline
Mục tiêu: Xây dựng pipeline bền vững trước lỗi.
Lý thuyết: Retry logic, alerting khi pipeline thất bại.
Thực hành: Thêm cơ chế retry (thử lại 3 lần khi API timeout) vào
DataFetcher.
Ngày 798: Version Control cho Dữ liệu
Mục tiêu: Biết công cụ quản lý phiên bản dữ liệu (khác với code).
Lý thuyết: Giới thiệu DVC (Data Version Control), lý do cần thiết khi dữ liệu thay đổi theo thời gian (data revisions).
Thực hành: Cài đặt DVC cơ bản, thử track một file dữ liệu.
Ngày 799: Project ETL - Thiết kế Pipeline Tổng thể
Mục tiêu: Bắt đầu project ETL toàn diện cho toàn bộ dữ liệu Việt Nam.
Lý thuyết: Ôn lại kiến trúc đã thiết kế (Ngày 793).
Thực hành: Viết tài liệu thiết kế chi tiết cho pipeline (nguồn, tần suất, schema đích).
Ngày 800: Project ETL - Cài đặt Extraction Layer
Mục tiêu: Xây lớp thu thập dữ liệu.
Lý thuyết: Ôn lại
DataFetcher(Ngày 779).Thực hành: Hoàn thiện module extraction cho toàn bộ nguồn (IMF, World Bank, FRED, GSO).
Ngày 801: Project ETL - Cài đặt Transformation Layer
Mục tiêu: Xây lớp biến đổi dữ liệu.
Lý thuyết: Ôn lại chuẩn hóa schema (long format), resampling tần suất.
Thực hành: Viết module transform chuyển đổi dữ liệu thô về schema chuẩn đã thiết kế.
Ngày 802: Project ETL - Cài đặt Loading Layer
Mục tiêu: Xây lớp lưu trữ dữ liệu.
Lý thuyết: Ôn lại lựa chọn định dạng lưu trữ (Parquet/SQLite).
Thực hành: Viết module load lưu dữ liệu đã transform vào kho lưu trữ đã chọn.
Ngày 803: Project ETL - Thêm Logging và Error Handling
Mục tiêu: Hoàn thiện tính bền vững của pipeline.
Lý thuyết: Ôn lại logging, retry logic.
Thực hành: Tích hợp đầy đủ logging và error handling vào toàn bộ pipeline.
Ngày 804: Project ETL - Kiểm thử Đầu cuối
Mục tiêu: Xác nhận pipeline hoạt động chính xác toàn diện.
Lý thuyết: End-to-end testing cho data pipeline.
Thực hành: Chạy toàn bộ pipeline từ đầu đến cuối, kiểm tra dữ liệu đầu ra khớp với kỳ vọng.
Ngày 805: Tổng kết ETL
Mục tiêu: Củng cố toàn bộ Phần B.
Lý thuyết: Ôn tập Ngày 781–804.
Thực hành: Viết tài liệu vận hành (runbook) mô tả cách chạy và bảo trì pipeline ETL đã xây.
PHẦN C: DATA QUALITY (Ngày 806–825)
Ngày 806: Tầm quan trọng của Data Quality trong Forecasting
Mục tiêu: Hiểu nguyên tắc "garbage in, garbage out" áp dụng cho forecasting.
Lý thuyết: Data quality ảnh hưởng trực tiếp đến độ tin cậy của mọi mô hình đã học từ đầu syllabus.
Thực hành: Thảo luận ví dụ cụ thể: một lỗi dữ liệu nhỏ có thể làm sai lệch dự báo CPI thế nào.
Ngày 807: Missing Values - Phân loại
Mục tiêu: Hiểu các cơ chế khác nhau gây ra dữ liệu thiếu.
Lý thuyết: MCAR (Missing Completely At Random), MAR (Missing At Random), MNAR (Missing Not At Random).
Thực hành: Phân loại các trường hợp missing values đã gặp trong dữ liệu Việt Nam đã thu thập theo 3 loại trên.
Ngày 808: Xử lý Missing Values - Phương pháp Cơ bản
Mục tiêu: Biết các kỹ thuật đơn giản nhất.
Lý thuyết: Drop rows/columns, forward fill, backward fill, mean/median imputation.
Thực hành: Áp dụng từng phương pháp cho một chuỗi có missing values, so sánh kết quả.
Ngày 809: Xử lý Missing Values - Interpolation
Mục tiêu: Biết phương pháp phù hợp hơn cho time series.
Lý thuyết: Linear interpolation, spline interpolation.
Thực hành: So sánh kết quả interpolation tuyến tính và spline cho một chuỗi kinh tế có missing values.
Ngày 810: Xử lý Missing Values - Kalman-based Imputation
Mục tiêu: Áp dụng lại kỹ thuật nâng cao đã học ở Giai đoạn 4.
Lý thuyết: Ôn lại Kalman Filter xử lý missing data (Ngày 417).
Thực hành: So sánh kết quả imputation giữa interpolation đơn giản và Kalman-based cho cùng một chuỗi.
Ngày 811: Phát hiện Outlier trong Dữ liệu Kinh tế
Mục tiêu: Nhận diện các giá trị bất thường có thể là lỗi hoặc sự kiện thực.
Lý thuyết: Outlier detection methods: Z-score, IQR method, so sánh với biến động lịch sử.
Thực hành: Áp dụng IQR method để phát hiện outlier trong toàn bộ chuỗi dữ liệu Việt Nam đã có.
Ngày 812: Xử lý Outliers
Mục tiêu: Biết cách xử lý outlier một cách hợp lý (không đơn giản là xóa).
Lý thuyết: Winsorization, robust statistics, phân biệt outlier do lỗi dữ liệu vs sự kiện kinh tế thực (VD: COVID).
Thực hành: Quyết định xử lý cho từng outlier đã phát hiện - giữ lại (nếu là sự kiện thực) hay winsorize (nếu nghi ngờ lỗi).
Ngày 813: Data Revisions - Bản chất và Tác động
Mục tiêu: Củng cố hiểu biết đã học sơ lược ở Giai đoạn 6 (Ngày 638).
Lý thuyết: Data revisions ảnh hưởng đến cả việc xây mô hình (dùng số liệu nào) và đánh giá (real-time vs final).
Thực hành: Tìm ví dụ cụ thể GDP hoặc CPI Việt Nam có sự khác biệt giữa số liệu sơ bộ và số liệu điều chỉnh (nếu có thể tra cứu được).
Ngày 814: Xây dựng Cơ sở Dữ liệu Vintage - Lý thuyết
Mục tiêu: Hiểu thiết kế cần thiết để lưu trữ đa phiên bản dữ liệu.
Lý thuyết: Vintage database design, mỗi quan sát có thêm chiều "ngày công bố/phiên bản".
Thực hành: Thiết kế schema mở rộng từ Ngày 791 để hỗ trợ lưu vintage (thêm cột
release_datehoặcvintage_date).
Ngày 815: Xây dựng Cơ sở Dữ liệu Vintage - Thực hành
Mục tiêu: Cài đặt thực tế khả năng lưu đa phiên bản.
Lý thuyết: Ôn lại schema đã thiết kế.
Thực hành: Sửa lại pipeline ETL (Phần B) để lưu mỗi lần cập nhật là một vintage riêng biệt thay vì ghi đè.
Ngày 816: Đánh giá Tác động của Revisions lên Đánh giá Mô hình
Mục tiêu: Hiểu tại sao đánh giá real-time khác với đánh giá dùng số liệu cuối cùng.
Lý thuyết: Ôn lại pseudo real-time evaluation (Giai đoạn 4, 6), giờ có nền tảng vintage database để làm chính xác hơn.
Thực hành: So sánh RMSE của một mô hình khi đánh giá bằng dữ liệu final (đã biết trước) vs vintage data (chỉ dùng thông tin có tại thời điểm đó) - minh họa "phóng đại" hiệu năng nếu dùng sai.
Ngày 817: Kiểm tra Tính Nhất quán Dữ liệu
Mục tiêu: Xây dựng các kiểm tra tự động phát hiện lỗi.
Lý thuyết: Consistency checks - VD: GDP = C+I+G+NX phải khớp (trong sai số làm tròn), tỷ lệ phần trăm phải nằm trong [0,100].
Thực hành: Viết các hàm kiểm tra consistency cho dữ liệu GDP theo thành phần đã thu thập ở Giai đoạn 1.
Ngày 818: Kiểm tra Logic Nghiệp vụ
Mục tiêu: Xây dựng kiểm tra dựa trên hiểu biết kinh tế.
Lý thuyết: Business rule validation - VD: lãi suất không âm (thường), CPI YoY phải nhất quán với chuỗi mức giá.
Thực hành: Viết các business rule cụ thể cho từng loại dữ liệu kinh tế đã thu thập.
Ngày 819: Xây dựng Automated Data Quality Checks
Mục tiêu: Đóng gói toàn bộ kiểm tra thành hệ thống tự động.
Lý thuyết: Ôn lại toàn bộ các loại kiểm tra đã học (missing, outlier, consistency, business rules).
Thực hành: Viết class Python
DataQualityCheckerchạy toàn bộ các kiểm tra và trả về báo cáo.
Ngày 820: Data Quality Dashboard/Report
Mục tiêu: Trực quan hóa tình trạng chất lượng dữ liệu.
Lý thuyết: Data quality report - tỷ lệ missing, số outlier phát hiện, số consistency check thất bại theo từng nguồn.
Thực hành: Xây dashboard đơn giản (Streamlit) hiển thị kết quả từ
DataQualityChecker.
Ngày 821: Project Data Quality - Áp dụng Toàn bộ Kiểm tra
Mục tiêu: Chạy toàn diện hệ thống đã xây trên dữ liệu thực.
Lý thuyết: Ôn lại
DataQualityChecker.Thực hành: Chạy
DataQualityCheckertrên toàn bộ dữ liệu kinh tế Việt Nam đã thu thập xuyên suốt syllabus.
Ngày 822: Project Data Quality - Xử lý Vấn đề Phát hiện
Mục tiêu: Khắc phục các vấn đề chất lượng dữ liệu đã tìm thấy.
Lý thuyết: Ôn lại các phương pháp xử lý missing/outlier đã học trong Phần C.
Thực hành: Xử lý từng vấn đề cụ thể được liệt kê trong báo cáo data quality.
Ngày 823: Project Data Quality - Viết Báo cáo
Mục tiêu: Hoàn thiện tài liệu cho project.
Lý thuyết: Ôn lại cấu trúc báo cáo data quality.
Thực hành: Viết báo cáo tổng kết chất lượng dữ liệu: vấn đề phát hiện, cách xử lý, tình trạng cuối cùng.
Ngày 824: Ôn tập Giai đoạn 7
Mục tiêu: Củng cố toàn bộ kiến thức trước khi tổng kết.
Lý thuyết: Ôn tập tổng hợp cả 3 phần: Data Sources, ETL, Data Quality.
Thực hành: Làm bộ câu hỏi ôn tập tổng hợp về toàn bộ giai đoạn.
Ngày 825: Tổng kết Giai đoạn 7 - Economic Data Engineering
Mục tiêu: Củng cố toàn diện trước khi bước vào Production Forecasting.
Lý thuyết: Tổng hợp toàn bộ hệ thống dữ liệu đã xây dựng (nguồn → ETL → chất lượng → vintage database).
Thực hành: Viết sơ đồ kiến trúc tổng thể hệ thống dữ liệu hoàn chỉnh, làm nền tảng hạ tầng cho Giai đoạn 8 (Production Forecasting) và các Capstone sau này.
Giai đoạn 8 - Production Forecasting (Ngày 826–915, 90 ngày)
PHẦN A: MLOPS (Ngày 826–870)
Ngày 826: Giới thiệu MLOps cho Forecasting Systems
Mục tiêu: Hiểu vì sao một mô hình tốt trong notebook chưa đủ để chạy production.
Lý thuyết: MLOps, khoảng cách giữa nghiên cứu (research) và triển khai thực tế (production).
Thực hành: Liệt kê những gì còn thiếu để biến các project đã xây (Giai đoạn 3-6) thành hệ thống chạy tự động hàng ngày.
Ngày 827: Vòng đời của Mô hình Forecasting trong Production
Mục tiêu: Hiểu toàn bộ chu trình từ dữ liệu đến dự báo được sử dụng.
Lý thuyết: ML lifecycle: data → train → validate → deploy → monitor → retrain.
Thực hành: Vẽ sơ đồ vòng đời đầy đủ áp dụng cho hệ thống nowcasting đã xây ở Giai đoạn 6.
Ngày 828: Reproducibility
Mục tiêu: Hiểu tầm quan trọng của khả năng tái lập kết quả.
Lý thuyết: Reproducibility - cùng code, cùng dữ liệu phải cho cùng kết quả; random seed, environment pinning.
Thực hành: Rà soát lại một project cũ (VD: XGBoost CPI ở Giai đoạn 5), thêm random seed cố định để đảm bảo tái lập được.
Ngày 829: Quản lý Môi trường
Mục tiêu: Đảm bảo môi trường chạy nhất quán.
Lý thuyết: Virtualenv, conda,
requirements.txt/pyproject.toml.Thực hành: Tạo file
requirements.txtđầy đủ cho toàn bộ dependencies đã dùng xuyên suốt syllabus.
Ngày 830: Giới thiệu Docker
Mục tiêu: Hiểu khái niệm containerization.
Lý thuyết: Docker, container vs virtual machine, lợi ích cho reproducibility.
Thực hành: Cài đặt Docker, chạy thử container "hello world" đầu tiên.
Ngày 831: Docker - Viết Dockerfile Cơ bản
Mục tiêu: Tự đóng gói môi trường Python.
Lý thuyết: Cú pháp Dockerfile: FROM, COPY, RUN, CMD.
Thực hành: Viết Dockerfile đóng gói môi trường Python với các thư viện forecasting đã dùng.
Ngày 832: Docker - Build và Run Container
Mục tiêu: Chạy được pipeline forecasting bên trong container.
Lý thuyết: Ôn lại
docker build,docker run, volume mounting.Thực hành: Build image từ Dockerfile đã viết, chạy pipeline ETL (Giai đoạn 7) bên trong container.
Ngày 833: Docker Compose
Mục tiêu: Quản lý nhiều container phối hợp với nhau.
Lý thuyết: Docker Compose, định nghĩa multi-container application (VD: pipeline + database).
Thực hành: Viết
docker-compose.ymlkết hợp container Python pipeline với container database (Postgres).
Ngày 834: Giới thiệu MLflow
Mục tiêu: Biết công cụ chuẩn để theo dõi thí nghiệm ML.
Lý thuyết: MLflow, các thành phần chính (Tracking, Projects, Models, Model Registry).
Thực hành: Cài đặt MLflow, chạy MLflow UI lần đầu.
Ngày 835: MLflow Tracking
Mục tiêu: Ghi lại thông tin thí nghiệm một cách có hệ thống.
Lý thuyết:
mlflow.log_param,mlflow.log_metric,mlflow.log_artifact.Thực hành: Thêm MLflow tracking vào một quy trình fit XGBoost đơn giản, log tham số và RMSE.
Ngày 836: MLflow - So sánh Nhiều lần Chạy
Mục tiêu: Sử dụng MLflow để so sánh các thí nghiệm.
Lý thuyết: MLflow UI, so sánh nhiều run trên cùng một biểu đồ/bảng.
Thực hành: Chạy nhiều lần với hyperparameter khác nhau, so sánh trên MLflow UI.
Ngày 837: MLflow Model Registry
Mục tiêu: Quản lý vòng đời phiên bản mô hình.
Lý thuyết: Model Registry, các stage (Staging, Production, Archived).
Thực hành: Đăng ký một mô hình đã train vào Model Registry, chuyển qua các stage.
Ngày 838: MLflow - Đóng gói Mô hình để Deploy
Mục tiêu: Chuẩn bị mô hình sẵn sàng phục vụ dự báo.
Lý thuyết: MLflow Model format,
mlflow.pyfunccho mô hình tùy chỉnh (VD: ARIMA/statsmodels không chuẩn sklearn).Thực hành: Đóng gói một mô hình ARIMA bằng
mlflow.pyfunccustom wrapper.
Ngày 839: Project MLflow - Tích hợp vào Pipeline đã xây
Mục tiêu: Áp dụng MLflow cho các mô hình thực tế đã có.
Lý thuyết: Ôn lại toàn bộ API MLflow đã học.
Thực hành: Tích hợp MLflow tracking vào pipeline XGBoost/LSTM dự báo CPI đã xây ở Giai đoạn 5.
Ngày 840: Project MLflow - Log Toàn bộ Experiment
Mục tiêu: Có lịch sử đầy đủ các thí nghiệm đã thực hiện xuyên suốt syllabus.
Lý thuyết: Ôn lại cách tổ chức experiment theo tên (ARIMA, VAR, XGBoost, LSTM, TFT...).
Thực hành: Chạy lại và log các mô hình chính từ Giai đoạn 3-5 vào MLflow, tạo bảng so sánh tổng hợp.
Ngày 841: Giới thiệu Apache Airflow
Mục tiêu: Biết công cụ orchestration chuẩn cho pipeline phức tạp.
Lý thuyết: Airflow, vai trò điều phối các bước pipeline có phụ thuộc lẫn nhau.
Thực hành: Cài đặt Airflow (qua Docker để đơn giản), truy cập Airflow UI.
Ngày 842: Airflow - Khái niệm DAG
Mục tiêu: Hiểu đơn vị tổ chức cơ bản của Airflow.
Lý thuyết: Directed Acyclic Graph (DAG), task dependencies.
Thực hành: Vẽ sơ đồ DAG cho pipeline ETL → train → evaluate đã có.
Ngày 843: Airflow - Viết DAG Đầu tiên
Mục tiêu: Tự viết được một DAG đơn giản.
Lý thuyết: Ôn lại cú pháp Python DAG definition (
@dag,@taskdecorators).Thực hành: Viết DAG đơn giản gồm 2-3 task tuần tự (extract → transform → load).
Ngày 844: Airflow - Operators và Tasks
Mục tiêu: Biết các loại operator phổ biến.
Lý thuyết: PythonOperator, BashOperator, và các operator khác.
Thực hành: Viết task sử dụng PythonOperator để gọi hàm ETL đã xây ở Giai đoạn 7.
Ngày 845: Airflow - Scheduling và Trigger Rules
Mục tiêu: Điều khiển thời điểm và điều kiện chạy pipeline.
Lý thuyết: Schedule interval (cron-like), trigger rules (all_success, one_failed...).
Thực hành: Cấu hình DAG chạy hàng ngày lúc 6h sáng (giả lập).
Ngày 846: Airflow - XCom
Mục tiêu: Truyền dữ liệu giữa các task.
Lý thuyết: XCom (cross-communication), giới hạn kích thước dữ liệu truyền qua XCom.
Thực hành: Sửa DAG để task "transform" nhận đường dẫn file từ task "extract" qua XCom.
Ngày 847: Airflow - Error Handling và Retry
Mục tiêu: Xây DAG bền vững trước lỗi.
Lý thuyết: Ôn lại retry logic (đã học Giai đoạn 7), áp dụng cấu hình
retries,retry_delaytrong Airflow.Thực hành: Cấu hình retry cho task extraction (dễ gặp lỗi mạng khi gọi API).
Ngày 848: Airflow - Monitoring qua UI
Mục tiêu: Sử dụng UI để theo dõi tình trạng pipeline.
Lý thuyết: Airflow UI - Graph view, Gantt chart, Task logs.
Thực hành: Chạy DAG và theo dõi tiến trình qua UI, đọc log khi có lỗi giả lập.
Ngày 849: Project Airflow - Chuyển đổi Pipeline ETL
Mục tiêu: Đưa pipeline ETL đã xây (Giai đoạn 7) vào Airflow.
Lý thuyết: Ôn lại kiến trúc extraction/transformation/loading layer.
Thực hành: Viết DAG hoàn chỉnh cho pipeline ETL với các task tương ứng.
Ngày 850: Project Airflow - Thêm Task Ước lượng Mô hình
Mục tiêu: Mở rộng DAG để bao gồm bước huấn luyện mô hình.
Lý thuyết: Ôn lại cách gọi hàm train mô hình (VD: XGBoost CPI) từ task Airflow.
Thực hành: Thêm task "train_model" vào DAG, phụ thuộc vào task ETL đã hoàn thành.
Ngày 851: Project Airflow - Thêm Task Đánh giá và Log MLflow
Mục tiêu: Hoàn thiện DAG với bước đánh giá và ghi lại kết quả.
Lý thuyết: Ôn lại tích hợp MLflow (Ngày 839).
Thực hành: Thêm task "evaluate_and_log" gọi MLflow tracking sau khi train xong.
Ngày 852: Project Airflow - Kiểm thử Toàn bộ DAG
Mục tiêu: Xác nhận DAG hoạt động đúng đầu cuối.
Lý thuyết: Ôn lại end-to-end testing (đã học Giai đoạn 7).
Thực hành: Chạy toàn bộ DAG (Extract → Transform → Load → Train → Evaluate), kiểm tra kết quả trên MLflow UI.
Ngày 853: Giới thiệu Kubernetes
Mục tiêu: Biết khái niệm cơ bản về orchestration container ở quy mô lớn.
Lý thuyết: Kubernetes (K8s), quản lý và scale container tự động.
Thực hành: Đọc tổng quan kiến trúc Kubernetes, không cần cài đặt đầy đủ nếu môi trường hạn chế.
Ngày 854: Kubernetes - Pods, Deployments, Services
Mục tiêu: Hiểu các đối tượng cơ bản của K8s.
Lý thuyết: Pod (đơn vị chạy container nhỏ nhất), Deployment (quản lý số lượng pod), Service (network access).
Thực hành: Đọc và diễn giải một file YAML cấu hình Deployment mẫu.
Ngày 855: Khi nào cần Kubernetes cho Forecasting System
Mục tiêu: Có quan điểm thực dụng, tránh over-engineering.
Lý thuyết: K8s hữu ích khi cần scale nhiều instance, high availability; với hệ thống forecasting kinh tế vĩ mô quy mô nhỏ, Docker Compose thường đã đủ.
Thực hành: Thảo luận: hệ thống nowcasting Việt Nam đã xây (Giai đoạn 6) có cần Kubernetes không, tại sao.
Ngày 856: Model Serving - Khái niệm
Mục tiêu: Hiểu cách biến mô hình thành dịch vụ có thể gọi được.
Lý thuyết: Model serving, batch prediction vs real-time serving.
Thực hành: Thảo luận: hệ thống dự báo CPI hàng tháng cần batch hay real-time serving?
Ngày 857: Xây dựng REST API bằng FastAPI
Mục tiêu: Tạo giao diện lập trình để truy cập mô hình.
Lý thuyết: FastAPI, framework Python hiện đại cho xây API nhanh.
Thực hành: Viết API FastAPI cơ bản với 1 endpoint trả về "hello world".
Ngày 858: FastAPI - Endpoint Dự báo
Mục tiêu: Xây endpoint thực tế trả về kết quả dự báo.
Lý thuyết: Request/response models bằng Pydantic, input validation.
Thực hành: Viết endpoint
/forecast/cpiload mô hình XGBoost đã train và trả về dự báo.
Ngày 859: Đóng gói API bằng Docker
Mục tiêu: Chuẩn bị API sẵn sàng triển khai.
Lý thuyết: Ôn lại Dockerfile, áp dụng cho ứng dụng FastAPI.
Thực hành: Viết Dockerfile cho API, build và chạy container, test gọi API.
Ngày 860: Giới thiệu CI/CD cho ML Systems
Mục tiêu: Hiểu quy trình tự động hóa kiểm thử và triển khai.
Lý thuyết: Continuous Integration/Continuous Deployment, đặc thù khi áp dụng cho ML (thêm bước kiểm thử mô hình, không chỉ code).
Thực hành: Vẽ sơ đồ quy trình CI/CD cho hệ thống forecasting đã xây.
Ngày 861: CI/CD - GitHub Actions Cơ bản
Mục tiêu: Thực hành công cụ CI/CD phổ biến.
Lý thuyết: GitHub Actions, cú pháp YAML workflow cơ bản.
Thực hành: Viết workflow đơn giản tự động chạy test khi push code lên GitHub.
Ngày 862: Testing cho ML Pipeline
Mục tiêu: Hiểu các loại kiểm thử cần thiết.
Lý thuyết: Unit test (từng hàm), integration test (toàn bộ pipeline), data validation test.
Thực hành: Liệt kê danh sách các hàm/module cần test trong hệ thống đã xây (feature engineering, model training, API).
Ngày 863: Viết Unit Test cho Feature Engineering
Mục tiêu: Thực hành viết test cụ thể.
Lý thuyết:
pytestcơ bản, assert statements.Thực hành: Viết unit test cho các hàm tạo lag/rolling features đã viết ở Giai đoạn 5.
Ngày 864: Viết Integration Test cho Pipeline
Mục tiêu: Kiểm thử toàn bộ luồng hoạt động.
Lý thuyết: Integration test, kiểm tra đầu ra cuối cùng đúng định dạng và hợp lý.
Thực hành: Viết integration test chạy toàn bộ pipeline ETL → feature → predict, kiểm tra output shape và giá trị hợp lý.
Ngày 865: Infrastructure as Code
Mục tiêu: Biết khái niệm quản lý hạ tầng bằng code.
Lý thuyết: Infrastructure as Code (IaC), giới thiệu sơ lược Terraform.
Thực hành: Đọc một file Terraform mẫu, diễn giải nó định nghĩa hạ tầng gì.
Ngày 866: Project MLOps Toàn diện - Kiến trúc Hệ thống
Mục tiêu: Thiết kế hệ thống MLOps hoàn chỉnh cho toàn bộ syllabus.
Lý thuyết: Ôn lại toàn bộ thành phần: Docker, MLflow, Airflow, FastAPI.
Thực hành: Vẽ sơ đồ kiến trúc tổng thể kết hợp toàn bộ công cụ đã học.
Ngày 867: Project MLOps Toàn diện - Containerize Pipeline
Mục tiêu: Đóng gói toàn bộ hệ thống.
Lý thuyết: Ôn lại Docker Compose cho multi-service.
Thực hành: Viết
docker-compose.ymlkết hợp Airflow, MLflow, database, API.
Ngày 868: Project MLOps Toàn diện - Orchestrate bằng Airflow
Mục tiêu: Kết nối toàn bộ pipeline qua Airflow.
Lý thuyết: Ôn lại DAG đã xây (Ngày 849-852).
Thực hành: Hoàn thiện DAG tổng thể: ETL → Feature Engineering → Train → Evaluate → Log MLflow → Update model registry.
Ngày 869: Project MLOps Toàn diện - Deploy API Dự báo
Mục tiêu: Có endpoint sống phục vụ dự báo từ mô hình mới nhất trong registry.
Lý thuyết: Ôn lại FastAPI load mô hình từ MLflow Model Registry (thay vì file cố định).
Thực hành: Sửa API để tự động load phiên bản mô hình "Production" mới nhất từ MLflow.
Ngày 870: Tổng kết MLOps
Mục tiêu: Củng cố toàn bộ Phần A.
Lý thuyết: Ôn tập Ngày 826–869.
Thực hành: Viết tài liệu kiến trúc hệ thống MLOps hoàn chỉnh (data flow diagram + component list) làm tài liệu tham khảo cho Capstone sau này.
PHẦN B: FORECAST MONITORING (Ngày 871–890)
Ngày 871: Giới thiệu Forecast Monitoring
Mục tiêu: Hiểu vì sao cần giám sát liên tục sau khi deploy.
Lý thuyết: Model performance có thể suy giảm theo thời gian dù không có lỗi kỹ thuật (data drift, concept drift - sẽ học sâu ở Phần C).
Thực hành: Thảo luận: nếu không giám sát, làm sao biết mô hình CPI đã xây bắt đầu dự báo kém đi?
Ngày 872: Thiết kế Hệ thống Theo dõi Metric
Mục tiêu: Lên kế hoạch cho hệ thống giám sát.
Lý thuyết: Các thành phần: log dự báo, log giá trị thực tế khi có, tính metric định kỳ.
Thực hành: Vẽ sơ đồ luồng dữ liệu cho hệ thống monitoring sẽ xây.
Ngày 873: Theo dõi MAE/RMSE theo Thời gian
Mục tiêu: Thực hành theo dõi metric cơ bản.
Lý thuyết: Ôn lại rolling evaluation (Giai đoạn 5), áp dụng liên tục theo thời gian thực.
Thực hành: Viết hàm tính rolling RMSE 12 tháng gần nhất, cập nhật mỗi khi có dữ liệu thực tế mới.
Ngày 874: Theo dõi MAPE và Metric Tương đối
Mục tiêu: Bổ sung góc nhìn tương đối bên cạnh MAE/RMSE.
Lý thuyết: Ôn lại MAPE/SMAPE (Giai đoạn 5), phù hợp để so sánh giữa các chuỗi có độ lớn khác nhau.
Thực hành: Tính rolling MAPE cho CPI và GDP, so sánh mức độ biến động.
Ngày 875: Alerting khi Hiệu năng Suy giảm
Mục tiêu: Thiết lập cơ chế cảnh báo tự động.
Lý thuyết: Ngưỡng cảnh báo (VD: RMSE vượt quá 1.5 lần mức trung bình lịch sử).
Thực hành: Viết hàm kiểm tra ngưỡng và gửi cảnh báo (in ra log/email giả lập) khi RMSE vượt ngưỡng.
Ngày 876: Xây dựng Dashboard Giám sát Hiệu năng
Mục tiêu: Trực quan hóa tình trạng mô hình theo thời gian thực.
Lý thuyết: Ôn lại Streamlit (đã dùng ở Giai đoạn 1, 6).
Thực hành: Xây dashboard hiển thị rolling RMSE/MAPE, actual vs predicted qua thời gian.
Ngày 877: So sánh Hiệu năng Across Mô hình theo Thời gian
Mục tiêu: Theo dõi đồng thời nhiều mô hình.
Lý thuyết: Ôn lại các mô hình đã xây (ARIMA, XGBoost, LSTM, TFT) cho cùng một biến mục tiêu.
Thực hành: Mở rộng dashboard để hiển thị hiệu năng của nhiều mô hình song song.
Ngày 878: Model Champion/Challenger Framework
Mục tiêu: Biết cách quản lý việc chọn mô hình chính thức đang phục vụ.
Lý thuyết: Champion (mô hình đang production) vs Challenger (mô hình mới đang thử nghiệm).
Thực hành: Thiết kế quy trình: challenger phải vượt champion trên rolling window bao nhiêu kỳ mới được thay thế.
Ngày 879: A/B Testing cho Mô hình Forecasting
Mục tiêu: Biết phương pháp so sánh khách quan giữa hai mô hình trong production.
Lý thuyết: A/B testing áp dụng cho forecasting (khác với A/B test sản phẩm thông thường - thường dùng song song trên các horizon/thời điểm khác nhau).
Thực hành: Thiết kế thử nghiệm A/B đơn giản: chạy song song 2 mô hình CPI, so sánh sau 6 tháng.
Ngày 880: Logging Dự báo và Giá trị Thực tế
Mục tiêu: Xây dựng nền tảng dữ liệu cho việc giám sát lâu dài.
Lý thuyết: Prediction log schema (ngày dự báo, model version, giá trị dự báo, giá trị thực tế khi có).
Thực hành: Thiết kế và cài đặt bảng log dự báo trong database đã có (từ Giai đoạn 7).
Ngày 881: Backtesting Định kỳ
Mục tiêu: Đảm bảo mô hình vẫn tốt khi đánh giá lại theo lịch.
Lý thuyết: Backtesting định kỳ (VD: hàng quý), re-run toàn bộ walk-forward validation với dữ liệu mới nhất.
Thực hành: Thiết kế quy trình backtest tự động chạy mỗi quý.
Ngày 882: Project Monitoring - Xây Hệ thống Log Dự báo
Mục tiêu: Bắt đầu project monitoring toàn diện.
Lý thuyết: Ôn lại schema log (Ngày 880).
Thực hành: Cài đặt hệ thống tự động log mỗi lần mô hình đưa ra dự báo.
Ngày 883: Project Monitoring - Xây Dashboard Giám sát
Mục tiêu: Hoàn thiện giao diện theo dõi.
Lý thuyết: Ôn lại thiết kế dashboard (Ngày 876-877).
Thực hành: Xây dashboard đầy đủ: rolling metrics, so sánh mô hình, lịch sử dự báo vs thực tế.
Ngày 884: Project Monitoring - Thiết lập Alerting
Mục tiêu: Hoàn thiện cơ chế cảnh báo.
Lý thuyết: Ôn lại ngưỡng cảnh báo (Ngày 875).
Thực hành: Tích hợp alerting vào hệ thống, test bằng cách giả lập một giai đoạn dự báo kém.
Ngày 885: Project Monitoring - Backtesting Định kỳ Tự động
Mục tiêu: Tự động hóa việc tái đánh giá.
Lý thuyết: Ôn lại thiết kế backtest (Ngày 881), tích hợp vào Airflow DAG (Phần A).
Thực hành: Thêm task backtest định kỳ vào Airflow DAG đã xây.
Ngày 886: Project Monitoring - Kiểm thử Toàn bộ Hệ thống
Mục tiêu: Xác nhận toàn bộ hệ thống monitoring hoạt động đúng.
Lý thuyết: Ôn lại end-to-end testing.
Thực hành: Chạy thử toàn bộ chu trình: dự báo → log → so sánh với thực tế → cập nhật dashboard → kiểm tra alert.
Ngày 887: Project Monitoring - Viết Báo cáo
Mục tiêu: Hoàn thiện tài liệu cho project.
Lý thuyết: Ôn lại cấu trúc báo cáo hệ thống.
Thực hành: Viết báo cáo mô tả kiến trúc và cách vận hành hệ thống monitoring đã xây.
Ngày 888: Case study - Giám sát Mô hình tại Tổ chức Tài chính
Mục tiêu: Học từ thực tiễn ngành.
Lý thuyết: Đọc tổng quan cách các ngân hàng/quỹ đầu tư giám sát mô hình dự báo/rủi ro của họ.
Thực hành: Tóm tắt 1 case study thực tế về model monitoring trong tài chính.
Ngày 889: Ôn tập Forecast Monitoring
Mục tiêu: Củng cố kiến thức Phần B.
Lý thuyết: Ôn tập Ngày 871–888.
Thực hành: Làm bộ câu hỏi ôn tập tổng hợp về monitoring, alerting, champion/challenger.
Ngày 890: Tổng kết Forecast Monitoring
Mục tiêu: Củng cố toàn bộ Phần B.
Lý thuyết: Tổng hợp toàn bộ hệ thống giám sát đã xây.
Thực hành: Cập nhật sơ đồ kiến trúc tổng thể (từ Ngày 870) để bao gồm cả lớp monitoring.
PHẦN C: CONCEPT DRIFT (Ngày 891–915)
Ngày 891: Giới thiệu Concept Drift
Mục tiêu: Hiểu khái niệm cốt lõi của phần này.
Lý thuyết: Concept drift - mối quan hệ thống kê giữa biến đầu vào và đầu ra thay đổi theo thời gian.
Thực hành: Thảo luận ví dụ cụ thể trong kinh tế: mối quan hệ lãi suất-lạm phát có thể thay đổi qua các giai đoạn.
Ngày 892: Phân loại Concept Drift
Mục tiêu: Hiểu các dạng drift khác nhau.
Lý thuyết: Sudden drift (thay đổi đột ngột), gradual drift (thay đổi từ từ), recurring drift (lặp lại theo chu kỳ).
Thực hành: Phân loại các sự kiện kinh tế đã biết (COVID, khủng hoảng 2008, thay đổi chính sách) theo 3 dạng trên.
Ngày 893: Regime Shift trong Kinh tế
Mục tiêu: Hiểu khái niệm gần gũi trong kinh tế học.
Lý thuyết: Regime shift, giai đoạn kinh tế chuyển từ trạng thái này sang trạng thái khác (VD: từ lạm phát thấp sang lạm phát cao).
Thực hành: Xác định các regime rõ ràng trong lịch sử kinh tế Việt Nam (dựa trên dữ liệu đã có).
Ngày 894: Phát hiện Regime Shift - Phương pháp Thống kê
Mục tiêu: Kết nối lại với kiến thức đã học.
Lý thuyết: Ôn lại Markov-switching models (đã gợi ý bổ sung ban đầu), Chow test (Giai đoạn 2, Ngày 174).
Thực hành: Áp dụng lại Chow test để xác định điểm gãy cấu trúc trong chuỗi CPI/GDP Việt Nam.
Ngày 895: Phát hiện Concept Drift - CUSUM và Page-Hinkley
Mục tiêu: Biết các thuật toán phát hiện drift chuyên dụng.
Lý thuyết: CUSUM (Cumulative Sum) test, Page-Hinkley test - theo dõi tích lũy sai lệch để phát hiện thay đổi.
Thực hành: Cài đặt CUSUM test đơn giản, áp dụng cho chuỗi residual của mô hình CPI.
Ngày 896: Phát hiện Concept Drift bằng ML
Mục tiêu: Biết hướng tiếp cận hiện đại dựa trên giám sát residual.
Lý thuyết: Drift detection trên distribution của residuals/errors theo thời gian (ADWIN, DDM - giới thiệu khái niệm).
Thực hành: Vẽ rolling distribution của residual mô hình CPI qua các giai đoạn, quan sát thay đổi bằng mắt trước khi thử thuật toán.
Ngày 897: Case study - COVID-19 như một Cú sốc Kinh tế Lớn
Mục tiêu: Phân tích sâu một trường hợp sudden drift điển hình.
Lý thuyết: Ôn lại tác động COVID lên các chuỗi kinh tế đã học rải rác (Giai đoạn 1, 3).
Thực hành: Vẽ toàn bộ các chuỗi kinh tế chính (GDP, CPI, thất nghiệp, lãi suất) Việt Nam quanh giai đoạn 2020, đánh dấu điểm gãy.
Ngày 898: Phân tích Tác động COVID lên Mô hình đã Xây
Mục tiêu: Đánh giá cụ thể mức độ ảnh hưởng lên các mô hình trong syllabus.
Lý thuyết: Ôn lại RESET test, Chow test.
Thực hành: Chạy lại các mô hình ARIMA/VAR (Giai đoạn 3) với/không có giai đoạn COVID, so sánh hệ số và độ chính xác dự báo.
Ngày 899: Case study - Khủng hoảng Tài chính 2008
Mục tiêu: Phân tích một trường hợp lịch sử khác.
Lý thuyết: Ôn lại bối cảnh khủng hoảng tài chính toàn cầu 2008 và ảnh hưởng lan tỏa đến các nước mới nổi.
Thực hành: Nếu dữ liệu Việt Nam đủ dài, xác định tác động của khủng hoảng 2008 lên GDP/xuất khẩu.
Ngày 900: Phân tích Tác động Khủng hoảng 2008 lên Mô hình
Mục tiêu: So sánh hai loại cú sốc (2008 tài chính vs 2020 y tế) về đặc điểm drift.
Lý thuyết: Ôn lại phân loại sudden/gradual drift.
Thực hành: So sánh tốc độ phục hồi và hình dạng cú sốc giữa 2008 và 2020 trên chuỗi GDP Việt Nam.
Ngày 901: Chiến lược Ứng phó - Retrain Định kỳ
Mục tiêu: Biết chiến lược đơn giản nhất để đối phó drift.
Lý thuyết: Retraining định kỳ (VD: mỗi quý) để mô hình luôn cập nhật với dữ liệu mới nhất.
Thực hành: Thiết kế lịch retrain cho hệ thống forecasting đã xây, cân nhắc trade-off giữa tần suất retrain và chi phí tính toán.
Ngày 902: Chiến lược Ứng phó - Rolling Window Training
Mục tiêu: Biết chiến lược giới hạn dữ liệu huấn luyện.
Lý thuyết: Rolling window training, chỉ dùng N năm gần nhất thay vì toàn bộ lịch sử - giúp mô hình thích ứng nhanh hơn với regime mới.
Thực hành: So sánh hiệu năng mô hình XGBoost CPI khi train trên toàn bộ lịch sử vs chỉ 5 năm gần nhất.
Ngày 903: Chiến lược Ứng phó - Adaptive Models
Mục tiêu: Kết nối lại với mô hình thích ứng đã học ở Giai đoạn 4.
Lý thuyết: Ôn lại time-varying parameter models (Ngày 418), tự nhiên thích ứng với thay đổi theo thời gian.
Thực hành: So sánh khả năng thích ứng của TVP model với mô hình OLS cố định tham số quanh giai đoạn COVID.
Ngày 904: Chiến lược Ứng phó - Ensemble Model Mới/Cũ
Mục tiêu: Biết chiến lược kết hợp để giảm rủi ro khi retrain.
Lý thuyết: Kết hợp dự báo từ mô hình cũ (ổn định) và mô hình mới (thích ứng nhanh) bằng weighted combination (Giai đoạn 6).
Thực hành: Thiết kế combination động: tăng trọng số mô hình mới khi phát hiện drift, giảm khi ổn định.
Ngày 905: Xây dựng Cơ chế Tự động Phát hiện Drift
Mục tiêu: Đóng gói kỹ thuật phát hiện thành hệ thống tự động.
Lý thuyết: Ôn lại CUSUM/Page-Hinkley (Ngày 895).
Thực hành: Viết class Python
DriftDetectorchạy kiểm tra CUSUM trên residual stream liên tục.
Ngày 906: Xây dựng Cơ chế Tự động Retrain
Mục tiêu: Kết nối phát hiện drift với hành động retrain.
Lý thuyết: Trigger-based retraining, khi
DriftDetectorbáo drift thì kích hoạt retrain trong Airflow.Thực hành: Thêm task điều kiện vào Airflow DAG: chỉ retrain khi
DriftDetectorphát hiện drift (thay vì retrain theo lịch cố định).
Ngày 907: Project Concept Drift - Mô phỏng Regime Shift
Mục tiêu: Kiểm thử toàn bộ hệ thống trên dữ liệu có drift thực tế.
Lý thuyết: Ôn lại giai đoạn COVID đã phân tích (Ngày 897-898).
Thực hành: Chuẩn bị dữ liệu CPI/GDP Việt Nam trải dài qua giai đoạn COVID để test hệ thống.
Ngày 908: Project Concept Drift - Áp dụng Phương pháp Phát hiện
Mục tiêu: Xác nhận
DriftDetectorhoạt động đúng trên trường hợp thực tế đã biết.Lý thuyết: Ôn lại CUSUM.
Thực hành: Chạy
DriftDetectortrên residual mô hình CPI quanh giai đoạn COVID, kiểm tra có phát hiện đúng thời điểm không.
Ngày 909: Project Concept Drift - Xây Cơ chế Retrain Tự động
Mục tiêu: Hoàn thiện vòng lặp phát hiện-phản ứng.
Lý thuyết: Ôn lại trigger-based retraining (Ngày 906).
Thực hành: Cài đặt và test cơ chế tự động retrain khi
DriftDetectorkích hoạt.
Ngày 910: Project Concept Drift - Đánh giá Hiệu quả Ứng phó
Mục tiêu: Định lượng lợi ích của hệ thống thích ứng.
Lý thuyết: Ôn lại các metric đánh giá (RMSE).
Thực hành: So sánh RMSE dự báo quanh giai đoạn COVID giữa mô hình tĩnh (không retrain) và mô hình có cơ chế drift detection + retrain.
Ngày 911: Project Concept Drift - Viết Báo cáo
Mục tiêu: Hoàn thiện tài liệu cho project.
Lý thuyết: Ôn lại cấu trúc báo cáo.
Thực hành: Viết báo cáo mô tả toàn bộ hệ thống phát hiện và ứng phó concept drift, kèm kết quả định lượng.
Ngày 912: Giới hạn của Mô hình trước Sự kiện Chưa từng có
Mục tiêu: Có góc nhìn thực dụng và khiêm tốn về khả năng của mọi mô hình đã học.
Lý thuyết: "Unknown unknowns" - không mô hình nào (kể cả có drift detection) dự báo được sự kiện hoàn toàn mới chưa từng xảy ra trong lịch sử.
Thực hành: Viết bài luận ngắn thảo luận vai trò của judgment con người và scenario analysis (sẽ gặp lại ở Capstone 3) bên cạnh mô hình định lượng.
Ngày 913: Đọc Paper về Concept Drift trong Economic Forecasting
Mục tiêu: Cập nhật nghiên cứu mới nhất.
Lý thuyết: Tìm và đọc 1 paper về concept drift/structural break trong dự báo kinh tế.
Thực hành: Tóm tắt phương pháp và bài học áp dụng được.
Ngày 914: Ôn tập Concept Drift
Mục tiêu: Củng cố kiến thức Phần C trước khi tổng kết Giai đoạn 8.
Lý thuyết: Ôn tập Ngày 891–913.
Thực hành: Làm bộ câu hỏi ôn tập tổng hợp về phát hiện và ứng phó concept drift.
Ngày 915: Tổng kết Giai đoạn 8 - Production Forecasting
Mục tiêu: Củng cố toàn diện trước khi bước vào các Capstone cuối cùng.
Lý thuyết: Ôn tập tổng hợp cả 3 phần: MLOps, Forecast Monitoring, Concept Drift.
Thực hành: Hoàn thiện sơ đồ kiến trúc hệ thống production forecasting đầy đủ (Data → ETL → Model → Deploy → Monitor → Drift Detection → Retrain), sẵn sàng làm nền tảng trực tiếp cho Capstone 1, 2, 3.