Tải bản đầy đủ (.pdf) (42 trang)

đồ án quá trình phân tích dữ liệu với rpython chủ đề thuật toán phân cụm k means và bài toán phân khúc khách hàng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.3 MB, 42 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT KHOA HỆ THỐNG THÔNG TIN </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Nhưng với thời gian có hạn và chưa có nhiều kinh nghiệm nên có một số phần thiếu sót trong báo cáo, mong Thầy xem và góp ý để nhóm được hoàn thiện hơn trong đồ án này và cả ở những đồ án sau.

<b>Xin chân thành cảm ơn Thầy! </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

III

<b>MỤC LỤC </b>

<b>Chương 1: Thuật toán phân cụm K-Means (K-Means Clustering) ... 1 </b>

<b>1.1. Tổng quan ... 1 </b>

<b>1.1.1. Định nghĩa thuật ngữ học không giám sát (Unsupervised Learning) ... 1 </b>

<b>1.1.2. Định nghĩa phân cụm K-Means ... 1 </b>

<b>1.1.3. Các trường hợp sử dụng thuật toán ... 2 </b>

<b>1.2. Nội dung của thuật toán ... 2 </b>

<b>1.2.1. Một số khái niệm dùng trong thuật toán ... 2 </b>

<b>1.4. Các biến thể của thuật toán ... 13 </b>

<b>1.4.1. Thuật toán K-Medoids ... 13 </b>

<b>1.4.2. Thuật toán Fuzzy C-Means ... 14 </b>

<b>1.5. Một số yếu tố ảnh hưởng đến thuật toán ... 15 </b>

<b>1.5.1. Ảnh hưởng của outlier ... 15 </b>

<b>1.5.2. Ảnh hưởng của việc khởi tạo trung tâm ... 16 </b>

<b>Chương 2: Bài toán phân khúc khách hàng (Customer Segment) ... 18 </b>

<b>2.1. Giới thiệu bài toán ... 18 </b>

<b>2.2. Dữ liệu bài toán ... 18 </b>

<b>2.3. Giải bài tốn bằng ngơn ngữ R ... 19 </b>

<b>2.4. Kết luận bài toán ... 33 </b>

<b>Kết luận ... 34</b>

<b>Tài liệu tham khảo ... 35</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

IV

<b>DANH MỤC HÌNH ẢNH </b>

Hình 1.1: Sự khác nhau giữa máy học có giám sát và máy học khơng giám sát ... 1

Hình 1.2: Mơ tả khái niệm dùng trong thuật tốn ... 2

Hình 1.3: Khoảng cách Euclidean ... 3

Hình 1.4: Biểu đồ Elbow ... 4

Hình 1.5: Minh họa a(i) ... 5

Hình 1.6: Minh họa b(i) ... 5

Hình 1.7: Biểu đồ Silhouette ... 5

Hình 1.8: Biểu đồ Gap Statistic ... 7

Hình 1.9: Sơ đồ thuật tốn K-Means ... 7

Hình 1.10: Biểu đồ thể hiện khách hàng dựa trên thu nhập và số nợ ... 9

Hình 1.11: Phân tách khách hàng thành 2 cụm ... 10

Hình 1.12: Phân tách khách hàng thành 4 cụm ... 10

Hình 1.13: Biểu đồ với trục x là Clusters, trục y là Inertia ... 11

Hình 1.14:Biểu đồ với Cluster là 2 và Inertia là 1000 ... 11

Hình 1.15: Biểu đồ sau khi tăng Cluster lên ... 12

Hình 1.16: Sự khác nhau giữa K-Means và K-Medoids ... 13

Hình 1.17: Sự khác nhau giữa phân cụm dữ liệu cứng và phân cụm dữ liệu mềm ... 14

Hình 1.18: Ảnh hưởng của outlier ... 16

Hình 2.1: Kiểm tra giá trị null trong cột dữ liệu ... 20

Hình 2.2: Sử dụng phương pháp Elbow để tìm k tối ưu ... 24

Hình 2.3: Sử dụng phương pháp Silhouette để tìm k tối ưu ... 25

Hình 2.4: Sử dụng phương pháp Gap Statistic để tìm k tối ưu ... 26

Hình 2.5: Đánh giá kết quả phân cụm với k=2 ... 28

Hình 2.6: Đánh giá kết quả phân cụm với k=3 ... 29

Hình 2.7: Kết quả phân cụm với k=3 ... 31

Hình 2.8: Biểu đồ thể hiện tỉ lệ phân cụm ... 32

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

V

<b>DANH MỤC BẢNG BIỂU </b>

Bảng 1: Bảng mô tả dữ liệu ... 18 Bảng 2: Bảng so sánh thời gian thực thi của các phương pháp ... 27

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Chương 1: Thuật toán phân cụm K-Means (K-Means Clustering) </b>

<b>1.1. Tổng quan </b>

<b>1.1.1. Định nghĩa thuật ngữ học không giám sát (Unsupervised Learning) </b>

Học không giám sát là một nhóm thuật tốn hay phương pháp kỹ thuật cho phép máy tự học hỏi và tìm ra một mơ hình hay cấu trúc nào đó ẩn trong một bộ dữ liệu không được gắn nhãn trước. Điều này đồng nghĩa với việc chúng ta chỉ có bộ dữ liệu đầu vào và hồn tồn khơng biết kết quả đầu ra là gì.

<i><small>Hình 1.1: Sự khác nhau giữa máy học có giám sát và máy học khơng giám sát</small></i>

<b>1.1.2. Định nghĩa phân cụm K-Means </b>

Phân cụm K-Means là một thuật tốn học khơng giám sát đơn giản được sử dụng để giải quyết các vấn đề phân cụm. Nó tuân theo một thủ tục đơn giản là phân loại một tập dữ liệu nhất định thành một số cụm, được xác định bằng ký tự "k", được cố định trước. Sau đó, các cụm được định vị dưới dạng điểm và tất cả các điểm quan sát hoặc điểm dữ liệu được liên kết với cụm gần nhất, được tính tốn, điều chỉnh và sau đó q trình bắt đầu lại bằng cách sử dụng các điều chỉnh mới cho đến khi đạt được kết quả mong muốn.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>1.1.3. Các trường hợp sử dụng thuật toán </b>

Ví dụ phổ biến cho thuật tốn này đó là việc phân loại khách hàng. Các khách hàng có những đặc điểm tương đồng về mặt thông tin hoặc dựa trên lịch sử mua hàng, hành vi mua hàng có thể phân thành các loại khách hàng khác nhau. Nói cách khác mỗi loại khách hàng sẽ có những đặc điểm chung giống nhau, và những đặc điểm đó được phát hiện thơng qua thuật tốn phân cụm

Ngồi ra có một ví dụ khác mà chúng ta cũng hay bắt gặp, đó là các mạng xã hội ln tìm cách phân cụm những người có cùng sở thích, thói quen để đưa ra những gợi ý kết bạn hay tham gia một nhóm nào đó.

<b>1.2. Nội dung của thuật toán </b>

<b>1.2.1. Một số khái niệm dùng trong thuật tốn </b>

<i><small>Hình 1.2: Mơ tả khái niệm dùng trong thuật tốn</small></i>

- Cluster (cụm): là một nhóm các điểm dữ liệu tương tự nhau. - k: là số lượng của các cụm.

- Centroid: là trung tâm của 1 cụm dữ liệu.

- Khoảng cách Euclidean: là độ dài của đoạn thẳng nối hai điểm trong không gian Euclide.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Phương pháp Elbow là phương pháp dùng để xác định số lượng cụm tối ưu nhất cho tập dữ liệu.

Mơ hình Elbow thực hiện để xác định giá trị k trong K-Means như sau: 1. Khởi tạo giá trị ban đầu cho k.

2. Tăng giá trị của k.

3. Tính tổng bình phương khoảng cách giữa mỗi điểm và tâm trong một cụm (WCSS - Within-Cluster Sum of Square) từ mỗi giá trị của k.

<small>2ii 1 x C</small>

WCSSd(x, m )

=  

Trong đó:

• C<small>i</small>: là cụm thứ i.

• m<small>i</small>: là centroid của cụm C<small>i</small>.

4. Vẽ biểu đồ từ WCSS và giá trị k, phân tích tổng các kết quả WCSS từ giá trị k đã giảm mạnh.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

5. Xác định vị trí mà WCSS giảm mạnh sau đó đồ thị bắt đầu di chuyển gần như song song với trục x và đặt điểm k.

<i><small>Hình 1.4: Biểu đồ Elbow</small></i>

<b>1.2.2.2. Phương pháp Average Silhouette </b>

Hệ số Silhouette là thước đo mức độ tương tự của một điểm dữ liệu trong cụm (liên kết) so với các cụm khác.

Để vẽ biểu đồ Silhouette ta cần 2 bước:

- Chọn một đoạn giá trị của k (giả sử từ 1 đến 10).

- Vẽ đồ thị thể hệ số Silhouette ứng với mỗi giá trị k, để vẽ đồ thị ta cần hệ số Silhouette tại một điểm dữ liệu và trung bình silhouette cho mỗi k.

Phương trình trình tính tốn hệ số Silhouette tại một điểm dữ liệu cụ thể như sau: 𝑆(𝑖) = <sup>𝑏(𝑖) − 𝑎(𝑖)</sup>

max⁡{𝑎(𝑖), 𝑏(𝑖)}Trong đó:

• S(i) là hệ số hình bóng của điểm dữ liệu i.

• a(i) là khoảng cách trung bình giữa i và tất cả các điểm dữ liệu khác trong cụm mà i thuộc về.

• b(i) là khoảng cách trung bình từ i đến tất cả các điểm dữ liệu khác trong những cụm mà i khơng thuộc về.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i><small>Hình 1.5: Minh họa a(i)</small></i>

<i><small>Hình 1.6: Minh họa b(i)</small></i>

Sau đó, ta sẽ tính tốn trung bình silhouette cho mỗi k. 𝐴𝑣𝑒𝑟𝑎𝑔𝑒𝑆𝑖𝑙ℎ𝑜𝑢𝑒𝑡𝑡𝑒 = 𝑚𝑒𝑎𝑛{𝑆(𝑖)}

Cuối cùng, ta biểu đồ giữa trung bình silhouette và k. Chọn k cụm tại giá trị của k sao cho trung bình silhouette lớn nhất.

<i><small>Hình 1.7: Biểu đồ Silhouette</small></i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>1.2.2.3. Phương pháp Gap Statistic </b>

Phương pháp này có thể được áp dụng cho bất kỳ phương pháp phân cụm nào (K-means clustering, hierarchical clustering). Gap Statisstic so sánh tổng biến thể trong cụm đối với các giá trị khác nhau của k với giá trị dự kiến của chúng trong phân phối tham chiếu rỗng của dữ liệu (tức là phân phối không có phân nhóm rõ ràng). Tập dữ liệu tham chiếu được tạo bằng cách sử dụng mô phỏng Monte Carlo của q trình lấy mẫu. Đó là, cho mỗi biến (xi) trong tập dữ liệu, chúng tơi tính tốn phạm vi của nó [min(x<small>i</small>), max(x<small>i</small>)] và tạo ra các giá trị cho n điểm một cách đồng nhất trong khoảng thời gian từ min đến max.

Đối với dữ liệu quan sát và dữ liệu tham chiếu, tổng biến thể nội bộ được tính bằng cách sử dụng các giá trị khác nhau của k. Thống kê khoảng cách cho k cho trước được định nghĩa như sau:

𝐺𝑎𝑝<sub>𝑛</sub>(𝑘) = 𝐸<sub>𝑛</sub><small>∗</small>log(𝑊<sub>𝑘</sub>) − log⁡(𝑊<sub>𝑘</sub>)

Trong đó, 𝐸<sub>𝑛</sub><small>∗</small> biểu thị kỳ vọng dưới cỡ mẫu n từ phân phối tham chiếu. 𝐸<sub>𝑛</sub><small>∗</small> được xác định thông qua bootstrapping (B) bằng cách tạo B bản sao của bộ dữ liệu tham chiếu và bằng cách tính tốn giá trị trung bình log(𝑊<sub>𝑛</sub><small>∗</small>). Gap statistic đo lường độ lệch của quan sát được giá trị W<small>k</small> từ giá trị kỳ vọng của nó theo giả thuyết. Ước tính của các cụm tối ưu (k) sẽ là giá trị tối đa hóa Gap<small>n</small>(k). Điều này có nghĩa là cấu trúc phân cụm nằm xa sự phân bố đồng đều của các điểm.).

Thuật toán bao gồm các bước sau:

1. Cụm dữ liệu quan sát, thay đổi số lượng cụm từ k=1, …, k=max và tính tốn tương ứng W<small>k</small>

2. Tạo tập dữ liệu tham chiếu B và phân cụm từng nhóm với số lượng cụm khác nhau k=1, …, k=max. Tính tốn Gap<small>n</small>(k) ước tính:

𝐺𝑎𝑝<sub>𝑛</sub>(𝑘) = 𝐸<sub>𝑛</sub><small>∗</small>log(𝑊<sub>𝑘</sub>) − log⁡(𝑊<sub>𝑘</sub>) 3.

- Đặt: 𝑤̅ = (<sup>1</sup>

<small>𝐵</small>) ∑ log⁡(𝑊<sub>𝑏</sub> <sub>𝑘𝑏</sub><sup>∗</sup> )- Tính độ lệch chuẩn: 𝑠𝑑(𝑘) = √(<sup>1</sup>

<small>𝑏</small>) ∑ (log(𝑊<sub>𝑘𝑏</sub><sup>∗</sup> ) − 𝑤̅)<small>2𝑏</small>

- Xác định: 𝑠<sub>𝑘</sub> = 𝑠𝑑<sub>𝑘</sub> ∗ √1 + 1/𝐵 4. Chọn số cụm là k nhỏ nhất sao cho

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

𝐺𝑎𝑝(𝑘) ≥ 𝐺𝑎𝑝(𝑘 + 1) − 𝑠<sub>𝑘+1</sub>

<i><small>Hình 1.8: Biểu đồ Gap Statistic</small></i>

<b>1.2.3. Tóm tắt các bước của thuật tốn </b>

<i><small>Hình 1.9: Sơ đồ thuật toán K-Means </small></i>

<b>Đầu vào: N điểm dữ liệu X = [x</b><small>1</small>, x<small>2</small>, x<small>3</small>, ...x<small>N</small>] chưa có nhãn vector và số lượng cụm cần tìm k.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Đầu ra: Các trung tâm K = [m</b><small>1</small>, m<small>2</small>, m<small>3</small>, ...m<small>K</small>] và nhãn vector cho từng điểm dữ liệu.

<b>Các bước thực hiện thuật toán: </b>

1. Chọn số k cụm và chọn ngẫu nhiên k điểm làm trung tâm. Sử dụng các phương pháp để tìm được số k tối ưu nhất.

2. Gán mỗi điểm dữ liệu về cụm có trung tâm cụm gần nhất. Ta xác định nhãn cho từng điểm dữ liệu bằng cách tính tốn khoảng cách của từng điểm dữ liệu tới tâm cụm của nó, thực hiện bằng phương pháp tính khoảng cách Euclidean. Một điểm dữ liệu x được phân vào một cụm C<small>i</small> có trung tâm là m<small>i</small> (trung tâm được chọn ở bước 1)

𝑑 = 𝑎𝑔𝑟𝑚𝑖𝑛<sub>𝑖</sub>||𝑥 − 𝑚<sub>𝑖</sub>||<sup>2</sup>Trong đó:

• x là một điểm dữ liệu được phân vào một cụm C<small>i</small>. • m<small>i</small> là trung tâm của C<small>i</small>.

• agrmin<small>i</small> là tìm giá trị nhỏ nhất của biến số để hàm số đó đạt giá trị nhỏ nhất. • 𝑑(𝑥, 𝑚<sub>𝑖</sub>)= ||𝑥 − 𝑚<sub>𝑖</sub>|| = √(𝑥<sub>1</sub>− 𝑚<sub>𝑖1</sub>)<small>2</small>+ (𝑥<sub>2</sub> − 𝑚<sub>𝑖2</sub>)<small>2</small>+ ⋯ + (𝑥<sub>𝑛</sub>− 𝑚<sub>𝑖𝑛</sub>)<small>2</small>

<i>Giải thích: Tính khoảng cách của mỗi điểm x đến mỗi điểm trung tâm m, ví dụ </i>

d(x<small>1</small>,m<small>1</small>), d(x<small>1</small>,m<small>2</small>), d(x<small>1</small>,m<small>3</small>)... sau đó chọn khoảng cách ngắn nhất và gán x1 cho trung tâm mi tương ứng. Tương tự ta tính khoảng cách và gán các điểm x<small>2</small>, x<small>3</small>, …, x<small>n</small> cho các trung tâm tương ứng.

3. Tính tốn lại vị trí trung tâm cho từng cụm. Sau khi các cụm được hình thành có tâm và các điểm dữ liệu được gán cho nó. Ta xác định lại vị trí trung tâm mới cho các cụm đó bằng cách tính trung bình cộng của các điểm dữ liệu trong cụm, trung bình cộng đó sẽ là trung tâm mới của cụm.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

• m<small>i</small> là trung tâm của cụm C<small>i</small>.

4. Lặp lại bước 2 và 3 tới khi vị trí các trung tâm cụm không đổi.

<b>1.3. Đặc điểm của thuật toán </b>

K-Means là một thuật toán dựa trên centroid, hoặc một thuật tốn dựa trên khoảng cách, tính tốn khoảng cách để gán một điểm cho một cụm. Trong K-Means, mỗi cụm được liên kết với một trung tâm.

Chất lượng của thuật toán K-Means phụ thuộc nhiều vào các tham số đầu vào như: số cụm k, và k vector trọng tâm khởi tạo ban đầu. Trong trường hợp các vector trọng tâm khởi tạo ban đầu mà quá lệch so với các trọng tâm cụm tự nhiên thì kết quả phân cụm của K-Means là rất thấp, nghĩa là các cụm dữ liệu được khám phá rất lệch so với các cụm trong thực tế. Trên thực tế, chưa có một giải pháp nào để chọn tham số đầu vào, giải pháp thường được sử dụng nhất là thử nghiệm với các giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất.

<b>1.3.1. Ví dụ </b>

Ví dụ 1: Ngân hàng muốn phân khúc khách hàng dựa trên thu nhập và số nợ của họ:

<i><small>Hình 1.10: Biểu đồ thể hiện khách hàng dựa trên thu nhập và số nợ </small></i>

Chúng ta có thể phân tách thành 2 cụm: Khách hàng có thu nhập thấp thuộc 1 cụm và khách hàng có thu nhập cao thuộc cụm thứ 2.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i><small>Hình 1.11: Phân tách khách hàng thành 2 cụm</small></i>

Chúng ta cũng có thể phân tách thành 4 cụm: - Thu nhập thấp, nợ ít.

- Thu nhập thấp, nợ nhiều. - Thu nhập cao, nợ ít. - Thu nhập cao, nợ nhiều.

<i><small>Hình 1.12: Phân tách khách hàng thành 4 cụm</small></i>

Ví dụ 2: Biểu đồ, trong đó trục x là số lượng các cụm (Clusters), trục y là số liệu đánh giá (Inertia: là một độ đo về mức độ gắn kết nội bộ trong một cụm)

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i><small>Hình 1.13: Biểu đồ với trục x là Clusters, trục y là Inertia</small></i>

Giả sử ban đầu, Clusters là 2 và Inertia là 1000.

<i><small>Hình 1.14:Biểu đồ với Cluster là 2 và Inertia là 1000</small></i>

Sau đó, tăng Clusters lên.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i><small>Hình 1.15: Biểu đồ sau khi tăng Cluster lên</small></i>

Có thể thấy, khi thay đổi giá trị Clusters từ 2 thành 4 hoặc 6 thì giá trị Inertia giảm rất mạnh. Và khi tăng số lượng Clusters đến một mức độ nào đó, ta thấy giá trị Inertia cịn giảm đều, khơng đáng kể hoặc gần như là khơng đổi. Lúc đó, có thể chọn Clusters đó làm giá trị cụm phù hợp cho dữ liệu (Từ 6-10). Tuy nhiên, cũng cần tính toán tài nguyên khi quyết định số lượng cụm (Số lượng cụm càng lớn thì tài ngun tính tốn càng cao).

<b>1.3.2. Ưu điểm </b>

- Tương đối nhanh, độ phức tạp của thuật tốn là O (tkn) trong đó: • n là số điểm trong không gian dữ liệu.

• t là số lần lặp (Thường thì t rất nhỏ so với n). • k là số cụm cần phân hoạch.

- K-Means phù hợp với các cụm có dạng hình cầu.

- Có khả năng mở rộng và dễ dàng sửa đổi với những dữ liệu mới. - Bảo đảm hội tụ sau một số bước lặp hữu hạn.

- Luôn có ít nhất một điểm trong cụm.

- Các cụm được tách biệt rõ ràng khơng có hiện tượng một đối tượng xuất hiện trong nhiều cụm dữ liệu.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

- Hiệu quả trong thực tế.

- Chỉ có thể áp dụng khi tính được trọng tâm.

<b>1.4. Các biến thể của thuật toán 1.4.1. Thuật toán K-Medoids </b>

Thuật toán K-Medoids tương tự thuật tốn K-Means, nó u cầu người dùng chỉ định k, số lượng cụm được tạo, mỗi cụm được đại diện bởi một trong số các đối tượng của cụm. Thay vì sử dụng điểm trung bình làm trung tâm của một cụm, K-Medoids sử dụng một điểm thực trong cụm để đại diện cho nó. Thơng thường thì điểm gần vector trọng tâm sẽ được chọn làm điểm đại diện của cụm.

<i><small>Hình 1.16: Sự khác nhau giữa K-Means và K-Medoids</small></i>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>Ưu điểm: </b>

- Loại được nhiễu trong thuật tốn K-Means. - Nó rất đơn giản dễ hiểu và dễ thực hiện.

- Thuật toán K-Medoids nhanh và hội tụ trong một số bước cố định.

- PAM (Thuật toán phân vùng xung quanh Medoid) ít nhạy cảm hơn với các ngoại lệ so với các thuật toán phân vùng khác.

<b>Nhược điểm: </b>

- Nhược điểm chính của thuật tốn K-Medoids là nó khơng thích hợp để phân cụm các nhóm đối tượng khơng hình cầu (có hình dạng tùy ý). Điều này là do nó dựa vào việc giảm thiểu khoảng cách giữa các đối tượng không phải medoid và medoid (trung tâm cụm) - một cách ngắn gọn, nó sử dụng tính nhỏ gọn làm tiêu chí phân cụm thay vì kết nối.

- Nó có thể thu được các kết quả khác nhau cho các lần chạy khác nhau trên cùng một tập dữ liệu vì K-Medoids đầu tiên được chọn ngẫu nhiên.

- Độ phức tạp của thuật toán rất lớn.

<b>1.4.2. Thuật toán Fuzzy C-Means </b>

Thuật tốn Fuzzy C-Means có chiến lược phân cụm giống như K-Means. Nhưng có một điểm khác biệt là K-Means phân cụm dữ liệu cứng (một đối tượng chỉ thuộc vào một cụm) còn Fuzzy C-Means là phân cụm dữ liệu mềm (một đối tượng có thể thuộc nhiều cụm khác nhau).

<i><small>Hình 1.17: Sự khác nhau giữa phân cụm dữ liệu cứng và phân cụm dữ liệu mềm</small></i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

Fuzzy C-Means có khả năng phân cụm trong khơng gian đa chiều và có khả năng phân cụm tối ưu toàn cục.

<b>Nhược điểm: </b>

- Thuật toán này khá phức tạp và tốc độ hội tụ phụ thuộc vào trạng thái ban đầu của ma trận thành viên.

- Thông số kỹ thuật Apriori về số lượng cụm.

- Với giá trị β thấp hơn, chúng ta nhận được kết quả tốt hơn nhưng với chi phí là số lần lặp lại nhiều hơn.

- Các phép đo khoảng cách Euclide có thể cân bằng các yếu tố cơ bản một cách bất bình đẳng.

Ngồi ra cịn có các biến thể khác như: Gaussian mixture models, Spherical K-Means, Minkowski metric weighted K-Means, …

<b>1.5. Một số yếu tố ảnh hưởng đến thuật toán 1.5.1. Ảnh hưởng của outlier </b>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>1.5.1.2. Khắc phục outlier </b>

<b>- Outlier removal: Có thể loại bỏ các điểm dữ liệu xa đáng kể so với điểm trung tâm </b>

(centroid) của các cluster so với các điểm dữ liệu khác. Việc loại bỏ có thể được thực hiện trước hoặc trong khi phân cụm.

<b>- Random sampling: Thay vì phân cụm toàn bộ tập dữ liệu, chúng ta sẽ lấy ngẫu nhiên </b>

tập con S từ tập dữ liệu huấn luyện. S được sử dụng để phân cụm, tập S lúc này sẽ có ít các điểm outlier hơn tập dữ liệu gốc. Sau khi phân cụm xong, tập dữ liệu còn lại sẽ được gán vào các cụm đã học được.

<b>1.5.2. Ảnh hưởng của việc khởi tạo trung tâm </b>

Chất lượng của K-Means phụ thuộc vào việc khởi tạo các điểm centroid

<i><small>Hình 1.18: Ảnh hưởng của outlier</small></i>

<b>Giải pháp 1: Lặp lại nhiều lần thuật toán K-Means </b>

- Mỗi lần chạy lại thuật toán K-Means sẽ khởi tạo các điểm centroid khác nhau.

- Sau quá trình học, tiến hành gộp các kết quả từ các lần chạy thành kết quả cuối cùng.

<b>Giải pháp 2: Thuật tốn K-Means++: Để tìm ra cụm tốt nhất, chúng ta có thể lần lượt </b>

khởi tại các điểm trung tâm từ tập D tuần tự như sau: - Lấy ngẫu nhiên điểm centroid đầu tiên m<small>1</small>

</div>

×