python kmeans聚类,python聚类算法实践
代码importnumpyasnpnp.set _ print选项(精度=2) #设置矩阵输出精度,小数点后两位的defjmax(a):)、defjmax .数据标准化最大值规范化方法(、 保存NP.array)的dype=float(forjinrange)c . shape(1):)c中的列forIinrange) : ) c中的列我,遍历I ) returncdefAlike(a):" "用模糊相似矩阵最大最小法" " a=jmax(a ) a ) #标准化的数据c=NP .zeros()a . shape[0]a . shape[0]dype=float(mmax=[]mmin=[]for iinrange)c . shape(0)# c遍历的行forjinrange ) c.shape(0)即求出我行和j行并行mmin.extend ([ NP.fmin (a [ I,],a[j,]))取我行和j行的最大值,即求出我行和j行的交叉对于范围()c . shape[1]被转换为与c同类型的矩阵mmin=NP.array(mmin).形状(0),其中c。形状[1]表示与c同类型的矩阵forinrange (forinrange)遍历的列c(I,j ) c j ) #赋值相似度returncdefhecheng(a,b):)))求模糊的有矩阵a和模糊矩阵b的合成()、b=np.array(a ) a)、np .数组c=NP .零_like)一个点遍历a的行元素forjinrange)b . shape forkin range(a . shape(1)):空。append(min)a(I,k),b ) k,j))矩阵元素小于c)我,取j)=最大值(空) )大于小结果的返回电脑里鲍比(a ) a):求模糊矩阵a的闭包相似的模糊相似矩阵c=a whilline闭包条件返回np .在(c ) c附近,小数=2) #返回传递闭包,四舍五入,保留两位小数的break else 3360 continuedefjulei):a=鲍比(一)传递闭包dtype=int)for iinrange)c . shape[0])3360 for jinrange(c j)=1 else:c(I,j )=0returncdefresult(a,g ) 3333330 g ) c=[] #显示同种聚合forIinrange的len(a):if a[I][j]==1:x . append(j)j)else:continue c。追加(x()删除重复1forIinrange(len))的国际金融公司国际金融公司:d。追加(c [删除len(d)3360 ifd)I)==d(j):DD。附加)j)用于iinrange(DD)len(DD)3360 #重复3try3360d.pop ) d删除重复4 try:c . pop c . index(d[I])除值错误330:#重复5try:c.pop(c.index(DD[I]))删除except值错误:continueforinrange)len(c))3360 for Jin range=1 returncdefmain(: 测试代码x ) 5,7 ] n数据标准化(最大值规范化法(n),jmax(x))打印)(n模糊相似矩阵(最大最小法))n),相似(x ) x))打印(名词)分发闭包)n)、的鲍比(十
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。