1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO THỰC TẬP TỐT NGHIỆP TÊN ĐỀ TÀI WALMART REVENUE PREDICTION

64 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

MỤC LỤC MỤC LỤC HÌNH ẢNH MỤC LỤC BẢNG MỞ ĐẦU ...................................................................................................... 1 CHƯƠNG 1 : GIỚI THIỆU CHUNG....................................................... 2 1.1 Mục tiêu của đề tài................................................................................ 2 1.2 Phạm vi và giới hạn của đề tài ............................................................. 2 1.3 Cấu trúc.................................................................................................. 2 CHƯƠNG 2: TỔNG QUAN VỀ THƯ VIỆN SCIKIT – LEARN.......... 4 2.1 Giới thiệu Scikit-learn .......................................................................... 4 2.2 Cấu trúc và các module chính của Scikit-learn ................................. 5 2.2.1 Cấu trúc của Scikit-learn .................................................................. 5 2.2.2 Tiền xử lý dữ liệu bằng Scikit-Learn................................................ 8 2.3 Thuật toán máy học phổ biến trong Scikit-learn............................. 12 2.3.1 Decision Tree thuật toán phân lớp (classification)......................... 12 2.3.2 K – Means thuật toán phân cụm (clustering) ................................. 13 2.4 Mô hình học máy phổ biến................................................................. 15 2.4.1 Linear Regression ........................................................................... 15 2.4.2 Decision Tree Regressor................................................................. 17 CHƯƠNG 3: PHÂN TÍCH DỮ LIỆU CỦA WALMART.................... 20 3.1 Giới thiệu về Walmart........................................................................ 20 3.1.1 Walmart .......................................................................................... 20 3.1.2 Bộ dữ liệu Walmart ........................................................................ 22 3.2 Data Pre-processing ........................................................................... 23 3.3 Phân tích và khám phá dữ liệu từ tập dữ liệu Walmart ................. 26 3.3.1 Phân tích doanh số bán hàng hàng tuần theo các yếu tố ................ 26 3.3.2 Phân tích doanh số theo các yếu tố thời gian ................................ 31 3.4 Xây dựng mô hình dự đoán doanh thu Walmart ............................ 35 3.4.1 Data Standardization và data splitting............................................ 35 3.4.2 Mô hình dự đoán doanh thu............................................................ 36 CHƯƠNG 4: XÂY ỨNG DỤNG WEB SỬ DỤNG FLASK ................. 43 4.1 Giới thiệu về Flask .............................................................................. 43 4.1.1 Flask................................................................................................ 43 4.1.2 Khởi tạo ứng dụng Flask ................................................................ 44 4.2 Xây dựng ứng dụng web..................................................................... 48 4.2.1. Triển khai mô hình ML lên ứng dụng web.................................... 48 4.3 Thách thức ........................................................................................... 51 4.4 Kết luận................................................................................................ 52 TÀI LIỆU THAM KHẢO........................................................................ 53

Trang 1

BỘ 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

WALMART REVENUE PREDICTION

Giảng viên hướng dẫn: TRẦN HOÀI THUẬN Sinh viên thực hiện: NGUYỂN HÀ DIỄM MY

MSSV: 2108110357 Lớp: K15HTTT01 Khóa: K15

Thành phố Hồ Chí Minh, tháng 8 năm 2024

Trang 2

LỜI CẢM ƠN

Em xin cảm ơn sâu sắc Trường Đại học Gia Định đã tạo điều kiện thuận lợi cho em được thực tập tại trường và các giảng viên trong Khoa Công nghệ Thông tin đã trang bị cho em nền tảng kiến thức vững chắc, tạo điều kiện thuận lợi cho việc thực hiện bài báo cáo thực tập tốt nghiệp

Cảm ơn đến ThS Trần Hoài Thuận, giảng viên hướng dẫn của em đã tận tình chỉ bảo và định hướng cho em trong quá trình nghiên cứu Những góp ý chuyên môn của thầy đã giúp em vượt qua nhiều khó khăn để hoàn thành bài nghiên cứu

Mặc dù đã hoàn thiện hoàn chỉnh bài nhưng không thể tránh khỏi những thiếu sót Em rất mong nhận được những phản hồi để có thể hoàn thiện hơn trong tương lai

Trang 3

ĐÁNH GIÁ CỦA ĐƠN VỊ THỰC TẬP 1 Thái độ tác phong trong thời gian thực tập:

2 Kiến thức chuyên môn:

3 Nhận thức thực tế:

4 Đánh giá khác:

5 Đánh giá chung kết quả thực tập:

………, ngày ……… tháng ……… năm …………

TM Đơn vị thực tập

(Ký tên, đóng dấu)

Trang 4

ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN 1 Thái độ tác phong trong thời gian thực tập:

2 Kiến thức chuyên môn:

3 Nhận thức thực tế:

4 Đá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 5

TRƯỜ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: Nguyễn Hà Diễm My MSSV: 2108110357 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 Điện thoại: 0392601267

Tên cán bộ phụ trách thực tập tại doanh nghiệp: Trần Hoài Thuận

Thời gian thực tập Từ: 20/05/2024 Đến: 28/07/2024

Stt Tuần thứ Nội dung CV thực tập trong tuần

Nhận xét của CB hướng dẫn tại DN

(Ký tên và ghi rõ họ 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/5 đến ngày 26/5)

Tìm hiểu mã nguồn mở

Sklearn

2

Tuần 2 (Từ ngày 27/5

đến ngày 2/6)

Nghiên cứu các thuật toán máy học phổ biến gồm các thuật toán nhận dạng (Decision Tree) và phân cụm

dữ liệu (K – Means )

3

Tuần 3 (Từ ngày 3/6 đến ngày 9/6)

Tìm hiểu mô hình học máy

phổ biến Linear Regression

4

Tuần 4 (Từ ngày 10/6 đến ngày 16/6)

Tìm hiểu mô hình học máy phổ biến Decision Tree Regressor

5

Tuần 5 (Từ ngày 17/6 đến ngày 23/6)

Phân tích khám phá dữ liệu

(EDA) của Walmart Dataset

6

Tuần 6 (Từ ngày 24/6 đến ngày 30/6)

Áp dụng mô hình đã tìm hiểu để dự báo doanh thu

của Walmart

7 Tuần 7 Tìm hiểu Flask và ứng dụng

Trang 6

(Từ ngày 1/7 đến ngày 7/7)

Web

8

Tuần 8 (Từ ngày 8/7 đến ngày 14/7)

Lên ý tưởng giao diện ứng dụng dự báo nhanh doanh thu của Walmart

9

Tuần 9 (Từ ngày 15/7 đến ngày 21/7)

Triển khai xây dựng ứng dụng dự báo nhanh doanh

thu của Walmart

10

Tuần 10 (Từ ngày 12/7 đến ngày 28/7)

Hoàn thiện ứng dụng

Trang 7

MỤC LỤC MỤC LỤC HÌNH ẢNH

MỤC LỤC BẢNG

MỞ ĐẦU 1

CHƯƠNG 1 : GIỚI THIỆU CHUNG 2

1.1 Mục tiêu của đề tài 2

1.2 Phạm vi và giới hạn của đề tài 2

1.3 Cấu trúc 2

CHƯƠNG 2: TỔNG QUAN VỀ THƯ VIỆN SCIKIT – LEARN 4

2.1 Giới thiệu Scikit-learn 4

2.2 Cấu trúc và các module chính của Scikit-learn 5

2.2.1 Cấu trúc của Scikit-learn 5

2.2.2 Tiền xử lý dữ liệu bằng Scikit-Learn 8

2.3 Thuật toán máy học phổ biến trong Scikit-learn 12

2.3.1 Decision Tree thuật toán phân lớp (classification) 12

2.3.2 K – Means thuật toán phân cụm (clustering) 13

2.4 Mô hình học máy phổ biến 15

2.4.1 Linear Regression 15

2.4.2 Decision Tree Regressor 17

CHƯƠNG 3: PHÂN TÍCH DỮ LIỆU CỦA WALMART 20

3.1 Giới thiệu về Walmart 20

3.1.1 Walmart 20

3.1.2 Bộ dữ liệu Walmart 22

3.2 Data Pre-processing 23

3.3 Phân tích và khám phá dữ liệu từ tập dữ liệu Walmart 26

3.3.1 Phân tích doanh số bán hàng hàng tuần theo các yếu tố 26

3.3.2 Phân tích doanh số theo các yếu tố thời gian 31

3.4 Xây dựng mô hình dự đoán doanh thu Walmart 35

Trang 8

3.4.1 Data Standardization và data splitting 35

3.4.2 Mô hình dự đoán doanh thu 36

CHƯƠNG 4: XÂY ỨNG DỤNG WEB SỬ DỤNG FLASK 43

4.1 Giới thiệu về Flask 43

Trang 9

MỤC LỤC HÌNH ẢNH

Hình 2.1: Sklearn algorithm cheat sheet 5

Hình 2.2: Phương thức chính của Estimators 6

Hình 2.3: Phương thức chính của Transformers 7

Hình 2.4: Phương thức chính của Predictors 8

Hình 2.5: Phân loại tuần lễ Decision Tree 13

Hình 2.6: Minh họa K-Means để phân cụm dữ liệu khách hàng của Walmart 14

Hình 2.7: Hồi quy tuyến tính sử dụng thư viện scikit-learn 16

Hình 3.1: Báo cáo doanh thu hàng quý của Walmart từ Trading View 21

Hình 3.2: Định dạng cột Date 23

Hình 3.3: Kiểm tra dữ liệu thiếu 24

Hình 3.4: Kiểm tra dữ liệu trùng lặp 24

Hình 3.5: Xác định ngoại lệ 24

Hình 3.6: Kiểm tra ngoại lệ trong cột ‘Holiday_Flag’ 24

Hình 3.7: Xử lý các ngoại lệ trong cột ‘Weekly_Sales’ và ‘Temperature’ 25 Hình 3.8: Xử lý ngoại lệ trong cột ‘Unemployment’ 25

Hình 3.9: Kết quả xử lý 26

Hình 3.10: Weekly_Sales & Holiday_Flag 26

Hình 3.11: Weekly_Sales & Store 27

Hình 3.12: Weekly_Sales & Temperature 28

Hình 3.13: Weekly_Sales & Fuel_Price 28

Hình 3.14: Weekly_Sales & CPI 29

Hình 3.15: Weekly_Sales & Unemployment 30

Hình 3.16: Mối quan hệ CPI và Unemployment 31

Hình 3.17: Xu hướng doanh số theo tháng & năm Walmart 32

Hình 3.18:Doanh số các ngày lễ đặc biệt 33

Hình 3.19: Top 5 cửa hàng có doanh số cao nhất các dịp lễ 33

Trang 10

Hình 3.20: Phân bố doanh số theo mùa 34

Hình 3.21: Tổng doanh thu các mùa trong mỗi năm 35

Hình 3.22: Comparison of Actual and Predicted Weekly Sales 38

Hình 3.23: Comparison of Actual and Predicted Weekly Sales DT 39

Trang 11

MỤC LỤC BẢNG

Bảng 2.1: Transformers 6 Bảng 2.2: Predictors cho phân loại nhị phân hoặc đa lớp & Predictors cho hồi quy (dự đoán giá trị liên tục) 7

Trang 12

1

MỞ ĐẦU

Năm 2024 đánh dấu sự phục hồi và tăng trưởng đáng kể của ngành bán lẻ toàn cầu, đặc biệt là trong lĩnh vực siêu thị và cửa hàng bách hóa Theo dữ liệu từ Trading Economics thì doanh số bán lẻ tại Hoa Kỳ đạt 709.01 tỷ đô la vào tháng 12 năm 2023 tăng 5.6% so với cùng kỳ năm ngoái Xu hướng tăng trưởng này dự kiến sẽ tiếp tục trong năm 2024, phản ánh sự phục hồi và phát triển ổn định của ngành bán lẻ Hoa Kỳ

Trong bối cảnh này, Walmart - tập đoàn bán lẻ hàng đầu thế giới năm 2023, Walmart đã ghi nhận doanh thu ấn tượng 611.3 tỷ đô la tăng 6.7% so năm 2022 Thị trường cạnh tranh ngày càng gay gắt khả năng dự đoán doanh thu tại các cửa hàng trở nên cần thiết Việc dự báo doanh số bán hàng không chỉ giúp tối ưu hóa chuỗi cung ứng mà còn hỗ trợ đắc lực cho việc hoạch định chiến lược kinh doanh trong môi trường bán lẻ đang thay đổi nhanh chóng

Để đáp ứng nhu cầu này, các kỹ thuật học máy và trí tuệ nhân tạo đang ngày càng được áp dụng rộng rãi trong lĩnh vực dự đoán doanh thu với khả năng xử lý lượng lớn dữ liệu và các thuật toán học máy có thể giúp nâng cao đáng kể độ chính xác của các dự đoán Trong số các công cụ hỗ trợ xây dựng mô hình học máy, thư viện Scikit-learn của Python nổi bật như một lựa chọn phổ biến nhờ tính đơn giản, hiệu quả về thuật toán

Xuất phát từ nhu cầu thực tiễn và tiềm năng ứng dụng của học máy trong lĩnh vực bán lẻ, đề tài này tập trung vào việc nghiên cứu và áp dụng các thuật toán học máy phổ biến từ thư viện Scikit-learn để xây dựng mô hình dự đoán doanh thu cho Walmart cạnh đó để tăng tính ứng dụng thực tế, đề tài cũng hướng tới việc phát triển một ứng dụng web đơn giản cho phép người dùng dễ dàng thực hiện các dự đoán nhanh về doanh thu dựa trên các mô hình đã được huấn luyện

Trang 13

1.2 Phạm vi và giới hạn của đề tài

Nghiên cứu thư viện Sklearn để triển khai các thuật toán máy học phổ biến, bao gồm các thuật toán classification, clustering và các mô hình học máy khác

Dữ liệu sử dụng trong nghiên cứu là tập dữ liệu Walmart Store Sales Prediction được cung cấp bởi M Yasser H trên Kaggle có chứa thông tin về doanh số bán hàng của các cửa hàng Walmart với các biến số như doanh thu, ngày và các thông tin liên quan khác Quá trình nghiên cứu sẽ bao gồm việc tiền xử lý dữ liệu và áp dụng các kỹ thuật khám phá dữ để hiểu rõ dữ liệu Bên cạnh đó xây dựng các mô hình dự đoán doanh thu của Walmart bằng cách sử dụng các thuật toán học máy đã được nghiên cứu từ Sklearn Cuối cùng, xây một ứng dụng web đơn giản sử dụng Flask dự báo doanh thu từ các mô hình học máy đã được huấn luyện

• Phạm vi dữ liệu: Giới hạn của nghiên cứu bao gồm việc chỉ sử dụng tập dữ liệu Walmart Store Sales Prediction từ Kaggle

• Công cụ và môi trường phát triển: Google Colab và VS Code

• Ứng dụng web: Xây ứng dụng web được phát triển chỉ là một phiên bản đơn giản, chủ yếu phục vụ cho mục đích minh họa và thử nghiệm chứ không phải là một sản phẩm hoàn chỉnh

1.3 Cấu trúc

Chương 1: Giới thiệu chung

Trang 14

3

Chương 2: Tổng quan về thư viện Scikit-learn Chương 3: Phân tích và khám phá dữ liệu Walmart Chương 4: Xây ứng dụng web sử dụng Flask

Trang 15

Scikit-learn gọi tắt là sklearn là một thư viện mã nguồn mở dành cho machine learning trong ngôn ngữ lập trình Python Thư viện sở hữu một tập các công cụ xử lý các bài toán machine learning và statistical modeling bao gồm: classification, regression, clustering, và dimensionality reduction Scikit-learn được xây dựng dựa trên thư viện NumPy, SciPy và Matplotlib sự kết hợp này tạo ra một hệ sinh thái hoàn chỉnh cho các nhà khoa học dữ liệu và các kỹ sư học máy từ khâu tiền xử lý dữ liệu đến trực quan hóa đến triển khai mô hình

Scikit-learn có nhiều ưu điểm quan trọng cho các doanh nghiệp và thị trường, nhất là khi sử dụng dữ liệu để đưa ra các quyết định chiến lược Scikit-learn mang lại hỗ trợ cho doanh nghiệp không chỉ trong việc dự báo doanh thu, phân tích hành vi khách hàng và quản lý rủi ro tài chính mà còn giúp tối ưu hoá các hoạt động sản xuất Scikit-learn giúp tăng cường khả năng cạnh tranh, tiến bộ chất lượng sản phẩm và đồng thời khuyến khích sự đổi mới sáng tạo thông qua việc phân tích dữ liệu Tổng quát, Scikit-learn có một vai trò then chốt trong việc tinh chỉnh hoạt động kinh doanh, quản lý rủi ro và tăng cường khả năng cạnh tranh

Trang 16

5

Hình 2.1: Sklearn algorithm cheat sheet

2.2 Cấu trúc và các module chính của Scikit-learn

2.2.1 Cấu trúc của Scikit-learn

Cấu trúc chính của Scikit-learn có thể được chia thành ba thành phần chính: Estimators, Transformers, Predictors

a Estimators

Trong Scikit-learn, Estimators là các đối tượng cốt lõi được sử dụng để train và predict từ data Mỗi thuật toán học máy và công cụ tiền xử lý trong Scikit-learn được triển khai dưới dạng một Estimator tuân theo một giao diện nhất quán, cung cấp các phương thức tiêu chuẩn để huấn luyện mô hình và thực hiện dự đoán

Phương thức chính của Estimators:

Trang 17

Bảng 2.1: Transformers

Transformers

Chuẩn hóa dữ liệu (Normalization) về cùng một thang đo, giúp cải thiện hiệu suất của các thuật toán

học máy

StandardScaler trong module preprocessing dùng để chuẩn hóa dữ liệu về phân phối chuẩn với trung bình 0 và phương sai 1

Mã hóa dữ liệu (Encoding) biến đổi

dữ liệu phân loại thành các số liệu

LabelEncoder dùng để biến đổi các nhãn phân loại thành các giá trị số

Giảm số chiều (Dimensionality Reduction) của dữ liệu để giảm bớt

Trang 18

Bảng 2.2: Predictors cho phân loại nhị phân hoặc đa lớp & Predictors cho hồi quy (dự đoán giá trị liên tục)

Predictors

• LogisticRegression • LinearRegression

Khi dữ liệu có mối quan hệ tuyến tính giữa các đặc trưng và kết quả đầu ra

• DecisionTreeClassifier • DecisionTreeRegressor

Khi cần một mô hình dễ hiểu và có thể trực quan hóa

• RandomForestClassifier • RandomForestRegressor

Khi muốn tăng độ chính xác và giảm overfitting

• SVM (Support Vector Machine)

• SVR (Support Vector

Khi dữ liệu có biên phân loại rõ ràng và muốn tối đa hóa khoảng cách giữa các lớp

Trang 19

Phân loại ngày bán hàng cao điểm: Walmart cũng muốn biết ngày nào thì bán đắt như tôm tươi để chuẩn bị hàng hóa, nhân viên,

+ Bài toán dùng Logistic Regression chia ngày thành hai nhóm: cao điểm và không cao điểm dựa trên những đặc điểm (ví dụ: ngày lễ, khuyến mãi) + Nếu chính xác hơn sử dụng Random Forest Classifier, nó cũng dùng nhiều cây quyết định nhưng lần này là để phân loại ngày thay vì dự đoán doanh thu

Hình 2.4: Phương thức chính của Predictors

2.2.2 Tiền xử lý dữ liệu bằng Scikit-Learn

Trang 20

9

Tiền xử lý dữ liệu là công đoạn vàng không thể thiếu trong Machine Learning dữ liệu là một phần rất quan trọng, ảnh hưởng trực tiếp tới việc Training Model Do vậy, tiền xử lý dữ liệu trước khi đưa nó vào model là rất quan trọng giúp xử lý giá trị thiếu, mã hóa biến phân loại và chia dữ liệu thành các tập huấn luyện và kiểm tra

a Handling Missing Values & Encoding Categorical Variables

• Handling Missing Values sử dụng SimpleImputer: Thay thế các giá trị thiếu trong các cột bằng giá trị trung bình của cột đó

from sklearn.impute import SimpleImputer

imputer = SimpleImputer(missing_value= np.nan, strategy='mean') transformed_data = imputer.fit_transform(data)

• Encoding Categorical Variables sử dụng OneHotEncoder: Mã hóa cột thành các vector nhị phân

from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder()

Trang 21

10

Tập dữ liệu kiểm thử (testing set) độc lập đối với tập dữ liệu huấn luyện (training set) để đánh giá và ước lượng hiệu quả của mô hình Kỹ thuật này được sử dụng rộng rãi trong các ứng dụng học máy và khai thác dữ liệu

from sklearn.model_selection import train_test_split

Tập huấn luyện (training set) là tập dữ liệu được sử dụng để huấn luyện mô hình Các thuật toán học máy sẽ xây dựng các mô hình từ tập huấn luyện này Thực tế, huấn luyện thường bao gồm các cặp vectơ đầu vào và vectơ đầu ra tương ứng, trong đó vector đầu ra thường gọi là nhãn (label hoặc target) Các thuật toán sẽ tìm cách tối ưu sai số dự đoán trên tập huấn luyện này đến mức đủ tốt Trong trường hợp overfitting sai số dự đoán trên tập huấn luyện có thể thấp, thậm chí có thể đạt đến mức 0%

Testing Set (Tập kiểm thử) vấn đề này chưa đủ vì mục tiêu của machine learning là xây dựng những mô hình có khả năng tổng quát hóa để dự đoán chính xác trên cả dữ liệu chưa thấy (nằm ngoài tập huấn luyện) để biết một thuật toán hay mô hình có thực sự tốt hay không, sau khi được huấn luyện cần được đánh giá hiệu quả thông qua bộ dữ liệu kiểm thử (testing set) Bộ dữ liệu này được sử dụng để tính độ chính xác hoặc sai số của mô hình dự đoán đã được huấn luyện Chúng ta biết nhãn thực của tất cả điểm trong tập hợp dữ liệu kiểm thử này, nhưng sẽ tạm thời giả vờ như không biết và đưa các giá trị đầu vào của tập vào mô hình dự đoán để nhận kết quả dự đoán đầu ra Sau đó nhìn vào các nhãn thực và so sánh nó với kết quả dự đoán của các đầu vào tương ứng này và xem liệu mô hình có dự đoán đúng hay không Tính tổng trung bình của tất cả sai số này có thể tính toán được lỗi dự đoán trên tập kiểm thử

Tập dữ liệu kiểm thử tốt là một tập dữ liệu độc lập với tập dữ liệu huấn luyện (để ngoài và không được tham gia vào quá trình huấn luyện) nhưng tuân theo cùng một phân phối xác suất như tập dữ liệu huấn luyện nhờ đó việc đánh giá không bị thiên vị

Trang 22

11 Tập dữ liệu nên được chia :

from sklearn.preprocessing import StandardScaler sc = StandardScaler()

* Đối với các biến giả từ Categorical Features Encoding => không cần áp dụng FS

* FS phải được thực hiện sau khi chia tập dữ liệu thành tập huấn luyện và tập kiểm tra

Trang 23

2.3 Thuật toán máy học phổ biến trong Scikit-learn

2.3.1 Decision Tree thuật toán phân lớp (classification)

Phân lớp là một nhiệm vụ yêu cầu sử dụng các thuật toán học máy để học cách gán nhãn lớp cho các mẫu Một ví dụ dễ hiểu đó là phân loại khách hàng của Walmart thành hai nhóm: “có thể mua hàng” và “không” có khả năng mua hàng”

Cây quyết định (Decision Tree) là một thuật toán học máy thuộc nhóm học có giám sát (supervised learning) Trong classification, thuật toán này được sử dụng để phân loại các đối tượng vào các lớp khác nhau dựa trên features của chúng

from sklearn.tree import DecisionTreeClassifier

Cây quyết định xây dựng một mô hình dựa trên cấu trúc cây để đưa ra quyết định phân loại Mỗi nút trong cây biểu diễn một đặc trưng của dữ liệu, mỗi cạnh (branch) biểu diễn một giá trị của đặc trưng đó và mỗi lá (leaf) biểu diễn một lớp hoặc một giá trị dự đoán

Trang 24

13

Hình 2.5: Phân loại tuần lễ Decision Tree

Các bước xây dựng cây quyết định:

Chọn đặc trưng: Tại mỗi nút, cây quyết định xem xét đặc trưng tốt nhất để phân chia dữ liệu Đặc trưng tốt nhất là đặc trưng mà khi chia, dữ liệu được phân loại tốt nhất theo tiêu chí nhất định như thông tin thu được (information gain), chỉ số Gini (Gini index), giảm tạp chất (impurity reduction)

Phân chia dữ liệu: Dữ liệu tại mỗi nút được phân chia dựa trên giá trị của đặc trưng được chọn Mỗi giá trị hoặc khoảng giá trị của đặc trưng tạo thành một nhánh con của cây

Lặp lại quá trình: Quá trình chọn đặc trưng tốt nhất và phân chia dữ liệu được lặp lại đệ quy cho mỗi nhánh con cho đến khi đạt điều kiện dừng Điều kiện dừng có thể là khi tất cả dữ liệu tại một nút thuộc cùng một lớp hoặc khi không còn đặc trưng nào để phân chia

2.3.2 K – Means thuật toán phân cụm (clustering)

Trang 25

14

Thuật toán phân cụm là một kỹ thuật trong học máy và khai phá dữ liệu được sử dụng để nhóm các đối tượng vào các cụm (clusters) sao cho các đối tượng trong cùng một cụm có nhiều đặc điểm giống nhau hơn so với các đối tượng trong các cụm khác

Phân cụm K – Means là thuật toán để gom dữ liệu thành k cụm khác nhau mà các điểm trong cụm tương đồng lẫn nhau

from sklearn.cluster import KMeans

Các bước bao gồm sáu bước để thực hiện thuật toán phân cụm k-means như sau:

B1: Xác định số lượng ‘k’ của các cụm cần phân công B2: Chọn ngẫu nhiên ‘k’ tập dữ liệu để ‘k’ điểm trung tâm B3: Lặp lại

B4: Expectation: Gán mỗi điểm còn lại vào cụm dựa vào khoảng cách giữa điểm đó đến tâm cụm gần nhất

B5: Maximization: Tính toán tâm cụm mới (trung bình) của mỗi cụm B6: Cho đến khi vị trí của các tâm cụm không thay đổi

Hình 2.6: Minh họa K-Means để phân cụm dữ liệu khách hàng của Walmart

Trang 26

15 Quá trình lựa chọn K:

Phương pháp Elbow thu được một đồ thị với trục x là số lượng cụm (k) và trục y là tổng bình phương khoảng cách từ các điểm dữ liệu đến trọng tâm của các cụm (WCSS) Đồ thị này thường sẽ có dạng một “cánh tay” với giá trị của WCSS giảm dần khi k tăng nhưng tốc độ giảm bớt đi đột ngột tại một số giá trị của k Điểm mà tốc độ giảm bớt đi đột ngột này thường được gọi là “khuỷu tay” Số lượng cụm được chọn thường là giá trị của k tại điểm khuỷu tay

Phương pháp Silhouette tính toán điểm số Silhouette cho mỗi giá trị của k Điểm số Silhouette đo lường mức độ “đồng thuận” của mỗi điểm dữ liệu với cụm của nó so với các cụm khác Giá trị của Silhouette score dao động từ -1 đến 1, giá trị gần 1 cho thấy một phân cụm tốt, trong khi giá trị gần -1 cho thấy một phân cụm không tốt bằng cách chọn giá trị của k mà có Silhouette score cao nhất có thể chọn ra số lượng cụm tối ưu cho dữ liệu của mình Kết quả của quá trình là số lượng cụm tối ưu có thể sử dụng để phân cụm dữ liệu một cách hiệu quả nhất

2.4 Mô hình học máy phổ biến

2.4.1 Linear Regression

Hồi quy tuyến tính trong học máy là một thuật toán học có giám sát với đầu ra là giá trị liên tục và có hệ số góc là hằng số Thuật toán này được sử dụng để dự đoán các giá trị trong một khoảng liên tục ví dụ như doanh thu bán hàng thay vì học cách phân loại thành các danh mục riêng biệt ví dụ như khách hàng mới hay cũ Hồi quy tuyến tính dự báo giá trị của biến output từ các giá trị của các biến đầu vào

Phân loại hồi quy tuyến tính thành hai loại chính:

• Hồi quy tuyến tính đơn biến (Simple regression)

Trang 27

16

Sử dụng dạng đường chéo cơ bản, với m và b là những biến số trong thuật

toán mà sẽ cố gắng “học” để dự đoán đầu ra một cách chính xác nhất có thể, 𝑥 ký hiệu dữ liệu đầu vào và 𝑦 ký hiệu cho dự đoán ở đầu ra

y = mx + b

• Hồi quy tuyến tính đa biến (Multivariable regression)

Phức tạp hơn, trong đó w ký hiệu các hệ số hay trọng số (weight) mà mô

hình cần học

f(x,y,z) = w1x + w2y + w3z

Các biến số x,y,z ký hiệu các thuộc tính hay những số liệu riêng biệt mà có

tại mỗi quan sát (observation) Ví dụ để dự đoán doanh thu các thuộc tính này có thể là số tiền mà công ty đầu tư vào quảng cáo lần lượt trên TikTok, TV và News

Doanh thu = w1TikTok + w2TV + w3News

Sử dụng thư viện scikit-learn dự đoán hồi quy tuyến tính thay vì tự tính theo công thức nên khai triển vì các thuật toán trong thư viện scikit-learn đã được đánh giá kĩ càng bởi các chuyên gia và được tối ưu về mặt tốc độ

Hình 2.7: Hồi quy tuyến tính sử dụng thư viện scikit-learn

Output:

Linear Regression

Trang 28

17

Ưu điểm: Dễ triển khai và hiệu quả khi huấn luyện

Có thể giảm overfitting bằng cách điều chỉnh

Nhược điểm: Giả định rằng dữ liệu là độc lập, điều này hiếm khi xảy ra trong thực tế

Dễ bị ảnh hưởng bởi nhiễu và overfitting đến kết quả Nhạy cảm với ngoại lệ

2.4.2 Decision Tree Regressor

Decision Tree Regressor là một thuật toán học máy được sử dụng cho các bài toán hồi quy để dự báo các giá trị liên tục Thuật toán này dùng cấu trúc cây để chia dữ liệu thành các tập con nhỏ hơn dựa trên các thuộc tính của dữ liệu Mỗi nút trong cây quyết định một điều kiện dựa trên một thuộc tính nào đó và quá trình này tiếp tục cho đến khi đạt đến nút lá nơi giá trị dự báo được tính toán Decision Tree Regressor hoạt động bằng cách chia không gian đầu vào thành các vùng đồng nhất nhất có thể Mỗi lần chia không gian là một split và các vùng kết quả là leaves Mục tiêu của quá trình này là tạo ra một cấu trúc cây sao cho tại mỗi node, dữ liệu được chia thành các nhóm sao cho sai số dự đoán trong các nhóm là nhỏ nhất

Quá trình xây dựng cây quyết định

+ Chọn Split tốt nhất: Tại mỗi node của cây, thuật toán sẽ xem xét tất cả các thuộc tính và tất cả các giá trị có thể của các thuộc tính đó để tìm ra split tốt nhất Split tốt nhất là split mà sau khi chia, tổng sai số dự đoán trong các nhóm là nhỏ nhất Công thức Mean Squared Error sau:

Trong đó:

Trang 29

18 n là số lượng mẫu trong tập dữ liệu yi là giá trị thực tế của mẫu thứ i y^i là giá trị dự đoán của mẫu thứ i

MSE đo lường độ lớn của sai số bình phương giữa giá trị dự đoán và giá trị thực Split tốt nhất là split mà sau khi chia MSE giảm đi nhiều nhất Điều này đảm bảo rằng mô hình sẽ tối ưu hóa việc dự đoán bằng cách chia dữ liệu sao cho sai số dự đoán trong mỗi nhóm nhỏ nhất

+ Tạo node con: Sau khi chọn split tốt nhất, dữ liệu được chia thành hai nhóm dựa trên giá trị của split Quá trình này được lặp lại đệ quy cho từng nhóm con, tạo ra các node con mới từ mỗi nhóm Mỗi node con sẽ tiếp tục chia dữ liệu cho đến khi đạt đến điều kiện dừng

+ Dừng chia nhánh: Quá trình chia nhánh dừng lại khi đạt đến điều kiện dừng Điều kiện dừng có thể là số lượng mẫu trong node con nhỏ hơn một ngưỡng nhất định, chiều cao của cây đạt đến giới hạn hoặc không còn split nào cải thiện sai số dự đoán

Để tối ưu hóa mô hình Decision Tree Regressor một số tham số quan trọng cần điều chỉnh:

• criterion: Tiêu chí để đo lường chất lượng của split Mặc định là “mse” Ngoài ra, có thể sử dụng “friedman_mse” hoặc “mae” tùy thuộc vào bài toán cụ thể

• splitter: Chiến lược để chọn split Có thể là “best” (chọn split tốt nhất) hoặc “random” (chọn split ngẫu nhiên trong số các split tốt nhất)

• max_depth: Độ sâu tối đa của cây giới hạn độ sâu giúp tránh overfitting bằng cách hạn chế sự phức tạp của mô hình

• min_samples_split: Số lượng mẫu tối thiểu cần thiết để split một node tham số này giúp kiểm soát sự chia nhỏ quá mức của cây

Trang 30

Không yêu cầu chuẩn hóa dữ liệu hoặc biến đổi phức tạp

Xử lý tốt dữ liệu chứa cả biến số và biến phân loại mà không cần chuyển đổi

Nhược điểm:

Cây quyết định có xu hướng overfit nếu không được kiểm soát tốt Mô hình có thể hoạt động rất tốt trên dữ liệu huấn luyện nhưng kém trên dữ liệu kiểm tra

Sự thay đổi nhỏ trong dữ liệu có thể dẫn đến sự thay đổi lớn trong cấu trúc cây giảm tính ổn định và độ tin cậy của mô hình

Với dữ liệu rất lớn và phức tạp Decision Tree Regressor không hoạt động hiệu quả bằng các phương pháp khác như Random Forest hoặc Gradient Boosting

Trang 31

Gã khổng lồ bán lẻ với 3 trụ cột quan trọng:

+ Walmart US : “ con gà đẻ trứng vàng” tập chung cửa hàng bán lẻ truyền thống chiếm 64% doanh thu

+ Walmart International: Góp phần 24% doanh thu là nhánh kinh doanh quốc tế

+ Sam's Club: là chuỗi cửa hàng bán lẻ theo mô hình khô cung cấp sản phẩm với số lượng lớn và giá ưu đãi cho các thành viên đăng kí chiếm 12% doanh thu

Để hiểu rõ hơn về tình hình kinh doanh hiện tại của Walmart chúng ta đi sâu vào xem xét biểu đồ doanh thu qua các quý cung cấp cái nhìn tổng quan về xu hướng doanh thu

Trang 32

21

Hình 3.1: Báo cáo doanh thu hàng quý của Walmart từ Trading View

Nhìn vào dữ liệu trong 8 quý vừa qua, doanh thu có xu hướng tăng trưởng mức tăng trung bình khoảng 2% thể hiện sự ổn định và hiệu quả trong chiến lược kinh doanh của Walmart Đặc biệt doanh thu bùng nổ vào quý 4 hàng năm trùng với mùa mua sắm Giáng sinh là mùa vàng ngành bán lẻ, khách hàng sẵn sàng chi tiêu dịp lễ quan trọng Walmart biết tận dụng tung ra chương trình “12 Days of Christmas Deals” hấp dẫn thúc đẩy doanh thu Sau đợt mua sắm nhộn nhịp dịp lễ Giáng sinh, hoạt động mua sắm tại Walmart thường có xu hướng bình ổn trở lại vào quý 1

Dựa trên các số liệu dự đoán, doanh thu của Walmart dự kiến sẽ tiếp tục đà tăng trưởng trong năm 2024 và 2025 khoảng 1% Mặc dù tốc độ tăng trưởng này có phần khiêm tốn hơn so với quá khứ nhưng nó vẫn thể hiện kỳ vọng tích cực về tiềm năng phát triển và khả năng duy trì vị thế của Walmart trong bối cảnh thị trường bán lẻ ngày càng cạnh tranh gay gắt Walmart liên tục vượt qua dự đoán doanh thu kết quả cho thấy doanh thu thực tế thường cao hơn so với ước tính thể hiện khả năng vượt qua kỳ vọng của Walmart Ví dụ điển hình vào quý 4 năm 2022, doanh thu báo cáo đạt 164,05 tỷ USD vượt qua ước tính 159,76 tỷ USD ghi nhận mức tăng 2,68% Sự vượt trội này không chỉ củng cố niềm tin của các nhà đầu tư mà còn khẳng định vị thế vững chắc của Walmart trên thị trường bán lẻ toàn cầu

Ngày đăng: 05/08/2024, 22:26

TỪ KHÓA LIÊN QUAN

w