Trong bài viết này, chúng ta sẽ thấy cách cắt một dendrogram phân cấp thành các cụm thông qua một giá trị ngưỡng bằng cách sử dụng SCIPY trong Python.
Dendrogram là một loại sơ đồ cây cho thấy phân cụm phân cấp, tức là mối quan hệ giữa các bộ dữ liệu tương tự. Nó được sử dụng để phân tích mối quan hệ phân cấp giữa các lớp khác nhau. Gói Scipy.Cluster trang bị cho chúng tôi các công cụ cần thiết để phân cụm phân cấp và vẽ đồ thị. Vì vậy, phải được nhập khẩu vào môi trường.scipy.cluster package equips us with tools needed for hierarchical clustering and dendrogram plotting. Thus, has to be imported into the environment.
Trước tiên chúng ta hãy tạo một số dữ liệu mẫu và vẽ nó bình thường. Chúng tôi đã lấy một loạt các điểm dữ liệu ngẫu nhiên làm đầu vào của chúng tôi, chúng tôi sẽ vẽ đồ thị của họ sau đó.
Ví dụ: Chương trình mẫu để tạo và trực quan hóa dữ liệu Sample program for creating and visualizing data
Python3
from scipy.cluster import hierarchy
from scipy.cluster.hierarchy import dendrogram
import numpy as np
import scipy.cluster 1
scipy.cluster 2scipy.cluster 3 scipy.cluster 4
scipy.cluster 5scipy.cluster 6scipy.cluster 7scipy.cluster 8scipy.cluster 9import0
scipy.cluster 5scipy.cluster 6import3scipy.cluster 8import3import0
scipy.cluster 5scipy.cluster 6import9scipy.cluster 8hierarchy1import0
scipy.cluster 5scipy.cluster 6scipy.cluster 9scipy.cluster 8hierarchy7import0
scipy.cluster 5scipy.cluster 6from1scipy.cluster 8scipy.cluster 7import0
scipy.cluster 5scipy.cluster 6hierarchy7scipy.cluster 8import9import0
scipy.cluster 5scipy.cluster 6scipy.cluster.hierarchy 3scipy.cluster 8scipy.cluster.hierarchy 5import0
scipy.cluster 5scipy.cluster 6scipy.cluster.hierarchy 9scipy.cluster 8import1import2
import3
import4scipy.cluster 3 import6
import7
import8
Output:
Các điểm dữ liệu đầu vào mẫu
Dendrogram có thể được vẽ dễ dàng bằng cách sử dụng ma trận liên kết. Một ma trận liên kết được tạo thông qua hàm linkage (). Ma trận này chứa mã hóa phân cụm phân cấp để kết xuất dưới dạng dendrogram.
Syntax:
Phân cấp.Linkage (y, phương thức = Hồi đơn, số liệu = Hồi Euclidean, Optimal_ordering = false):
Parameters:
- Y: Mảng đầu vào 1D/ 2D của vectơ đầu vào & nbsp; Input 1D/ 2D array of input vector
- Phương pháp: Phương pháp tính toán khoảng cách giữa cụm mới được hình thành và các điểm khác. Phương thức = ’đơn,’ hoàn chỉnh, ’trung bình,‘ centroid, methods for calculating the distance between the newly formed cluster and other points. method = ‘single’ , ‘complete’, ‘average’, ‘centroid’
- Số liệu: Số liệu khoảng cách để sử dụng trong trường hợp đầu vào là một tập hợp các vectơ quan sát distance metric to use in the case that input is a collection of observation vectors
- Optimal_ordering: Nếu đúng, ma trận liên kết sẽ được sắp xếp lại để khoảng cách giữa các lá liên tiếp là tối thiểu If True, the linkage matrix will be reordered so that the distance between successive leaves is minimal
Ví dụ: Tạo một dendrogram cho dữ liệu của chúng tôi Creating a Dendrogram for our data
Python3
import9scipy.cluster 3 dendrogram1scipy.cluster 3dendrogram3dendrogram4
dendrogram5
dendrogram6dendrogram7dendrogram4
dendrogram9scipy.cluster 3 import1
Output:
Dendrogram ban đầu mà không có bất kỳ sự giới hạn nào
Bây giờ, hãy để Lừa cắt Dendrogram bằng một giá trị ngưỡng. Chúng tôi đã chọn giá trị cắt hoặc ngưỡng là 4. Ở giá trị này, một đường thẳng đứng cũng có thể được rút ra. & NBSP;
Đối với giá trị cắt/ngưỡng được chọn, chúng ta luôn có thể chỉ cần đếm số lượng giao điểm với các đường thẳng đứng của dendrogram để có được số lượng cụm được hình thành. Giả sử chúng tôi chọn cắt MAX_D = 6, chúng tôi sẽ nhận được 2 cụm cuối cùng.
Ví dụ: Cắt dendrogram ở giá trị ngưỡng Cutting dendrogram at the threshold value
Python3
import2scipy.cluster 3 scipy.cluster 9
import9scipy.cluster 3 dendrogram1scipy.cluster 3dendrogram3dendrogram4
dendrogram5
dendrogram6dendrogram7dendrogram4
dendrogram9scipy.cluster 3 import1
Dendrogram ban đầu mà không có bất kỳ sự giới hạn nào
Output:
Bây giờ, hãy để Lừa cắt Dendrogram bằng một giá trị ngưỡng. Chúng tôi đã chọn giá trị cắt hoặc ngưỡng là 4. Ở giá trị này, một đường thẳng đứng cũng có thể được rút ra. & NBSP;