DreamWorks

Never say Never。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Arithmetic

摘要:K-means也是聚类算法中最简单的一种了,但是里面包含的思想却是不一般。最早我使用并实现这个算法是在学习韩爷爷那本数据挖掘的书中,那本书比较注重应用。看了Andrew Ng的这个讲义后才有些明白K-means后面包含的EM思想。 聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x,比如假设宇宙中的星星可以表示成三维空间中的点集。聚类的目的是找到每个样本x潜在的类别y,并将同类别y的样本x放在一起。比如上面的星星,聚类后结果是一个个星团,星团里面的点相互距离比较近,星团间的星星距离就比较远了。 在. 阅读全文

posted @ 2013-08-06 19:38 _Babyface 阅读(153) 评论(0) 推荐(0)

摘要:从《基于比较的排序结构总结》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设,来避免绝大多数的“比较”操作。桶排序就是这样的原理。桶排序的基本思想 假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶)。然后基于某种映射函数,将待排序列的关键字k映射到第i个桶中(即桶数组B的下标 i) ,那么该关键字k就作为B[i]中的元素(每个桶B[i]都是一组大小为N/M的序列)。接着对每个桶B[i]中. 阅读全文

posted @ 2013-08-06 19:35 _Babyface 阅读(333) 评论(0) 推荐(0)

摘要://堆排序---大根堆//此过程只排出第一个大根堆void HeapAdjust(int data[],int s,int m){ //data[s..m]组成的元素序列中,除data[s]之外,其余元素均满足堆定义 //调整data[s]的位置,使之成为大根堆 int j,t; t = data[s]; //备份元素data[s],找到合适的位置后再插入 for (j=2*s+1;j=0;--i) //把data调整成大根堆 HeapAdju... 阅读全文

posted @ 2013-07-23 18:22 _Babyface 阅读(132) 评论(0) 推荐(0)

摘要://折半查找的递归算法int Search_rec(int r[],int low,int high,int key){ int mid; while (lowr[mid]) return Search_rec(r,mid+1,high,key); else return mid; } return -1;}//折半查找算法int Search_rec1(int r[],int low,int high,int key){ int mid; while (low<=high) { ... 阅读全文

posted @ 2013-07-23 18:20 _Babyface 阅读(114) 评论(0) 推荐(0)