Phân tích và so sánh hiệu suất của thuật toán K-Means và Agglomerative Clustering trong phân loại khách hàng

MỤC LỤC

Tiền xử lý dữ liệu và giảm chiều không gian

Sau khi hoàn thành công việc làm sạch dữ liệu bằng cách tạo các thuộc tính mới và xóa bỏ các hàng dữ liệu bị thiếu thông tin, em sẽ đến với bước tiền xử lý dữ liệu. Mục đích của Label Encoding là chuyển đổi các biến phân loại (categorical variables) thành dạng số để có thể sử dụng trong các mô hình học máy hoặc các phân tích số liệu. Các biến phân loại không thể được sử dụng trực tiếp trong các thuật toán học máy vì chúng yêu cầu dữ liệu đầu vào là dạng số.

Khi áp dụng Label Encoding vào cơ sở dữ liệu, ta sẽ lặp qua từng cột chứa biến phân loại, sử dụng LabelEncoder để mã hóa các nhãn thành giá trị số, và gán lại giá trị đã được mã hóa vào cột ban đầu. Tiếp theo gán lại giá trị đã được mã hóa nhãn cho cột dữ liệu ban đầu bằng cách sử dụng phương thức apply của DataFrame và truyền vào đối tượng LabelEncoder đã được fit_transform. • Đảm bảo tính đồng nhất của các đặc trưng: Khi các đặc trưng có phạm vi và đơn vị đo lường khác nhau, mô hình có thể bị ảnh hưởng bởi sự không cân đối này.

Bằng cách tiêu chuẩn hóa đặc trưng, ta chuyển đổi các giá trị của đặc trưng sao cho chúng có cùng đơn vị và phạm vi đo lường, tạo điều kiện thuận lợi cho mô hình học máy. • Loại bỏ ảnh hưởng của giá trị ngoại lệ (outliers): Các giá trị ngoại lệ có thể ảnh hưởng đáng kể đến mô hình học máy, đặc biệt là các thuật toán dựa trên khoảng cách như K-means hay K-nearest neighbors. • Tạo một subset của dataframe bằng cách loại bỏ các đặc trưng liên quan đến việc chấp nhận giao dịch và khuyến mãi do đây là các thuộc tính không liên quan có thể ảnh hưởng đến quá trình phân cụm.

Nó giúp chúng ta hiểu cấu trúc của dữ liệu và tìm ra các thành phần chính (principal components) quan trọng nhất trong dữ liệu. Ý tưởng chính của PCA là chuyển đổi tập dữ liệu gốc từ không gian có số chiều cao thành không gian mới có số chiều thấp hơn, sao cho mỗi thành phần chính giải thích được phần lớn sự biến động trong dữ liệu. Các thành phần chính được sắp xếp theo độ quan trọng, với thành phần chính đầu tiên giải thích sự biến động lớn nhất trong dữ liệu, và các thành phần chính sau giải thích phần biến động nhỏ hơn.

• Tính toán ma trận hiệp phương sai: Tính toán ma trận hiệp phương sai từ dữ liệu để đánh giá mức độ tương quan giữa các biến. • Tính toán các thành phần chính: Sử dụng phương pháp giá trị riêng và vectơ riêng, tính toán các thành phần chính và xếp chúng theo thứ tự quan trọng. • Lựa chọn số thành phần chính: Xác định số lượng thành phần chính cần giữ lại dựa trên tỷ lệ phần trăm của phương sai giải thích.

Hình 6. Các thuộc tính có dạng phân loại
Hình 6. Các thuộc tính có dạng phân loại

Khai phá dữ liệu

    Ý tưởng của phương pháp này là chạy thuật toán K- Means với các giá trị k khác nhau trong một khoảng cụ thể (thường từ 1 đến 10). Distortion (thuộc tính dạng): Đây là giá trị trung bình của bình phương khoảng cách từ trung tâm (centroid) đến các điểm dữ liệu trong nhóm tương ứng. Inertia (khối lượng): Đây là tổng bình phương khoảng cách từ các điểm dữ liệu đến trung tâm (centroid) gần nhất.

    Mục tiêu của chúng ta là chọn một giá trị k sao cho SSE là nhỏ nhất có thể, nhưng chúng ta cũng cần lưu ý rằng SSE có xu hướng giảm đến 0 khi giá trị k tăng và sẽ bằng 0 khi k bằng số điểm dữ liệu trong tập dữ liệu, vì lúc đó mỗi điểm dữ liệu sẽ tạo thành một nhóm riêng biệt và trung tâm của nhóm đó là chính điểm đó. Do đó, chúng ta cần chọn một giá trị k sao cho SSE nhỏ nhưng cũng phải lưu ý đến điểm "khủyu tay" trên đồ thị, nó thường đại diện cho giá trị k tối ưu cần tìm. Với câu hỏi đầu tiên em đề xuất sử dụng dụng phương pháp Elbow để có thể xác định được số nhóm cần cho việc gom cụm.

    Phân cụm không giám sát: Cả K-means và Agglomerative Clustering đều thuộc loại phân cụm không giám sát, nghĩa là chúng không yêu cầu thông tin nhãn của dữ liệu để thực hiện phân cụm. Trong bộ dữ liệu mà em xử lý, không có thông tin về nhãn đã được cung cấp, do đó sử dụng phân cụm không giám sát là lựa chọn tự nhiên. Đa dạng về hình dạng cụm: K-means và Agglomerative Clustering có khả năng xác định các cụm có hình dạng đa dạng, bao gồm cả các cụm có hình dạng cầu, dạng elip và dạng không đều.

    Đây là chỉ số dùng để tính toán độ tách biệt giữa các cụm bằng cách so sánh khoảng cách trung bình giữa một điểm dữ liệu và tất cả các điểm dữ liệu trong cùng một cụm với khoảng cách trung bình giữa điểm dữ liệu đó và tất cả các điểm dữ liệu trong cụm gần nhất khác. • Interpretability (dễ hiểu): Khi các cụm tách biệt, ta có thể dễ dàng gán ý nghĩa và giải thích cho từng cụm dựa trên các đặc trưng của các điểm dữ liệu trong cụm đó. Điều này giúp chúng ta có một cái nhìn tổng quan về dữ liệu và các nhóm có thể liên quan đến các đặc điểm cụ thể.

    • Hiệu suất của mô hình: Khi các cụm tách biệt, mô hình clustering thường có hiệu suất tốt hơn trong việc gán các điểm dữ liệu mới vào các cụm đã được học trước. • Tách biệt thông tin: Khi các cụm tách biệt, ta có thể trích xuất thông tin từ từng cụm một cách độc lập và đồng thời đánh giá mức độ khác biệt giữa các cụm. Do đó em quyết định chọn mô hình Agglomerative phân được các cụm tách biệt nhau hơn giúp việc xác định loại sản phẩm phù hợp với từng phân khúc của khách hàng.

    Hình 12. Cài đặt Elbow để tính số nhóm
    Hình 12. Cài đặt Elbow để tính số nhóm