Hướng dẫn dbscan implementation python - python triển khai dbscan

Hướng dẫn dbscan implementation python - python triển khai dbscan


Hình ảnh của tác giả & nbsp;  
 

Nội dung chính ShowShow

  • DBSCAN là gì?
  • Thuật toán phân cụm DBSCAN hoạt động như thế nào?
  • Phân cụm DBSCAN trong Python
  • Trong phần này, chúng tôi sẽ sử dụng thông tin trên và trực quan hóa biểu đồ phân tán. & Nbsp; & nbsp;
  • Reference 

Phân cụm được áp dụng trên bộ dữ liệu để nhóm các bộ dữ liệu tương tự. Nó tìm kiếm những điểm tương đồng và khác biệt trong các điểm dữ liệu và kết hợp chúng lại với nhau. Không có nhãn trong phân cụm. Phân cụm là một học tập không giám sát để tìm cấu trúc cơ bản của bộ dữ liệu. & NBSP;

Các loại thuật toán phân cụm:

  • Phân cụm dựa trên phân vùng
  • Phân cụm mờ
  • Phân cụm phân cấp
  • Phân cụm dựa trên lưới
  • Phân cụm độc quyền
  • Phân cụm chồng chéo
  • Phân cụm dựa trên mật độ

Trong blog này, chúng tôi sẽ tập trung vào các phương pháp phân cụm dựa trên mật độ, đặc biệt là thuật toán DBSCAN với Scikit-learn. Các thuật toán dựa trên mật độ rất giỏi trong việc tìm kiếm các vùng và ngoại lệ mật độ cao. Nó thường được sử dụng để phát hiện bất thường và phân cụm các bộ dữ liệu phi tuyến tính. & NBSP;

DBSCAN là gì?

Thuật toán phân cụm DBSCAN hoạt động như thế nào?

Phân cụm DBSCAN trong PythonK clusters initially. Instead, it requires two parameters: eps and minPts.

  • Trong phần này, chúng tôi sẽ sử dụng thông tin trên và trực quan hóa biểu đồ phân tán. & Nbsp; & nbsp;: it is the radius of specific neighborhoods. If the distance between two points is less than or equal to esp, it will be considered its neighbors.
  • Phân cụm được áp dụng trên bộ dữ liệu để nhóm các bộ dữ liệu tương tự. Nó tìm kiếm những điểm tương đồng và khác biệt trong các điểm dữ liệu và kết hợp chúng lại với nhau. Không có nhãn trong phân cụm. Phân cụm là một học tập không giám sát để tìm cấu trúc cơ bản của bộ dữ liệu. & NBSP;: minimum number of data points in a given neighborhood to form the clusters. 

Các loại thuật toán phân cụm:

Phân cụm dựa trên phân vùng


Phân cụm mờ

Thuật toán phân cụm DBSCAN hoạt động như thế nào?

  1. Phân cụm DBSCAN trong Pythonp. It is also called core point if there are more data points than minPts in a neighborhood. 
  2. Trong phần này, chúng tôi sẽ sử dụng thông tin trên và trực quan hóa biểu đồ phân tán. & Nbsp; & nbsp;eps and minPts to identify all density reachable points.
  3. Phân cụm được áp dụng trên bộ dữ liệu để nhóm các bộ dữ liệu tương tự. Nó tìm kiếm những điểm tương đồng và khác biệt trong các điểm dữ liệu và kết hợp chúng lại với nhau. Không có nhãn trong phân cụm. Phân cụm là một học tập không giám sát để tìm cấu trúc cơ bản của bộ dữ liệu. & NBSP;eps and minPts if p is a core point. 
  4. Các loại thuật toán phân cụm:p is a border point. A data point is called a border point if it has fewer points than minPts in the neighborhood. 
  5. Phân cụm dựa trên phân vùng

Phân cụm DBSCAN trong Python

Trong phần này, chúng tôi sẽ sử dụng thông tin trên và trực quan hóa biểu đồ phân tán. & Nbsp; & nbsp;

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN

Phân cụm được áp dụng trên bộ dữ liệu để nhóm các bộ dữ liệu tương tự. Nó tìm kiếm những điểm tương đồng và khác biệt trong các điểm dữ liệu và kết hợp chúng lại với nhau. Không có nhãn trong phân cụm. Phân cụm là một học tập không giám sát để tìm cấu trúc cơ bản của bộ dữ liệu. & NBSP;

Các loại thuật toán phân cụm:X_train dataframe. 

df = pd.read_csv('Mall_Customers.csv')
X_train = df[['Age', 'Annual Income (k$)', 'Spending Score (1-100)']]

Phân cụm dựa trên phân vùngX_train on the DBSCAN algorithm with eps 12.5 and min_sample 4. After that, we will create a DBSCAN_dataset from X_train and create a ‘Cluster’ column using clustering.labels_. 

clustering = DBSCAN(eps=12.5, min_samples=4).fit(X_train)
DBSCAN_dataset = X_train.copy()
DBSCAN_dataset.loc[:,'Cluster'] = clustering.labels_ 

Phân cụm mờ

Phân cụm phân cấp

Phân cụm dựa trên lưới


Phân cụm độc quyền

Trong phần này, chúng tôi sẽ sử dụng thông tin trên và trực quan hóa biểu đồ phân tán. & Nbsp; & nbsp;

Phân cụm được áp dụng trên bộ dữ liệu để nhóm các bộ dữ liệu tương tự. Nó tìm kiếm những điểm tương đồng và khác biệt trong các điểm dữ liệu và kết hợp chúng lại với nhau. Không có nhãn trong phân cụm. Phân cụm là một học tập không giám sát để tìm cấu trúc cơ bản của bộ dữ liệu. & NBSP;

Trực quan hóa cho thấy rõ mỗi khách hàng là một phần của một trong 5 cụm và chúng tôi có thể sử dụng thông tin này để cung cấp ưu đãi cao cấp cho khách hàng với các cụm màu tím và ưu đãi rẻ hơn cho khách hàng với các cụm màu xanh đậm. & NBSP;

outliers = DBSCAN_dataset[DBSCAN_dataset['Cluster']==-1]

fig2, (axes) = plt.subplots(1,2,figsize=(12,5))

sns.scatterplot('Annual Income (k$)', 'Spending Score (1-100)',

                data=DBSCAN_dataset[DBSCAN_dataset['Cluster']!=-1],

                hue='Cluster', ax=axes[0], palette='Set2', legend='full', s=200)

sns.scatterplot('Age', 'Spending Score (1-100)',

                data=DBSCAN_dataset[DBSCAN_dataset['Cluster']!=-1],

                hue='Cluster', palette='Set2', ax=axes[1], legend='full', s=200)

axes[0].scatter(outliers['Annual Income (k$)'], outliers['Spending Score (1-100)'], s=10, label='outliers', c="k")

axes[1].scatter(outliers['Age'], outliers['Spending Score (1-100)'], s=10, label='outliers', c="k")
axes[0].legend()
axes[1].legend()

plt.setp(axes[0].get_legend().get_texts(), fontsize='12')
plt.setp(axes[1].get_legend().get_texts(), fontsize='12')

plt.show()


& nbsp;

Trong phần này, chúng tôi sẽ sử dụng thông tin trên và trực quan hóa biểu đồ phân tán. & Nbsp; & nbsp;

Có hai lô: Thu nhập hàng năm so với điểm chi tiêu và thu nhập hàng năm so với tuổi. Các cụm được xác định bởi màu sắc và các ngoại lệ được định nghĩa là các chấm đen nhỏ. & Nbsp;

Trực quan hóa cho thấy rõ mỗi khách hàng là một phần của một trong 5 cụm và chúng tôi có thể sử dụng thông tin này để cung cấp ưu đãi cao cấp cho khách hàng với các cụm màu tím và ưu đãi rẻ hơn cho khách hàng với các cụm màu xanh đậm. & NBSP;eps and min_samples using silhouette score and heatmap. eps and min_samples using silhouette score and heatmap. 

Reference 

  • Sự kết luận
  • DBSCAN là một trong nhiều thuật toán được sử dụng để phân khúc khách hàng. Bạn có thể sử dụng phương tiện K hoặc phân cụm phân cấp để có kết quả tốt hơn. Các thuật toán phân cụm thường được sử dụng cho các công cụ đề xuất, phân khúc thị trường và khách hàng, phân tích mạng xã hội và phân tích tài liệu. & NBSP;
  • Trong blog này, chúng tôi đã học được những điều cơ bản của thuật toán dựa trên mật độ DBCAN và cách chúng tôi có thể sử dụng nó để tạo phân đoạn khách hàng bằng cách sử dụng Scikit-learn. Bạn có thể cải thiện thuật toán bằng cách tìm EPS và MIN_SAMPLES tối ưu bằng cách sử dụng điểm số hình bóng và bản đồ nhiệt. & NBSP;
  • Phân cụm DBSCAN - Giải thích. Giải thích lý thuyết chi tiết

DBSCAN trong Python (với bộ dữ liệu ví dụ)Abid Ali Awan (@1abidaliawan) is a certified data scientist professional who loves building machine learning models. Currently, he is focusing on content creation and writing technical blogs on machine learning and data science technologies. Abid holds a Master's degree in Technology Management and a bachelor's degree in Telecommunication Engineering. His vision is to build an AI product using a graph neural network for students struggling with mental illness.Abid Ali Awan (@1abidaliawan) is a certified data scientist professional who loves building machine learning models. Currently, he is focusing on content creation and writing technical blogs on machine learning and data science technologies. Abid holds a Master's degree in Technology Management and a bachelor's degree in Telecommunication Engineering. His vision is to build an AI product using a graph neural network for students struggling with mental illness.