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

Báo cáo bài tập nhóm học phần học máy tên Đề tài Đề xuất sản phẩm cá nhân hóa dựa trên hành vi mua sắm của khách hàng

37 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 2,7 MB

Nội dung

Nhóm đã chọn đề tài “Đề xuất sản phẩm cá nhân hóa dựa trên hành vi mua sắm của khách hàng” để thực hiện nghiên cứu với hy vọng ứng dụng các phương pháp phân tích dữ liệu hiện đại vào việ

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ-ĐẠI HỌC ĐÀ NẴNG

KHOA THƯƠNG MẠI ĐIỆN TỬ

Đà Nẵng, 2024

Trang 2

MỤC LỤC

I Tổng quan về đề tài -. .- cu km re 4

1.1 Mục tiêu đề tài Q2 nọ nnn HT TH n TH TT ngà ghen re 4 1.2 Phương pháp sử dụng -cccc cà nh vn kn nhe 4 1.3 Kỹ thuật xử lÍ dữ liệU cc c2 11221 nnS.n Hs ng kh se riu 4 1.4 Quy trình xây dựng hệ thống 2 2n Ss se 6

II Tổng quan về dataset uc nu ng ng xen 7

3.1 Import các thư VIỆn ccccn c ncnnnnn HT nh H nh TT se ke ty 8 3.2 Đọc dataset và tiền xử lí dữ liệu -. - 7c 52c 2c và reg 9 3.3 EDA (Exploratory Data AnalySiÌS) con nh nhe 13 3.4 Mô hình đề xuất dựa trên đánh giá cao -. - 15 3.5 Mô hình đề xuất dựa trên nội dung sản phẩm 17 3.6 Mô hình đề xuất dựa trên cộng tác người dùng 21

3.7 Mô hình kết hợp (Hybrid Filtering) -ccc+ccc c2 24

V Danh sách thành vIiÊn -. cuc con HH nnnn n rre 32

Trang 3

n0 17 n1 20

n2 cai 23

i0 27 n2 27 n2 28

i02 30

Trang 4

LỜI MỞ ĐẦU

Trong bối cảnh thị trường thương mại điện tử ngày càng phát triển, việc thấu hiểu nhu cầu và hành vi của khách hàng đóng vai trò vô cùng quan trọng trong việc nâng cao khả năng cạnh tranh của các doanh nghiệp Các công ty lớn như Amazon đã thành công trong việc

áp dụng các công nghệ tiên tiến để phân tích và dự đoán sở thích mua sắm của khách hàng, từ đó tạo ra những trải nghiệm cá nhân hóa mang tính đột phá Điều này không chỉ giúp nâng cao mức độ hài lòng của khách hàng mà còn tối ưu hóa doanh thu và lợi nhuận cho doanh nghiệp

Nhóm đã chọn đề tài “Đề xuất sản phẩm cá nhân hóa dựa trên hành

vi mua sắm của khách hàng” để thực hiện nghiên cứu với hy vọng ứng dụng các phương pháp phân tích dữ liệu hiện đại vào việc giải quyết bài toán đề xuất sản phẩm Dữ liệu thu thập từ nền tảng Amazon sẽ giúp chúng tôi phân tích chuyên sâu các yếu tố tác động đến hành vi mua sắm, đồng thời ứng dụng các thuật toán học máy tiên tiến nhằm xây dựng mô hình đề xuất hiệu quả Qua đó, báo cáo này sẽ lần lượt trình bày quá trình tiền xử lý dữ liệu, phân tích các yếu tố chính ảnh hưởng đến quyết định mua sắm, và triển khai các

mô hình dự đoán nhằm cá nhân hóa trải nghiệm của khách hàng Báo cáo này không chỉ là kết quả của quá trình nghiên cứu học thuật

mà còn thể hiện được tính ứng dụng thực tế của các mô hình đề xuất trong việc tối ưu hóa trải nghiệm người dùng trên các nền tảng thương mại điện tử Kết quả của dự án sẽ góp phần cung cấp góc nhìn mới mẻ về khả năng ứng dụng của công nghệ dữ liệu lớn và học máy, đồng thời hy vọng rằng đây sẽ là tài liệu tham khảo hữu ích cho những nhà nghiên cứu, doanh nghiệp và bất kỳ ai quan tâm đến việc phát triển các giải pháp cá nhân hóa trong ngành thương mại điện

tử

Trang 5

I Tổng quan về đề tài

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

Mục tiêu của đề tài xây dựng hệ thống đề xuất sản phẩm là cung cấp trải nghiệm tìm kiếm và lựa chọn sản phẩm nhanh chóng, chính xác cho người dùng, từ đó tăng tỷ lệ mua hàng và doanh thu Hệ thống sẽ

cá nhân hóa các đề xuất dựa trên sở thích, lịch sử mua hàng và hành vi của từng người dùng, giúp nâng cao sự hài lòng và gắn kết của khách

hàng Bằng cách áp dụng các thuật toán máy học và phân tích dữ liệu,

hệ thống không chỉ tăng hiệu quả kinh doanh mà còn tối ưu hóa quy trình xử lý dữ liệu, đảm bảo độ chính xác cao

‹®% Collaborative Filtering (Lọc cộng tác):

Mô hình dựa trên người dùng (User-based): Gợi ý sản phẩm dựa trên khách hàng có hành vi tương tự

* Content-based Filtering (Loc noi dung):

Dựa trên mô tả sản phẩm và các đặc điểm của sản phẩm mà khách hàng đã mua hoặc ưa thích, đề xuất các sản phẩm tương tự

¢ Hybrid Filtering (Loc két hop):

Kết hợp cả hai phương pháp trên để khắc phục hạn chế của từng phương pháp, làm tăng độ chính xác của gợi ý

Trang 6

e Inverse Document Frequency (IDF)

IDF đánh giá mức độ phổ biến của từ trong toàn bộ tập hợp tài liệu Những từ thông dụng (như “the”, “is”, ) thường có IDF thấp, còn các từ

ít xuất hiện sẽ có IDF cao Công thức:

IDF(t, D) = log_e( Tổng số văn bản trong tập mẫu D/ Số văn bản có chứa từ t)

e TF-IDF

TF-IDF là tích của TF và IDF, giúp cân bằng giữa tần suất từ và độ phổ biến của nó trong tập tài liệu Công thức:

TF-IDFt,d=TFt,dxIDFt,D

¢ Ung dung TF-IDF Vectorizer

TF-IDF giúp biểu diễn văn bản dưới dạng các vector, giúp các mô hình như cosine similarity đo lường mức độ tương tự của các văn bản, rất hữu ích trong các hệ thống đề xuất và phân loại văn bản

‹+% Cosine Similarity

Cosine Similarity là một phương pháp để đo độ tương tự giữa hai vector bằng cách tính góc cosine giữa chúng trong không gian vector Giá trị cosine càng gần 1 thì hai vector càng tương tự nhau, và ngược lại, giá trị càng gần 0 thì hai vector càng khác nhau Trong các ứng dụng xử lý ngôn ngữ tự nhiên và hệ thống goi y, cosine similarity thường được dùng để đánh giá mức độ tương tự giữa các tài liệu, câu, hoặc sản phẩm

Với hai vector A và B, cosine similarity được tính bằng công thức:

Trang 7

¬_ - ø- —4' Ee:

ber OSS BALMS) BUG E EE 3 ot Táo.) new Parnnm~ar.a tevtr.e.nn=n

|Al| x ||Bl] /SME, A? x /SOE, B? a ae, | ss Lwi=1

Trong dé:

e A-B:latichvé hướng của hai vector

e- ||A|| và || ||: là độ dài (norm) của các vector Á va B

e cos(Ø): là cosine của góc Ø giữa hai vector

Hình 1

»« Ý nghĩa của Cosine Similarity

Giá trị cosine từ 0 đến 1: Nếu hai vector giống nhau hoàn toàn (góc giữa chúng là 0 độ), cosine similarity sẽ là 1 Nếu hai vector vuông góc (góc 90 độ), cosine similarity sẽ là 0

Độc lập với độ dài vector: Vì cosine similarity chỉ quan tâm đến hướng của vector, nên nó không bị ảnh hưởng bởi độ dài Điều này giúp đánh giá độ tương tự giữa các tài liệu có độ dài khác

nhau mà không cần chuẩn hóa

e Ung dung cua Cosine Similarity

Đo lường độ tương tự văn ban: So sánh mức độ giống nhau giữa các tài liệu, câu hoặc từ

Hệ thống gợi ý sản phẩm: Tìm các sản phẩm có đặc điểm gần giống nhau để đưa ra đề xuất cho người dùng

% Xử lí NLP với thư viện spaCy

Để áp dụng các phương pháp như TF-IDF và cosine similarity trong các bài toán xử lý văn bản, bước đầu tiên là chuẩn bị và xử lý dữ liệu ngôn ngữ Thư viện spaCy là một công cụ mạnh mẽ trong xử lý ngôn ngữ tự nhiên (NLP), giúp chuyển đổi dữ liệu văn bản thô thành các định dạng và đặc trưng có thể dùng cho các mô hình máy học

spaCy là một thư viện mã nguồn mở cho xử lý ngôn ngữ tự nhiên, được tối ưu hóa để làm việc với dữ liệu văn bản lớn spaCy cung cấp nhiều tính năng mạnh mẽ, bao gồm tokenization (phân tách từ), POS tagging

Trang 8

(gắn nhãn từ loại), nhận diện thực thể có tên (NER), và vector hóa từ, giúp chuẩn bị dữ liệu cho các thuật toán như TF-IDF và cosine similarity

Các bước xử lý dữ liệu ngôn ngữ với spaCy để áp dụng TF-

IDF và Cosine Similarity

Tokenization (Phân tách từ): Đây là bước đầu tiên, trong đó văn bản được chia thành các đơn vị nhỏ gọi là tokens (từ hoặc cụm từ) spaCy thực hiện việc phân tách này hiệu quả, đồng thời loại

bỏ các dấu câu, giúp dữ liệu gọn gàng hơn và phù hợp với TF-IDF vectorizer

Loại bỏ Stop Words: spaCy cung cấp danh sách các stop words (từ dừng) - các từ phổ biến như “the”, “is”, “and” không mang nhiều ý nghĩa khi tính TF-IDF Loại bỏ chúng giúp tập trung vào những từ quan trọng trong phân tích

Tính năng tiền xử lý văn bản: spaCy hỗ trợ nhiều thao tác tiền xử lý như lowercase (chuyển thành chữ thường), lọc stop words, và loại bỏ các ký tự đặc biệt Đây là những bước quan trọng giúp cải thiện kết quả của TF-IDF và cosine similarity

Import thu vién

Doc dataset va tién xử lí dữ liệu

EDA (Exploratory Data Analysis)

Xây dựng mô hình

Đánh giá mô hình

Tổng quan về dataset

Dataset được sử dụng có nguồn gốc từ Kagdgle: Link Dataset

Dataset gồm 14 cột và 1465 dòng với các cột thông tin:

1 product_¡id - ID sản phẩm

2 product_name - Tên sản phẩm

3 category - Danh mục sản phẩm

Trang 9

discounted_price - Giá đã giảm của sản phẩm

actual_price - Giá thực tế của sản phẩm

discount_percentage - Tỷ lệ phần trăm giảm giá cho sản phẩm rating - Xếp hạng sản phẩm

rating_count - Số người đã bình chọn cho xếp hạng của Amazon

about_product - Mô tả về sản phẩm

10 user_id - ID của người dùng đã viết đánh giá cho sản phẩm _ user name - Tên của người dùng đã viết đánh giá cho sản phẩm

review_id - ID của đánh giá của người dùng

review_title - Đánh giá ngắn

review_content - Đánh giá dài

img_link - Liên kết hình ảnh của sản phẩm

product_link - Liên kết trang web chính thức của sản phẩm

III Xây dựng các mô hình

spacy lang.en.stop_words

Hinh 2

Trang 10

Các thư viện được import có chúc năng như sau:

pandas: Thư viện xử lý và phân tích dữ liệu, hỗ trợ tạo và thao tác với các cấu trúc dữ liệu như DataFrame và Series

numpy: Thư viện tính toán khoa học, hỗ trợ thao tác với mảng (arrays) và thực hiện các phép toán trên dữ liệu số

matplotlib.pyplot: Thu viện vẽ biểu đồ trực quan, hỗ trợ tạo biểu đồ đường, cột, tán xạ, v.v., để phân tích dữ liệu

seaborn: Thư viện tạo biểu đồ trên nền matplotlib, cung cấp các biểu đồ thống kê nâng cao để trực quan hóa đữ liệu

sklearn.metrics.pairwise.cosine_similarity: Hàm tính toán độ tương tự cosine giữa các vector, thường được dùng trong các mô hình gợi ý

sklearn.feature_extraction.text.TfidfVectorizer: Công cụ chuyển đổi văn bản thành dạng vector dựa trên trọng số TF-IDF, hữu ích trong xử lý ngôn ngữ tự nhiên

sklearn.preprocessing.LabelEncoder: Mã hóa nhẫn thành các

Số nguyên, giúp xử lý dữ liệu phân loại trong mô hình học máy Spacy: Thư viện xử lý ngôn ngữ tự nhiên, hỗ trợ các tác vụ như phân tách từ, gắn nhãn từ loại, và vector hóa từ

spacy.lang.en.stop_words: Danh sách các từ dừng (stop words) tiếng Anh của spaCy, thường được loại bỏ trong xử lý ngôn ngữ tự nhiên

os: Thư viện hệ thống tích hợp trong Python, hỗ trợ thao tác với tệp tin và thư mục

scipy.sparse.coo_ matrix: Cau tric ma tran thua (sparse matrix) trong scipy, giúp lưu trữ các giá trị khác 0 hiệu quả, giảm dung lượng bộ nhớ khi làm việc với ma trận lớn

Trang 11

train data

0.0s

user id product_id rating rating count

category

product_name img link about_product dtype: int64

Đổi tên cột

10

Trang 13

tags token.text token doc token.text token.text STOP_WORDS

0 Tải mô hình ngôn ngữ của spaCy (en_core_web_sm)

1 Làm sạch dữ liệu văn bản: Văn bản trong cột Description sẽ được chuyển thành chữ thường (lowercase) để đồng nhất các từ

o Loc token: Gift lai các token mà là chữ hoặc số (isalnum())

và loại bỏ những từ không mang nhiều ý nghĩa (stop words) như "the", "is", "and", v.v (dựa trên danh sách STOP_WORDS của spaCy)

3 Trích xuất từ khóa: Sau khi lọc, các từ và số còn lại sẽ được coi

là các "tags" đại diện cho sản phẩm Những từ khóa này có thể dùng để:

o_ Phân loại sản phẩm

o_ Cải thiện khả năng tìm kiếm sản phẩm

o_ Xây dựng hệ thống gợi ý dựa trên từ khóa

4 Trả về kết quả dưới dạng chuỗi: Các từ khóa (tags) sẽ được nối

với nhau bằng dấu phẩy (,), tạo thành một chuỗi

12

Trang 14

Hàm clean_and_extract_tags thực hiện quá trình xử lý trên văn bản

mô tả:

o_ Biến văn bản thành chữ thường

o Tokenize van ban

o Loc va gitt lai cac token la chti/s6 va khéng phai la stop words

Việc áp dụng hàm cho mỗi dòng dữ liệu trong cột Description dùng

Mục tiêu của đoạn code này là làm sạch dữ liệu và chuẩn hóa

các cột 'Category' và 'Rating' trong dataset Cụ thể:

1 Làm sạch cột 'Category': Thay thế ký tự phân tách từ dấu

gạch đứng “|” thành dấu phẩy “," để đồng nhất kiểu phân tách giữa các danh mục và làm cho dữ liệu dễ xử lý hơn Câu lệnh train_ data['Category'].str.replace('|', ',') đảm bảo việc chuyển đổi diễn ra trên tất cả các dòng trong cột Category

Trích xuất tags từ nhiều cột ('Description' và 'Category'): Code sẽ lấy các tags từ cả cột Description và Category (sau khi đã làm sạch)

Nối các giá trị từ các cột bằng dấu phẩy để tạo thành chuỗi duy nhất trong cột Tags Hàm apply với lambda được sử dụng để nối các giá trị từ mỗi dòng của hai cột Description và Category Kết quả sẽ là cột “Tags” đã được chuẩn hóa và kết hợp từ hai cột này

13

Trang 15

3 Chuyển đổi cột 'Rating':

Cột Rating (điểm đánh giá) thường là dữ liệu số, nhưng trong một số trường hợp, dữ liệu có thể chứa ký tự không hợp lệ hoặc không thể chuyển đổi thành số Do đó:

e Mã sẽ sử dụng pd.to_numeric để chuyển đổi cột Rating sang dạng số (float hoặc int)

»Ö _ Xử lý ngoại lệ: Nếu gặp phải giá trị không thể chuyển đổi (ví dụ:

ký tự đặc biệt hoặc chuỗi), hàm sẽ gán giá trị đó thành NaN thay

vì gây lỗi (sử dụng errors='coerce')

Trang 17

average ratings = train_data 2

rating_base_recommendation average ratings

Hinh 16

%» Cách hoạt động của mô hình:

1 Tính toán điểm đánh giá trung bình:

- train_data.groupby([ ]): Dữ liệu trong train_data được nhóm lại theo ba tiêu chí: Name (tên sản phẩm), ReviewCount (số lượng đánh giá), và IMGURL (URL hình ảnh của sản phẩm) Việc nhóm

dữ liệu này giúp tổng hợp thông tin cho mỗi sản phẩm duy nhất

- _ [Rating'].mean(): Tính toán điểm đánh giá trung bình cho mỗi nhóm sản phẩm Điều này có nghĩa là cho mỗi sản phẩm, hệ

thống sẽ lấy tất cả các điểm đánh giá mà sản phẩm đó nhận được

và tính trung bình

16

Trang 18

‹ „reset index(): Sau khi nhóm và tính toán, phương thức này sẽ biến kết quả thành một DataFrame mới với chỉ số được thiết lập lại, giúp dễ dàng thao tác với dữ liệu sau này

2 Sắp xếp và chọn sản phẩm:

‹ồ _ sort values(by='Rating', ascending=False): Sắp xếp các sản phẩm trong DataFrame average_ratings theo điểm đánh giá trung bình (Rating) theo thứ tự giảm dần Sản phẩm có điểm đánh giá cao nhất sẽ đứng đầu danh sách

-_ ,‹head(10): Chọn 10 sản phẩm có điểm đánh giá cao nhất từ kết quả đã sắp xếp Đây là danh sách gợi ý cho người dùng

b AI ee ag IMGURL Rating REDTECH USB-C to Lightning Cable 3.3FT, (Apple 0 https//m.media-amazon.com/images/1/31-q0xhaTA 5.0 Syncwire LTG to USB Cable for Fast Charging Co = https//m.media-amazon.com/images/I/317OoQfs1g Amazon Basics Wireless Mouse | 2.4 GHz Connect 23 https://m.media-amazon.com/images/I/31 + Rg6Z46d Instant Pot Air Fryer, Vortex 2QT, Touch Contr 3,964 https//m media-amazon.com/images/W/WEBP 40237 Swiffer Instant Electric Water Heater Faucet T 53,803 https://m.media-amazon.com/images/l/41+t2HWvwF Oratech Coffee Frother electric, milk frother 28 https://m.media-amazon.com/images/W/WEBP_40237 Zuvexa USB Rechargeable Electric Foam Maker - 54 _https://m.media-amazon.com/images/I/4171401hnm Spigen EZ Fit Tempered Glass Screen Protector 7,179 https://m.media-amazon.com/images/I/51EIPNILJDd Sony Bravia 164 cm (65 inches) 4K Ultra HD Sma 5,935 https://m.media-amazon.com/images/1/5 1uVckL1jR Campfire Spring Chef Prolix Instant Portable W 2,591 https://m.media-amazon.com/images/W/WEBP_40237

Hinh 17

* Nhận xét về kết quả của mô hình đề xuất

1 Sản phẩm có Rating cao nhưng Review Count thấp:

Những sản phẩm này có thể có điểm đánh giá rất cao (gần 5.0), nhưng

lại có số lượng đánh giá thấp (ví dụ: 0 đến 5) Điều này có thể gây ra một số vấn đề trong việc xác định độ tin cậy của sản phẩm:

»« Thiếu độ tin cậy: Nếu một sản phẩm có điểm đánh giá cao nhưng lại có rất ít đánh giá, điều này có thể cho thấy rằng sản

phẩm chưa được nhiều người tiêu dùng thử nghiệm Một sản phẩm có ít đánh giá có thể bị ảnh hưởng bởi các yếu tố như quảng cáo mạnh mẽ hoặc là một sản phẩm mới ra mắt

«ồ Khả năng thiên lệch: Những đánh giá cao từ một số ít người dùng có thể không đại diện cho trải nghiệm chung của người tiêu dùng Một vài người có thể đã có trải nghiệm tích cực, trong khi phần lớn người dùng khác có thể không hài lòng

17

Ngày đăng: 03/01/2025, 21:29

w