当前位置: 首页 > news >正文

做网站的书籍上杭网页设计

做网站的书籍,上杭网页设计,附近量身定做衣服店,大学生app开发经费预算说这算法之前的话#xff0c;前期的准备工作#xff0c;请看我前面的博客。上一篇#xff0c;我说到了K-means聚类算法#xff0c;但是有很多的不足#xff0c;有很多能够改进的地方#xff0c;例如#xff0c;怎样使得聚类效果达到全局最优(可能的最好结果)呢#xff…说这算法之前的话前期的准备工作请看我前面的博客。上一篇我说到了K-means聚类算法但是有很多的不足有很多能够改进的地方例如怎样使得聚类效果达到全局最优(可能的最好结果)呢那么接下来的二分K-means算法就来解决这个问题了。一、二分K-means算法二分K均值算法的基本思想首先将所有的点作为一个簇来对待并对这个簇进行K均值聚类然后计算划分开的两个簇的总误差平方和SSE(Sum of Squared Error)将SSE较小的那个簇经行划分以此类推每次repeat对每个Current簇经行SSE比较每次都是对最小SSE的簇划分(这样好贪心啊)最后当簇的个数达到K值的时候那么整个循环就over了我们的聚类也是完成了最后就是显示结果了。算法伪代码如下#########################################################################################################################################################将所有的点看成一个簇当簇的数目小于K时对于每一个簇计算总误差在给定的簇上面进行K均值聚类(K2)计算将该簇一分为二后的总误差选择使得误差最小的那个簇进行划分操作############################################################################################二、python实现数据集和需要的包和安装过程我前面的博客中都有了详细的讲解因为二分K-means的基础还是K聚类所以我把他们放一起了这样的话统一的接口统一的数据类型这真是极好的接下来我就直接贴代码了。k-means.py###########################################################################def euclDistance1(point1,point2):bsum(np.power(point1-point2,2))returnnp.sqrt(b[0,0]b[0,1])#init points with random using listdef initPoints1(tt,k):num,dimtt.shapepointsnp.zeros((k,dim))r_listrange(0,80)b_listrandom.sample (r_list,k)fori in range(k):index1int(random.uniform (0,num))points[i,:]tt[index1,:]returnpoints#kmeans cluster using listdefkmeans1(tt,k):clusterStateTrueclusterAssmentnp.zeros([len(tt),2])pointsinitPoints1(tt,k)whileclusterState:clusterStateFalsefor i in range(len(tt)):minDisteuclDistance1(points[0,:], tt[i,:])#print(minDist)#minDist100000.0minIndex0for j in range(k):distance euclDistance1(points[j,:],tt[i,:])if distance minDist:minDistdistanceminIndexj#calculate the count of each cluster#update clusterif clusterAssment[i, 0] ! minIndex:clusterState TrueclusterAssment[i, :] minIndex, minDist**2for j in range(k):sumX0
http://www.sadfv.cn/news/893/

相关文章: