编程语言
首页 > 编程语言> > 机器学习—聚类算法

机器学习—聚类算法

作者:互联网

聚类(Clustering)是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。

1.K-Means聚类鸢尾花数据

from sklearn.datasets import load_iris
import numpy as np

iris = load_iris()
data = iris.data
n = len(data)
k = 2
dist = np.zeros([n, k+1])
# 1、选中心
center = data[:k, :]
center_new = np.zeros([k, data.shape[1]])
while True:
    # 2、求距离
    for i in range(n):
        for j in range(k):
            dist[i, j] = np.sqrt(sum((data[i, :] - center[j, :])**2))
        dist[i, k] = np.argmin(dist[i, :k])   # 3、归类

    for i in range(k):   # 4、求新类中心
        index = dist[:, k] == i
        center_new[i, :] = data[index, :].mean(axis=0)

    if np.all(center == center_new):   # 5、判定结束
        break
    center = center_new

2.调用sklearn实现聚类分析

from sklearn.datasets import load_iris
from sklearn.cluster import KMeans

iris = load_iris()

model = KMeans(n_clusters=3).fit(iris.data)

print(model.labels_)

3.参考文章

【聚类】五种主要聚类算法_

机器学习(7)——聚类算法 - 简书

【创作不易,望点赞收藏,若有疑问,请留言,谢谢】

标签:iris,机器,center,算法,聚类,np,dist,data
来源: https://www.cnblogs.com/dongxuelove/p/16434214.html