BÁO CÁO THỰC TẬP TỐT NGHIỆP TÊN ĐỀ TÀI Nghiên cứu thư viện mã nguồn mở Sklearn xây dựng ứng dụng dự báo nhanh doanh thu của doanh nghiệp
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIA ĐỊNH KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
TÊN ĐỀ TÀI
Nghiên cứu thư viện mã nguồn mở Sklearn xây dựng ứng dụng dự báo
nhanh doanh thu của doanh nghiệp
Giảng viên hướng dẫn: Trần Hoài Thuận
Sinh viên thực hiện: Trịnh Đức Hùng
MSSV: 2108110127
Lớp: K15HTTT01
Khóa: 2021_ĐHCQ_K15
Trang 2Thành phố Hồ Chí Minh, tháng 07 năm 2024
LỜI CẢM ƠN
Trước tiên, em xin gửi lời cảm ơn chân thành đến Trườngđại học Gia Định và các giảng viên trong Khoa Công nghệ Thôngtinđã tạo điều kiện thuận lợi cho tôi hoàn thành bài báo cáo thực tập tốtnghiệp
Cảm ơn ThS Trần Hoài Thuận , người đã tận tình hướng dẫn, chia sẻ kiến thức và kinh nghiệm quý báu, giúp em hoàn thiện nội dung bài báo cáo thực tập
Cuối cùng, em xin cảm ơn tất cả các tác giả và nhà nghiên cứu đã cung cấp tài liệu và thông tin hữu ích để tham khảo và học hỏi Những kiến thức và thông tin từ các nguồn tài liệu này đã đóng góp không nhỏ vào
sự thành công của bài báo cáo thực tập tốt nghiệp
xin chân thành cảm ơn!
Trang 3ĐÁNH GIÁ CỦA ĐƠN VỊ THỰC TẬPThái độ tác phong trong thời gian thực tập:
Kiến thức chuyên môn:
Trang 4ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪNThái độ tác phong trong thời gian thực tập:
Kiến thức chuyên môn:
Nhận thức thực tế:
Đánh giá khác:
5 Đánh giá chung kết quả thực tập:
………, ngày ……… tháng ……… năm …………
Giảng viên hướng dẫn
(Ký tên, ghi rõ họ tên)
Trang 5TRƯỜNG ĐẠI HỌC GIA ĐỊNH KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BÁO CÁO THỰC TẬP TỐT NGHIỆP HÀNG TUẦN
Họ và tên SV: Trịnh Đức Hùng MSSV: 2108110127 Lớp: K15HTTT01
Giảng viên hướng dẫn: Trần Hoài Thuận Tên doanh nghiệp (đơn vị) đến thực tập: Đại học Gia Định
Địa chỉ: 371 Đ Nguyễn Kiệm, Phường 3, Gò Vấp, HCM, Việt Nam
tên)
Nhận xét của giảng viên hướng dẫn (Ký tên và ghi rõ họ
tên)
1
Tuần 1 (Từ ngày 20/05 đến ngày
26/05)
Giới thiệu về thư viện
mã nguồn mở Sklearn Xác định mục tiêu và phạm vi của dự
án và Thu thập tài liệu và nghiên cứu cơ bản về Sklearn
Trang 6hoạch cho ứng dụng dự báo
3
Tuần 3 (Từ ngày 03/06 đến ngày
09/06 )
Phân tích dữ liệu đầu vào cần thiết cho dự báo doanh thu Tìm hiểu về các mô hình dự báo trong Sklearn và Chuẩn
bị dữ liệu cho ứng dụng
4
Tuần 4 (Từ ngày 10/06 đến ngày
16/06 )
Triển khai các mô hình
dự báo cơ bản sử dụng Sklearn Đánh giá hiệu suất của các mô hình Tinh chỉnh và điều chỉnh các mô hình
5
Tuần 5 (Từ ngày 17/06 đến ngày
23/06 )
Phát triển giao diện người dùng cho ứng dụng dự báo Tích hợp các mô hình dự báo vào giao diện và Kiểm tra chức năng của ứng dụng
6
Tuần 6 (Từ ngày 24/06 đến ngày
30/06 )
Tiếp tục phát triển và hoàn thiện giao diện người dùng Thực hiện các bài kiểm tra tích hợp
và Xử lý lỗi và tối ưu hóa ứng dụng
7
Tuần 7 (Từ ngày 01/07 đến ngày
07/07 )
Thực hiện thử nghiệm thực tế với dữ liệu doanh nghiệp Đánh giá hiệu quả và độ chính xác của ứng dụng và Thu thập phản hồi và điều chỉnh
Trang 7quả thử nghiệm và cải tiến và Chuẩn bị tài liệu hướng dẫn sử dụng
9
Tuần 9 (Từ ngày 15/07 đến
ngày 21/07 )
Hoàn thiện báo cáo nghiên cứu và kết quả ứng dụng Kiểm tra lại toàn bộ ứng dụng và tài liệu và Chuẩn bị cho buổi trình bày cuối cùng
10
Tuần 10 (Từ ngày 22/07 đến
ngày 29/07 )
Hoàn tất và nộp báo cáo nghiên cứu Tổ chức buổi trình bày và nhận xét vàĐánh giá toàn bộ
dự án và rút kinh nghiệm
MỤC LỤC
Mở đầu:……… Trang 1 Chương 1 Giới thiệu……… Trang 2
1.1 Bối cảnh và lý do chọn đề tài……….…….Trang 21.2 Mục tiêu nghiên cứu……… Trang 31.3 Đối tượng và phạm vi nghiên cứu……… Trang 41.4 Phương pháp nghiên cứu……… Trang 6
Chương 2: Tổng quan về thư viện Sklearn và các phương pháp dự báo doanh thu……… …Trang 9
2.1 Giới thiệu về thư viện Sklearn……….Trang 92.2 Các phương pháp học máy trong Sklearn……… Trang 102.2.1 Hồi quy tuyến tính……… Trang 12
2.2.2 Cây quyết định……….….… Trang 132.2.3 Rừng ngẫu nhiên……… Trang 152.3 Dự báo thời gian……… Trang 162.4 Ứng dụng của Sklearn trong dự báo doanh thu……….Trang 17
Trang 8Chương 3: Phân tích yêu cầu và thiết kế hệ thống……… Trang 19
3.1 Thiết kế kiến trúc hệ thống……….Trang 19
3.2 Thiết kế cơ sở dữ liệu……… Trang 22
3.3 Thiết kế giao diện người dùng………Trang 24
Chương 4: Xây dựng ứng dụng ……… ……….Trang 25
4.1 Cài đặt môi trường phát triển……….Trang 25
4.2 Xây dựng và huấn luyện mô hình……… Trang 26
4.3 Tối ưu hóa và cải tiến……… Trang 29
Chương 5: Kết luận……… Trang 30
5.1 So sánh với các phương pháp khác……… Trang 30
5.2 Hạn chế và hướng phát triển tương lai……… Trang 32
5.3 Kết luận……… Trang 33
MỞ ĐẦU
Trong bối cảnh kinh tế toàn cầu không ngừng thay đổi và phát triển, việc
dự báo doanh thu trở nên vô cùng quan trọng đối với các doanh nghiệp
Dự báo chính xác giúp doanh nghiệp lên kế hoạch kinh doanh, quản lý rủi
ro, và tối ưu hóa nguồn lực Với sự phát triển mạnh mẽ của công nghệ và các thuật toán học máy, việc ứng dụng những công nghệ tiên tiến vào quy trình dự báo đã trở nên dễ dàng và hiệu quả hơn bao giờ hết
Thư viện mã nguồn mở Sklearn là một trong những công cụ mạnh mẽ và phổ biến nhất hiện nay trong lĩnh vực học máy và phân tích dữ liệu Với các thuật toán và công cụ phong phú, Sklearn cung cấp một nền tảng linh hoạt và dễ sử dụng cho các nhà phát triển và nhà khoa học dữ liệu
Trang 9Đề tài "Nghiên cứu thư viện mã nguồn mở Sklearn xây dựng ứng dụng dự báo nhanh doanh thu của doanh nghiệp" được thực hiện nhằm tìm hiểu sâu hơn về Sklearn, từ đó áp dụng những kiến thức đã học để xây dựng một ứng dụng thực tiễn giúp dự báo nhanh doanh thu cho các doanh nghiệp Thông qua việc nghiên cứu và thực hành, tiểu luận này mong muốn góp phần vào việc nâng cao hiệu quả kinh doanh, đồng thời mang lại những giải pháp công nghệ tiên tiến cho các doanh nghiệp Việt Nam.
Hy vọng rằng, tiểu luận này sẽ mang lại những thông tin hữu ích và đóng góp vào sự phát triển của ngành học máy và ứng dụng công nghệ thông tintrong kinh doanh
Trang 10trong lĩnh vực học máy, cung cấp nhiều công cụ và thuật toán phục vụ cho việc phân tích và dự báo dữ liệu.
Lý do chọn đề tài
1.Tính ứng dụng cao: Việc dự báo doanh thu chính xác giúp các doanh
nghiệp lập kế hoạch tài chính, quản lý nguồn lực hiệu quả và tăng cường khả năng cạnh tranh trên thị trường Sklearn cung cấp các công cụ học máy mạnh mẽ và linh hoạt, giúp việc dự báo trở nên dễ dàng và chính xác hơn
2.Mã nguồn mở và dễ tiếp cận: Sklearn là một thư viện mã nguồn mở,
nghĩa là người dùng có thể sử dụng và tùy chỉnh theo nhu cầu mà không phải trả phí Điều này giúp tiết kiệm chi phí và tăng tính khả thi cho các doanh nghiệp nhỏ và vừa
3.Cộng đồng hỗ trợ mạnh mẽ: Sklearn có một cộng đồng người dùng và
phát triển rộng lớn, giúp người dùng dễ dàng tìm kiếm tài liệu, hỗ trợ và các ví dụ thực tế trong việc triển khai các mô hình học máy
Trang 2
4.Khả năng tích hợp: Sklearn dễ dàng tích hợp với các công cụ và ngôn
ngữ lập trình khác như Python, Pandas, và NumPy, tạo điều kiện thuận lợi cho việc xây dựng các ứng dụng dự báo và phân tích dữ liệu phức tạp
5.Tầm quan trọng của dự báo doanh thu: Dự báo doanh thu là một yếu tố
then chốt trong việc quản lý tài chính và hoạch định chiến lược kinh
doanh Nghiên cứu và ứng dụng các công cụ hiện đại như Sklearn giúp cải
Trang 11thiện chất lượng và độ chính xác của các dự báo, từ đó nâng cao hiệu quả hoạt động của doanh nghiệp.
Việc nghiên cứu và xây dựng một ứng dụng dự báo nhanh doanh thu dựa trên thư viện Sklearn không chỉ giúp đáp ứng nhu cầu thực tiễn của doanh nghiệp mà còn góp phần vào sự phát triển của lĩnh vực học máy và phân tích dữ liệu tại Việt Nam
1.2 Mục tiêu nghiên cứu
1.Hiểu rõ về thư viện Sklearn: Tìm hiểu và nắm vững các khái niệm, công
cụ, và chức năng của thư viện mã nguồn mở Sklearn trong Python
2 Phân tích dữ liệu doanh thu: Thu thập và phân tích dữ liệu doanh thu
của doanh nghiệp, bao gồm các yếu tố ảnh hưởng đến doanh thu như thờigian, mùa vụ, chính sách bán hàng, v.v
3 Xây dựng mô hình dự báo: Sử dụng các thuật toán học máy (machine
learning) trong Sklearn để xây dựng và huấn luyện các mô hình dự báo doanh thu
4 Đánh giá hiệu suất mô hình: Thực hiện các phương pháp đánh giá hiệu
suất của mô hình dự báo, bao gồm kiểm định độ chính xác, độ tin cậy và khả năng tổng quát hóa của mô hình
Trang 3
5 Triển khai ứng dụng dự báo: Phát triển một ứng dụng cụ thể sử dụng
mô hình dự báo để cung cấp các dự đoán doanh thu nhanh chóng và chínhxác cho doanh nghiệp
6.Tối ưu hóa và cải tiến: Nghiên cứu các phương pháp tối ưu hóa mô hình
và cải tiến hiệu suất dự báo theo thời gian, dựa trên phản hồi và dữ liệu thực tế
Trang 127.Ứng dụng thực tiễn: Đánh giá khả năng ứng dụng của mô hình và hệ
thống dự báo trong thực tế, và đưa ra các khuyến nghị để doanh nghiệp cải thiện quy trình dự báo doanh thu của mình
1.3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài này là thư viện mã nguồn mở Scikit-learn (Sklearn) trong Python, một công cụ mạnh mẽ và phổ biến trong lĩnh vực học máy và khoa học dữ liệu Thư viện này cung cấp các công cụ cần thiết
để xây dựng và triển khai các mô hình học máy, giúp doanh nghiệp dự báo nhanh doanh thu dựa trên các dữ liệu lịch sử
Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài bao gồm:
1 Khảo sát và phân tích thư viện Sklearn:
o Nghiên cứu các tính năng và công cụ chính của Sklearn
o Tìm hiểu về các thuật toán học máy có sẵn trong Sklearn
2 Ứng dụng Sklearn trong dự báo doanh thu:
o Thu thập và xử lý dữ liệu lịch sử doanh thu của doanh nghiệp
Trang 134 Xây dựng ứng dụng dự báo doanh thu:
o Thiết kế và triển khai ứng dụng dự báo doanh thu nhanh, dễ
sử dụng cho doanh nghiệp
o Hướng dẫn cách sử dụng và tích hợp ứng dụng vào hệ thống hiện có của doanh nghiệp
5 Đánh giá và đề xuất cải tiến:
o Đánh giá các hạn chế của ứng dụng và đề xuất các hướng cải tiến trong tương lai
Kết quả mong đợi
1 Kiến thức sâu rộng về Sklearn: Hiểu rõ về cách thức hoạt động và
các ứng dụng của Sklearn trong học máy
2 Ứng dụng thực tiễn: Xây dựng một ứng dụng dự báo doanh thu
nhanh chóng và hiệu quả cho doanh nghiệp
3 Kinh nghiệm thực tế: Có được kinh nghiệm về thu thập, xử lý dữ
liệu và xây dựng mô hình học máy trong thực tế
Trang 5
1.4 Phương pháp nghiên cứu
Trang 141.Nghiên cứu tài liệu (Literature Review)
● Mục tiêu: Tìm hiểu và tổng hợp các kiến thức liên quan đến học
máy (machine learning), thư viện Scikit-Learn, và các phương pháp
dự báo doanh thu
● Hoạt động cụ thể:
o Đọc sách, bài báo khoa học, tài liệu kỹ thuật liên quan đến Scikit-Learn và các thuật toán học máy thường được sử dụng trong dự báo doanh thu
o Tổng hợp các nghiên cứu trước đây về việc sử dụng học máy trong dự báo doanh thu của doanh nghiệp
2 Phân tích yêu cầu (Requirement Analysis)
● Mục tiêu: Xác định các yêu cầu cụ thể của ứng dụng dự báo doanh
3 Thu thập và xử lý dữ liệu (Data Collection and Preprocessing)
● Mục tiêu: Thu thập dữ liệu cần thiết cho quá trình xây dựng mô
hình và tiền xử lý dữ liệu để đảm bảo chất lượng
Trang 15● Mục tiêu: Lựa chọn mô hình học máy phù hợp và triển khai bằng
thư viện Scikit-Learn
5 Đánh giá và tinh chỉnh mô hình (Model Evaluation and Tuning)
● Mục tiêu: Đánh giá hiệu suất của các mô hình và thực hiện các điều
chỉnh cần thiết
● Hoạt động cụ thể:
Trang 16o Sử dụng các chỉ số đánh giá như MSE, RMSE, MAE để đánh giá hiệu suất của mô hình.
o Thực hiện tinh chỉnh các siêu tham số (hyperparameters) để cải thiện độ chính xác của mô hình
Trang 7
6 Xây dựng ứng dụng (Application Development)
● Mục tiêu: Xây dựng ứng dụng dự báo doanh thu dựa trên mô hình
đã chọn
● Hoạt động cụ thể:
o Thiết kế giao diện người dùng (UI) thân thiện và dễ sử dụng
o Tích hợp mô hình học máy vào ứng dụng
o Kiểm thử ứng dụng để đảm bảo hoạt động ổn định và chính xác
7 Triển khai và đánh giá thực tế (Deployment and Real-World
Trang 17o Thu thập phản hồi từ người dùng và thực hiện các cải tiến cầnthiết.
8 Tổng kết và báo cáo (Conclusion and Reporting)
● Mục tiêu: Tổng kết kết quả nghiên cứu và viết báo cáo.
2.1 Giới thiệu về thư viện Sklearn
Scikit-learn, thường được gọi là Sklearn, là một thư viện mã nguồn mở choPython được thiết kế cho học máy (machine learning) Thư viện này cung cấp một loạt các công cụ hiệu quả và dễ sử dụng cho việc phân tích và mô hình hóa dữ liệu Sklearn đặc biệt phổ biến trong cộng đồng học máy và khoa học dữ liệu vì tính tiện lợi và hiệu suất cao
Các tính năng chính của Sklearn
1.Mô hình hóa dữ liệu:
Trang 18● Phân loại (Classification): Logistic Regression, Support Vector
Machines (SVM), k-Nearest Neighbors (k-NN), Random Forests, Gradient Boosting, v.v
● Hồi quy (Regression): Linear Regression, Ridge Regression, Lasso,
ElasticNet, v.v
● Clustering: K-Means, DBSCAN, Hierarchical Clustering, v.v.
● Giảm chiều (Dimensionality Reduction): Principal Component
Analysis (PCA), Linear Discriminant Analysis (LDA), t-SNE, v.v
2.Tiền xử lý dữ liệu (Data Preprocessing):
● Chuẩn hóa (Normalization)
● Chuẩn hóa theo chuẩn tỉ lệ (Standardization)
● Imputation (điền giá trị thiếu)
● One-hot encoding (biến đổi dữ liệu phân loại)
Trang 19● Các metric đánh giá như accuracy, precision, recall, F1-score, AUC, v.v
4, Pipeline: Sklearn cho phép xây dựng các pipeline để chuỗi các bước
tiền xử lý và mô hình hóa, giúp tự động hóa và tối ưu hóa quy trình học máy
5 Hỗ trợ tích hợp: Sklearn có thể dễ dàng tích hợp với các thư viện khác
như NumPy, SciPy, Pandas, Matplotlib, và Jupyter Notebook để phân tích
và trực quan hóa dữ liệu
2.2 Các phương pháp học máy trong Sklearn
1 Hồi quy (Regression):
● Linear Regression: Hồi quy tuyến tính.
● Ridge Regression: Hồi quy Ridge.
● Lasso Regression: Hồi quy Lasso.
● ElasticNet: Kết hợp Ridge và Lasso.
● Polynomial Regression: Hồi quy đa thức.
● Bayesian Ridge Regression: Hồi quy Ridge Bayesian.
● SGD Regression: Hồi quy tuyến tính với Stochastic Gradient
Descent
Trang 20Trang 10
2 Phân loại (Classification):
● Logistic Regression: Hồi quy logistic.
● K-Nearest Neighbors (KNN): K láng giềng gần nhất.
● Support Vector Machines (SVM): Máy vector hỗ trợ.
● Decision Trees: Cây quyết định.
● Random Forest: Rừng ngẫu nhiên.
● Naive Bayes: Phương pháp Naive Bayes.
● Gradient Boosting: Tăng cường độ dốc.
● AdaBoost: Tăng cường AdaBoost.
● Stochastic Gradient Descent (SGD): Phân loại với Stochastic
Gradient Descent
3 Phân cụm (Clustering):
● K-Means: Phương pháp K-Means.
● Agglomerative Clustering: Phân cụm kết hợp.
● DBSCAN: Phương pháp DBSCAN.
Trang 21● Mean Shift: Dịch chuyển trung bình.
● Spectral Clustering: Phân cụm phổ.
4 Giảm chiều (Dimensionality Reduction):
● Principal Component Analysis (PCA): Phân tích thành phần chính.
● Linear Discriminant Analysis (LDA): Phân tích phân biệt tuyến tính.
● Kernel PCA: Phân tích thành phần chính Kernel.
● Truncated SVD: Phân tích giá trị suy biến cắt ngắn.
Trang 11
● t-SNE: T-SNE (T-distributed Stochastic Neighbor Embedding).
5 Học bán giám sát (Semi-supervised Learning):
● Label Spreading: Phương pháp lan truyền nhãn.
● Label Propagation: Phương pháp lan truyền nhãn.
6 Học tăng cường (Ensemble Learning):
● Voting Classifier: Bộ phân loại theo nguyên tắc bỏ phiếu.
Trang 22● Bagging: Phương pháp Bagging.
● Random Forest: Rừng ngẫu nhiên.
● Gradient Boosting: Tăng cường độ dốc.
● AdaBoost: Tăng cường AdaBoost.
7 Học tích cực (Active Learning):
● Uncertainty Sampling: Lấy mẫu không chắc chắn.
● Query by Committee: Hỏi bởi hội đồng.
8 Phân cụm (Manifold Learning):
● Isomap: Phương pháp Isomap.
● Locally Linear Embedding (LLE): Phương pháp nhúng tuyến tính cục
bộ
● Multi-dimensional Scaling (MDS): Phương pháp mở rộng đa chiều
2.2.1 Hồi quy tuyến tính
Trang 12Hồi quy tuyến tính là một kỹ thuật phân tích dữ liệu cơ bản và phổ biến được sử dụng để xây dựng mô hình dự đoán doanh thu Hồi quy tuyến
Trang 23tính giúp xác định mối quan hệ giữa một biến phụ thuộc (trong trường hợp này là doanh thu của doanh nghiệp) và một hoặc nhiều biến độc lập (như chi phí marketing, số lượng nhân viên, hoặc các yếu tố khác ảnh hưởng đến doanh thu).
Khi ứng dụng hồi quy tuyến tính trong thư viện mã nguồn mở Sklearn để xây dựng ứng dụng dự báo doanh thu, bạn sẽ thực hiện các bước chính sau:
1 Thu thập và chuẩn bị dữ liệu: Thu thập dữ liệu liên quan đến doanh
thu và các yếu tố ảnh hưởng Dữ liệu cần được làm sạch và chuẩn hóa để phù hợp với mô hình
2 Chia dữ liệu: Chia dữ liệu thành tập huấn luyện và tập kiểm tra để
đánh giá hiệu quả của mô hình
3 Xây dựng mô hình: Sử dụng thư viện Sklearn để tạo và huấn luyện
mô hình hồi quy tuyến tính Thư viện Sklearn cung cấp lớp
LinearRegression để thực hiện nhiệm vụ này
4 Đánh giá mô hình: Đánh giá hiệu suất của mô hình bằng cách sử
dụng các chỉ số như R² (hệ số xác định), MSE (sai số bình phương trung bình), và MAE (sai số tuyệt đối trung bình)
5 Dự đoán: Sử dụng mô hình để dự đoán doanh thu dựa trên các yếu
tố đầu vào mới
6 Tinh chỉnh và tối ưu hóa: Nếu cần, thực hiện các bước tinh chỉnh và
tối ưu hóa để cải thiện độ chính xác và hiệu quả của mô hình
2.2.2 Cây quyết định
Trang 13