ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

机器学习—聚类算法

2022-07-01 13:04:59  阅读:191  来源: 互联网

标签:iris 机器 center 算法 聚类 np dist data


聚类(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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有