王家林老师人工智能AI第24课:Hierarchical Clustering工作原理和工作步骤详解老师微信13928463918

王家林老师人工智能AI第24课:Hierarchical Clustering工作原理和工作步骤详解老师微信13928463918,

此文是根据王家林老师AI 课程写的课后笔记,需要了解更多请联系家林老师 ,文章后附联系方式!

        聚类分析是非监督学习的很重要的领域。所谓非监督学习,就是数据是没有类别标记的,算法要从对原始数据的探索中提取出一定的规律。而聚类分析就是试图将数据集中的样本划分为若干个不相交的子集,每个子集称为一个“簇”。 

        层次聚类(hierarchical clustering)
       层次聚类通过从下往上不断合并簇(Agglomerative),或者从上往下不断分离簇形成嵌套的簇(Divisive)。这种层次的类通过“树状图”来表示。Agglomerative  Clustering算法是一种层次聚类的算法。 

        Hierarchical Clustering的作用及类别

        Hierarchical Clustering:层次化的聚类,得出来的是树形结构(计算机科学的树是一棵根在最上的树),HC不需要指定具体类别数目的,其得到的是一颗树,聚类完成之后,可在任意层次横切一刀,得到指定数目的 cluster,具体有两种方式:

          •  一种是在下而上凝聚方法(agglomerative:先将所有样本的每个点都看成一个簇,然后找出距离最小的两个簇进行合并,不断重复到预期簇或者其他终止条件)。
          • 另一种自上而下分裂方法(divisive:先将所有样本当作一整个簇,然后找出簇中距离最远的两个簇进行分裂,不断重复到预期簇或者其他终止条件)。

        Agglomerative HC运行的4个步骤详解

  1.         把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度;
  2.         寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个).
  3.         重新计算新生成的这个类与各个旧类之间的相似度.
  4.         重复2和3直到所有样本点都归为一类,结束。

Dendrogram工作机制解密:

       计算两个点之间的距离 ,欧式距离(平面几何)。
       计算两个簇之间的距离(Distance between two Cluster),有下面四种方式:
          1.Closest Points  :两个簇最近点的距离
          2.Furthest Points :两个簇最远的点的距离
          3.Average Points  :两个簇所有点两两距离平均值。
          3.Distance Between Centroids  两个簇 簇中心点之间的距离  

欧几里德距离:

        层次聚类使用欧式距离来计算不同类别数据点间的距离(相似度)。 欧式距离的计算公式。


Hierarchical Clustering的代码示例:加载Mall_Customers.csv数据,对商场客户信息进行聚类。

Mall_Customers.csv数据源(部分记录):

CustomerID,Genre,Age,Annual Income (k$),Spending Score (1-100)
0001,Male,19,15,39
0002,Male,21,15,81
0003,Female,20,16,6
0004,Female,23,16,77
0005,Female,31,17,40
0006,Female,22,17,76
0007,Female,35,18,6
0008,Female,23,18,94
0009,Male,64,19,3

hc.py示例代码:

# Hierarchical Clustering

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importing the dataset
dataset = pd.read_csv('Mall_Customers.csv')
X = dataset.iloc[:, [3, 4]].values
# y = dataset.iloc[:, 3].values

# Using the dendrogram to find the optimal number of clusters
import scipy.cluster.hierarchy as sch
dendrogram = sch.dendrogram(sch.linkage(X, method = 'ward'))
plt.title('Dendrogram')
plt.xlabel('Customers')
plt.ylabel('Euclidean distances')
plt.show()

# Fitting Hierarchical Clustering to the dataset
from sklearn.cluster import AgglomerativeClustering
hc = AgglomerativeClustering(n_clusters = 5, affinity = 'euclidean', linkage = 'ward')
y_hc = hc.fit_predict(X)

# Visualising the clusters
plt.scatter(X[y_hc == 0, 0], X[y_hc == 0, 1], s = 100, c = 'red', label = 'Cluster 1')
plt.scatter(X[y_hc == 1, 0], X[y_hc == 1, 1], s = 100, c = 'blue', label = 'Cluster 2')
plt.scatter(X[y_hc == 2, 0], X[y_hc == 2, 1], s = 100, c = 'green', label = 'Cluster 3')
plt.scatter(X[y_hc == 3, 0], X[y_hc == 3, 1], s = 100, c = 'cyan', label = 'Cluster 4')
plt.scatter(X[y_hc == 4, 0], X[y_hc == 4, 1], s = 100, c = 'magenta', label = 'Cluster 5')
plt.title('Clusters of customers')
plt.xlabel('Annual Income (k$)')
plt.ylabel('Spending Score (1-100)')
plt.legend()
plt.show()

运行结果如下:




3980元团购原价19800元的AI课程,团购请加王家林老师微信13928463918

基于王家林老师独创的人工智能“项目情景投射”学习法,任何IT人员皆可在无需数学和Python语言的基础上的情况下3个月左右的时间成为AI技术实战高手:

1,五节课(分别在4月9-13号早上YY视频直播)教你从零起步(无需Python和数学基础)开发出自己的AI深度学习框架,五节课的学习可能胜过你五年的自我摸索

230个真实商业案例代码中习得AI(从零起步到AI实战专家之路):10大机器学习案例、13大深度学习案例、7大增强学习案例(本文档中有案例的详细介绍和案例实现代码截图)

3,100天的涅槃蜕变,平均每天学习1个小时(周一到周六早上6:00-7:00YY频道68917580视频直播),周末复习每周的6个小时的直播课程(报名学员均可获得所有的直播视频、全部的商业案例完整代码、最具阅读价值的AI资料等)


欢迎上海张江的AI团队和美国硅谷的AI团队分享、转发、交流!

猜你喜欢

转载自blog.csdn.net/duan_zhihua/article/details/80371297
今日推荐