Rượu là một trong những thức uống được sử dụng phổ biến ở nhiều nước, nhiều quốc gia trên thế giới không chỉ trong những ngày thường, nó còn được sử dụng rất nhiều trong những ngày lễ tết, tiệc tùng … Với mong muốn được khám phá và tìm hiểu sâu hơn về những kiến thức đã được học ở trên lớp. Nhóm em đã đưa ra quyết định với đề tài “Nghiên cứu hệ thống đưa ra quyết định đặt đơn hàng cho phù hợp với từng thời điểm trong năm ở các cửa hàng tại bang Iowa – Mỹ”.Dựa trên kho dữ liệu về đơn đặt hàng của các cửa hàng bán rượu tại bang Iowa – Mỹ. Nhóm em sẽ đưa ra những quyết định đặt hàng của các sản phẩm rượu phụ thuộc vào vị trí địa lý, thời gian, các mùa trong năm cho phù hợp nhằm đáp ứng nhu cầu của thị trường. Lưu ý: Tài liệu mang tính chất tham khảo, vui lòng không sao chép hoặc copy
Trang 1
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Năm học: 2021 - 2022
MÔN HỌC
HỆ HỖ TRỢ QUYẾT ĐỊNH
LỚP
IS254.M22.TMCL
NHÓM 16
NGUYỄN KHẮC THÀNH - 19520956 NGUYỄN QUANG THÁI - 19522190
GIẢNG VIÊN HƯỚNG DẪN
ThS.NGUYỄN THANH BÌNH
ĐỀ TÀI
HỆ HỖ TRỢ QUYẾT ĐỊNH ĐẶT HÀNG CHO CÁC CỬA HÀNG BÁN RƯỢU TẠI BANG IOWA
BÁO CÁO
ĐỒ ÁN
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI MỞ ĐẦU 2
NHẬN XÉT CỦA GIẢNG VIÊN 3
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 4
1 Giới thiệu về đồ án 4
2 Giới thiệu về dataset 4
CHƯƠNG II: TRIỂN KHAI QUY TRÌNH VÀ PHƯƠNG PHÁP TRIỂN KHAI 5
1 Deployment 5
2 Business Understanding 5
3 Data Exploration 6
3.1 Công cụ sử dụng 6
3.2 Mô tả các thuộc tính 6
4 Data Preparation 7
4.1 Chọn các cột thuộc tính cần thiết và đặt lại tên cột thuộc tính 7
4.2 Xử lý chuyển cột date thành kiểu dữ liệu datatime 7
4.3 Kiểm tra sự trùng lặp 7
4.4 Kiểm tra dòng dữ liệu còn bị thiếu (Dữ liệu NULL) 7
5 Data Modeling 9
5.4 Model Sarimax 9
5.5 Model Prophet 10
6 Data Evaluation 11
CHƯƠNG III: KẾT LUẬN 12
1 Xử lý dữ liệu 12
2 Chạy thuật toán 13
3 So sánh 13
4 Đưa ra dự đoán 13
5 Đưa ra quyết định 13
CHƯƠNG IV: TÀI LIỆU THAM KHẢO 13
LỜI MỞ ĐẦU
Trang 3Sau hơn 2 năm bị ảnh hưởng bởi đại dịch Covid-19, công việc giảng dạy và học tập giữa các thầy cô, giảng viên và sinh viên bị ảnh hưởng rất nhiều Không những về phương pháp giảng dạy của thầy cô cũng phải thay đổi linh hoạt cho phù hợp với tình hình dịch bệnh mà các bạn sinh viên cũng cần phải có phương pháp học tập đúng đắn nhằm mang lại hiệu quả hơn trong quá trình học tập
Đại dịch Covid-19 cũng đã gây ra rất nhiều mất mát về thể chất cũng như tinh thần đối với nhiều gia đình Vì vậy, nhóm 16 chúng em xin gửi lời chúc sức khỏe và những điều tốt đẹp nhất đến với thầy và gia đình Đồng thời, chúng em xin được gửi lời cảm
ơn thầy vì đã nhiệt tình chỉ bảo và giải đáp những vấn đề còn thắc mắc trong quá trình tiếp thu kiến thức mới phục vụ cho công việc sau này
Cuối cùng, nhóm chúng em mong muốn được nhận những ý kiến đóng góp của thầy
về phần đồ án nhằm hoàn thiện được những thiếu xót của nhóm và làm hành trang để chúng em có thể tiếp tục với những đồ án môn học tiếp theo
Xin chân thành cảm ơn thầy, NHÓM THỰC HIỆN
NHẬN XÉT CỦA GIẢNG VIÊN
………
………
Trang 4………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI
1 Giới thiệu về đồ án
Rượu là một trong những thức uống được sử dụng phổ biến ở nhiều nước, nhiều quốc gia trên thế giới không chỉ trong những ngày thường, nó còn được sử dụng rất nhiều trong những ngày lễ tết, tiệc tùng … Với mong muốn được khám phá và tìm
Trang 5hiểu sâu hơn về những kiến thức đã được học ở trên lớp Nhóm em đã đưa ra quyết định với đề tài “Nghiên cứu hệ thống đưa ra quyết định đặt đơn hàng cho phù hợp với từng thời điểm trong năm ở các cửa hàng tại bang Iowa – Mỹ”
Dựa trên kho dữ liệu về đơn đặt hàng của các cửa hàng bán rượu tại bang Iowa –
Mỹ Nhóm em sẽ đưa ra những quyết định đặt hàng của các sản phẩm rượu phụ thuộc vào vị trí địa lý, thời gian, các mùa trong năm cho phù hợp nhằm đáp ứng nhu cầu của thị trường
2 Giới thiệu về dataset
Bộ dữ liệu bao gồm: 23.774.991 dòng và 24 cột thuộc tính
Đường dẫn: https://data.iowa.gov/Sales-Distribution/Iowa-Liquor-Sales/m3tr-qhgy
Hình 1.1 Dữ liệu gốc
CHƯƠNG II: TRIỂN KHAI QUY TRÌNH VÀ
PHƯƠNG PHÁP TRIỂN KHAI
1 Deployment
Bước 1: Cài đặt thư viện cần thiết và phù hợp với mục đích triển khai.
Bước 2: Xây dựng mô hình Machine Learning tốt nhất và lưu lại.
Trang 6Bước 3: Kiểm tra Mô hình.
Bước 4: Tạo file.
Bước 4.1 Truy cập vào thư viện và bộ dữ liệu được tạo sẵn
Bước 4.2 Sử dụng phân tích cảm xúc để dự đoán các thông số trong bộ dữ liệu Bước 4.3 Sử dụng các thuật toán đơn để dự đoán lượng đặt hàng
Bước 4.4 Lựa chọn thuật toán tốt nhất
Bước 5: Kết thúc.
2 Business Understanding
Bộ dữ liệu được lấy từ website có đường link là
https://data.iowa.gov/Sales-Distribution/Iowa-Liquor-Sales/m3tr-qhgy
Ở đây, nhóm em sử dụng bộ dữ liệu này là để phân tích và giúp cho các cửa hàng đưa
ra các quyết định đặt hàng cho phù hợp với từng vùng, từng thời điểm trong năm sao cho hiệu quả và giảm thiểu việc tồn kho lâu ngày làm ảnh hưởng đến chất lượng của sản phẩm và nâng cao hiệu quả sử dụng hơn
3 Data Exploration
3.1Công cụ sử dụng
- Ngôn ngữ lập trình: Python
- Thư viện Python hỗ trợ: sklearn, torch, statsmodeles
3.2Mô tả các thuộc tính
(Định dạng yyyy-mm-dd)
18 BottleVolume Thể tích của mỗi chai rượu (tính bằng ml)
Trang 719 StateBottleCost Số tiền thuế ABD cho mỗi chai rượu được đặt
hàng
20 StateBottleRetail Số tiền phải trả cho mỗi chai rượu đã được đặt
hàng
21 BottlesSold Số lượng chai rượu cửa hàng đặt
22 SaleDollars Tổng chi phí đặt hàng (số chai rượu * giá bán lẻ)
23 VolumeSoldLitters Tổng thể tích rượu được đặt (tính theo lít)
= (thể tích chai (tính theo ml) * số chai rượu đã
bán) / 1000
24 VolumeSoldGallons Tổng thể tích rượu được đặt (tính theo đơn vị
gallon)
= (thể tích chai (tính theo ml) * số chai rượu đã
bán) / 3785.411784
4 Data Preparation
4.1 Chọn các cột thuộc tính cần thiết và đặt lại tên cột thuộc tính
4.2 Xử lý chuyển cột date thành kiểu dữ liệu datatime
4.3 Kiểm tra sự trùng lặp
Vì số lượng hóa đơn khác nhau và bằng với số lượng dòng dữ liệu nên không có sự trùng lặp
4.4Kiểm tra dòng dữ liệu còn bị thiếu (Dữ liệu NULL)
Sau khi kiểm tra những dòng dữ liệu còn bị thiếu, ta được kết quả như sau
Trang 8Thông qua dữ liệu được cung cấp, ta có thể tìm được thông tin về mã vùng thông qua
mã cửa hàng và mã loại sản phẩm thông qua mã sản phẩm Ta sẽ tìm được thông tin
về mã vùng và mã loại sản phẩm ở những dòng không bị thiếu dữ liệu và tự động điền vào những dòng dữ liệu còn bị thiếu Đối với những dòng hoàn toàn không có thông tin trong bộ dữ liệu, ta xuất ra và xóa đi các dòng dữ liệu đó
Sau khi kiểm tra lại, ta có được kết quả như sau:
Trang 9Sau đó, ta sẽ bỏ qua các dòng bị thiếu còn lại.
5 Data Modeling
Sử dụng 2 model Sarimax và Prophet
Ta sẽ sử dụng những dữ liệu từ năm 2012 đến tháng 12 năm 2020 để làm dữ liệu huấn luyện cho mô hình
5.4Model Sarimax
Bước 1: Kiểm tra xu hướng, tính mùa vụ và phân bố của dữ liệu
Bước 2: Hiệu chỉnh các tham số của mô hình với chỉ số x là 12
Bước 3: Chạy để tìm các mô hình sao cho chỉ số AIC nhỏ nhất
Trang 10Bước 4: Chọn và hiển thị Model Sarimax
Bước 5: Biểu đồ dự báo lượng đặt hàng
5.5Model Prophet
Prophet là một thư viện hỗ trợ dự đoán được Facebook thiết kế để dung cho các mô hình chuỗi thời gian Ra đời vào năm 2017, tương tự như các mô hình ARIMA,
Prophet hỗ trợ dự đoán theo xu hướng, dự đoán theo mùa vụ Prophet thông minh bởi tính tự động hóa dự đoán của mô hình này cao, ngoài ra đối với các mô hình dư đoán khoảng thời gian, Prophet có thể phân tích dựa trên các ngày lễ để có thể đưa ra kết quả chính xác Ngoài khả năng tự đông cao, thư viện cũng có thể điều chỉnh linh hoạt
để các nghiên cứu viên có thể đưa ra một mô hình tốt nhất
Trang 11Kết quả chạy bộ dữ liệu 1
Kết quả chạy bộ dữ liệu 2
6 Data Evaluation
Để đánh giá độ chính xác của mô hình, ta sử dụng 2 chỉ số đó là MSE (Mean Square Error) và RMSE (Root Mean Square Error)
Chỉ số mô hình áp dụng cho sản phẩm có mã 38177
LSTM 1
LSTM 2
Chú thích: các giá được tính bằng ngôn ngữ Python
Ta làm tương tự với sản phẩm có mã là 89387
LSTM 1
LSTM 2
Chú thích: các giá trị được tính bằng ngôn ngữ Python
Trang 12CHƯƠNG III: KẾT LUẬN
1 Xử lý dữ liệu
Tính tổng giá trị các sản phẩm đã đặt của cửa hàng trong năm vừa qua
Đối với những sản phẩm có tổng giá trị đặt hàng lớn ta lấy dữ liệu tổng đặt hàng của sản phẩm đó theo tháng của vùng
Đối với sản phẩm có lượng đặt hàng thấp, ta lấy danh sách những đơn hàng đã đặt trong năm vừa rồi
2 Chạy thuật toán
Ta đưa dữ liệu vào mô hình, sau đó dự đoán kết quả đồng thời tính các chỉ số đánh giá của mô hình
3 So sánh
Thông qua các chỉ số đánh giá, ta chọn kết quả của mô hình có chỉ số tốt hơn
4 Đưa ra dự đoán
Ta tính % lượng hàng sẽ tăng hay giảm thông qua dự đoán so với năm vừa qua Tính lượng đặt hàng tính từ đầu năm vừa qua nhân với % dự đoán (tăng, giảm) để đưa ra lượng đặt hàng dự đoán
Trang 135 Đưa ra quyết định
Ta sẽ so sánh lượng đặt hàng từ đầu năm với dự đoán Nếu thực tế nhỏ hơn dự đoán,
ta lấy số lượng sản phẩm chênh lệch Nếu số lượng chênh lệch nhỏ hơn đơn hàng có
số lượng nhỏ nhất thì ta sẽ đưa ra gợi ý đặt hàng
CHƯƠNG IV: TÀI LIỆU THAM KHẢO
[1] https://data.gov.vn/web/guest/ve-cong-du-lieu-quoc-gia
[2] He Changlin, Li Yufen (2017) “A Survey of Intelligent Decision Support System” Information Technology Center of Hexi University, Zhangye Gansu 734000 China [3] https://phamdinhkhanh.github.io/2019/12/12/ARIMAmodel.html
[4]
https://learning.huph.edu.vn/pluginfile.php/6387/mod_folder/content/0/067%20Cours e-Notes-The-SARIMAX-Model.pdf?forcedownload=1
[5] Nguyễn Đình Thuận, Hồ Công Hoài (2018) “KẾT HỢP MÔ HÌNH ARIMA VÀ SUPPORT VECTOR MACHINE ĐỂ DỰ BÁO TẠI CÔNG TY DỊCH VỤ TRỰC TUYẾN CỘNG ĐỒNG VIỆT”, Trường Đại học Công nghệ Thông tin,
ĐHQG-TPHCM
[6] https://www.kaggle.com/code/roudradas/time-series-analysis-of-iowa-liquor-sales/notebook
[7]
https://colab.research.google.com/github/dlmacedo/starter-academic/blob/master/content/courses/deeplearning/notebooks/pytorch/Time_Series_ Prediction_with_LSTM_Using_PyTorch.ipynb#scrollTo=ooQPXSYhA_ps