Hinh 1: Hinh 2: Hinh 3: Hinh 4: Hinh 5: Hinh 6: Hinh 7: Hinh 8: Hinh 9: Hinh 10: Hinh 11: Hinh 12: Hinh 13: Hinh 14: Hinh 15: Hinh 16: Hinh 17: Hinh 18: Hinh 19: Hinh 20 Hinh 21: Hinh 22
Trang 1BAO CAO DO AN
Hoc ky I, nam học 2022 - 2023
Hoc phan: PHAN TICH DU LIEU LON
Đề tài: Phân tích xu hướng khách hàng
Trang 2Đề tài: Phân tích xu hướng khách hàng
Giảng viên hướng dẫn: Hồ Quốc Dũng Sinh viên thực hiện: Phạm Quốc Đạt
Lê Thanh Hùng Nguyễn Phước
Số phách (Do hội đồng chấm thi ghi)
Trang 3DAI HOC HUE ;
KHOA KY THUAT VA CONG NGHE
LILIL]IL]T]
PHIẾU DANH GIA DO AN/TIEU LUAN/BAI TAP LON
Hoc ky IT, nam hoc 2022 - 2023
Trang 5
MUC LUC CHƯƠNG I: GIỚI THIỆU BỘ DỮ LIỆU 222 S221SE2212222122221121212222121222cee 8 CHUONG II: PHAN TICH DU LIEU ceccccccccscsessseesseesssesesesssessstessetareseressseersseranees 9 2.1 KHAI QUAT DU LIBU Lecce ccccccccsccssessessessecsecsevssvsstsstssessesserseesenssnssnesesees 9 2.2 TIEN XU LY DU LIBU Loe cecccccccccscescsessseerssesereseressseetsesareseressseessnesaneee 10 2.2.1 XỬ LÝ DỮ LIỆU TRÓNG 22-222 2212221222212221222127122 c6 10 2.2.2 EXPLORATORY DATA ANALYSIS (EDA) 52sscszxcc 13
2.3.2 CUSTOMER LIFETIME, 0 c.ccccccccsssseesssecssseeseseesessecseseesereesereseseetesee 22
CHUONG III: TAI LIEU THAM KHAO ceccccccsccssesccsssessestssestesestssestssestssestesestesesees 32
Trang 6Hinh 1: Hinh 2: Hinh 3: Hinh 4: Hinh 5: Hinh 6: Hinh 7: Hinh 8: Hinh 9: Hinh 10: Hinh 11: Hinh 12: Hinh 13: Hinh 14: Hinh 15: Hinh 16: Hinh 17: Hinh 18: Hinh 19: Hinh 20 Hinh 21: Hinh 22: Hinh 23: Hinh 24:
DANH MUC HINH ANH
Import dữ liệu Tìm dữ liệu khuyết
Xử lý dữ liệu khuyết (1) Xử lý dữ liệu khuyết (2) Xử lý dữ liệu khuyết (3) Xử lý dữ liệu khuyết (4) Xử lý dữ liệu khuyết (5)
Biểu đồ biều diễn tình trạng giao hàng Biểu đồ biểu diễn sự phat trién cua thương mại điện tử Brazil
Biểu đồ thống kê đơn hàng theo các ngảy trong tuần Biểu đồ so sánh tông số lượng đơn hàng năm 2017 và 2018 Biểu đồ về sự tăng trưởng của thương mại điện tử theo từng khu vực Cong thire Association Rule
Import thu vién Import dữ liệu One-hot encoding Áp dụng thuật toán Apriori vào dữ liệu Áp dụng Association Rule vào dữ liệu Cong thire tinh Customer lifetime value : Import va merge dir liéu
Tinh gia tri frequency Tinh gia tri recency
Tinh gia tri T Tinh gia tri T
Trang 8LOI CAM ON
Chúng em xin gửi lời cảm ơn chân thành đến thây Hồ Quốc Dũng giảng viên môn “Phân tích dữ liệu lớn” đã trang bị giúp chúng em những kỹ năng cơ
ban và kiến thức cần thiết đề hoàn thành được bài tập này
Tuy nhiên, trong quá trình làm bài tập do kiến thức chuyên ngành của
chúng em còn hạn ché nên không thê tránh khỏi một vài thiếu sót khi trình bày
và đánh giá vấn đề Rất mong nhận được sự góp ý, đánh giá của các thầy cô bộ môn đề đẻ tài của chúng em thêm hoàn thiện hơn
Chúng em xin chan thành cảm ơn.
Trang 9CHUONG I: GIOIL THIEU BO DU LIEU
Olist dataset là một tập đữ liệu công khai về các đơn hàng được thực hiện trên Olist Store - một nền tảng thương mại điện tử tại Braz1l Tập dữ liệu này chứa thong tin vẻ 100.000 đơn hàng từ năm 2016 đến năm 2018 được thực hiện trên nhiều thị truong tai Brazil Cac thuộc tính của nó cho phép xem xét một đơn hàng từ nhiều khía cạnh khác nhau: từ trạng thái
đơn hàng, giá cả, thanh toán và hiệu suất vận chuyên cho đến vị trí khách hàng, thuộc tính sản phâm và cuối cùng là những đánh giá từ khách hàng (kaggle, n.d.)
Bộ dữ liệu gồm có 9 tập dữ liệu nhỏ: Olist_olist_customers_dataset: m6 tả thông tin khách hàng Olist_geolocation dataset: m6 tả thông tin về mã zip và tọa độ địa lí của khách
hàng Olist order items_ dataset: đữ liệu về các mặt hàng đã mua Olist order payments _dataset: dữ liệu về phương thức thanh toán Olist order reviews dataset: dir liéu về nội dung đánh giá của khách hàng Olist_orders dataset: dir ligu vé dat hàng
olist_products dataset: dir liéu vé théng tin san pham duge ban boi Olist Olist_sellers dataset: dit ligu về người ban cua Olist
Product_category name translation: dữ liệu về tên sản phâm được dịch từ tiếng Bồ Đảo Nha sang tiếng Anh
Trang 10CHUONG II: PHAN TICH DU LIEU
2.1 KHAI QUAT DU LIEU
Sử dụng thư viện Pandas dé nhập đữ liệu từ file csv vào python # Đọc tất cả các file đữ liệu
# Brazillian ecommerce
raw_path = ' /input/brazilian-ecommerce/ customer = pd.read_csv(raw_path + ‘olist_customers_dataset.csv') geolocation = pd.read_csv(raw_path + 'olist_geolocation_dataset.csv') orders = pd.read_csv(raw_path + 'olist_orders_dataset.csv') order_items = pd.read_csv(raw_path + ‘olist_order_items_dataset.csv' )
products = pd.read_csv(raw_path + ‘olist_products_dataset.csv') sellers = pd.read_csv(raw_path + ‘olist_sellers_dataset.csv') translation = pd.read_csv(raw_path + ‘product_category_name_translation.csv’ ) # Maketing
closed_deals = pd.read_csv(' /kaggle/input/marketing-funnel-olist/olist_closed_deals_dataset.csv' ) marketing = pd.read_csv(‘/kaggle/input/marketing-funnel-olist/olist_marketing_qualified_leads_dataset.csv')
Hinh 1: Import dit liéu Sau khi nhập dữ liệu vào, sử dụng hàm “background_ gradient()” đề có một cái nhìn
khái quát về đữ liệu Kiểm tra xem mỗi tập dữ liệu có bao nhiêu hàng, cột, số lượng trường đữ liệu bị khuyết,
Trang 11data_info = pd.DataFrame({}) data_info[ 'dataset' ] = names data_info['n_rows'] =
[df.shape[@] for df in datasets] data_info['n_cols'] = [df.shape[1] for df in datasets] data_info[‘null_amount’] = [df.isnull().sum().sum() for df in datasets] data_info[‘qty_null_columns'] = [len([col for col, null in df.isnull().sum().items() if null > 6]) for df in datasets] data_info[‘null_columns’] = [',
data_info.style.background_gradient() dataset nrơw nicols nullamount qty null columns
null columns
Tim dữ liệu khuyết Nhận thấy răng có 5 tập đữ liệu bị khuyết, bao gồm: e Orders
e Order _reviews e Products e Translation e Closed_deals
2.2 TIEN XU LY DU LIEU 2.2.1 XU LY DU LIEU TRONG
Khi làm việc với đữ liệu, rat đễ bắt gặp trường hợp bị khuyết dữ liệu, tùy thuộc
vào đữ liệu đang đề cập đên vân đề nào và mục đích phân tích, có thê xử lí đữ liệu theo những phương pháp sau:
e Xóa dữ liệu trống e Dién dữ liệu trống e Sử dụng mô hình dự đoán
e Tao bién nhan dang
e Sử dụng kỹ thuật khác
10
Trang 122.2.1.1 TAP DU LIEU PRODUCTS
# Tim dự liệu Nall trong field product_category_nane
product id product.category.name product.name_fenght product description lenght product photos.qty product_weight.g product.Jength.cm product height.cm product width cm
Hình 3: Xử lí dữ liệu khuyết (1)
Ở đây vì trường dữ liệu “product_category_name”(tên nhóm của sản phâm) là một trường dữ liệu quan trọng đề phân tích xu hướng mua hàng của
khách hàng nên không thê loại bỏ trường đữ liệu này Vì vậy, chúng ta gắn
nhãn cho những trường dữ liệu khuyết này thành “Unknow” # Chuyến NaN -> Unknow
products[ “product_category_name"].fillna("“Unknow", inplace = True) products.iloc[105]
Tương tự với trường đữ liệu “Product_photos_gty” (số lượng ảnh về
sản phâm), vì một số lí do như sản phâm này không có ảnh mô tả hay lỗi hiện thị ảnh, nên chúng ta sẽ chuyên đữ liệu khuyết thành giá trị 0
products[ “product_photos_qty"].fillna(int(@), inplace = True)
11
Trang 13Hình 5: Xử lí dữ liệu khuyết (3)
2.2.2.2 TẬP DỮ LIỆU ORDER_REVIEWS Đối với 2 trường đữ liệu “review_comment_title”, “review_comment_message”, chúng ta sẽ xóa các dữ liệu bị khuyết
order_reviews = 0rder_re/iets.dropna|suhset| revisw_cotment_titÌ>'„ ‘revier_connent_nessage' |)
order_reviews.head|)
Hình 6: Xử lí dữ liệu khuyét (4)
Chuẩn hóa dữ liệu ngày tháng năm
orders| ‘order_purchase_tinestamp'] = pd.to_datetine(orders[ ‘order _purchase_tinestanp' |} dt.nornalize() orders| ‘order_approved_at'| = pd.to_datetime(orders|'order_epproved_at' |) dt normalize() orders] ‘order_delivered_carrier_date’] = pd.to_datetine(orders|' order_delivered_carrier_dete’ ]).dt.normalize() orders] ‘order _delivered_custoner_date’] = pd.to_datetine(orders[ ' order_delivered œustwer_date' |) dt.nornalize()
orders head{)
Hình 7: Xử lý dữ liệu khuyết (5)
12
Trang 142.2.2 EXPLORATORY DATA ANALYSIS (EDA) 2.2.2.1 TINH TRANG GIAO HANG - DELIVERED
#delivered
df_orders = orders.merge(customer, how='left’, on="customer_id’ }
fig, ax = plt.subplots(figsize=(14, 6))
plt.title( 'Biếu đồ thế hiên tinh trang giao hang của các đơn hàng(%) }
e_ Biểu đồ biêu diễn tinh trang giao hàng của thương mại điện tử Olist
trong khoản thời gian 2016-2018 e Hau hét các sản phẩm đã được giao (chiếm 97%), e Nhiing san pham con lai đang trong quá trình giao hàng, hoặc là sản
phâm vừa được đặt hàng (chiếm 3% tông số sản phẩm), trong đó: o San pham đang giao (chiếm 1.1%)
o San pham bj huy don (chiém 0.6%) o San pham khéng con hang (chiém 0.6%)
o San pham đang trong quá trình xử lý đơn hàng (chiếm 0.3%)
o_ Sản phâm vừa được đặt và chấp thuận chỉ chiếm 7 đơn hàng
13
Trang 152.2.2.2 SU PHAT TRIEN CUA THUONG MAI DIEN TU O BRAZIL
Sự phát triển của TMDT 6 Brazil
PD ho oP OP € oo ye SP MM SM ở ở vờ VV Vee YY A PKK KPH LF rer YM MY Yh PY + 4 4 4 SK TPF PE SH EPS Ỳ P rrr ỳ rr rrr ert POP?
Hình 9: Biếu đồ biểu diễn sự phát triển của thương mại điện tử Brazil Nhận xét:
e_ Biểu đồ biêu diễn số lượng đơn hàng được đặt trong thời gian từ 9-2016 -> 10-2018
e Nhin chung xu hudng mua hàng ở sản thương mại điện tử có xu hướng tăng trong giai đoạn 9-2016 -> 11-2017, khoảng thời gian từ 11-2017 ->
10-2018, xu hướng mua hàng có biến động nhẹ
e Tháng 11-2017, sàn thương mại có số lượng đơn đặt hàng lớn nhất với hơn 7000 lượt đặt hàng
e Tháng 9-2016, sản thương mại có số lượng đơn đặt hàng thấp nhất (< 200 đơn đặt hàng)
14
Trang 16Thống kê số wong đơn hàng theo các ngày trong tuần
8000 600 400 2000
0ˆ
i Sat order purchase dayotweek
® Nhin chung khách hàng có xu hướng mua hàng từ thứ 2 -> 6, trong đó
thứ 2 có số lượng mua hàng nhiều nhất (16196 đơn hàng) chiếm 16.3%
tong số đơn hàng
e Thứ 7, có số lượng đặt hàng thấp nhất với 10887 đơn hàng - chiếm
10.9% tổng số
15
Trang 17e Biểu đồ so sánh số lượng đơn đặt hàng của sản thương mại điện tử
trong 2 năm 2017 và 2018
e_ Nhìn chung, số lượng đơn đặt hàng của năm 2018 lớn hơn rất nhiều so
với năm 2017
© Téng số đơn đặt hàng năm 2017 là 22968 don hang
e Tổng số lượng đơn đặt hàng năm 2018 là 53991 đơn bảng, tăng 143% so với năm 2017
16
Trang 182.2.2.3 SU ANH HUONG CUA THUONG MAI DIEN TU THEO KHU VUC
Evolution of E-Commerce Orders on Brazilian Regions
từng khu vực Nhận xét
e Biểu đồ biểu diễn sự tăng trưởng của số lượng đơn đặt hàng theo khu vực
e Khu vực Sudeste có xu hướng tăng trưởng nhanh chong so với các
khu vực còn lại, đỉnh điểm là vào tháng 11-2017, số lượng đơn hàng
của khu vực nảy là 6000 e©_ Khu vực Norte có mức độ tăng trưởng thấp nhất
17
Trang 192.3 DATA MINING 2.3.1 ASSOCIATION RULE
2.3.1.1 GIOI THIEU VE THUAT TOAN ASSOCIATION RULE
Phan tich ludt két hop (Association Rules Analysis) la một phương pháp quan trọng trong lĩnh vực khoa học đữ liệu và khai phá đữ liệu Nó được áp dụng đề phân tích và khám phá mối quan hệ tương quan và quy tắc giữa các mục trong một tập đữ liệu Mục tiêu chinh cua Association Rules Analysis là tìm hiểu các mục xuất hiện cùng nhau với tần suất cao trong các tập dữ liệu
Thông thường khi mua hàng, chúng ta sẽ có xu hướng mua các sản phâm theo sở thích hay mua một nhiều sản phẩm đề hỗ cho một công việc (vd: một người có gu retro thì sẽ mua nguyên bộ áo, quân, mũ, cặp sách cũng theo hướng retro đề có thê mặc chung với nhau hay khi mua bia thì có xu hướng mua thêm lạc để nhậu chăng) Như vậy, khi tìm ra được các bộ sản pham nay,
nếu khách hang mua một sản phâm, chúng ta có thê gợi ý cho khách hàng ở sản phâm tiếp theo từ đó tăng doanh số bán hàng (tailieudientu.net, n.d.)
Thông qua phân tích luật kết hợp, chúng ta có thê khám phá được các
quy tắc kết hợp giữa các mục, ví dụ như "nếu A xuất hiện, thì có khả năng B cũng xuất hiện" Điều này giúp chúng ta hiểu rõ hơn về sự tương quan và mô hình hóa các quan hệ giữa các mục trong dữ liệu Phân tích Luật Kết hợp đã được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm tiếp thị, bản lẻ, e-commerce va phan tich hanh vi người dùng trên các nên táng trực tuyến 2.3.1.2 APRIORI ALGORITHM
Thuật toán Apriori, được sử dụng trong giai đoạn đầu của phân tích luật
kết hợp, là thuật toán phô biến và cô điển nhất trong các phân tử thường xuyên
Các thuộc tính và đữ liệu của thuật toán này được đánh giá với các Luật Kết hợp Boolean Trong thuật toán này, có các nhóm sản phẩm xuất hiện thường xuyên, sau đó tìm kiếm mối quan hệ mạnh mẽ giữa các sản phâm này và các
sản phâm khác
Sự quan trọng của một luật kết hợp có thê được xác định bằng 3 tham số được sử dụng đề định rõ sức mạnh của thuật toán Cụ thể lả:
18
Trang 20e Support (H6 tra): Do lwong ty 16 xuat hién chung cua cac muc trong tap dữ liệu
e Confidence (D6 tin cay): Xác định mức độ chắc chắn của một luật đựa trên tỷ lệ các mục con của luật đã xảy ra trong tống số các mục cha e Lift (Độ nâng): Đo lường sự tăng cường của một luật so với việc các
mục trong luật xuât hiện ngâu nhiên và độc lập
Các tham số trên giúp đánh giá sức mạnh của một Luật Kết hợp và
quan trọng đề hiệu mức độ tương quan và ý nghĩa của các quy tắc được tạo ra trong phân tích Luật Kết hợp
q(X,Ÿ Support = 4 N :
Rule: X = Y —» Confidence= £45 \ Sig X)
Supp(X) x Supp(¥) Hinh 13: Céng thirc Association Rule
2.3.1.3 TRIEN KHAI THUAT TOAN ASSOCIATION RULE
Khai bao thu vién
import pandas as pd import numpy as np & from mlxtend.frequent_patterns import apriori, association_rules
Hinh 14: Import the viện
MAGGLTEA BISCUIT
19