(Tiểu luận) đồ án môn học đề tài dự đoán khách hàng vip thường với bộ dữ liệu bt

25 0 0
(Tiểu luận) đồ án môn học đề tài  dự đoán khách hàng vip thường với bộ dữ liệu bt

Đ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

Đây là một bộ dữ liệu về các giao dịch mua sắm được thực hiện tại một cửa hàng với thông tin chỉ tiết về khách hàng, sản phẩm và số tiền chi trả.Nhóm em sẽ sử dụng các kỹ thuật phân tích

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH (UEH) TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ

Giảng Viên: TS Huỳnh Văn Đức

TP Hồ Chí Minh, Ngày 29 tháng 2 năm 2023

Trang 3

Lời mở đầu:

ính gửi thầy Huỳnh Văn Đức và các bạn sinh viên,

Em xin gửi đến thầy và lớp bản tóm tắt đồ án môn khoa học dữ liệu của nhóm em “Dự đoán khách hàng VIP thường với bộ dữ liệu Sales_Data.xlsx”.

Trước hết, nhóm em xin gửi lời cảm ơn sâu sắc tới thầy Huỳnh Văn Đức, giảng viên môn Khoa học Dữ liệu, đã giúp đỡ và hướng dẫn nhóm em trong quá trình học tập và nghiên cứu Nhờ những kiến thức và kinh nghiệm mà thầy đã chia sẻ, nhóm em đã có cơ hội phát triển khả năng của mình và tiến bộ trong lĩnh vực Khoa học Dữ liệu.

Đồ án mà nhóm em thực hiện nhằm mục đích áp dụng các kiến thức đã học được từ môn học để phân tích và dự đoán khách hàng VIP và khách hàng thường trong bộ dữ liệu BT Sales_Data.xlsx lấy từ tập tin dữ liệu thầy cung cấp ở đầu môn học Đây là một bộ dữ liệu về các giao dịch mua sắm được thực hiện tại một cửa hàng với thông tin chỉ tiết về khách hàng, sản phẩm và số tiền chi trả.

Nhóm em sẽ sử dụng các kỹ thuật phân tích dữ liệu để khai thác thông tin từ bộ dữ liệu này, tìm ra các mẫu chung, sự tương quan giữa các biến số để xây dựng mô hình dự đoán Sau đó nhóm em sẽ sử dụng các thuật toán học máy để đưa ra dự đoán về khách hàng VIP và khách hàng thường dựa trên các đặc trưng của họ như số lần mua hàng, tuổi, giới tính, chức vụ, …Cuối cùng nhóm em sẽ so sánh, đánh giá các thông số (recall, precision, accuracy, ) giữa các mô hình từ đó đưa ra nhận xét, kết luận đâu là mô hình phù hợp với bộ dữ liệu này nhất.

Với đề tài này, nhóm em hy vọng có thể áp dụng thành công các kiến thức đã học, từ đó cải thiện kỹ năng phân tích dữ liệu, sử dụng các thuật toán học máy và đưa ra những kết quả dự đoán chính xác về khách hàng VIP và khách hàng thường Chúng em rất mong nhận được sự hướng dẫn và đánh giá của thầy cùng các bạn trong quá trình thực hiện đồ án.

Xin chân thành cảm ơn thầy.

Trang 4

Tổng quan về bộ dữ liệu:

Bộ dữ liệu BT Sales_Data có sẵn trong tập dữ liệu thầy đã cung cấp gồm 500 dòng dữ liệu về thông tin khách hàng mua hàng tại một cửa hàng Bộ dữ liệu bao gồm các ● Giá trị đơn hàng (số nguyên)

● Biến mục tiêu : Loại khách hàng (VIP, thuong)

Bộ dữ liệu BT Sales_Data được cung cấp bởi thầy Huỳnh Văn Đức là một tập dữ liệu đầy đủ, chính xác và tin cậy, được sử dụng để phân tích và dự đoán khách hàng VIP và thường của một cửa hàng Mục đích của việc phân tích và dự đoán này là để tối ưu hóa chiến lược kinh doanh tăng doanh số bán hàng, nhằm thu hút thêm khách hàng mới(Thuong) và giữ chân khách hàng cũ (VIP) Vì vậy ta cần một mô hình có tỉ lệ dự đoán chính xác các trường hợp dương tính (khách hàng Thuong) cao nhất

Tuy nhiên, để sử dụng và xử lý bộ dữ liệu này, cần phải áp dụng các công cụ và kỹ thuật của khoa học dữ liệu như xử lý dữ liệu, phân tích dữ liệu, trực quan hóa dữ liệu, các phương pháp học máy và mô hình dự đoán.

Để có thể đạt được kết quả phân tích và dự đoán chính xác, cần có kiến thức chuyên ngành trong lĩnh vực kinh doanh để hiểu rõ hơn về các đặc trưng nào có thể ảnh hưởng đến kết quả dự đoán của mô hình từ đó có những điều chỉnh hợp lý hơn Từ đó, chúng ta có thể đưa ra các giải pháp và khuyến nghị nhằm tối ưu hóa hoạt động kinh doanh và nâng cao trải nghiệm của khách hàng.

Trang 5

Phân tích dữ liệu:

Thống kê mô tả với widget Feature Statistic:

a widget Feature statistic, ta có thể nhanh chóng có cái nhìn tổng quát về phân bố của các đặc trưng, cũng như đánh giá tính đối xứng, tập trung, mịn màng và có nhiễu của các đặc trưng trong tập dữ liệu.

● Nhìn chung, phân bố của các biến độc lập đều ảnh hưởng đến biến phụ thuộc dù ít hay nhiều.

Phân tích sự tương quan giữa các biến giải thích với biến phụ thuộc bằng box

Trang 6

● Khách hàng Thường dao động từ 34 đến 46 tuổi trong khi khách hàng Vip dao động từ 39 40 tuổi.

● Khách hàng Thường có TrinhDo tập trung nhiều nhất hàng Vip có TrinhDo tập trung nhiều nhất là CH.

Trang 7

● Khách hàng Thường phân bố đều giữa Nam và Nữ, trong khi khách hàng VIP phần lớn là giới tính Nam.

● Khách hàng VIP có khoảng thu nhập thấp hơn khách hàng Thuong.

● Số lần mua của khách hàng VIP dao động từ 3 6, nhiều hơn số lần mua của khách hàng thường, dao động từ 2

Trang 8

● Tỉ lệ của chức vụ Quản lý trong tổng số khách hàng thường là 52.13%, thấp hơn so với tỉ lệ chức vụ Quản lý trong tổng số khách hàng VIP (66.67%).

● Giá trị đơn hàng của khách hàng thường dao động từ 3.5 16, trong khi giá trị đơn hàng của khách hàng VIP dao động từ 24

Trang 9

phương pháp khoa học dữ liệu:

Tiền xử lý:

● Import dữ liệu, sau đó sử dụng widget data table để hiển thị bảng dữ liệu:

● Widget data table hiển thị bảng dữ liệu không có giá trị nào bị thiếu Tuy nhiên, để các mô hình học máy hoạt động chính xác hơn, ta cần chuẩn hóa dữ liệu số thành dạng chuẩn.

● Sử dụng widget Outliers để loại bỏ các giá trị ngoại lai với method “Local Outlier Factor” Phương pháp này đánh giá mức độ hiếm của một quan sát bằng cách so sánh mật độ của k th hàng xóm gần nhất của nó với mật độ của chính nó Nếu mật độ của hàng xóm gần nhất của một quan sát thấp hơn mật độ của chính nó, thì quan sát đó được xem là hiếm hoặc là ngoại lệ.

Trang 10

● Thiết lập k = 5, metric = Euclidean và contamination = 5%, Widget Outliers sẽ tính toán độ lớn của sự khác biệt giữa khoảng cách của một điểm dữ liệu với 5 điểm lân cận gần nhất của nó bằng phương pháp Euclidean Nếu độ lớn của sự khác biệt vượt qua ngưỡng được xác định trước và tỷ lệ dự đoán các điểm ngoại lệ trong dữ liệu là 5%.

Cơ sở lý thuyết:

● nearest neighbor là một phương pháp học có giám sát dùng để dự đoán giá trị đầu ra của một điểm dữ liệu mới dựa trên k điểm dữ liệu gần nhất trong tập dữ liệu huấn luyện Khi huấn luyện, thuật toán này không học một điều gì từ dữ liệu huấn luyện (đây cũng là lý do thuật toán này được xếp vào loại

mọi tính toán sẽ được thực hiện khi nó cần dự đoán kết quả của dữ liệu mới ● Thuật toán KNN dựa trên nguyên lý rằng những dữ liệu tương tự nhau sẽ tồn tại

gần nhau trong một không gian, từ đó công việc của chúng ta là sẽ tìm k điểm gần với dữ liệu cần kiểm tra nhất Việc tìm khoảng cách giữa 2 điểm cũng có nhiều công thức có thể sử dụng, tùy trường hợp mà chúng ta lựa chọn cho phù hợp Đây là 3 cách cơ bản để tính khoảng cách 2 điểm dữ liệu x, y có k thuộc

Trang 11

Áp dụng vào bài toán:

Sử dụng widget “KNN” để xây dựng mô hình KNN trên tập dữ liệu huấn luyện, thiết lập giá trị K khác nhau (ví dụ: 5, 10, 15, 20, …), ở đây ta sử dụng phương pháp tính khoảng cách “Euclidean”.

Sau đó đánh giá hiệu suất mô hình trên tập dữ liệu huấn luyện với các giá trị K khác nhau và chọn ra giá trị K tốt nhất cho mô hình.

Trang 12

Logistic Regression (Hồi quy Log Cơ sở lý thuyết:

Logistic Regression là một phương pháp thống kê được sử dụng để dự đoán xác suất của một biến phụ thuộc rời rạc (discrete) dựa trên các biến độc lập (independent variables) Phương pháp này thường được sử dụng để mô hình hóa quan hệ giữa biến độc lập và biến phụ thuộc trong các bài toán phân loại (classification) như dự đoán khả năng một khách hàng sẽ mua sản phẩm hay không, dự đoán xác suất một email là spam hay không, dự đoán xác suất một bệnh nhân mắc bệnh lý hay không, v.v.

ogistic Regression sử dụng hàm logistic để tính toán xác suất của biến phụ thuộc dựa trên các biến độc lập Hàm logistic là một hàm phi tuyến được sử dụng để chuyển đổi giá trị liên tục thành giá trị rời rạc nằm trong khoảng [0, 1], thể hiện xác suất của ột biến rời rạc Các tham số của hàm logistic được ước lượng thông qua quá trình tối ưu hóa một hàm mất mát (loss function) dựa trên dữ liệu huấn luyện.

Một trong những lợi ích của Logistic Regression là nó cho phép dự đoán xác suất của một biến phụ thuộc thay vì giá trị rời rạc của nó, điều này có ý nghĩa quan trọng trong nhiều bài toán thực tế Ngoài ra, Logistic Regression cũng dễ hiểu, dễ triển khai và cho kết quả khá ổn định trên dữ liệu có số lượng biến lớn và dữ liệu thiếu.

Để sử dụng Logistic Regression, có thể thực hiện các bước sau:

● Thu thập và chuẩn bị dữ liệu: Thu thập dữ liệu và xác định các biến độc lập và biến phụ thuộc Sau đó, xử lý dữ liệu để đảm bảo chúng có chất lượng tốt, ví dụ như xử lý dữ liệu thiếu hoặc dữ liệu nhiễu.

● dữ liệu: Chia dữ liệu thành tập huấn luyện và tập kiểm tra Tập huấn luyện được sử dụng để huấn luyện mô hình, trong khi tập kiểm tra được sử dụng để đánh giá hiệu suất của mô hình.

● Tiền xử lý dữ liệu: Tiền xử lý dữ liệu nhằm chuyển đổi dữ liệu thành dạng hợp để sử dụng với mô hình Logistic Regression, ví dụ như chuẩn hóa dữ liệu, chuyển đổi biến độc lập thành dạng số, loại bỏ biến không quan trọng.

● Xây dựng mô hình: Tạo một mô hình Logistic Regression và huấn luyện mô hình trên tập huấn luyện Trong quá trình huấn luyện, các tham số của mô hình sẽ được điều chỉnh để tối ưu hóa hàm mất mát.

● Đánh giá mô hình: Đánh giá mô hình bằng cách sử dụng tập kiểm tra và các độ đo như độ chính xác, độ phủ, độ chính xác dự đoán của mô hình trên tập kiểm tra ● Sử dụng mô hình: Sau khi xây dựng và đánh giá mô hình, có thể sử dụng mô hình

để dự đoán xác suất của biến phụ thuộc cho các giá trị mới của các biến độc lập ● Tinh chỉnh mô hình: Nếu mô hình không cho kết quả tốt, có thể cần tinh chỉnh mô

hình bằng cách thay đổi các tham số của mô hình hoặc chọn các biến độc lập khác để tạo ra một mô hình tốt hơn.

Trang 13

Áp dụng vào bài toán:

Sử dụng widget “Logistic Regression” để xây dựng mô hình hồi quy Logistic trên tập dữ liệu huấn luyện, thiết lập giá trị Strength(c) ác nhau (ví dụ: c=1, 10, 100, 0.1, 0,01, 0,001, …), ở đây ta sử dụng Regularization type: “Ridge(L2)”.

Sau đó đánh giá hiệu suất mô hình trên tập dữ liệu huấn luyện với các giá trị C khác nhau và chọn ra giá trị C tốt nhất cho mô hình.

Trang 14

Random Forest ( hay còn gọi là rừng ngẫu nhiên ) là một phương pháp phân lớp, một thuật toán trong phương pháp Machine Learning Random Forest sử dụng nhiều cây phân loại ( hoặc hồi quy ) trong để đưa ra quyết định trong 1 Dataset

sử dụng kỹ thuật đóng gói (bagging) cho phép lựa chọn một nhóm nhỏ các thuộc tính tại mỗi nút (node) của cây phân lớp để phân chia thành các mức tiếp theo.

Cụ thể, đây là thuật toán phân lớp bao gồm một tập các phân lớp có cấu trúc cây quyết định với những vectơ độc lập, tương tự nhau được phân bố một cách ngẫu nhiên và mỗi cây sẽ “bỏ một phiếu bầu” cho lớp phổ biến nhất ở véctơ đầu vào, làm cơ sở ra quyết định cho thuật toán Các phương pháp học nhóm kết hợp với các kết quả riêng lẻ của từng cây thường mang lại kết quả tốt hơn.

Đặc điểm của thuật toán này bao gồm ● Điểm mạnh:

○ Khả năng dự đoán chính xác cực cao: Random Forest chứa nhiều cây quyết định nên khả năng dự đoán chính xác cao.

○ Dễ chuẩn bị dữ liệu: Không cần tiền xử lý data quá chi tiết ( chuẩn hóa ) để có thể sử dụng mô hìn

○ Xử lý thiếu sót dữ liệu: Giống như cây quyết định, Random Forest xử lý với việc thiếu sót và mất dữ liệu rất tốt Việc đưa ra kết quả cũng chính xác vì mô hình lấy giá trị trung bình của nhiều cây quyết định để đưa ra kết quả.

○ Tối ưu hóa lựa chọn: Random Forest cần truyền vào nhiều tham số để tinh chỉnh và cải thiện mô hình ML

○ Thích hợp cho bộ dữ liệu lớn ○ Đầu ra chi tiết

● Điểm yếu:

○ Nguy cơ overfit data ( quá khớp dữ liệu )

○ Không thể sử dụng cho hồi quy: Random Forest không thể dự đoán được kết quả ngoài vùng dữ liệu được train

○ Các tham số phức tạp: Ngoài các tham số thường gặp ( leaf, node, splitting, tree size, etc ) thì còn có các tham số nên được khái niệm hóa: số cây trong mô hình (n_parameters), phương pháp xây dựng cây

○ Thiên vị biến với nhiều cấp: Khi bộ dữ liệu có các biến phân loại với các thuộc tính ở nhiều cấp độ khác nhau sẽ gây ra vấn đề vì mô hình Random Forest sẽ ưu tiên các giá trị đó và gây ra các rủi ro về dự đoán

Trang 15

Mô tả thuật toán Random For

● Chọn T là số lượng các cây thành phần sẽ được xây dựng.

● Chọn m là số lượng các thuộc tính được dùng để phân chia tại mỗi nút (node) của cây p là tổng số các thuộc tính m thường nhỏ hơn p rất nhiều Giá trị m được giữ không đổi trong suốt quá trình xây dựng cây.

● Dựng T cây quyết định Trong đó mỗi cây quyết định được hình thành như sau: (a) xây dựng tập mẫu khởi động (bootstrap) với n mẫu, hình thành từ việc hoán vị tập các mẫu ban đầu Mỗi cây sẽ được dựng từ tập khởi động này; (b) Khi xây dựng cây quyết định, tại mỗi nút (node) sẽ chọn ra m thuộc tính và sử dụng m thuộc tính này để tìm ra cách phân chia tốt nhất; (c) Mỗi cây quyết định được phát triển lớn nhất có thể và không bị cắt xén.

● Sau khi xây dựng được rừng ngẫu nhiên (Random Forest), để phân lớp cho đối tượng T, thu thập kết quả phân lớp đối tượng này trên tất cả các cây quyết định và tính bình quân giá trị dự báo của các cây quyết định để làm kết quả cuối cùng của thuật toán Tỷ lệ lỗi của cây phụ thuộc vào độ mạnh của từng cây quyết định

nh phần và mối quan hệ qua lại giữa các cây đó Các bước chính để thực hiện mô hình Random Forest:

Chuẩn bị dữ liệu: Chọn tập dữ liệu và tiền xử lý dữ liệu bằng cách loại bỏ các giá trị nhiễu, sắp xếp lại các thuộc tính và xử lý các giá trị bị thiếu.

Chọn thuộc tính: Chọn các thuộc tính có ảnh hưởng đến biến mục tiêu Xây dựng mô hình: Tạo một mô hình Random Forest và huấn luyện mô hình trên tập huấn luyện

Sử dụng mô hình: Sau khi xây dựng và đánh giá mô hình, có thể sử dụng mô hình để dự đoán kết quả của biến mục tiêu.

Trang 16

p dụng vào bài toán:

Number of attributes considered at each split: Số lượng thuộc tính sẽ được sử dụng cho mỗi lần phân chia cây quyết định, ở đây ta chọn = 3 (thông thường, giá trị được khuyến nghị cho số lượng thuộc tính xem xét ở mỗi lần phân chia là căn bậc hai của tổng số thuộc tính trong tập dữ liệu: 7)

Replicable training : giúp đảm báo tính nhất quán và tái sản xuất trong quá trình huấn luyện mô hình Khi checkbox này được chọn, các giá trị được sử dụng để xác định các thuộc tính đại diện và phương pháp tạo ra các cấu hình dữ liệu con để huấn luyện các cây con trong Random Forest sẽ được giữ nguyên ở các lần chạy khác nhau của quá trình huấn luyện.

Do not split subsets smaller than: Thiết lập một ngưỡng tối thiểu cho kích thước tập con (subsets) được chia tại mỗi nút của cây quyết định Các tập con có kích thước nhỏ hơn ngưỡng này (=5) sẽ không được chia tiếp.

Cơ sở lý thuyết:

Thuật toán cây quyết định (Decision Tree) là một phương pháp học có giám sát Machine Learning, thường được sử dụng để phân loại hoặc dự đoán giá trị của một biến mục tiêu dựa trên các thuộc tính của các quan sát Cây quyết định được xây dựng dựa trên cấu trúc cây, trong đó mỗi nút đại diện cho một thuộc tính, mỗi cạnh đại diện cho một giá trị của thuộc tính và mỗi lá đại diện cho một giá trị của biến mục tiêu.

Trang 17

Việc xây dựng cây quyết định bắt đầu bằng việc chọn thuộc tính phù hợp nhất để tách các quan sát thành các tập con có tính đồng nhất cao nhất Các phương pháp đánh giá thuộc tính như Information Gain, Gain Ratio, Gini Index được sử dụng để đo lường tính tương đồng giữa các tập con và tìm ra thuộc tính tốt nhất để tách.

Sau khi chọn được thuộc tính phù hợp, cây được xây dựng bằng cách phân chia các quan sát dựa trên các giá trị của thuộc tính đó Quá trình này được lặp lại đến khi các lá của cây đại diện cho các giá trị của biến mục tiêu Việc xây dựng cây quyết định hể dừng lại bằng cách áp dụng các điều kiện dừng như đạt được độ sâu tối đa hoặc không còn tập con nào có thể được tách ra.

Sau khi xây dựng cây quyết định, quá trình dự đoán được thực hiện bằng cách truy vấn các thuộc tính của quan sát mới và di chuyển từ gốc của cây đến lá phù hợp để dự đoán giá trị của biến mục tiêu.

Thuật toán cây quyết định được sử dụng rộng rãi trong nhiều lĩnh vực như y học, tài chính, marketing, v.v Với tính đơn giản và dễ hiểu của nó, cây quyết định là một công cụ hữu ích để giải quyết các vấn đề dự đoán và phân loại trong thực tế.

p dụng vào bài toán:

Induce binary tree: Khi được kích hoạt, thuật toán sẽ cố gắng tạo ra cấu trúc nhị phân cho các nhánh của cây, tăng tính đơn giản và dễ giải thích của mô hình

nstances in leves: Nếu số lượng các trường hợp trong một lá của cây quyết định nhỏ hơn giá trị được đặt trong checkbox này (=2), thì nó sẽ không được tiếp tục phân chia nữa và được coi như một lá Sử dụng check box

Ngày đăng: 11/04/2024, 09:00

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

Tài liệu liên quan