Khóa Luận Tốt Nghiệp Xây Dựng Ứng Dụng Di Động Bán Thực Phẩm Trực Tuyến Hỗ Trợ Dự Báo Doanh Số.pdf

230 2 0
Khóa Luận Tốt Nghiệp Xây Dựng Ứng Dụng Di Động Bán Thực Phẩm Trực Tuyến Hỗ Trợ Dự Báo Doanh Số.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN PHẠM MINH TÂN BÙI DƯƠNG DUY KHANG KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG DI ĐỘNG BÁN THỰC PHẨM TRỰC TUYẾN HỖ TRỢ DỰ BÁO DOANH SỐ Building mobile application to sell food online with sales forecasting tools KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2022 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM PHẠM MINH TÂN – 19520261 BÙI DƯƠNG DUY KHANG - 19520618 KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG DI ĐỘNG BÁN THỰC PHẨM TRỰC TUYẾN HỖ TRỢ DỰ BÁO DOANH SỐ Building mobile application to sell food online with sales forecasting tools KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN NGUYỄN HỒNG THỦY TP HỒ CHÍ MINH, 2022 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số …………………… ngày ………………… Hiệu trưởng Trường Đại học Công nghệ Thông tin LỜI CẢM ƠN Để hồn thành đồ án khóa luận tốt nghiệp này, chúng em xin gửi lời cảm ơn chân thành đến: TS Nguyễn Hồng Thủy tận tình giúp đỡ, định hướng cách tư duy, hướng đồ án cách làm việc khoa học Đó góp ý q báu khơng q trình thực đồ án mơn học mà hành trang tiếp bước cho chúng em trình học tập đường phát triển nghiệp sau Trong trình làm đồ án chúng em khơng tránh khỏi sai sót, chúng em kính mong nhận dẫn góp ý để đồ án hồn thiện Chúng em xin chân thành cảm ơn Xin chúc điều tốt đẹp đồng hành Tp Hồ Chí Minh, 22 tháng 12 năm 2022 Sinh viên PHẠM MINH TÂN BÙI DƯƠNG DUY KHANG ĐỀ CƯƠNG CHI TIẾT TÊN ĐỀ TÀI: Xây dựng ứng dụng di động bán thực phẩm trực tuyến hỗ trợ dự báo doanh số TÊN ĐỀ TÀI TIẾNG ANH: Building mobile application to sell food online with sales forecasting tools Cán hướng dẫn: TS Nguyễn Hồng Thủy Thời gian thực hiện: Từ ngày 22/08/2022 đến ngày 19/12/2022 Sinh viên thực hiện: Phạm Minh Tân - 19520261 Bùi Dương Duy Khang - 19520618 Nội dung đề tài: Lý chọn đề tài: Ngày nay, với phát triển không ngừng nghỉ xã hội mà phát triển kinh tế nắm vai trị chủ đạo, việc kinh doanh hiệu ngày trở nên khó khăn hết Để cạnh tranh mơi trường kinh tế khắc nghiệt trì tăng trưởng cần có định chuẩn xác kịp thời từ người quản lý hoạt động tài chính, xuất nhập hàng hóa, quản lý dịng vốn, [1] Nếu người bán định lượng trước nhu cầu tiêu thụ sản phẩm, họ chủ động điều chỉnh việc nhập hàng lưu trữ hàng kho để giảm lãng phí [2, 3] Hàng nhập dư thừa chậm bán, chiếm chỗ lâu dầu dẫn đến bị hết hạn Hàng nhập thiếu khiến người bán khách hàng tiềm thân thiết Điều đặt toán việc dự báo doanh số tương lai Tuy nhiên điều mà cửa hàng bán lẻ khó đáp ứng sử dụng nguồn lực người, khó khăn tài khiến cho họ xây dựng đội ngũ chuyên viên phân tích, đánh giá dự báo doanh số Bên cạnh đó, nhà bán lẻ cịn thiếu cơng cụ số có khả truy vấn, tổng hợp dự báo liệu trực tiếp mà phải thơng qua nhiều loại hình sổ sách, tự tổng hợp hệ thống hoá liệu [4, 5] Việc không tiêu tốn nhiều nguồn lực, thời gian mà cịn dễ nhầm lẫn, sai sót gây mát liệu Từ dẫn đến việc định nhập xuất sản phẩm thiếu hiệu gây hậu nghiêm trọng đến sức khỏe tài Từ điều nhóm chúng tơi định chọn đề tài “Xây dựng ứng dụng di động bán thực phẩm trực tuyến hỗ trợ dự báo doanh số” Nhằm mục đích cung cấp ứng dụng kinh doanh trực tuyến có tích hợp dự báo doanh số cho cửa hàng bán lẻ để họ đưa định kinh doanh phù hợp kịp thời Mục tiêu: ● Phát triển ứng dụng mua bán thực phẩm trực tuyến tảng di động, đồng thời cung cấp cho đơn vị khả dự báo doanh số bán hàng, đặt biệt nhà bán lẻ hạn chế nguồn lực việc xây dựng phận kinh doanh dự báo bán hàng ● Cung cấp tảng mua hàng trực tuyến giúp người dùng dễ dàng việc mua sắm thực phẩm phục vụ nhu cầu cá nhân gia đình Giúp người tiêu dùng tiếp cận sản phẩm thực phẩm cửa hàng cách dễ dàng, nhanh chóng tiện lợi, từ làm tăng doanh số cửa hàng ● Giúp người quản lý cửa hàng quản lý sản phẩm về: số lượng tồn kho, số lượng bán ra, giá cả, cách dễ dàng, đồng thời chủ động theo dõi doanh số chúng để có điều chỉnh phù hợp kế hoạch kinh doanh ● Áp dụng phương pháp phân tích chuỗi thời gian (Time Series Analysis) phương pháp tiên tiến máy học (Machine Learning) để, đưa dự đoán doanh số dựa nguồn liệu lớn, giúp nhà bán lẻ hoạch định kế hoạch kinh doanh, chương trình khuyến mãi, sách nhân hiệu ● Hệ thống cung cấp công cụ để truy vấn, trực quan hóa liệu đưa dự báo trực yêu cầu người dùng khoản thời gian ngắn giúp nâng cao trải nghiệm người dùng, giúp người bán chủ động phân tích liệu bán hàng thay đổi kế hoạch kinh doanh kịp thời hiệu Phạm vi: Phạm vi môi trường: ● Ứng dụng: Android ● Server: Java Spring Phạm vi chức năng: ● Quản lý thông tin mặt hàng cửa hàng ● Quản lý thông tin đơn hàng cửa hàng ● Dự báo doanh số cho mặt hàng ● Dự báo doanh số cho loại hàng hóa ● Hỗ trợ định danh khách hàng đăng nhập, đăng ký ● Hỗ trợ cho khách hàng giỏ hàng, thay đổi sản phẩm giỏ hàng ● Hỗ trợ luồng mua hàng đơn giản cho khách hàng với hình thức tốn: tốn nhận hàng, toán qua tài khoản khách hàng, chuyển khoản trực tiếp hình thức vận chuyển mặc định cho khách hàng ● Hỗ trợ theo dõi thông tin đơn hàng ● Hỗ trợ quản lý địa giao hàng Đối tượng sử dụng: ● Người mua hàng thuộc lứa tuổi, sở thích, giới tính có nhu cầu mua sắm sản phẩm thực phẩm trực tuyến ● Người mua hàng thuộc lứa tuổi, sở thích, giới tính có nhu cầu tìm kiếm sản phẩm thuộc danh mục mà cửa hàng hỗ trợ ● Người quản lý cửa hàng cần quản lý mặt hàng cửa hàng số lượng tồn kho, số lượng bán ra, giá sản phẩm, ● Người hoạch định chiến lược kinh doanh cửa hàng cần dự đoán doanh số tương lai để đưa chiến lược kinh doanh phù hợp ● Người quản lý nguồn lực người cần dự đoán doanh số tương lai để đưa sách nhân phù hợp Phương pháp thực hiện: Trước vào nghiên cứu chi tiết, nhóm tìm hiểu xác định mục tiêu chi tiết đề tài nhằm tạo ứng dụng đáp ứng với dự tính ban đầu Nhóm định phương pháp thực đề tài thông qua bước sau: Bước 1: Tìm hiểu nghiên cứu ứng dụng mua bán thực phẩm trực tuyến thị trường Đánh giá khả đáp ứng nhu cầu thị trường hạn chế ứng dụng Bước 2: Phân tích chức phần mềm Bước 3: Phân tích đặc tả phần mềm Bước 4: Thiết kế sở liệu kiến trúc phần mềm Bước 5: Thiết kế giao diện cho ứng dụng cách sử dụng công nghệ hỗ trợ xây dựng prototype Bước 6: Triển khai phần mềm Bước 7: Kiểm tra sửa lỗi phần mềm Bước 8: Bổ sung cập nhật tài liệu khóa luận tốt nghiệp Nền tảng công nghệ: Backend: Java Spring Boot, Python REST API Database: MySQL App android: Kotlin (Android framework) Architecture: Client-Server Công cụ quản lý: Github, Figma, Micro, Microsoft Team Kết mong đợi: Ứng dụng đáp ứng được: - Yêu cầu chức năng: đáp ứng yêu cầu đặt - Phi chức năng: giao diện đẹp, dễ sử dụng - Bảo mật: đảm bảo an tồn thơng tin cá nhân - Hiệu năng: khả chịu tải tốt - Nâng cấp: dễ dàng nâng cấp bảo trì tương lai Hướng phát triển đề tài: Nếu tiến độ công việc đạt dự kiến, tương lai nhóm mở rộng thêm tính sau: - Cải thiện mơ hình dự báo doanh số - Hệ thống có khả dự báo thời gian thực - Hỗ trợ dự báo nhiều loại mặt hàng khác thực phẩm - Mở rộng thêm tảng website quản lý bán hàng - Mở rộng chức liên lạc đối tượng người dùng - Hệ thống tự động đề xuất chế chương trình khuyến nhằm tăng doanh số cửa hàng Kế hoạch làm việc: Thời gian thực từ 22/08 -18/12 nhóm chia làm giai đoạn cụ thể: - Giai đoạn (22/08 - 11/09): Thu thập yêu cầu phân tích hệ thống Thời gian 22/08 - Công việc Phụ trách Tìm hiểu nghiên cứu ứng dụng tương - Khang, tự Tân - Phân tích đặc tả phần mềm - Khang - Phân tích chức phần mềm - Tân, - Phân tích đặc tả phần mềm biểu Khang đồ (system architecture, use case) - Tân, Cập nhật nội dung đặc tả phần mềm Khang - 28/08 - khóa luận 29/08 - - 04/09 Tìm hiểu đặc điểm chuỗi liệu theo thời Tân, gian - Khang Nghiên cứu phương pháp thống kê cho hồi quy (regression) 05/09 - - Nghiên cứu phương pháp học máy cho hồi quy - Tìm hiểu Python - Tìm hiểu cơng nghệ dự án - Áp dụng phương pháp thống kê tập liệu Tân, nghiên cứu Khang - Áp dụng phương pháp học máy liệu 11/09 nghiên cứu - Thiết kế sở liệu kiến trúc phần mềm - Phân tích đặc tả phần mềm biểu đồ (sequence, ….) - Cập nhật nội dung đặc tả phần mềm khóa luận C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an max_q = 5, max_d = 1, max_P = 5, max_Q = 5, max_D = 1, maxiter = 50, alpha = 0.05, n_jobs = -1, trace=True, error_action='ignore', information_criterion= "aicc", suppress_warnings=True, stepwise=True) XGBoost_approac … same time series as h_daily.ipynb above XGBoost_approac … same time series as h_monthly.ipynb above … Sau huấn luyện trực tiếp nhiều models khác nhiều datasets khác ta thu danh sách K2 thuật toán hoạt động tốt ổn định cho nhiều datasets, ta gọi chúng ứng cử viên tiềm (potential candidates) 4.2.3 Huấn luyện trực tuyến (online training) Đầu tiên, người dùng gửi yêu cầu dự báo phần backend trả liệu lịch sử (historical sales .json dạng sau: Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 187 C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an sales_.json { "frequency": "D", "max_date": "1990-12-31", "horizon_date": "1991-03-31", "horizon": 90, "error_function": "MAE", "approaches": [ "SARIMA", "XGBoost" ], "time_series": [ { "datetime": "1988-12-31", "value": }, { "datetime": "1989-01-01", "value": }, … ] } Lưu ý: Quy định tổng số ngày cần dự báo: ● horizon số đơn vị thời gian dự báo tương lai ● max_horizon: số đơn vị thời gian tối đa horizon Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 188 C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an ● historical_data_length: chiều dài liệu chuỗi thời gian cho raw data ● max_training_length: chiều dài tối đa liệu chuỗi thời gian sử dụng cho building models Như chiều dài tối đa liệu chuỗi thời gian số đơn vị thời gian tối đa horizon tính theo cơng thức: ● Đối với dự báo theo ngày: ○ Max_training_length = 365 days * years = 730 days/ data points ○ Max_forecast_horizon = (max_training_length, historical_data_length)/ ● Đối với dự báo theo tháng: ○ Max_training_length = 12 months * years = 60 months/ data points ○ Max_forecast_horizon = (max_training_length, historical_data_length)/ Sau nhận yêu cầu với quy định, ta dùng models thuộc nhóm ứng cử viên tiềm tìm bước huấn luyện trực tiếp để tunning: Bảng 4.4 Turning SARIMA XGBoost Algorithm Hyperparameter-tuning family pdq PDQ SARIMA auto_arima(df.sale, m = 7, max_p = 5, max_q = 5, max_d = 1, Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 189 Number of models x models C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an max_P = 5, max_Q = 5, max_D = 1, maxiter = 50, alpha = 0.05, n_jobs = -1, trace=True, error_action='ignore', information_criterion= "aicc", suppress_warnings=True, stepwise=True) XGBoost conf = { (XGBRegresso 'random_state': 0, r) 'objective': 'reg:squarederror', y models 'booster': 'gbtree', 'updater': 'coord_descent', 'n_estimators': [1000, 2000, 3000], 'eta': 0.1, 'reg_alpha': 0, # default=0, L1-norm 100 'reg_lambda': 0, # default=1, L2-norm 'nthread': 1, } Như ta dùng (x+y) models để học đánh giá liệu mà khách hàng yêu cầu Chia liệu phần: train set + validation set + test set lưu kết best parameter cho family theo dạng sau: Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 190 C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an ● Train set : dùng để tính tham số mơ hình dự báo ● Validation set: dùng để chọn tham số best family ● Test_set: dùng để đánh giá generalization_error theo KPI absolute_error (RMSE, MAE) , relative error (RMSPE, MAPE) Training_result.json (đánh giá test_set) [ { "approach": "SARIMA", "best_config": { "max_p": 3, "max_q": 3, "m=12": 12, … }, "absolute_error": 3.071, "relative_error": 0.444, "approach_time": 500.222 }, { "approach": "XGBoost", "best_config": { "random_state': 0, 'objective': 'reg:squarederror', 'booster': 'gblinear', 'updater': 'coord_descent', 'n_estimators': 100, 'eta': 0.1, Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 191 C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an 'reg_alpha': 0, 'reg_lambda': 0, 'nthread': 1, }, "absolute_error": 5.11111, "relative_error": 0.33333, "approach_time": 2.999999 } ] 4.2.4 Chọn model cuối (winning model) Chúng ta có hai phương pháp chọn model để thực bước cuối trình thực nghiệm: Phương pháp 1: Chọn model tốt (the Winner) dựa kết từ tệp training_result.json theo phương pháp đánh giá nêu mục 4.3 Stt.010.Mssv.BKD002ac.email.ninhd.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj.dtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn 192 C.vT.Bg.Jy.Lj.Tai lieu Luan vT.Bg.Jy.Lj van Luan an.vT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.LjvT.Bg.Jy.Lj Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Hình 4.5 Chọn winner từ K2 candidates Phương pháp 2: từ K2 POTENTIAL CANDIDATES, chọn K3 WINNERS (trong K3

Ngày đăng: 24/07/2023, 00:12

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan