K-means是一种聚类算法: 这里运用k-means进行31个城市的分类 城市的数据保存在city.txt文件中,内容如下: BJ,2959.19,730.79,749.41,513.34,467.87,1141.82,478.42,457.64TianJin,2459.77,495.47,697.33,302.87,284.19,735.97,570.84,305.08HeBei,1495.63,515.90,362.37,285.32,272.95,540.58,364.91,188.63…
一.DBSCAN聚类概述 基于密度的方法的特点是不依赖于距离,而是依赖于密度,从而克服基于距离的算法只能发现"球形"聚簇的缺点. DBSCAN的核心思想是从某个核心点出发,不断向密度可达的区域扩张,从而得到一个包含核心点和边界点的最大化区域,区域中任意两点密度相连. 1.伪代码 算法: DBSCAN 输入: E - 半径 MinPts - 给定点在 E 领域内成为核心对象的最小领域点数 D - 集合 输出:目标类簇集合 方法: repeat 1) 判断输入点是否为核心对象 2) 找出核…
摘要 分型是计算生物学的一个新兴领域,在临床决策和生物医学科学中有着重要的应用. 虽然机器学习技术在许多生物医学应用中显示出巨大的潜力,但它们在分型中的用途尚未完全理解. 在本文中,我们研究了基于聚类的多倍体生物的阶段化技术的发展,其中在所研究的生物的细胞中每个染色体存在两个以上的拷贝. 我们基于相关聚类的概念,开发了一个称为PolyCluster(多集群)的新框架,然后使用一个有效的聚类合并机制来最小化驻留在每个集群中的短读之间的不一致量. 我们首先引入一个图形模型来量化每对DNA读数之间的相…
murmurhash2算法 和 DJB Hash算法是目前最流行的hash算法 1.DJB HASH算法 1 2 3 4 5 6 7 8 9 10 11 /* the famous DJB Hash Function for strings */ unsigned int DJBHash(char *str) { unsigned int hash = 5381;   while (*str){ hash = ((hash << 5) + hash) + (*str++); /* times…
之前接触过全局二值化(OTSU算法),还有OPENCV提供的自适应二值化,最近又了解到一种新的局部二值化算法,Sauvola算法. 转载自:http://www.dididongdong.com/archives/4048 值得注意的是,计算r×r邻域内像素值的时候,一种优化的策略是,使用OPENCV提供的积分图,计算整张图像的积分图,那么计算r×r区域内的均值可以在常数时间内实现. CV_EXPORTS_W ); 我们常见的图像二值化算法大致可分为全局阈值方法与局部阈值方法这两种类型.其中OT…
1.引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一个指针指向自己时计数值加1:当删除一个指向自己的指针时,计数值减1,如果计数值减为0,说明已经不存在指向该对象的指针了,所以它可以被安全的销毁了.可以很直观的用下面的图表示: 引用计数算法的优点在于内存管理的开销分布于整个应用程序运行期间,非常的“平滑”,无需挂起应用程序的运行来做垃圾回收:而它的另外一个优势在于空间上的引用局部性比较好,当某个对象的引用计数值变为0时,系统无需访问位于堆…
有两个序列A和B,A=(a1,a2,...,ak),B=(b1,b2,...,bk),A和B都按升序排列.对于1<=i,j<=k,求k个最小的(ai+bj).要求算法尽量高效. int *min_k(int *A, int *B, int len1, int len2, int k) { if (A == NULL || B == NULL || k <= 0) return NULL; int i, j; int *tmp = new int[k]; i = len1; j = len…
之前遇到了一篇好文(https://blog.csdn.net/wallwind/article/details/6889917)准备学习一下的,课程繁忙就忘记了,今日得闲,特来补一下. 自己写一遍加深一下印象. 1.引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量 当有一个指针指向自己时,计数器+1: 当删除一个指向自己的指针时,计数器-1 如果计数器减为0,说明不存在指向该对象的指针了所以它可以被安全地销毁了. 如图: 引用计数算法  优点:…
自组织映射神经网络, 即Self Organizing Maps (SOM), 可以对数据进行无监督学习聚类.它的思想很简单,本质上是一种只有输入层--隐藏层的神经网络.隐藏层中的一个节点代表一个需要聚成的类.训练时采用“竞争学习”的方式,每个输入的样例在隐藏层中找到一个和它最匹配的节点,称为它的激活节点,也叫“winning neuron”. 紧接着用随机梯度下降法更新激活节点的参数.同时,和激活节点临近的点也根据它们距离激活节点的远近而适当地更新参数. 所以,SOM的一个特点是,隐藏层的节点…
出处:http://www.jianshu.com/p/a6c005228a75 开篇 从'严格'意义上说,javascript并不是一门真正的面向对象语言.这种说法原因一般都是觉得javascript作为一门弱类型语言与类似java或c#之类的强型语言的继承方式有很大的区别,因而默认它就是非主流的面向对象方式,甚至竟有很多书将其描述为'非完全面向对象'语言.其实个人觉得,什么方式并不重要,重要的是否具有面向对象的思想,说javascript不是面向对象语言的,往往都可能没有深入研究过javas…