Con trăn kết tụ

Data data in the 2bao gồm 6 điểm nên sẽ trải qua 5 bước dữ liệu để nhóm dữ liệu. Thứ tự nhóm sẽ như sau

  • Bước 1. Dựa trên khoảng cách gần nhất giữa các điểm chúng ta sẽ nhóm 2 điểm \[\{A, B\}\] thành 1 cụm. Khi đó điểm đại diện cho một cụm \[\{A, B\}\] sẽ là trung bình cộng giữa hai điểm \[A\]\[B\], được thể hiện bằng dấu \[\otimes\] giữa \[A\]\[B\] trên hình.

  • Bước 2. Lựa chọn ngẫu nhiên một điểm chưa được cụm, chẳng hạn điểm D. Đo khoảng cách tới các điểm còn lại và với cụm từ tâm \[\{A, B\}\] ta sẽ thu được khoảng cách \[d[D, E]\] là nhỏ nhất. Như vậy ta sẽ thu được một cụm \[\{D, E\}\] .

  • Bước 3. Xuất phát từ điểm \[C\] , ta đo khoảng cách tới các tâm cụm \[\{A . Khoảng cách gần nhất là \[\{D, E\}\] và tới điểm F. Khoảng cách gần nhất là \[d[C, \{A, B\}]\] nên ta nhóm \[C\] vào cụm \[\{A, B\}\] để thu được cụm mới \[\{A, B, C\}\].

  • Bước 4. Xuất phát từ \[F\] ta đo khoảng cách tới các tâm cụm \[\{A, B . Điểm \[\{D, E\}\]. Điểm \[F\] cụm gần \[\{D, E\}\] hơn nên sẽ được gộp vào thành cụm \[\{D, E, F\}\].

  • Bước 5. Gộp cả 2 cụm \[\{A, B, C\}\]\[\{D . ta thu được cụm cuối cùng là node gốc bao trùm toàn bộ dữ liệu.

Như vậy chúng ta đã hình dung ra chiến lược nhóm cụm từ rồi chứ? . Sau đó sẽ thực hiện truy hồi việc cụm cụm [cụm ở đây có thể bao gồm một điểm hoặc nhiều điểm]. Khoảng cách giữa hai cụm được đo lường thông qua một thước đo sẽ được làm rõ hơn ở bên dưới, trong ví dụ này chính là khoảng cách trong không gian euclidean giữa tâm của mỗi cụm. Trong đó cụm từ tâm được xác định bằng trung bình cộng của các quan sát bên trong cụm

14. 2. Khoảng cách giữa hai cụm?¶

Giao định ở một mức cụ thể trong biểu đồ dendrogram chúng ta có hai cụm trung gian không trùng nhau là \[\mathcal{S}_1 = \{ \mathbf{ . Khoảng cách giữa hai cụm chính là sự khác biệt giữa chúng. Có những phương pháp giúp xác định khoảng cách giữa hai cụm từ như sau. \[\mathcal{S}_2 = \{ \mathbf{x}_j^{[2]} \}_{j=1}^{N_2}\]. Khoảng cách giữa hai cụm chính là sự khác biệt giữa chúng. Có những phương pháp giúp xác định khoảng cách giữa hai cụm như sau:

  • liên kết phường. Phương pháp này đo lường khoảng cách giữa hai tâm cụm thông qua sự suy giảm phương sai. Tức là việc phân cụm sẽ được coi là hợp lý nếu như sau khi phân cụm thì phương sai giảm một giá trị lớn. Người ta còn chứng minh được rằng mức độ suy giảm của phương sai trước phân chia trên của cụm cha so với tổng phương sai sau phân chia trên hai cụm con tỷ lệ thuận với khoảng cách giữa hai tâm cụm được tính theo công thức trung bình. Trong điều kiện lý tưởng, nếu các quan sát tồn tại trong không gian euclidean thì chúng ta có thể xác định được tâm cụm từ dựa trên trung bình. Khi đó ta xác định khoảng cách giữa hai cụm bằng khoảng cách euclidean [khoảng cách euclide] giữa hai tâm cụm. Cùng ôn lại kiến ​​thức một chút, khoảng cách euclide chính là độ dài đoạn thẳng nối trực tiếp hai điểm trong không gian euclide

\[d[\mathbf{m}_1,\mathbf{m}_2] = d[\mathbf{m}_2,\mathbf{m}_1] = \sqrt{[m_{1}^{[1]}

Liên kết phường thuật toán cũng chỉ được sử dụng trong điều kiện giả định các quan sát nằm trong không gian euclide

Tiếp theo ta sẽ chứng minh công thức định mức suy giảm phương sai theo khoảng cách giữa hai tâm cụm. Giả sử \[\mathbf{m}, \mathbf{m}_1, \mathbf{m}_2\] lần như vậy là trung bình của tâm . Khi đó thước đo khoảng cách phường liên kết có công thức như sau. \[\{\mathcal{S}_1, \mathcal{S}_2\}\], và hai cụm con \[\mathcal{S}_1\]\[\mathcal{S}_2\]. Khi đó thước đo khoảng cách ward linkage có công thức như sau:

\[\begin{split}\begin{eqnarray}d[\mathcal{S}_1, \mathcal{S}_2] & = & \sum_{\mathbf{x}_i \in \mathcal{S_1} \cup \ . \mathbf{x}_i-\mathbf{m} \. ^2 - \sum_{\mathbf{x}_i \in \mathcal{S}_1} \. \mathbf{x}_i - \mathbf{m}_1\. ^2 - \sum_{\mathbf{x}_i \in \mathcal{S}_2} \. \mathbf{x}_i - \mathbf{m}_2\. ^2 \\ & = & \frac{N_1 N_2}{N_1 + N_2} \. \mathbf{m}_1 - \mathbf{m}_2 \. ^2 \\ & = & \frac{N_1 N_2}{N_1 + N_2} d[\mathbf{m}_1, \mathbf{m}_2] \tag{1} \end{eqnarray}\end{split}\

Ta có thể chứng minh công thức \[[1]\] như sau.

\[\begin{split}\begin{eqnarray}d[\mathcal{S}_1, \mathcal{S}_2] & = & \sum_{\mathbf{x}_i \in \mathcal{S_1} \cup \ . \mathbf{x}_i-\mathbf{m} \. ^2 - \sum_{\mathbf{x}_i \in \mathcal{S}_1} \. \mathbf{x}_i - \mathbf{m}_1\. ^2 - \sum_{\mathbf{x}_i \in \mathcal{S}_2} \. \mathbf{x}_i - \mathbf{m}_2\. ^2 \\ & = & \sum_{\mathbf{x}_i \in \mathcal{S}_1}[ \. \mathbf{x}_i - \mathbf{m}\. ^2 - \. \mathbf{x}_i - \mathbf{m}_1\. ^2] + \sum_{\mathbf{x}_i \in \mathcal{S}_2}[ \. \mathbf{x}_i - \mathbf{m}\. ^2 - \. \mathbf{x}_i - \mathbf{m}_2\. ^2] \\ & = & \sum_{\mathbf{x}_i \in \mathcal{S}_1} [2 \mathbf{x}_i - \mathbf{m} - \mathbf{m}_1][\ . \mathbf{m}_1 - \mathbf{m}_2\. ^2 \end{eqnarray}\end{split}\]

Công thức \[[1]\] cho thấy việc phân cụm luôn tạo ra phương sai dữ liệu giảm. Tuy nhiên, mức độ suy giảm nhiều hay ít sẽ phụ thuộc và khoảng cách tâm [centroids] giữa hai cụm từ. Nếu hai tâm cách xa nhau thì giá trị giảm của phương sai sau khi phân cụm càng lớn. Trái lại nếu tâm giữa hai cụm càng sát nhau, các cụm có xu hướng chồng lấn và không rõ ràng thì sau khi phân chia phương sai của cụm giảm không đáng kể. Trường hợp này tiếp tục phân chia cũng không có nhiều ý nghĩa, thậm chí có thể phá vỡ qui luật phân phối tổng của một cụm. Mức độ suy giảm phương sai cũng tỷ lệ thuận với khoảng cách giữa hai tâm được tính theo trung bình. Trường hợp này tâm còn được gọi là centroid để phân biệt với clusteroids được giới thiệu bên dưới.

Trong nhiều trường hợp khi dữ liệu không tồn tại trong không gian euclidean [non-euclidean] thì chúng ta không thể tính toán được tâm của từng cụm theo trung bình toàn bộ các điểm trong cụm. Khi đó cụm từ tâm sẽ được xác định là một điểm nằm trong cụm sao cho có trung bình khoảng cách tới những điểm khác trong cùng cụm là nhỏ nhất. Như vậy ta đã thay thế trung bình bằng một điểm dữ liệu thực tế, những điểm này còn được gọi là clustroid

Ngoài phương pháp liên kết phường pháp, để đo lường sự không tương đồng giữa các cụm còn có những phương pháp sau đây

  • liên kết đơn. Phương pháp này đo lường sự khác biệt giữa hai cụm bằng cách lấy ra cặp điểm gần nhất giữa hai cụm. Độ đo khác biệt được tính theo công thức

\[d[\mathcal{S}_1, \mathcal{S}_2] = \min_{\mathbf{x}_i \in \mathcal{S}_1, \mathbf{x}_j \in \mathcal{S}

Phương pháp này còn được gọi dưới tên khác là láng giềng gần nhất. Tức giận là đo lường khoảng cách cụm thông qua 2 điểm gần nhau nhất thuộc mỗi cụm

  • Liên kết hoàn chỉnh. Phương pháp này đo lường sự khác biệt giữa hai cụm bằng cách lấy ra hai cặp điểm xa nhau nhất giữa hai cụm

\[d[\mathcal{S}_1, \mathcal{S}_2] = \max_{\mathbf{x}_i \in \mathcal{S}_1, \mathbf{x}_j \in \mathcal{S}

  • Trung bình nhóm. Phương pháp này sẽ lấy trung bình toàn bộ khoảng cách giữa các cặp điểm được lấy từ hai cụm. Chúng ta sẽ có tổng cộng \[N_1 N_2\] cặp điểm. Như vậy khoảng cách sẽ được tính bằng.

\[d[\mathcal{S}_1, \mathcal{S}_2] = \frac{1}{N_1 N_2}\sum_{i=1}^{N_1} \sum_{j=1}^{N_2}

Cả bốn phương pháp liên kết phường, liên kết đơn, liên kết hoàn chỉnh, trung bình nhóm đều giúp tạo ra một thước đo về sự không tương đồng hay chính là khoảng cách giữa hai cụm. Khi giữa các cụm có sự phân tách rõ ràng thể hiện qua phân phối dữ liệu và đường biên phân chia rõ ràng thì kết quả trả về \[d[\mathcal{S}_1, \mathcal{ . Tuy nhiên, phương pháp liên kết đơn và liên kết hoàn chỉnh thường bị ảnh hưởng bởi những điểm ngoại lệ dữ liệu. Chẳng hạn hai cụm rất cách xa nhau nhưng do hai điểm ngoại lệ của chúng lại rất gần nhau có thể trả về một khoảng cách theo liên kết đơn rất bé. Một vấn đề khác, khi hai cụm từ rất gần nhau nhưng do hai điểm khác biệt của chúng rất xa nên khoảng cách được đo theo liên kết hoàn chỉnh lại rất lớn. trong khi đó liên kết phường và trung bình nhóm ít bị ảnh hưởng bởi các ngoại lệ hơn. Tuy nhiên, liên kết lại phường chỉ có thể hoạt động khi các điểm dữ liệu tồn tại trong không gian euclidean. đều thu được lớn và trái lại. Tuy nhiên phương pháp single linkage và complete linkage thường bị ảnh hưởng bởi những điểm dữ liệu outliers. Chẳng hạn hai cụm rất cách xa nhau nhưng do hai điểm outliers của chúng lại rất gần nhau có thể trả về một khoảng cách theo single linkage rất bé. Một tình huống khác, khi hai cụm rất gần nhau nhưng do hai điểm outliers của chúng rất xa nên khoảng cách được đo theo complete linkage lại rất lớn. trong khi đó ward linkage và group average ít bị ảnh hưởng bởi outliers hơn. Tuy nhiên ward linkage lại chỉ có thể hoạt động khi các điểm dữ liệu tồn tại trong không gian euclidean.

14. 3. Chiến lược phân chia [divisive]¶

Chiến lược phân chia chưa được nghiên cứu và phát triển rộng rãi trong các bài toán phân cụm như hợp nhất. Trong sklearn cũng chưa có module phát triển cho phương pháp này. Nó được giới thiệu lần đầu tiên trong tài liệu của Gersho và Grey, 1992 về kỹ thuật nén. Chiến lược phân chia sẽ bắt đầu từ một cụm bao gồm toàn bộ các quan sát bên trong cụm và sau đó phân chia trả qui những cụm đang tồn tại thành hai cụm con tại mỗi bước theo hướng từ trên xuống

Đầu tiên thuật toán sẽ chọn ra một điểm từ toàn bộ tập dữ liệu \[\mathcal{S}\] sao cho điểm . Chúng ta đưa điểm này vào tệp \[\mathcal{S}_1\] , tệp còn lại bao gồm \ . Tiếp theo ta sẽ thực hiện các phân chia sao cho từng quyết định lựa chọn ra một điểm điểm là tập \[\mathcal{S}_2\]. Tiếp theo ta sẽ thực hiện các lượt phân chia sao cho mỗi một lượt lựa chọn ra một điểm \[\mathbf{x}_i\] từ tập tin . This point must be on hai điều kiện. \[\mathcal{S}_2\] đưa sang \[\mathcal{S}_1\]. Điểm này cần thoả mãn hai điều kiện:

  • Trung bình khoảng cách từ điểm đó tới toàn bộ các điểm còn lại trong \[\mathcal{S}_1\] phải là . Điều đó có nghĩa là \[\mathbf{x}_i\] là điểm tách rời nhất so với phần còn lại của \[\mathcal{S}_1\].

\[\mathbf{x}_i = \arg \max_{\mathbf{x}_i} \frac{1}{. \mathcal{S}_1. -1} \sum_{j=1, j \neq i}^{. \mathcal{S}_1. } d[\mathbf{x}_i, \mathbf{x}_j]\]

  • Khoảng cách tối thiểu từ \[\mathbf{x}_i\] to the point in \[\mathcal{S}_2\] phải lớn hơn khoảng cách tối thiểu tới các điểm trong \[\mathcal{S}_1\]. Điều này nhằm mục đích khiến cho điểm \[\mathbf{x}_i\] phải gần với cụm từ \ . hơn cụm \[\mathcal{S}_1\].

\[d[\mathbf{x}_i, \mathcal{S}_1] \geq d[\mathbf{x}_i, \mathcal{S}_2]\]

in which

\[d[\mathbf{x}_i, \mathcal{S}_k] = \min_{\mathbf{x}_j, \mathbf{x}_j \in \mathcal{S}_k} d[\mathbf{x

Qúa trình chuyển cụm sẽ kết thúc khi không còn điểm nào đối chiếu hai điều kiện trên. Khi đó chúng ta lại thực hiện đệ quy lại quá trình trên từng tập tin \[\mathcal{S}_1\]\[\mathcal{S}_2\].

Chúng ta cùng diễn giải lại quá trình này thông qua cấu hình minh hoạ bên dưới

Hình 3. Hình minh họa phương pháp phân chia trong thuật toán phân cụm cụm phân cấp. Ở bước 1 chúng ta sẽ lựa chọn ra điểm \[C\] là điểm đầu tiên thuộc cụm mới dựa trên khoảng cách so với các điểm còn lại . Sau bước 1 ta thu được tập tin \[\mathcal{S}_1 = \{ C \}\] and \[\mathcal{S}_2 = \{A, B, D, E, F\}\]. Tại bước 2 lựa chọn trong số các điểm thuộc \[\mathcal{S}_2\] ra điểm mà có khoảng cách xa nhất so với các điểm . Di chuyển điểm này sang \[C\] hơn so với các điểm thuộc tập \[\mathcal{S}_2\], đó chính là diểm \[A\]. Di chuyển điểm này sang \[\mathcal{S}_1\] . Bước 3 chúng ta lại tiếp tục thực hiện như vậy và lựa chọn được điểm \[B\] để đưa ra \[\mathcal{S}_1\]. Ở bước thứ 4 ta sẽ dừng quá trình chuyển cụm cho các điểm thuộc \[\mathcal{S}_2\] vì thuật toán đã đạt được hội nghị . Khi đó ta lại tiếp tục tiến hành đệ quy thuật toán trên từng cụm con.

14. 4. Điều kiện dừng của thuật toán phân cụm¶

Qúa trình phân cụm theo cả hai chiến lược phân tích và hợp nhất tất cả đều thu được một đồ thị dendrogram dưới dạng cây nhị phân. Mỗi một nút trong cây nhị phân sẽ xác định một cụm dữ liệu. Nhưng làm thế nào để xác định khi nào sẽ tiếp tục phân chia hoặc hợp nhất đối với một nút để tạo thành kết quả phân cụm cụm từ. Bên dưới là các phương pháp chính giúp xác định quá trình dừng phân cụm

  • Chúng ta sẽ xác định trước số lượng \[k\] cụm từ cần phân chia ở tầng cao nhất. Ở đây tầng càng cao nếu như cụm càng phát gần gốc nhất. Sau đó chúng ta sẽ dừng thuật toán phân chia nếu như số lượng các cụm đạt được là ngưỡng cửa bằng \[k\] . Phương pháp lựa chọn \[k\] sẽ phù hợp nếu như ta biết trước dữ liệu có bao nhiêu cụm từ. Các bạn sẽ xác định rõ hơn điều này trong phần thực thi.

  • Thuật toán sẽ dừng nếu như việc cụm cụm tạo thành những cụm có mức độ gắn kết [cohension] thấp hơn. Độ gắn kết là một tiêu chuẩn để đo lường chất lượng cụm từ được tạo thành. Thông thường chúng ta có thể đo lường mức độ gắn kết dựa trên đường kính [đường kính] của cụm sau, đường kính cổng được tính bằng khoảng cách lớn nhất giữa hai điểm trong cụm. Một cách khác đó là tính theo bán kính [bán kính] được đánh giá bằng khoảng cách lớn nhất từ ​​một điểm tới tâm hoặc cụm của cụm. Tuy nhiên, cách tiếp cận dựa trên đường kính hoặc bán kính thường xuyên bị cảm ứng với các ngoại lệ. Tức giận là một cụm có thể có chất lượng tốt khi phân bố của các điểm dữ liệu cô đặc biệt xung quanh tâm nhưng làm các điểm ngoại lệ làm sai lệch đường kính hoặc bán kính của cụm khiến cho cụm bị coi là không tốt. Một phương pháp khác dựa trên cách tiến gần đến mật độ [dựa trên mật độ] bằng cách tính Tỷ số giữa số lượng điểm nằm trong cụm chia cho thừa bậc hai hoặc bậc 3 của đường kính hoặc bán kính của cụm. Phương pháp này thường giúp xác định cụm phân tích tổng thể tốt hơn

14. 5. Độ phức tạp của thuật toán phân cấp cụm từ¶

Trong thuật toán phân cụm cụm phân cấp tại mỗi bước chúng ta cần phải tính khoảng cách cho từng cặp điểm trong cùng một cụm và cặp điểm thuộc hai cụm là hai tập ngăn [bộ phân vùng]. Như vậy độ phức tạp tính toán sẽ là \[O[N^2]\] trên mỗi bước, trong đó \[N\] là số lượng quan sát. Chúng ta lặp lại \[N\] bước cho từng điểm dữ liệu nên mức độ phức tạp của thuật toán toán học sẽ là \[O[N^3]\]. Đây là một chi phí tính toán không hề nhỏ đối với những bộ dữ liệu lớn. Do đó chúng ta chỉ nên áp dụng thuật toán phân cụm phân cấp đối với những bộ dữ liệu nhỏ kích thước dưới vài chục nghìn quan sát.

Dư ra khi khai triển thuật toán, nếu khéo léo sử dụng ưu tiên queue thì có thể giảm độ phức tạp xuống \[O[N^2\log N]\ . Tuy nhiên, hiệu quả về chi phí tính toán [độ phức tạp tính toán] thường được đánh đổi bằng sự gia tăng chi phí lưu trữ [độ phức tạp về không gian]. Trường hợp này chi phí lưu trữ vẫn rất tốn kém đối với những bộ dữ liệu vượt quá kích thước lưu trữ của bộ nhớ. . Tuy nhiên hiệu quả về chi phí tính toán [computational complexity] thường đánh đổi bằng sự gia tăng chi phí lưu trữ [space complexity]. Trường hợp này chi phí lưu trữ vẫn rất tốn kém đối với những bộ dữ liệu vượt quá kích thước lưu trữ của bộ nhớ.

14. 6. Thực hành phân cụm cụm từ¶

Đầu tiên chúng ta cần nhập các gói cần thiết để sử dụng trong bài toán phân loại. Trong sklearn, thuật toán phân cụm phân cấp được phát triển dựa trên chiến lược hợp nhất thông tin qua lớp sklearn. cụm. Tích tụClustering

import pandas as pd
from sklearn.cluster import AgglomerativeClustering
from sklearn.preprocessing import MinMaxScaler
import scipy.cluster.hierarchy as shc
import matplotlib.pyplot as plt
import matplotlib.patheffects as PathEffects
import seaborn as sns
import numpy as np

Để minh hoạ thuật toán cụm từ, chúng ta sử dụng dữ liệu mua sắm dữ liệu. Bộ dữ liệu này mô tả hành vi mua sắm của những khách hàng theo giới tính, tuổi tác, thu nhập hàng năm và số lượng mua sắm của họ

data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
Thể loạiTuổiThu nhập hàng năm [k$]Điểm chi tiêu [1-100]ID khách hàng1Nam1915392Nam2115813Nữ201664Nữ2316775Nữ311740

Để đơn giản hóa, chúng ta chỉ sử dụng hai thông tin chính là thu nhập và điểm mua sắm để xây dựng mô hình. Trước hết cần biểu tượng mua sắm dữ liệu đồ thị để biết khái niệm quy luật của các cụm từ

# Lấy ra thu nhập va điểm shopping
X = data.iloc[:, 2:4].values
print[X.shape]
____3____4

Ta nhận thấy sự phân bố của dữ liệu có thể được chia thành 5 cụm khác nhau. Trong đó có 1 cụm ở trung tâm và 4 cụm còn lại nằm ở 4 góc

Trước khi tiến hành xây dựng mô hình cụm cụm, chúng ta cần chuẩn bị hóa dữ liệu để loại bỏ sự khác biệt về mặt đơn vị giữa các chiều. Phương pháp hóa chuẩn được áp dụng là MinMaxScaler

std = MinMaxScaler[]
X_std = std.fit_transform[X]

14. 6. 1. Dendrogram Chart¶

Trong phương pháp phân cụm phân cấp, biểu đồ dendrogram có thể giúp xác định số lượng cụm được phân chia hợp lý. Bằng cách vẽ một đường thẳng nằm ngang tương ứng với một mức độ khác biệt của các cụm từ, ta có thể xác định là có bao nhiêu cụm từ được phân chia có cấp độ nằm bên dưới đoạn thẳng này. Số lượng điểm dữ liệu trong từng cụm từ cũng có thể hiển thị trong biểu đồ. Mức độ khác biệt giữa các cụm từ sẽ được thể hiện qua mức độ cao của các nút. Một biểu đồ có các cụm bên dưới thấp hơn so với các cụm bên trên thì thường là những bộ dữ liệu mà phương pháp cụm phân cấp đã xác định được quy luật phân cụm tổng hợp

Tiếp theo ta sẽ vẽ biểu đồ dendrogram để nhận biết các cụm từ cần phân chia. Để vẽ biểu đồ này, chúng tôi sử dụng gói

data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
1. Phương pháp được sử dụng để xác định các cụm từ là liên kết phường

plt.figure[figsize=[20, 7]]
plt.title["Customer Dendograms"]
dend = shc.dendrogram[shc.linkage[X, method='ward']]
plt.axhline[200, linestyle='--']
plt.xlabel['sample indice']
plt.ylabel['dissimilarity metric cluster']
Text[0, 0.5, 'dissimilarity metric cluster']

Trong biểu đồ dendogram mà bạn nhìn thấy ở trên, trục hoành [trục ngang] là chỉ số thứ tự của các quan sát trong gốc dữ liệu, trục tung [trục tung] có thể thể hiện mức độ khác biệt giữa các cụm thông tin toán học được tính toán . Nhìn vào đồ thị dendrogram ta có thể dễ dàng xác nhận rằng với cùng một mức độ đánh giá khác biệt là 200 thì chúng ta có thể tạo thành 5 cụm phân biệt

14. 6. 2. Xây dựng mô hình cụm phân cụm hợp nhất cấp cao nhất¶

Để xây dựng biểu đồ cụm phân cấp theo phương pháp hợp nhất chúng ta sử dụng lớp sklearn. cụm. Tích tụClustering. Trong lớp này chúng ta cần khai báo các thông tin

AgglomerativeClustering[
  n_clusters=2,  
  affinity='euclidean',
  compute_full_tree='auto', 
  linkage='ward', 
  distance_threshold=None, 
  compute_distances=False]

Trong đó

data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
2 là cụm từ số lượng cần phân chia.
data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
3 là phương pháp tính toán khoảng cách giữa các quan sát. Đây có thể là bất kỳ khoảng cách đo lường nào, trong đó 5 khoảng cách thông tin ứng dụng tốt nhất là
data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
4.
data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
5 là phương pháp áp dụng để tính khoảng cách giữa các cụm bao gồm
data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
6 trong đó mặc định là
data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
7

Bên dưới chúng ta sẽ cùng khởi tạo một thuật toán phân cụm với 5 cụm toán học, sử dụng khoảng các cụm là

data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
8 và phương pháp tính khoảng cách giữa các điểm là
data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
9

data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
8

Vẽ biểu đồ các cụm trong không gian hai chiều

data = pd.read_csv["//raw.githubusercontent.com/phamdinhkhanh/datasets/cf391fa1a7babe490fdd10c088f0ca1b6d377f59/shopping-data.csv", header=0, index_col=0]
print[data.shape]
data.head[]
0

14. 7. Tổng kết¶

Như vậy qua bài này bạn đã nắm được ý tưởng đằng sau thuật toán phân cụm cụm phân cấp. Đây là thuật toán dựa trên chiến lược phân tích [chia] hoặc hợp nhất [kết tụ] các cụm từ theo sơ đồ của đồ thị dendrogram. Thuật toán sẽ bao gồm \[N\] bước, tại mỗi bước ta sẽ tìm ra khoảng cách hoặc tách một điểm thành một cụm dựa trên khoảng cách của . Thuật toán sẽ dừng lại khi đạt ngưỡng về số lượng cụm hoặc đạt ngưỡng về chất lượng của một cụm như đường kính, bán kính, mật độ điểm.

Mặc dù là thuật toán khá hiệu quả nhưng cụm phân cấp lại có chi phí tính toán khá lớn, lên tới \[O[N^3]\]. Do đó chỉ nên áp dụng phương pháp này đối với những bộ dữ liệu có kích thước vừa phải. Để củng cố lại kiến thức về thuật toán phân cụm phân cấp chúng ta hãy cùng làm những bài tập bên dưới.

14. 8. Bài tập¶

  1. Có những chiến lược phân cụm cụm nào trong thuật toán phân cụm cụm từ?

  2. Theo chiến lược hợp nhất, tại thời điểm ban đầu chúng ta có tổng cộng bao nhiêu cụm từ?

  3. Phương pháp phân cụm phân cấp sẽ trải qua bao nhiêu bước ?

  4. Để xác định khoảng cách giữa các cụm từ, chúng ta có những phương pháp đo lường nào?

  5. Phương pháp đo khoảng cách cụm theo phường liên kết chỉ phù hợp khi dữ liệu tồn tại trong khoảng thời gian nào?

  6. Có những phương pháp nào để dừng quá trình phân cụm?

  7. Sử dụng rượu vang bộ dữ liệu, hãy phân chia tệp huấn luyện/kiểm tra và khảo sát bộ dữ liệu

  8. Thực hiện giảm chiều dữ liệu và chuẩn hóa dữ liệu đầu vào

  9. Xây dựng mô hình phân cụm cụm chất lượng từ các trường dữ liệu bắt đầu vào. Lưu ý không sử dụng biến mục tiêu trong quá trình huấn luyện

  10. Sử dụng biến mục tiêu thật từ bộ dữ liệu để đánh giá mức độ chính xác của thuật toán phân cụm thuật toán. Biểu đồ hóa phân phối các cụm từ trong không gian hai chiều

14. 9. Tài liệu tham khảo¶

  1. Các yếu tố của học thống kê, trang 520-528

  2. https. //thống kê web. standford. edu/~jtaylo/courses/stats202/restricted/notes/week9_2x2. pdf

  3. https. //nlp. standford. edu/IR-book/html/htmledition/hierarchical-agglomerative-clustering-1. html

  4. http. //www. tiết kiệm. upf. edu/~michael/stanford/maeb7. pdf

  5. https. //www. youtube. com/watch?v=rg2cjfMsCk4

  6. https. //jbhender. github. io/Thống kê506/F18/GP/Nhóm10. html

  7. https. // stackabuse. com/hierarchical-clustering-with-python-and-scikit-learn/

Làm cách nào để phân cụm theo cấp bậc trong Python?

Làm cách nào để thực hiện phân cụm theo cấp bậc trong Python? . Nhập các Thư viện cần thiết cho Phân cụm theo cấp bậc. Ở đây chúng tôi đang nhập chương trình dendrogram, liên kết,. Bước 2. Nhập thư viện cho Trực quan hóa dữ liệu. Dòng đầu tiên np. set_printoptions [precision=4,suppress=True

Phân cụm theo thứ bậc phân chia là gì?

Phân cụm phân cấp. Tất cả các đối tượng/điểm là một cụm, việc cụm cụm là thực hiện chia cụm lớn thành cụm các cụm nhỏ hơn [từ trên xuống dưới]. . Không sử dụng được tâm của các cụm để tính toán như trong không gian Euclid

Phân cụm trong học máy Python là gì?

Bởi Jason Brownlee vào ngày 6 tháng 4 năm 2020 trong Python Machine Learning. Cập nhật lần cuối vào ngày 20 tháng 8 năm 2020. Phân cụm hoặc phân tích cụm là một vấn đề học tập không giám sát. Nó thường được sử dụng như một kỹ thuật phân tích dữ liệu để khám phá các mẫu dữ liệu thú vị, chẳng hạn như các nhóm khách hàng dựa trên hành vi của họ. Có nhiều thuật toán phân cụm

Phân cụm theo cấp bậc trong học máy là gì?

Phân cụm theo cấp bậc sử dụng cách tiếp cận dựa trên khoảng cách giữa các điểm dữ liệu lân cận để phân cụm. Mỗi điểm dữ liệu được liên kết với hàng xóm gần nhất của nó. Có hai cách bạn có thể thực hiện Phân cụm theo thứ bậc Tích tụ đó là phân cụm theo cách tiếp cận từ dưới lên và Phân chia sử dụng các cách tiếp cận từ trên xuống để phân cụm

Chủ Đề