Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin và trí tuệ nhân tạo phát triển mạnh mẽ, việc ứng dụng các kỹ thuật khai phá dữ liệu vào hoạt động kinh doanh trực tuyến đã trở thành một nhu cầu thiết yếu đối với các doanh nghiệp. Lượng dữ liệu phát sinh từ quá trình mua sắm, giao dịch của người tiêu dùng ngày càng lớn, đòi hỏi các đơn vị kinh doanh phải có giải pháp trích xuất tri thức nhằm thấu hiểu hành vi khách hàng. Đề tài đồ án tốt nghiệp "Phân cụm khách hàng sử dụng thuật toán K-Means" của tác giả Trần Văn Sinh được thực hiện nhằm giải quyết bài toán phân đoạn khách hàng thành các nhóm có đặc tính tương đồng, hỗ trợ doanh nghiệp tối ưu hóa chiến dịch tiếp thị và nâng cao năng lực cạnh tranh.
Văn bản đồ án xác định rõ các mục tiêu và nhiệm vụ nghiên cứu cụ thể được phân định thành hai nhóm:
- Mục tiêu lý thuyết:
- Nghiên cứu tổng quan về phương pháp phân cụm và quy trình khám phá tri thức trong cơ sở dữ liệu.
- Tìm hiểu chi tiết nguyên lý hoạt động, ưu điểm, hạn chế và các độ đo thống kê liên quan đến thuật toán K-Means.
- Nghiên cứu khả năng ứng dụng của thuật toán K-Means vào bài toán phân loại và phân nhóm khách hàng trong thực tế.
- Mục tiêu kỹ năng và thực hành:
- Nắm vững và thực hiện quy trình thu thập, làm sạch và tiền xử lý dữ liệu khách hàng.
- Thiết kế và lập trình hoàn chỉnh một chương trình phân cụm dữ liệu trên môi trường máy tính sử dụng ngôn ngữ C# và giao diện WinForms.
- Thực nghiệm mô hình trên tập dữ liệu cụ thể, đánh giá kết quả phân cụm ở các giá trị $k$ khác nhau và rút ra các nhận định phục vụ chiến lược kinh doanh.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Thuật toán phân cụm K-Means, các chỉ số thống kê mô tả (độ đo xu hướng chính và độ đo sự phân tán), cùng tập dữ liệu thuộc tính hành vi của khách hàng.
- Phạm vi dữ liệu: Tập dữ liệu khách hàng gồm 5 thuộc tính với 200 bản ghi dữ liệu được thu thập từ nguồn mở Kaggle.
- Không gian và thời gian thực hiện: Đồ án được hoàn thành tại Khoa Công nghệ thông tin, Trường Đại học Thủy Lợi vào năm 2023 dưới sự hướng dẫn của TS. Nguyễn Tu Trung.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và mô hình sử dụng
Cơ sở lý thuyết của đồ án dựa trên quy trình khám phá tri thức trong cơ sở dữ liệu (KDD - Knowledge Discovery in Databases) và lý thuyết học máy không giám sát (Unsupervised Learning). Các khái niệm và mô hình cốt lõi được tác giả hệ thống hóa bao gồm:
- Quy trình khám phá tri thức (KDD): Gồm 6 giai đoạn tuần tự: Trích chọn dữ liệu $\rightarrow$ Tiền xử lý dữ liệu $\rightarrow$ Biến đổi dữ liệu $\rightarrow$ Chuyển đổi dữ liệu $\rightarrow$ Khai phá dữ liệu (áp dụng kỹ thuật học máy để trích chọn mẫu) $\rightarrow$ Đánh giá và biểu diễn tri thức (chuyển đổi kết quả về dạng bảng biểu, đồ thị trực quan).
- Thuật toán K-Means: Là thuật toán phân cụm phân hoạch nhằm chia $N$ đối tượng vào $K$ cụm sao cho tổng bình phương khoảng cách giữa các đối tượng tới tâm cụm là nhỏ nhất. Độ đo khoảng cách được sử dụng là khoảng cách Euclidean giữa hai điểm dữ liệu đa chiều $p = (p_1, p_2, \dots, p_n)$ và $q = (q_1, q_2, \dots, q_n)$:
$$d(p, q) = \sqrt{\sum_{i=1}^{n} (p_i - q_i)^2}$$
- Hệ thống các chỉ số đo lường dữ liệu:
- Độ đo xu hướng chính: Giá trị trung bình (Mean), Trung vị (Median), Yếu vị (Mode), và Giá trị trung bình giữa cực trị (Midrange).
- Độ đo sự phân tán: Các điểm tứ phân vị ($Q_1, Q_2, Q_3$), Khoảng tứ phân vị ($IQR = Q_3 - Q_1$), cùng quy tắc xác định giá trị ngoại lai (Outliers) nằm ngoài biên $1.5 \times IQR$.
Phương pháp nghiên cứu
Tác giả kết hợp phương pháp nghiên cứu lý thuyết và phương pháp thực nghiệm ứng dụng:
- Phương pháp phân tích - tổng hợp: Thu thập, tổng hợp các tài liệu học thuật về khai phá dữ liệu và các độ đo toán học.
- Phương pháp tiền xử lý dữ liệu: Sử dụng phần mềm WEKA để thực hiện lọc dữ liệu, xử lý các giá trị bị khuyết thiếu (missing values) và chuẩn hóa chuyển đổi kiểu dữ liệu định danh (Gender) sang dạng số.
- Phương pháp phát triển phần mềm: Ứng dụng kỹ thuật lập trình hướng đối tượng (OOP) trên ngôn ngữ C# để cài đặt giải thuật K-Means từ đầu và xây dựng giao diện tương tác người dùng.
- Phương pháp thực nghiệm và đối sánh: Tiến hành chạy thuật toán trên các tập thuộc tính khác nhau (Income - Spending, Age), thay đổi tham số cụm ($k=2, k=3, k=4$) để so sánh và lựa chọn số lượng cụm phù hợp nhất.
Nguồn dữ liệu
Nghiên cứu sử dụng tập dữ liệu thứ cấp được lấy từ nền tảng Kaggle mang tên Customer Segmentation Tutorial in Python (cung cấp bởi tác giả vjchoudhary7). Tập dữ liệu chuẩn gồm 200 dòng (bản ghi khách hàng) với 5 trường thuộc tính: mã khách hàng (CustomerID), giới tính (Gender), độ tuổi (Age), thu nhập hàng năm (Annual Income), và điểm chi tiêu (Spending Score).
Thiết kế và triển khai hệ thống
Do đồ án thuộc loại đề tài xây dựng ứng dụng phần mềm khai phá dữ liệu, phần thiết kế và cài đặt hệ thống được triển khai bằng các công cụ và thành phần cụ thể:
Môi trường công nghệ
- Phần mềm và IDE: Microsoft Visual Studio phục vụ lập trình giao diện và biên dịch mã nguồn; WEKA (Waikato Environment for Knowledge Analysis - Đại học Waikato, New Zealand) phục vụ kiểm tra và tiền xử lý tập dữ liệu ban đầu.
- Ngôn ngữ lập trình: C# trên nền tảng .NET Framework, ứng dụng công nghệ Windows Forms (WinForms) để phát triển ứng dụng desktop.
Cấu trúc giao diện và các điều khiển (UI Controls)
Giao diện chương trình WinForms được thiết kế tối giản, tập trung vào chức năng nạp dữ liệu và trực quan hóa phân cụm, bao gồm các thành phần:
Button Mở file kèm TextBox hiển thị đường dẫn tệp dữ liệu đã tiền xử lý.
DataGridView hiển thị cấu trúc bảng và toàn bộ 200 bản ghi dữ liệu khách hàng nạp vào.
TextBox cho phép người dùng nhập tham số số lượng cụm $k$.
CheckedListBox cho phép tùy chọn các trường thuộc tính đầu vào tham gia vào quá trình phân cụm (ví dụ: Age, Income, Spending).
PlotView đóng vai trò biểu đồ trực quan hóa không gian phân bố của các điểm dữ liệu và tâm cụm sau khi tính toán.
Button Phân cụm để kích hoạt luồng xử lý thuật toán và Button Thoát để kết thúc ứng dụng.
Module xử lý thuật toán
Quá trình xử lý của chương trình được chia thành các bước logic:
- Khởi tạo tâm cụm: Chọn ngẫu nhiên $k$ điểm dữ liệu làm tâm ban đầu.
- Tính toán khoảng cách và phân cụm: Tính khoảng cách Euclidean từ từng điểm dữ liệu đến $k$ tâm cụm, gán điểm dữ liệu vào cụm có tâm gần nhất.
- Cập nhật tâm cụm: Tính toán lại vị trí trung bình của từng cụm dựa trên tọa độ của các phần tử vừa được gán.
- Vòng lặp hội tụ: Lặp lại bước gán và cập nhật cho đến khi vị trí các tâm cụm không còn thay đổi.
- Thống kê và xuất đồ thị: Tính toán các độ đo thống kê (Mean, Median, IQR) trên từng cụm và chuyển đổi dữ liệu hiển thị lên thành phần đồ thị
PlotView.
Nội dung chính theo từng chương
Chương I: Tổng quan
Chương I tập trung giới thiệu bối cảnh thực tiễn, đặt vấn đề nghiên cứu và trình bày tổng quan về lĩnh vực khai phá dữ liệu:
- Trình bày định nghĩa khai phá dữ liệu là quá trình trích rút tự động các tri thức tiềm ẩn, chưa biết trước nhưng hữu ích từ cơ sở dữ liệu lớn để hỗ trợ ra quyết định.
- Mô tả chi tiết 3 giai đoạn cơ bản của khai phá dữ liệu (Lọc/tiền xử lý dữ liệu $\rightarrow$ Khai phá dữ liệu $\rightarrow$ Đánh giá kết quả sau xử lý) cùng 6 bước chuẩn trong quy trình KDD.
- Phân loại các tác vụ khai phá dữ liệu tiêu chuẩn: Trích chọn đặc trưng (Feature), Phân biệt (Discrimination), Luật kết hợp (Association), Phân lớp (Classification), Gom cụm (Clustering), Phân tích xu thế (Trend analysis), Phân tích độ lệch và Phân tích độ hiếm.
- Khảo sát ứng dụng của khai phá dữ liệu trong các lĩnh vực trọng yếu, tập trung phân tích sâu vào hai lĩnh vực:
- Y tế và chăm sóc sức khỏe: Nâng cao hiệu quả điều trị, quản lý bệnh nhân mãn tính, quản trị quan hệ khách hàng và ngăn chặn lạm dụng quỹ bảo hiểm y tế.
- Bán lẻ trực tuyến: Phân tích hành vi mua sắm, thiết kế tối ưu hóa kho hàng, phân tích đa chiều về doanh số và đánh giá hiệu quả của các chiến dịch tiếp thị bán hàng.
Chương II. Thuật toán phân cụm K-Means và công nghệ sử dụng
Chương II thiết lập cơ sở lý thuyết toán học và công nghệ phục vụ xây dựng phần mềm:
- Kỹ thuật phân cụm: Định nghĩa bản chất của phân cụm trong học máy không giám sát và các lĩnh vực áp dụng (Marketing, Sinh vật học, Thư viện, Tài chính - Bảo hiểm).
- Thuật toán K-Means: Trình bày chi tiết 4 bước thực hiện thuật toán lặp, công thức khoảng cách Euclidean, cùng các ưu điểm nổi bật (đơn giản, tốc độ thực thi nhanh, mở rộng tốt với dữ liệu lớn dạng hình cầu).
- Hạn chế và thách thức của K-Means: Phân tích 4 thách thức lớn của thuật toán:
- Kết quả phân cụm nhạy cảm và phụ thuộc chặt chẽ vào vị trí các tâm ban đầu.
- Chi phí tính toán khoảng cách tăng cao khi kích thước dữ liệu mở rộng.
- Phải xác định trước số cụm $k$, gây khó khăn khi chưa hiểu rõ cấu trúc dữ liệu.
- Hiệu quả giảm khi dữ liệu chứa các cụm có kích thước, mật độ hoặc hình dạng phức tạp (phi hình cầu).
- Hệ thống độ đo thống kê: Cung cấp định nghĩa và công thức toán học của Mean, Median, Mode, Midrange, Tứ phân vị ($Q_1, Q_2, Q_3$), Khoảng tứ phân vị ($IQR$) và nguyên lý phát hiện phần tử biên (Outliers).
- Công nghệ sử dụng: Giới thiệu cấu trúc, tính năng của môi trường Microsoft Visual Studio, bộ phần mềm mã nguồn mở WEKA, cùng các đặc trưng của ngôn ngữ lập trình C# (hướng đối tượng thuần, hiện đại, hỗ trợ bởi .NET Framework).
Chương III. Xây dựng chương trình phân cụm khách hàng
Chương III trình bày quá trình hiện thực hóa bài toán phân cụm thành giải pháp phần mềm:
- Mô tả bài toán: Xác định 4 giá trị nghiệp vụ của phân cụm khách hàng: Hiểu rõ khách hàng, Tăng khả năng tương tác, Cải thiện trải nghiệm khách hàng và Tối ưu hóa chiến lược kinh doanh.
- Thu thập và chuẩn bị dữ liệu: Thu thập tập dữ liệu 200 dòng, 5 thuộc tính từ Kaggle.
- Quy trình 4 bước tiền xử lý trên WEKA:
- Mở ứng dụng WEKA.
- Nạp tệp dữ liệu khách hàng thô.
- Xử lý các bản ghi chứa dữ liệu khuyết thiếu.
- Chuyển đổi định dạng thuộc tính văn bản (Gender) sang dạng số để đáp ứng yêu cầu tính toán của khoảng cách Euclidean.
- Xây dựng chương trình: Thiết kế giao diện đồ họa WinForms với đầy đủ các bộ điều khiển nhập/xuất dữ liệu, cài đặt các hàm toán học và các module mã nguồn thực thi thuật toán K-Means lặp, module tính toán các chỉ số thống kê mô tả và vẽ biểu đồ.
Chương IV. Thực nghiệm và đánh giá
Chương IV trình bày toàn bộ các kịch bản thực nghiệm phân cụm trên tập dữ liệu 200 bản ghi:
- Thực nghiệm phân cụm kết hợp 2 thuộc tính Thu nhập (Annual Income) và Chi tiêu (Spending Score):
- Thực nghiệm với $k=2$: Dữ liệu phân thành 2 cụm lớn dựa trên ranh giới thu nhập: Cụm 0 (Thu nhập thấp $15 - 69$, Chi tiêu $3 - 94$) và Cụm 1 (Thu nhập cao $70 - 126$, Chi tiêu $8 - 91$).
- Thực nghiệm với $k=4$: Dữ liệu phân tách rõ thành 4 nhóm độc lập:
- Cụm 0: Thu nhập thấp ($15 - 69$), Chi tiêu thấp ($6 - 35$).
- Cụm 1: Thu nhập cao ($93 - 127$), Chi tiêu cao ($74 - 97$).
- Cụm 2: Thu nhập thấp ($17 - 69$), Chi tiêu cao ($73 - 98$).
- Cụm 3: Thu nhập cao ($71 - 125$), Chi tiêu thấp ($16 - 35$).
- Đánh giá so sánh: Tác giả kết luận tham số $k=4$ tối ưu và hợp lý hơn $k=2$ vì phân định rõ nét 4 phân khúc khách hàng đặc thù về tương quan thu nhập - chi tiêu.
- Thực nghiệm phân cụm theo thuộc tính Độ tuổi (Age):
- Thực nghiệm với $k=2$: Chia thành 2 nhóm: Cụm 0 ($18 - 41$ tuổi: trẻ đến trung niên) và Cụm 1 ($42 - 70$ tuổi: trung niên đến cao tuổi).
- Thực nghiệm với $k=3$: Chia thành 3 nhóm rõ rệt: Cụm 0 ($18 - 36$ tuổi: khách hàng trẻ tuổi), Cụm 1 ($37 - 53$ tuổi: khách hàng trung niên) và Cụm 2 ($54 - 70$ tuổi: khách hàng cao tuổi).
- Đánh giá so sánh: Tác giả kết luận tham số $k=3$ phản ánh chính xác các giai đoạn lứa tuổi tiêu dùng trong xã hội.
Kết quả và đóng góp
Kết quả thực nghiệm cụ thể
Đồ án đã triển khai phân cụm thành công trên tập dữ liệu 200 bản ghi khách hàng và lượng hóa ranh giới các cụm dữ liệu:
| Kịch bản thực nghiệm |
Tham số $k$ |
Nhận diện cụm |
Khoảng giá trị thuộc tính |
Đặc trưng phân khúc khách hàng |
| Income & Spending |
$k=2$ |
Cụm 0 |
Income: 15–69; Spending: 3–94 |
Thu nhập thấp, mức độ chi tiêu hỗn hợp (thấp và cao) |
|
|
Cụm 1 |
Income: 70–126; Spending: 8–91 |
Thu nhập cao, mức độ chi tiêu hỗn hợp (thấp và cao) |
| Income & Spending |
$k=4$ |
Cụm 0 |
Income: 15–69; Spending: 6–35 |
Khách hàng thu nhập thấp, chi tiêu tiết kiệm/thấp |
|
|
Cụm 1 |
Income: 93–127; Spending: 74–97 |
Khách hàng thu nhập cao, mức độ chi tiêu cao |
|
|
Cụm 2 |
Income: 17–69; Spending: 73–98 |
Khách hàng thu nhập thấp nhưng mức chi tiêu cao |
|
|
Cụm 3 |
Income: 71–125; Spending: 16–35 |
Khách hàng thu nhập cao nhưng mức chi tiêu dè dặt/thấp |
| Độ tuổi (Age) |
$k=2$ |
Cụm 0 |
Age: 18–41 |
Nhóm khách hàng từ trẻ tuổi đến trung niên |
|
|
Cụm 1 |
Age: 42–70 |
Nhóm khách hàng từ trung niên đến cao tuổi |
| Độ tuổi (Age) |
$k=3$ |
Cụm 0 |
Age: 18–36 |
Nhóm khách hàng trẻ tuổi |
|
|
Cụm 1 |
Age: 37–53 |
Nhóm khách hàng trung tuổi |
|
|
Cụm 2 |
Age: 54–70 |
Nhóm khách hàng cao tuổi |
Giải pháp và kiến nghị ứng dụng
Từ kết quả phân chia cụm, tác giả đề xuất định hướng ứng dụng thực tế cho doanh nghiệp:
- Đối với nhóm thu nhập cao - chi tiêu cao (Cụm 1 khi $k=4$): Triển khai các sản phẩm cao cấp, chương trình chăm sóc khách hàng VIP để giữ chân khách hàng quan trọng.
- Đối với nhóm thu nhập cao - chi tiêu thấp (Cụm 3 khi $k=4$): Thực hiện các chiến dịch tiếp thị kích cầu, ưu đãi nhằm khai thác tiềm năng tài chính chưa được giải phóng.
- Đối với phân nhóm độ tuổi ($k=3$): Tùy chỉnh danh mục sản phẩm và kênh truyền thông phù hợp với thị hiếu của từng nhóm: giới trẻ ($18-36$), trung niên ($37-53$) và người cao tuổi ($54-70$).
Đóng góp của đồ án
- Tự cài đặt và hiện thực hóa thành công thuật toán K-Means trên nền tảng C# WinForms mà không phụ thuộc hoàn toàn vào các thư viện học máy đóng gói sẵn.
- Xây dựng một quy trình hoàn chỉnh từ bước tiền xử lý trên WEKA đến trực quan hóa đồ thị và tính toán các chỉ số thống kê mô tả cho từng cụm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế
- Quy mô dữ liệu: Thực nghiệm mới dừng lại ở tập dữ liệu mẫu quy mô nhỏ (200 dòng dữ liệu từ Kaggle), chưa đánh giá trên các hệ thống cơ sở dữ liệu lớn với hàng triệu bản ghi thực tế.
- Hạn chế cố hữu của K-Means: Thuật toán nhạy cảm với việc chọn tâm cụm ngẫu nhiên ban đầu; người dùng phải tự nhập tham số $k$ bằng tay thông qua phán đoán thực nghiệm mà chưa tích hợp các giải thuật tự động tìm $k$ tối ưu (như Elbow Method hay hệ số Silhouette).
- Hạn chế về tính năng: Ứng dụng desktop chưa hỗ trợ kết nối trực tiếp với các hệ quản trị cơ sở dữ liệu quan hệ động mà phụ thuộc vào việc nạp tệp dữ liệu phẳng sau khi đã tiền xử lý qua WEKA.
Hướng phát triển tiếp theo
- Mở rộng quy mô tập dữ liệu, thử nghiệm thuật toán trên các tập dữ liệu có số chiều lớn và số lượng bản ghi lớn hơn.
- Nghiên cứu và cài đặt bổ sung các phương pháp khởi tạo tâm cụm nâng cao (như K-Means++) nhằm giảm thiểu sự phụ thuộc vào việc chọn tâm ngẫu nhiên.
- Phát triển tính năng gợi ý tham số $k$ tối ưu tự động và mở rộng khả năng kết nối cơ sở dữ liệu trực tiếp trong ứng dụng C#.
Giá trị tham khảo
Đồ án có giá trị tham khảo thiết thực cho các đối tượng và mục đích nghiên cứu sau:
- Sinh viên ngành Công nghệ thông tin và Khoa học dữ liệu: Tài liệu minh họa chi tiết cách chuyển đổi các công thức toán học của thuật toán phân cụm K-Means và các chỉ số thống kê mô tả (Mean, Median, Quartiles, IQR) thành mã nguồn lập trình cụ thể trên ngôn ngữ C#.
- Người học phát triển phần mềm ứng dụng desktop: Là tài liệu tham khảo tốt về cách xây dựng giao diện WinForms trực quan hóa dữ liệu, sử dụng các điều khiển DataGridView, CheckedListBox và PlotView để tương tác với mô hình phân tích dữ liệu.
- Nghiên cứu ứng dụng khai phá dữ liệu trong kinh doanh: Cung cấp phương pháp luận mẫu về việc làm sạch dữ liệu bằng WEKA và cách thức chia tách, biện giải các phân khúc khách hàng phục vụ các chiến dịch marketing mục tiêu.
Câu hỏi thường gặp
1. Đồ án sử dụng tập dữ liệu nào để thực nghiệm và gồm những thuộc tính gì?
Đồ án sử dụng tập dữ liệu Customer Segmentation Tutorial in Python được tải từ nền tảng Kaggle của tác giả vjchoudhary7. Tập dữ liệu gồm 200 dòng (bản ghi khách hàng) với 5 thuộc tính: mã định danh khách hàng (CustomerID), giới tính (Gender), độ tuổi (Age), thu nhập hàng năm (Annual Income) và điểm chi tiêu (Spending Score).
2. Quá trình tiền xử lý dữ liệu được thực hiện như thế nào và qua công cụ gì?
Quá trình tiền xử lý dữ liệu được thực hiện trên phần mềm mã nguồn mở WEKA thông qua 4 bước: (1) Mở phần mềm WEKA; (2) Mở tệp dữ liệu thô; (3) Xử lý các giá trị dữ liệu bị thiếu (missing values); (4) Chuyển đổi thuộc tính phân loại dạng chuỗi ký tự (Gender) sang dạng số nguyên để thuật toán K-Means có thể tính toán khoảng cách Euclidean.
3. Khi phân cụm theo Thu nhập (Income) và Chi tiêu (Spending), tại sao tác giả kết luận $k=4$ hợp lý hơn $k=2$?
Với $k=2$, dữ liệu chỉ phân tách khách hàng theo mức thu nhập thấp ($15-69$) và cao ($70-126$), trong khi mức chi tiêu ở cả hai cụm đều bị dàn trải từ thấp đến cao ($3-94$ và $8-91$), không làm nổi bật được sự khác biệt về hành vi. Với $k=4$, dữ liệu phân định rõ thành 4 phân khúc độc lập: Thu nhập thấp - Chi tiêu thấp (Cụm 0), Thu nhập cao - Chi tiêu cao (Cụm 1), Thu nhập thấp - Chi tiêu cao (Cụm 2), và Thu nhập cao - Chi tiêu thấp (Cụm 3), giúp doanh nghiệp đưa ra các chiến lược tiếp thị chuyên biệt.
4. Kết quả phân cụm khách hàng theo Độ tuổi (Age) với $k=3$ chia tệp dữ liệu thành những nhóm tuổi cụ thể nào?
Khi chạy thuật toán với $k=3$ trên thuộc tính Độ tuổi, tệp khách hàng được chia thành 3 nhóm rõ rệt: Cụm 0 gồm các khách hàng trẻ tuổi có độ tuổi từ 18 đến 36; Cụm 1 gồm các khách hàng trung tuổi có độ tuổi từ 37 đến 53; và Cụm 2 gồm các khách hàng cao tuổi có độ tuổi từ 54 đến 70.
5. Những thành phần chính trên giao diện phần mềm C# WinForms do tác giả xây dựng gồm những gì?
Giao diện phần mềm gồm có: nút "Mở file" và ô văn bản hiển thị đường dẫn tệp dữ liệu; bảng "DataGridView" hiển thị các bản ghi dữ liệu; ô "TextBox" để người dùng nhập số lượng cụm $k$; danh sách lựa chọn "CheckedListBox" để chọn các trường thuộc tính phân cụm; khung biểu đồ "PlotView" để vẽ đồ thị kết quả phân cụm; nút "Phân cụm" để thực thi thuật toán và nút "Thoát" để đóng chương trình.
Kết luận
Đồ án tốt nghiệp "Phân cụm khách hàng sử dụng thuật toán K-Means" của tác giả Trần Văn Sinh đã hoàn thành toàn diện các mục tiêu nghiên cứu từ cơ sở lý thuyết đến cài đặt thực nghiệm phần mềm. Công trình đã hệ thống hóa quy trình khám phá tri thức KDD, các độ đo thống kê mô tả và nguyên lý giải thuật K-Means, đồng thời ứng dụng thành công công cụ WEKA để tiền xử lý và ngôn ngữ C# WinForms để phát triển ứng dụng phân cụm trực quan. Kết quả thực nghiệm trên 200 bản ghi dữ liệu khách hàng từ Kaggle đã chứng minh tính đúng đắn của giải thuật, làm rõ các ranh giới phân khúc về thu nhập, chi tiêu và độ tuổi, mang lại cơ sở định lượng hữu ích cho việc xây dựng các chiến lược kinh doanh và tiếp thị.