博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第八次作业--聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
阅读量:5150 次
发布时间:2019-06-13

本文共 1876 字,大约阅读时间需要 6 分钟。

import numpy as npx = np.random.randint(1,100,[20,1])y = np.zeros(20)k = 3x

def initcenter(x, k):#初始聚类中心数组    return x[:k]kc = initcenter(x,k)kc

def initcenter(x,k):#初始聚类中心数组    return x[:k]def nearest(kc,i):    d=(abs(kc - i)) #距离绝对值    w=np.where(d==np.min(d))    return w[0][0] #def xclassify(x,y,kc):    for i in range(x.shape[0]):#对数组的每个值进行分类        y[i]=nearest(kc,x[i])    return ykc=initcenter(x,k)y=xclassify(x,y,kc)print(kc,y)

import numpy as npfrom sklearn.datasets import load_iris    iris = load_iris()x = iris.data[:,1]y = np.zeros(150)def initcenter(x,k):    #初始聚类中心数组    return x[0:k].reshape(k)def nearest(kc,i):       #数组中的值,与聚类中心最小距离所在类别的索引号    d = (abs(kc-i))    w = np.where(d == np.min(d))    return w[0][0]def xclassify(x,y,kc):    for i in range(x.shape[0]):       #对数组的每个值进行分类        y[i] = nearest(kc,x[i])    return ydef kcmean(x,y,kc,k):     #计算各聚类新均值    l = list(kc)    flag = False    for c in range(k):        print(c)        m = np.where(y == c)        n=np.mean(x[m])        if l[c] != n:            l[c] = n            flag = True     #聚类中心发生变化            print(l,flag)    return (np.array(l),flag)k = 3kc = initcenter(x,k)flag = Trueprint(x,y,kc,flag)#判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回2while flag:    y = xclassify(x,y,kc)    kc, flag = kcmean(x,y,kc,k)    print(y,kc,type(kc))    print(x,y)import matplotlib.pyplot as pltplt.scatter(x,x,c=y,s=50,cmap="rainbow");plt.show()

用sklearn.cluster.KMeans,鸢尾花花瓣长度数据做聚类并用散点图显示.

import matplotlib.pyplot as pltimport numpy as npfrom sklearn.datasets import load_irisiris = load_iris()X = iris.dataXfrom sklearn.cluster import KMeansest = KMeans(n_clusters = 3)est.fit(X)kc = est.cluster_centers_y_kmeans = est.predict(X)   print(y_kmeans,kc)print(kc.shape,y_kmeans.shape,np.shape)plt.scatter(X[:,0],X[:,1],c=y_kmeans,s=50,cmap='rainbow');plt.show()

转载于:https://www.cnblogs.com/Zengl/p/9885887.html

你可能感兴趣的文章
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
C/C++的64位整型
查看>>
今天第一次写博客
查看>>
asp.net时间类-格式-方法应用
查看>>
win7分盘(复制)
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
【Java集合源码剖析】ArrayList源码剖析
查看>>
【国家集训队】旅游 题解(树剖基础)
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
解除phpMyAdmin导入大型MySQL数据库文件大小限制
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
BZOJ 2223 [Coci 2009]PATULJCI | 主席树练习 (好像是个权限题啊)
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>