lOMoARcPSD| 45740413
TRƯỜNG ĐẠI HỌC THỦY LỢI
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
HỌC PHẦN: HỌC MÁY
ĐỀ TÀI: PHÂN CỤM KHÁCH HÀNG
Giáo viên hướng dẫn: Nguyn Th Kim Ngân
Nhóm sinh viên thực hiện: Nhóm 5
1. Nguyn Minh Tun, lớp 62HT, MSV:2051063441
2. Mai Xuân Hiu, lớp 62HT, MSV:2051063674
3. Bi Quang Huy, lớp 62HT, MSV:2051062383
Hà Nội, năm 2022
lOMoARcPSD| 45740413
MỤC LỤC
PHẦN 1: TỔNG QUAN...................................................................................2
1.1. Giới thiệu về hc máy.............................................................................2
1.2. Trình bày phương pháp học máy được sử dụng trong bài tập lớn..........3
PHẦN 2: THỰC NGHIỆM...............................................................................5
2.1.Mô tả tập dữ liệu......................................................................................5
2.2. Mô tả cách giải bài toán bằng phương pháp học máy.............................6
2.3. Đánh giá mô hình....................................................................................6
2.4. Mô tả các chức năng của chương trình...................................................7
Kt luận.............................................................................................................9
Tài liệu tham khảo.............................................................................................9
lOMoARcPSD| 45740413
PHẦN 1: TỔNG QUAN
1.1. Giới thiệu về học máy
* Lch sử của Machine Learning:
- Machine learning là thuật ngữ được đặt bởi Arthur Samuel vào năm
1959. Samuel là một IBMer người Mỹ kiêm nhà tiên phong trong lĩnh vực trí
tuệ nhân tạo và máy tính chơi game.
- Năm 1960, thuật ngữ học máy phổ bin hơn thông qua cuốn sách của
Nilsson, nội dung đề cập đn việc phân loại máy học.
- Machine learning hiện đại bao gồm hai mục tiêu chính: phân loại dữ
liệu thông qua mô hình đã được phát triển và đưa ra dự đoán về kt quả trong
tương lai dựa trên mô hình này. * Vai trò ca Machine Learning:
- Hiện nay, việc quan tâm machine learning càng ngày càngng lên là vì
nhờcó machine learning giúp gia tăng dung lượng lưu trữ các loại dữ liệu sẵn,
việc xử lý tính toán có chi phí thp và hiệu quả hơn rt nhiều.
- Những điều trên được hiểu là nó có thể thực hiện tự động, nhanh chóng
để tạo ra những mô hình cho phép phân tích các dữ liệu có quy mô lớn hơn và
phức tạp hơn đồng thời đưa ra những kt quả một cách nhanh chính xác
hơn. Chính sự hiệu quả trong công việc và các lợi ích vượt bậc mà nó đem lại
cho chúng ta khin machine learning ngày càng được chú trọng và quan tâm
nhiều hơn.
- Với kho dữ liệu khổng lồ trong các ngành công nghiệp như hiện nay thì
không ai có thể phủ nhận được tầm quan trọng của công nghệ Machine
Learning đem lại. Như ứng dụng vào hệ thống Dch vụ tài chính, ngân hàng
đó là: xác đnh insights ở trong dữ liệu và ngăn chặn sự lừa đảo. Ứng dụng
trong Chính phủ về lĩnh vực an ninh hay tiện ích xã hội. Haychăm sóc sức
khỏe với việc ra đời của các thit b hay máy cảm ứng sử dụng các dữ liệu
chuẩn đoán, đánh giá tình hình sức khỏe của bệnh nhân một cách chính xác
trong thời gian thực. Những trang web đã dng Machine Learning có thể phân
tích lch sử của những khách hàng đã mua hàng trước đây, các, từ đó đưa ra
đánh giá, giới thiệu những sản phẩm, vật dụng mà khách hàng có nhu cầu
quan tâm yêu thích trong lĩnh vực Marketing và Sale.
* Ưu điểm và hạn ch của Học có giám sát và không giám sát
- Học có giám sát:
+ Ưu điểm:
Cho phép người dng thu thập dữ liệu và tạo đầu ra từ dữ
liệu, dựa trên trải nghiệm đã có sẵn của người dng.
lOMoARcPSD| 45740413
Tối ưu hóa hiệu sut từ kinh nghiệm có sẵn.
Giúp người dng quan sát và giải quyt các vn đề liên
quan tới tính toán trong thực t.
+ Nhược điểm:
Người dng cần chọn nhiều ví dụ từ mỗi lớp khác nhau
trong quá trình đào tạo, đòi hỏi dữ liệu phải khách quan,
sát với thực t số lượng dữ liệu phải đủ lớn.
Nhiều thách thức và khó khăn khi phân loại ví dụ với số
lượng lớn.
Tốn nhiều thời gian trong quá trình hc và giám sát.
- Học không giám sát:
+ Ưu điểm:
Có thể khám phá, phân tích và thể hiện những cu trúc có
ích ẩn bên trong dữ liệu đầuo.
D dàng đánh giá, phân khúc được dữ liệu có tính cht
giống nhau.
+ Nhược điểm:
Dữ liệu đầu ra không có một giá tr cụ thể, chính xác.
1.2. Trình bày phương pháp học máy được sử dụng trong bài tập
lớn
- Mục đích của phương pháp: làm thể nào để phân dữ liệu thành các cụm
(cluster) khác nhau sao cho dữ liệu trong cng mt cụm có tính cht giống
nhau.
- Input:
+Tập dữ liệu có sẵn được tham khảo từ trang Kaggle.
+ Số lượng Cluster.
- Output:
+ Các centrer của mỗi cụm.
+ Các điểm dữ liệu được phân vào cụm ph hợp.
- Method (Cách thực hiện).
lOMoARcPSD| 45740413
+ Bước 1: Khởi tạo
+ Bước 2: Tính toán khoảng cách
Đối với mi điểm X
i
(1 i n), tính khoảng cách của nó tới mỗi trọng
tâm m
j
(1 j k). Sau đó tìm trọng tâm gần nht đối với mỗi điểm.
+ Bước 3: Cập nhật lại trọng tâm
Đối với mi 1 j k, cập nhật trọng tâm cụm mj bằng cách xác đnh
trung bình cộng các vectơ đối tượng dữ liệu.
+ Điều kiện dừng:
Lặp lại các bước 2 và 3 cho đn khi các trọng tâm của cụm không thay
đổi.
- Các độ đo để đánh giá mô hình.
+ Silhouette: dng để đo lường khoảng cách của một điểm dữ liệu trong
cụm đn Centroid, điểm trung tâm của cụm, và khoảng cách của chính điểm
đó đn điểm trung tâm của cụm gần nht (hoặc đn các điểm trung tâm của
các cụm còn lại, và chọn ra khoảng cách ngắn nht). Silhouette index càng
tin về 1 thì mô hình càng cht lượng.
Giả sử có 2 cluster A và B được tìm thy dựa trên K-means clustering,
ta có công thức:
Trong đó:
bi là khoảng cách từ điểm i trong cluster A đến điểm trung
tâm của cluster B.
ai là khoảng cách từ điểm i trong cluster A đến điểm trung
tâm của cluster A.
+ Davies and Bouldin Index: Để tính được DB index ta phải đo lường
mức độ phân tán (S)tương đồng(R) của các cụm. DB index càng nhỏ thì
mô hình càng cht lượng.
Trong đó:
lOMoARcPSD| 45740413
C
i
: tổng số các điểm dữ liệu
c
i
: điểm trung tâm cụm
x: một điểm bất kì trong cụm P: thường bằng 2
Trong đó:
S
i
, S
j
: Độ phân tán của cụm C
i
, C
j
D
ij
: Khoảng cách giữa 2 điểm trung tâm cụm c
i
và c
j
PHẦN 2: THỰC NGHIỆM
2.1.Mô tả tập dữ liệu
- Có tổng cộng 2000 mẫu (vector) dữ liệu.
- Ma trận dữ liệu (X) gm 7 cột:
+ Sex : Giới tính.
+ Marital status: Tình trạng hôn nhân.
+ Age : Tuổi.
+ Education: Trình đ học vn.
+ Income: Thu nhập.
+ Occupation: Nghề nghiệp.
+ Settlement size: Kích thước thành phố nơi sinh sống
- Mô tả bài toán:
+ Bài toán dựa vào các đặc điểm giới tính, tình trạng hôn nhân, tuổi,
trình độ học vn, nghề nghiệp, kích thước thành phố nơi sinh sống của
khách hàng để tin hành phân cụm những khách hàng có những đặc điểm
giống nhau vào cng một cụm.
lOMoARcPSD| 45740413
+ Lần lượt phân thành k cụm với k [2,10].
2.2. Mô tả cách giải bài toán bằng phương pháp học máy
- Các bước thực hiện:
+ Bước 1: Chọn k điểm bt kỳ làm các center ban đầu.
+ Bước 2: Phân mỗi điểm dữ liệu vào cluster có center gần nó nht.
+ Bước 3: Nu việc gán dữ liệu vào từng cluster ở bước 2 không thay
.đổi so với vòng lặp trước nó thì ta dừng thuật toán.
+ Bước 4: Cập nhật center cho từng cluster bằng cách ly trung bình
cộng của tt cả các điểm dữ liệu đã được gán vào cluster đó sau bước 2.
+ Bước 5: Quay lại bước 2.
2.3. Đánh giá mô hình
- Nhìn vào kt quả ta thy:
+ Với Silhouette score: Các giá tr Silhouette score khi phân cụm lần lượt từ
2 đn 10 cụm sự bin động nhẹ từ thp nht: 0.512 (3 cụm) đn cao nht
0.582: (2 cụm) đạt mức trung bình.
+ Với Davies and Bouldin score: Các giá tr Davies and Bouldin khi phân
cụm lần lượt từ 2 đén 10 cụm sự bin động nhẹ từ thp nht: 0.487 (8 cụm)
đn cao nht 0.621(2 cụm) đạt mức trung bình.
=> Mô hình chưa thực sự tốt, đạt mức độ trung bình với các chỉ số xp xỉ 0.5.
2.4. Mô tả các chức năng của chương trình
* Giao diện gm 2 phần chính: Kt quả phân cụm của dữ liệu đã đưa vào sẵn
và Dự đoán kt quả phân cụm của dữ liệu mới nhập vào .
lOMoARcPSD| 45740413
- Kt quả phân cụm của dữ liệu đã đưa vào sẵn:
+ Kt quả hiển th lần lượt với s cụm được phân từ 2 đn 10 cụm sẽ
cho các độ đo Silhouette và Davies and Bouldin tương ứng với nó.
+ Sau đó người dng n chọn button:
Số cụm tốt nht Silhouette: Chương trình sẽ trả về kt quả
bài toán nên chia theo bao nhiêu cụm sẽ là tối ưu nht theo độ
đo Silhouette.
Số cụm tốt nht DB: Chương trình sẽ trả về kt quả bài toán
nên chia theo bao nhiêu cụm sẽ là tối ưu nht theo độ đo
Davies and Bouldin
- Dự đoán kt quả phân cụm của dữ liệu mới nhập vào:
lOMoARcPSD| 45740413
+ Người dng lần lượt chọn các trường dữ liệu:
Giới tính: Male/Female.
Tình trạng hôn nhân: Độc thân/Ly d/Ly thân/Đã kt hôn/Góa
bụa.
Tuổi: Nhập trực tip từ bàn phím hoặc dng phím mũi tên
(>=18).
Trình độ học vn: Không rõ/ THPT/ Đang học Đại học/ Tốt
nghiệp Đại học.
Thu nhập: Nhập trực tip từ bàn phím hoặc dng phím mũi
tên (Đơn v $).
Nơi đnh cư: Thành phố nhỏ/ Thành phố cỡ vừa/ Thành phố
lớn.
+ Sau đó người dng n chọn button:
Phân cụm: Chương trình sẽ trả về kt quả dữ liệu người dng
vừa nhập thuộc cụm nào khi phân lần lượt từ 2 đn 10 cụm
Kết lun
lOMoARcPSD| 45740413
- Bài tập đã giải quyt bài toán phân cụm các các khách hàng dựa trên một số
đặc điểm của họ sử dụng phương pháp K-means clustering, từ đó đánh g
được mô hình, số lượng các cụm và các độ do đánh giá tương ứng.
Tài liu tham kho
https://machinelearningcoban.com/2017/01/01/kmeans/
https://hanghieugiatot.com/silhouette-score-la-gi
https://www.kaggle.com/datasets/dev0914sharma/customer-clustering
https://www.youtube.com/watch?v=6UF5Ysk_2gk

Preview text:

lOMoAR cPSD| 45740413
TRƯỜNG ĐẠI HỌC THỦY LỢI
KHOA CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN HỌC PHẦN: HỌC MÁY
ĐỀ TÀI: PHÂN CỤM KHÁCH HÀNG
Giáo viên hướng dẫn: Nguyễn Thị Kim Ngân
Nhóm sinh viên thực hiện: Nhóm 5
1. Nguyễn Minh Tuấn, lớp 62HT, MSV:2051063441
2. Mai Xuân Hiếu, lớp 62HT, MSV:2051063674
3. Bùi Quang Huy, lớp 62HT, MSV:2051062383 Hà Nội, năm 2022 lOMoAR cPSD| 45740413 MỤC LỤC
PHẦN 1: TỔNG QUAN...................................................................................2
1.1. Giới thiệu về học máy.............................................................................2
1.2. Trình bày phương pháp học máy được sử dụng trong bài tập lớn..........3
PHẦN 2: THỰC NGHIỆM...............................................................................5
2.1.Mô tả tập dữ liệu......................................................................................5
2.2. Mô tả cách giải bài toán bằng phương pháp học máy.............................6
2.3. Đánh giá mô hình....................................................................................6
2.4. Mô tả các chức năng của chương trình...................................................7
Kết luận.............................................................................................................9
Tài liệu tham khảo.............................................................................................9 lOMoAR cPSD| 45740413 PHẦN 1: TỔNG QUAN
1.1. Giới thiệu về học máy
* Lịch sử của Machine Learning: -
Machine learning là thuật ngữ được đặt bởi Arthur Samuel vào năm
1959. Samuel là một IBMer người Mỹ kiêm nhà tiên phong trong lĩnh vực trí
tuệ nhân tạo và máy tính chơi game. -
Năm 1960, thuật ngữ học máy phổ biến hơn thông qua cuốn sách của
Nilsson, nội dung đề cập đến việc phân loại máy học. -
Machine learning hiện đại bao gồm hai mục tiêu chính: phân loại dữ
liệu thông qua mô hình đã được phát triển và đưa ra dự đoán về kết quả trong
tương lai dựa trên mô hình này. * Vai trò của Machine Learning: -
Hiện nay, việc quan tâm machine learning càng ngày càng tăng lên là vì
nhờcó machine learning giúp gia tăng dung lượng lưu trữ các loại dữ liệu sẵn,
việc xử lý tính toán có chi phí thấp và hiệu quả hơn rất nhiều. -
Những điều trên được hiểu là nó có thể thực hiện tự động, nhanh chóng
để tạo ra những mô hình cho phép phân tích các dữ liệu có quy mô lớn hơn và
phức tạp hơn đồng thời đưa ra những kết quả một cách nhanh và chính xác
hơn. Chính sự hiệu quả trong công việc và các lợi ích vượt bậc mà nó đem lại
cho chúng ta khiến machine learning ngày càng được chú trọng và quan tâm nhiều hơn. -
Với kho dữ liệu khổng lồ trong các ngành công nghiệp như hiện nay thì
không ai có thể phủ nhận được tầm quan trọng của công nghệ Machine
Learning đem lại. Như ứng dụng vào hệ thống Dịch vụ tài chính, ngân hàng
đó là: xác định insights ở trong dữ liệu và ngăn chặn sự lừa đảo. Ứng dụng
trong Chính phủ về lĩnh vực an ninh hay tiện ích xã hội. Hay là chăm sóc sức
khỏe với việc ra đời của các thiết bị hay máy cảm ứng sử dụng các dữ liệu
chuẩn đoán, đánh giá tình hình sức khỏe của bệnh nhân một cách chính xác
trong thời gian thực. Những trang web đã dùng Machine Learning có thể phân
tích lịch sử của những khách hàng đã mua hàng trước đây, các, từ đó đưa ra
đánh giá, giới thiệu những sản phẩm, vật dụng mà khách hàng có nhu cầu
quan tâm yêu thích trong lĩnh vực Marketing và Sale.
* Ưu điểm và hạn chế của Học có giám sát và không giám sát - Học có giám sát: + Ưu điểm:
• Cho phép người dùng thu thập dữ liệu và tạo đầu ra từ dữ
liệu, dựa trên trải nghiệm đã có sẵn của người dùng. lOMoAR cPSD| 45740413
• Tối ưu hóa hiệu suất từ kinh nghiệm có sẵn.
• Giúp người dùng quan sát và giải quyết các vấn đề liên
quan tới tính toán trong thực tế. + Nhược điểm:
• Người dùng cần chọn nhiều ví dụ từ mỗi lớp khác nhau
trong quá trình đào tạo, đòi hỏi dữ liệu phải khách quan,
sát với thực tế và số lượng dữ liệu phải đủ lớn.
• Nhiều thách thức và khó khăn khi phân loại ví dụ với số lượng lớn.
• Tốn nhiều thời gian trong quá trình học và giám sát. - Học không giám sát: + Ưu điểm:
• Có thể khám phá, phân tích và thể hiện những cấu trúc có
ích ẩn bên trong dữ liệu đầu vào.
• Dễ dàng đánh giá, phân khúc được dữ liệu có tính chất giống nhau. + Nhược điểm:
• Dữ liệu đầu ra không có một giá trị cụ thể, chính xác.
1.2. Trình bày phương pháp học máy được sử dụng trong bài tập lớn
- Mục đích của phương pháp: làm thể nào để phân dữ liệu thành các cụm
(cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chất giống nhau. - Input:
+Tập dữ liệu có sẵn được tham khảo từ trang Kaggle. + Số lượng Cluster. - Output:
+ Các centrer của mỗi cụm.
+ Các điểm dữ liệu được phân vào cụm phù hợp.
- Method (Cách thực hiện). lOMoAR cPSD| 45740413
+ Bước 1: Khởi tạo
+ Bước 2: Tính toán khoảng cách
Đối với mỗi điểm Xi (1 i n), tính khoảng cách của nó tới mỗi trọng
tâm mj (1 j k). Sau đó tìm trọng tâm gần nhất đối với mỗi điểm.
+ Bước 3: Cập nhật lại trọng tâm
Đối với mỗi 1 j k, cập nhật trọng tâm cụm mj bằng cách xác định
trung bình cộng các vectơ đối tượng dữ liệu.
+ Điều kiện dừng:
Lặp lại các bước 2 và 3 cho đến khi các trọng tâm của cụm không thay đổi.
- Các độ đo để đánh giá mô hình.
+ Silhouette: dùng để đo lường khoảng cách của một điểm dữ liệu trong
cụm đến Centroid, điểm trung tâm của cụm, và khoảng cách của chính điểm
đó đến điểm trung tâm của cụm gần nhất (hoặc đến các điểm trung tâm của
các cụm còn lại, và chọn ra khoảng cách ngắn nhất). Silhouette index càng
tiến về 1 thì mô hình càng chất lượng.
Giả sử có 2 cluster A và B được tìm thấy dựa trên K-means clustering, ta có công thức: Trong đó:
bi là khoảng cách từ điểm i trong cluster A đến điểm trung tâm của cluster B.
ai là khoảng cách từ điểm i trong cluster A đến điểm trung tâm của cluster A.
+ Davies and Bouldin Index: Để tính được DB index ta phải đo lường
mức độ phân tán (S)tương đồng(R) của các cụm. DB index càng nhỏ thì
mô hình càng chất lượng. Trong đó: lOMoAR cPSD| 45740413
C : tổng số các điểm dữ liệu i
c : điểm trung tâm cụm i
x: một điểm bất kì trong cụm P: thường bằng 2 Trong đó:S
: Độ phân tán của cụm C i, Sj i, Cj
D : Khoảng cách giữa 2 điểm trung tâm cụm c ij i và cj PHẦN 2: THỰC NGHIỆM
2.1.Mô tả tập dữ liệu
- Có tổng cộng 2000 mẫu (vector) dữ liệu.
- Ma trận dữ liệu (X) gồm 7 cột: + Sex : Giới tính.
+ Marital status: Tình trạng hôn nhân. + Age : Tuổi.
+ Education: Trình độ học vấn. + Income: Thu nhập.
+ Occupation: Nghề nghiệp.
+ Settlement size: Kích thước thành phố nơi sinh sống - Mô tả bài toán:
+ Bài toán dựa vào các đặc điểm giới tính, tình trạng hôn nhân, tuổi,
trình độ học vấn, nghề nghiệp, kích thước thành phố nơi sinh sống của
khách hàng để tiến hành phân cụm những khách hàng có những đặc điểm
giống nhau vào cùng một cụm. lOMoAR cPSD| 45740413
+ Lần lượt phân thành k cụm với k ∈ [2,10].
2.2. Mô tả cách giải bài toán bằng phương pháp học máy - Các bước thực hiện:
+ Bước 1: Chọn k điểm bất kỳ làm các center ban đầu.
+ Bước 2: Phân mỗi điểm dữ liệu vào cluster có center gần nó nhất.
+ Bước 3: Nếu việc gán dữ liệu vào từng cluster ở bước 2 không thay
.đổi so với vòng lặp trước nó thì ta dừng thuật toán.
+ Bước 4: Cập nhật center cho từng cluster bằng cách lấy trung bình
cộng của tất cả các điểm dữ liệu đã được gán vào cluster đó sau bước 2.
+ Bước 5: Quay lại bước 2.
2.3. Đánh giá mô hình
- Nhìn vào kết quả ta thấy:
+ Với Silhouette score: Các giá trị Silhouette score khi phân cụm lần lượt từ
2 đến 10 cụm có sự biến động nhẹ từ thấp nhất: 0.512 (3 cụm) đến cao nhất
0.582: (2 cụm) đạt mức trung bình.
+ Với Davies and Bouldin score: Các giá trị Davies and Bouldin khi phân
cụm lần lượt từ 2 đén 10 cụm có sự biến động nhẹ từ thấp nhất: 0.487 (8 cụm)
đến cao nhất 0.621(2 cụm) đạt mức trung bình.
=> Mô hình chưa thực sự tốt, đạt mức độ trung bình với các chỉ số xấp xỉ 0.5.
2.4. Mô tả các chức năng của chương trình
* Giao diện gồm 2 phần chính: Kết quả phân cụm của dữ liệu đã đưa vào sẵn
và Dự đoán kết quả phân cụm của dữ liệu mới nhập vào . lOMoAR cPSD| 45740413
- Kết quả phân cụm của dữ liệu đã đưa vào sẵn:
+ Kết quả hiển thị lần lượt với số cụm được phân từ 2 đến 10 cụm sẽ
cho các độ đo Silhouette và Davies and Bouldin tương ứng với nó.
+ Sau đó người dùng ấn chọn button:
• Số cụm tốt nhất – Silhouette: Chương trình sẽ trả về kết quả
bài toán nên chia theo bao nhiêu cụm sẽ là tối ưu nhất theo độ đo Silhouette.
• Số cụm tốt nhất – DB: Chương trình sẽ trả về kết quả bài toán
nên chia theo bao nhiêu cụm sẽ là tối ưu nhất theo độ đo Davies and Bouldin
- Dự đoán kết quả phân cụm của dữ liệu mới nhập vào: lOMoAR cPSD| 45740413
+ Người dùng lần lượt chọn các trường dữ liệu:
• Giới tính: Male/Female.
• Tình trạng hôn nhân: Độc thân/Ly dị/Ly thân/Đã kết hôn/Góa bụa.
• Tuổi: Nhập trực tiếp từ bàn phím hoặc dùng phím mũi tên (>=18).
• Trình độ học vấn: Không rõ/ THPT/ Đang học Đại học/ Tốt nghiệp Đại học.
• Thu nhập: Nhập trực tiếp từ bàn phím hoặc dùng phím mũi tên (Đơn vị $).
• Nơi định cư: Thành phố nhỏ/ Thành phố cỡ vừa/ Thành phố lớn.
+ Sau đó người dùng ấn chọn button:
• Phân cụm: Chương trình sẽ trả về kết quả dữ liệu người dùng
vừa nhập thuộc cụm nào khi phân lần lượt từ 2 đến 10 cụm Kết luận lOMoAR cPSD| 45740413
- Bài tập đã giải quyết bài toán phân cụm các các khách hàng dựa trên một số
đặc điểm của họ sử dụng phương pháp K-means clustering, từ đó đánh giá
được mô hình, số lượng các cụm và các độ do đánh giá tương ứng. Tài liệu tham khảo
https://machinelearningcoban.com/2017/01/01/kmeans/
https://hanghieugiatot.com/silhouette-score-la-gi
https://www.kaggle.com/datasets/dev0914sharma/customer-clustering
https://www.youtube.com/watch?v=6UF5Ysk_2gk