标签: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.参考文章
【创作不易,望点赞收藏,若有疑问,请留言,谢谢】
标签:iris,机器,center,算法,聚类,np,dist,data 来源: https://www.cnblogs.com/dongxuelove/p/16434214.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。