Những điều cơ bản về phân cụm

Phân cụm trong Python

Shaumik Daityari

Business Analyst

Cụm là gì?

  • Nhóm các mục có đặc điểm tương tự
  • Google News: bài viết có từ và liên kết từ tương tự cùng xuất hiện
  • Phân khúc khách hàng

Phân cụm trong Python

Thuật toán phân cụm

  • Phân cụm phân cấp
  • Phân cụm K-means
  • Thuật toán khác: DBSCAN, phương pháp Gaussian
Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm phân cấp với SciPy

from scipy.cluster.hierarchy import linkage, fcluster
from matplotlib import pyplot as plt
import seaborn as sns, pandas as pd
x_coordinates = [80.1, 93.1, 86.6, 98.5, 86.4, 9.5, 15.2, 3.4, 
                 10.4, 20.3, 44.2, 56.8, 49.2, 62.5, 44.0]
y_coordinates = [87.2, 96.1, 95.6, 92.4, 92.4, 57.7, 49.4, 
                 47.3, 59.1, 55.5, 25.6, 2.1, 10.9, 24.1, 10.3]

df = pd.DataFrame({'x_coordinate': x_coordinates,
                   'y_coordinate': y_coordinates})
Z = linkage(df, 'ward')
df['cluster_labels'] = fcluster(Z, 3, criterion='maxclust')
sns.scatterplot(x='x_coordinate', y='y_coordinate', 
                hue='cluster_labels', data = df)
plt.show()
Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm trong Python

Phân cụm K-means với SciPy

from scipy.cluster.vq import kmeans, vq
from matplotlib import pyplot as plt
import seaborn as sns, pandas as pd

import random
random.seed((1000,2000))
x_coordinates = [80.1, 93.1, 86.6, 98.5, 86.4, 9.5, 15.2, 3.4, 
                 10.4, 20.3, 44.2, 56.8, 49.2, 62.5, 44.0]
y_coordinates = [87.2, 96.1, 95.6, 92.4, 92.4, 57.7, 49.4, 
                 47.3, 59.1, 55.5, 25.6, 2.1, 10.9, 24.1, 10.3]

df = pd.DataFrame({'x_coordinate': x_coordinates, 'y_coordinate': y_coordinates})
centroids,_ = kmeans(df, 3)
df['cluster_labels'], _ = vq(df, centroids)
sns.scatterplot(x='x_coordinate', y='y_coordinate', 
                hue='cluster_labels', data = df)
plt.show()
Phân cụm trong Python

Phân cụm trong Python

Tiếp theo: bài tập thực hành

Phân cụm trong Python

Preparing Video For Download...