Hướng dẫn plot agglomerative clustering python - âm mưu kết tụ clustering python

Một vài tuần trước, chúng tôi đã cho bạn thấy phân cụm dữ liệu là gì và làm thế nào để phân cụm dữ liệu bằng thuật toán K-MEANS trong Python tựa Scikit-learn. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách phân cụm dữ liệu bằng kỹ thuật phân cụm phân cấp, đây là một kỹ thuật phân cụm hữu ích khác.

Nội dung chính

  • Cách phân cụm kết tụ hoạt động
  • Ví dụ về phân cụm kết tụ với dữ liệu giả
  • Ví dụ trong thế giới thực về phân cụm phân cấp
  • Phân khúc khách hàng
  • Làm thế nào để bạn sử dụng phân cụm kết tụ trong Python?
  • Làm thế nào để bạn hình dung một cụm phân cấp trong Python?
  • Làm thế nào để bạn tạo cụm kết tụ?
  • Được sử dụng để hình dung phân cụm kết tụ phân cấp?

Có hai loại thuật toán phân cụm phân cấp: kết tụ và gây chia rẽ. Trong hướng dẫn này, chúng tôi sẽ làm việc với thuật toán phân cụm kết tụ.agglomerative and divisive. In this tutorial, we’ll be working with the agglomerative clustering algorithm.agglomerative and divisive. In this tutorial, we’ll be working with the agglomerative clustering algorithm.

Cách phân cụm kết tụ hoạt động

Ví dụ về phân cụm kết tụ với dữ liệu giả

  1. Ví dụ trong thế giới thực về phân cụm phân cấp
  2. Phân khúc khách hàng
  3. Làm thế nào để bạn sử dụng phân cụm kết tụ trong Python?
  4. Làm thế nào để bạn hình dung một cụm phân cấp trong Python?

Làm thế nào để bạn tạo cụm kết tụ?

Được sử dụng để hình dung phân cụm kết tụ phân cấp?

Có hai loại thuật toán phân cụm phân cấp: kết tụ và gây chia rẽ. Trong hướng dẫn này, chúng tôi sẽ làm việc với thuật toán phân cụm kết tụ.agglomerative and divisive. In this tutorial, we’ll be working with the agglomerative clustering algorithm.

Ví dụ về phân cụm kết tụ với dữ liệu giả

Ví dụ trong thế giới thực về phân cụm phân cấp

Phân khúc khách hàng

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
from matplotlib import pyplot as plt

import numpy as np
import seaborn as sns
sns.set_style["darkgrid"]

Làm thế nào để bạn sử dụng phân cụm kết tụ trong Python?

Làm thế nào để bạn hình dung một cụm phân cấp trong Python?

Output:

Làm thế nào để bạn tạo cụm kết tụ?

Được sử dụng để hình dung phân cụm kết tụ phân cấp?

from scipy.cluster.hierarchy import dendrogram, linkage

dendrogram[linkage[X, 'single'],
            orientation='top',
            distance_sort='descending',
            show_leaf_counts=True]

plt.show[]

Output:

Có hai loại thuật toán phân cụm phân cấp: kết tụ và gây chia rẽ. Trong hướng dẫn này, chúng tôi sẽ làm việc với thuật toán phân cụm kết tụ.agglomerative and divisive. In this tutorial, we’ll be working with the agglomerative clustering algorithm.

Dưới đây là các bước được thực hiện trong quá trình phân cụm kết tụ:

Mỗi điểm trong bộ dữ liệu ban đầu được coi là một cụm riêng lẻ. Do đó, ở phần đầu, số lượng cụm bằng số lượng điểm dữ liệu.

Tiếp theo, một cụm được hình thành bằng cách tham gia hai điểm dữ liệu gần nhất. Do đó, số lượng cụm trở thành N-1 trong đó N là số tổng số điểm dữ liệu.

Bước 2 được lặp lại và nhiều cụm được hình thành bằng cách tham gia hai điểm hoặc cụm dữ liệu gần nhất, cho đến khi một cụm lớn được hình thành.

Một ngưỡng được chọn để chia một cụm lớn thành số cụm mong muốn bằng cách sử dụng khoảng cách giữa mỗi cụm phụ. Dendrograms có thể được sử dụng để tìm ngưỡng này.

Bây giờ chúng tôi đã hiểu quá trình này, hãy để Lừa học cách thực hiện phân cụm kết tụ phân cấp với thư viện Python Scikit-learn.

Để cuối cùng tạo các cụm, bạn cần chuyển bộ dữ liệu của mình sang phương pháp

from scipy.cluster.hierarchy import dendrogram, linkage

dendrogram[linkage[X, 'single'],
            orientation='top',
            distance_sort='descending',
            show_leaf_counts=True]

plt.show[]
3 của thể hiện lớp kết tụ.

Tập lệnh sau đây chia tập dữ liệu của chúng tôi thành 3 cụm.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
2

Output:

Đầu ra hiển thị các nhãn được gán cho các điểm dữ liệu khác nhau trong bộ dữ liệu của chúng tôi. Bạn có thể thấy dữ liệu được gán 0, 1 hoặc 2, đại diện cho 3 cụm của chúng tôi.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
3

Cuối cùng, bạn có thể vẽ sơ đồ bộ dữ liệu được phân cụm bằng tập lệnh sau.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
4

Trong đầu ra, bạn có thể thấy ba cụm riêng biệt. Đầu ra:Output:Output:

Nhận Bộ phát triển Python của chúng tôi miễn phí

Tôi tập hợp một bộ phát triển Python với hơn 100 tập lệnh Python được xây dựng sẵn bao gồm các cấu trúc dữ liệu, gấu trúc, numpy, seeborn, học máy, xử lý tệp, quét web và nhiều hơn nữa - và tôi muốn bạn có nó miễn phí. Nhập địa chỉ email của bạn bên dưới và tôi sẽ gửi một bản sao theo cách của bạn.

Ví dụ trong thế giới thực về phân cụm phân cấp

Phân khúc khách hàng

Giống như chúng tôi đã làm trong hướng dẫn phân cụm K-MEAN của chúng tôi, chúng tôi sẽ đi qua một ví dụ trong thế giới thực về phân cụm phân cấp nơi bạn sẽ tạo các phân khúc khách hàng dựa trên thu nhập hàng năm của họ bằng đô la và điểm chi tiêu của họ [từ 1 đến 100].

Mục tiêu của nhiệm vụ phân cụm này là xác định khách hàng có thu nhập cao và điểm chi tiêu cao. Đây là những khách hàng chúng ta nên nhắm mục tiêu trong các chiến dịch tiếp thị của chúng tôi. Bộ dữ liệu cho phần này có thể được tải xuống ở định dạng CSV từ liên kết GitHub này và đã được nhân đôi ở đây.

Kịch bản sau đây nhập các thư viện mà chúng tôi sẽ cần:

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
5

Nếu bạn gặp lỗi khi thử các tuyên bố này, hãy chắc chắn rằng bạn đã cài đặt Scikit-Learn, Matplotlib, Numpy, Seaborn và Pandas. Cài đặt chúng bằng các lệnh này từ dấu nhắc lệnh của bạn:

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
6

Tập lệnh bên dưới nhập bộ dữ liệu và hiển thị năm hàng đầu tiên của nó bằng phương thức

from scipy.cluster.hierarchy import dendrogram, linkage

dendrogram[linkage[X, 'single'],
            orientation='top',
            distance_sort='descending',
            show_leaf_counts=True]

plt.show[]
4:
X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
8

Output:

Chúng tôi chỉ quan tâm đến thu nhập hàng năm của người Viking [K $] và các cột chi tiêu của người dùng [1-100], vì vậy chúng tôi sẽ giữ các cột này và lọc ra các cột còn lại.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
9

Bây giờ, hãy đưa ra một âm mưu phân tán để xem thu nhập hàng năm của khách hàng so với điểm chi tiêu của họ.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
0

Output:

Từ đầu ra, bạn có thể thấy rằng khách hàng được chia thành 5 phân đoạn [một cụm ở mỗi góc và một cụm ở giữa].

Hãy để âm mưu vẽ các dendrogram cho bộ dữ liệu của chúng tôi và xem cách dữ liệu của chúng tôi được phân cụm thông qua thuật toán phân cụm kết tụ.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
1

Trong đầu ra dưới đây, bạn có thể thấy rộng rãi năm dendrogram lớn, sau đó là nhiều bản đồ nhỏ hơn.

Output:

Bây giờ chúng tôi có một vài hình ảnh về các cụm dữ liệu của chúng tôi, chúng tôi sẽ sử dụng lớp

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
7 từ thư viện Scikit-Learn để chia dữ liệu của chúng tôi thành 5 cụm. Được rồi, hãy tiếp tục và chạy kịch bản bên dưới:
X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
2

Output:

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
3

Mảng đầu ra hiển thị dữ liệu của chúng tôi được chia thành 5 cụm, được biểu thị bằng 0, 1, 2, 3 hoặc 4.

Cuối cùng, kịch bản bên dưới vẽ các khách hàng được phân đoạn thành 5 cụm này thông qua thuật toán phân cụm kết tụ.

X, y = make_blobs[n_samples=100, centers=3, cluster_std = 1.00]
sns.scatterplot[x=X[:,0], y=X[:,1], c =["green"]]
4

Output:

Bỏ qua sự khác biệt về màu sắc, bạn có thể thấy có một số khác biệt nhỏ trong cách thuật toán phân cụm kết tụ đã phân cụm dữ liệu so với thuật toán phân cụm K-mean từ hướng dẫn phân cụm cuối cùng của chúng tôi. Hãy chú ý đến các dữ liệu ở phía dưới bên phải và phía trên bên trái của cụm màu xanh trung tâm:

Nếu bạn thích hướng dẫn này và ví dụ trong thế giới thực này, hãy đăng ký sử dụng biểu mẫu bên dưới và chúng tôi sẽ hướng dẫn bạn qua các ví dụ Python thậm chí nhiều hơn.

Nhận Bộ phát triển Python của chúng tôi miễn phí

Tôi tập hợp một bộ phát triển Python với hơn 100 tập lệnh Python được xây dựng sẵn bao gồm các cấu trúc dữ liệu, gấu trúc, numpy, seeborn, học máy, xử lý tệp, quét web và nhiều hơn nữa - và tôi muốn bạn có nó miễn phí. Nhập địa chỉ email của bạn bên dưới và tôi sẽ gửi một bản sao theo cách của bạn.

Ví dụ trong thế giới thực về phân cụm phân cấp

Phân khúc khách hàng

Giống như chúng tôi đã làm trong hướng dẫn phân cụm K-MEAN của chúng tôi, chúng tôi sẽ đi qua một ví dụ trong thế giới thực về phân cụm phân cấp nơi bạn sẽ tạo các phân khúc khách hàng dựa trên thu nhập hàng năm của họ bằng đô la và điểm chi tiêu của họ [từ 1 đến 100]..

Mục tiêu của nhiệm vụ phân cụm này là xác định khách hàng có thu nhập cao và điểm chi tiêu cao. Đây là những khách hàng chúng ta nên nhắm mục tiêu trong các chiến dịch tiếp thị của chúng tôi. Bộ dữ liệu cho phần này có thể được tải xuống ở định dạng CSV từ liên kết GitHub này và đã được nhân đôi ở đây.

Kịch bản sau đây nhập các thư viện mà chúng tôi sẽ cần:

Nếu bạn gặp lỗi khi thử các tuyên bố này, hãy chắc chắn rằng bạn đã cài đặt Scikit-Learn, Matplotlib, Numpy, Seaborn và Pandas. Cài đặt chúng bằng các lệnh này từ dấu nhắc lệnh của bạn:

Tập lệnh bên dưới nhập bộ dữ liệu và hiển thị năm hàng đầu tiên của nó bằng phương thức

Chúng tôi chỉ quan tâm đến thu nhập hàng năm của người Viking [K $] và các cột chi tiêu của người dùng [1-100], vì vậy chúng tôi sẽ giữ các cột này và lọc ra các cột còn lại.

Bây giờ, hãy đưa ra một âm mưu phân tán để xem thu nhập hàng năm của khách hàng so với điểm chi tiêu của họ.

Từ đầu ra, bạn có thể thấy rằng khách hàng được chia thành 5 phân đoạn [một cụm ở mỗi góc và một cụm ở giữa]..

Hãy để âm mưu vẽ các dendrogram cho bộ dữ liệu của chúng tôi và xem cách dữ liệu của chúng tôi được phân cụm thông qua thuật toán phân cụm kết tụ.

Bước 2: Tiếp theo, chúng ta sẽ xem xét khoảng cách nhỏ nhất trong ma trận gần và hợp nhất các điểm với khoảng cách nhỏ nhất.....

Bước 3: Chúng tôi sẽ lặp lại Bước 2 cho đến khi chỉ còn một cụm ..

Làm thế nào để bạn tạo cụm kết tụ?

Bước mà cụm kết tụ là:...

Mỗi điểm dữ liệu được gán thành một cụm duy nhất ..

Xác định phép đo khoảng cách và tính toán ma trận khoảng cách ..

Xác định các tiêu chí liên kết để hợp nhất các cụm ..

Cập nhật ma trận khoảng cách ..

Lặp lại quy trình cho đến khi mọi điểm dữ liệu trở thành một cụm ..

Được sử dụng để hình dung phân cụm kết tụ phân cấp?

Hình trên được gọi là dendrogram là một sơ đồ đại diện cho phương pháp dựa trên cây.Trong phân cụm phân cấp, dendrogram được sử dụng để hình dung mối quan hệ giữa các cụm.dendrogram which is a diagram representing tree-based approach. In hierarchical clustering, dendrograms are used to visualize the relationship among clusters.dendrogram which is a diagram representing tree-based approach. In hierarchical clustering, dendrograms are used to visualize the relationship among clusters.

Bài Viết Liên Quan

Chủ Đề