聚类算法汇总(附代码)
本次整理了聚类工程里面常见算法,以及给出合适的工程结构方便调用,编写常用的聚类指标当作聚类结果函数,并Github链接在文末,供大家交流学习。
前言
“物以类聚,人以群分”
下面介绍几种聚类算法
一、KMeans算法
主要实现了肘部法确定聚类簇数,以及调用python的库函数进行聚类,可以参考我前面的博文
这篇更新一个带有权重的Kmeans算法,我们有时候需要给特征规定不同的权重,这个可以根据特征重要性来判断,具体更新在欧氏距离的计算上:
def euclidean_distance(one_sample, X):
'''
:param one_sample: 一个样本点输入
:param X: 所有的聚类中心
:return: 样本点距离每一个聚类中心的距离
'''
one_sample = one_sample.reshape(1, -1)
X = X.reshape(X.shape[0], -1)
distances = []
w = [1, 0.2, 0.2]
n = X.shape[0] # n 表示样本的个数
for i in range(n):
subs = one_sample - X[i]
dimension2 = np.power(subs, 2)
w_dimension2