摘要: rock算法主要用于类别型数据,如关键字、布尔属性、枚举值。该算法能很好的处理大型数据集。rock算法的核心思想是基于链接的相似性的度量。相似度的计算:rock算法是基于链接的,链接意思是:两个数据点公有的邻居,当我们考虑是否需要合并聚类X与聚类Y时,通过计算两个聚类中数据点之间的链接数量;Rock算法相似的计算公式(两个聚类之间)1》 基于欧几里德距离的,均方差2》 基于集合论的Jaccard系数3》 余弦定理,向量求解算法求解步骤:1.设置聚类的个数,和相似度阈值2.设置相似度矩阵和链接矩阵3.rock是自底向上的层次凝聚算法,最初每个点都是单独的聚类,然后进行合并,直到所有的点都合并成一 阅读全文
posted @ 2013-12-05 11:22 曹守鑫 阅读(1340) 评论(0) 推荐(2) 编辑
摘要: 1. 朴素贝叶斯公式P(C|D)=P(D|C)P(C)/P(D)=P(D|C)P(C)/{求和c属于C,P(D|C=c)P(C=c)}可以利用朴素贝叶斯公式计算文档d属于哪一个类别Ci,可以将该文档归类于概率最大的那一类,用于文档分类,垃圾处理概率空间模型;多重伯努力模型,P(w|c)=DFw,c/Nc;这里DFw,c类别C中包含w的文本数量,Nc:表示训练样本中类别c的文本数量,通过最大似然估计,通过将文档拆分成词项,求解概率,通过乘积。多项式模型,考虑了此项的数量问题,计算概率,使贝叶斯分类其器成为一般的分类算法的最好选择;支持向量机:与基于概率论原理的朴树贝叶斯完全不同,是基于几何学原. 阅读全文
posted @ 2013-11-24 12:46 曹守鑫 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 聚类算法基于无监督学习,集不需要任何训练数据,聚类算法针对一个没有标注的实例集合,对所有实例分组。这里介绍两类算法,一个是层次聚类,一个是K均值聚类,主要差别在目标函数不同。层次聚类分为两种:一种以分层的方式建立分组,另一种以聚合聚类。当迭代收敛时停止运算。层次聚类之间主要是代价函数不同cost(Ci,Cj),计算出所有的簇对代价后,选出合并代价最低的两个簇。代价函数:单连同方法,cost(Ci,Cj)=min{dist(Xi,Xj)|Xi属于Ci,Xj属于Cj},通常利用欧几里德距离公式全连通方法:cost(Ci,Cj)=max{dist(Xi,Xj)}平均连通方法:cost(Ci,Cj)= 阅读全文
posted @ 2013-11-24 12:16 曹守鑫 阅读(568) 评论(0) 推荐(0) 编辑
摘要: K-means也是聚类算法中最简单的一种了,但是里面包含的思想却是不一般。最早我使用并实现这个算法是在学习韩爷爷那本数据挖掘的书中,那本书比较注重应用。看了Andrew Ng的这个讲义后才有些明白K-means后面包含的EM思想。 聚类属于无监督学习,以往的回归、朴素贝叶斯、SVM等都是有类别标签y的,也就是说样例中已经给出了样例的分类。而聚类的样本中却没有给定y,只有特征x,比如假设宇宙中的星星可以表示成三维空间中的点集。聚类的目的是找到每个样本x潜在的类别y,并将同类别y的样本x放在一起。比如上面的星星,聚类后结果是一个个星团,星团里面的点相互距离比较近,星团间的星星距离就比较远了。 在聚 阅读全文
posted @ 2013-11-22 09:29 曹守鑫 阅读(271) 评论(0) 推荐(0) 编辑
摘要: C/C++定义常量#define与const比较1。const定义常量是有数据类型的,而#define宏定义常量却没有。这样const定义的常量编译器可以对其进行数据静态类型安全检查,而#define宏定义的常量却只是进行简单的字符替换,没有类型安全检查,且有时还会产生边际效应(不如你愿处)。所谓边际效应举例如下: #define N 100 #define M 200 + N 当程序中使用 M*N 时,原本想要 100 * (200+ N )的却变成了 100 * 200 + N。const检查定的类型,如 const float pi = 3.141592653,实际的pi是3... 阅读全文
posted @ 2013-11-19 21:24 曹守鑫 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 转载:http://hi.baidu.com/abcdcamey/item/0d1d6746c9ef4616896d10ac动态规划和贪心算法的区别动态规划和贪心算法都是一种递推算法均有局部最优解来推导全局最优解不同点:贪心算法:1.贪心算法中,作出的每步贪心决策都无法改变,因为贪心策略是由上一步的最优解推导下一步的最优解,而上一部之前的最优解则不作保留。2.由(1)中的介绍,可以知道贪心法正确的条件是:每一步的最优解一定包含上一步的最优解。动态规划算法:1.全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有最优解2.动态规划的关键是状态转移方程,即如何由 阅读全文
posted @ 2013-11-19 09:33 曹守鑫 阅读(8645) 评论(0) 推荐(0) 编辑
摘要: 1.确定搜索的内容2.网络信息爬去 2.1 抓取网页(网络浏览器和网络爬虫) 2.2 多线程,从一个种子集合开始 2.3 robots.txt允许访问的文件,礼貌策略,访问时间限制 2.4 时新性,评估每一个页面的变化比率 2.5 垂直搜索,面向主题的信息采集,主题爬虫,判断一个网页和某个主题相关, 2.6 深层网络,(私人站点,表单结果,脚本页面(比较复杂,需要模拟js运行)) 2.7 网站地图(robots.txt含有一个对网站地图的引用,可以告诉爬虫爬取网页的相关信息,例如时薪,重要,主题 2.8 分布式网络爬虫,使用多个URL队列,使用散列函数,将URL分配给多个信息采... 阅读全文
posted @ 2013-11-13 16:52 曹守鑫 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。2、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。3、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。也可以认为在将持久化的对象反序列化后,被transient修饰的变量将按照普通类成员变量一样被初始化。如下面的例子package com.kkoolerter;import java.io.File;import java.io.FileInputStream; 阅读全文
posted @ 2013-11-12 15:07 曹守鑫 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.yshjava.cn/post/415.html现在有越来越多的人热衷于做网络爬虫(网络蜘蛛),也有越来越多的地方需要网络爬虫,比如搜索引擎、资讯采集、舆情监测等等,诸如此类。网络爬虫涉及到的 技术(算法/策略)广而复杂,如网页获取、网页跟踪、网页分析、网页搜索、网页评级和结构/非结构化数据抽取以及后期更细粒度的数据挖掘等方方面面,对于 新手来说,不是一朝一夕便能完全掌握且熟练应用的,对于作者来说,更无法在一篇文章内就将其说清楚。因此在本篇文章中,我们仅将视线聚焦在网络爬虫的最基 础技术——网页抓取方面。现在有越来越多的人热衷于做 网络爬虫(网络蜘蛛),也有越来越多 阅读全文
posted @ 2013-11-12 09:57 曹守鑫 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 当出现问题时,而有无法了解问题所在,看JDK源码和编译后的字节码;转载:http://blog.csdn.net/dreaming_my_dreams/article/details/8316085: 推荐博客在J2SE5.0后推出了自动装箱和拆箱的功能,以提高我们的开发效率,然而自动装箱和拆箱实际上是通过编译器来支持的(并非语言本身,或者说虚拟机),因而这种支持也隐藏了部分内部实质,再加上某些类的优化(比如Integer里面的缓存等,参看关于缓存节),就更加容易在特定的环境下产生问题,并且如果不知道原来还无法调试。以下先是简单的介绍了编译器对装箱和拆箱的实现,并根据实现简单介绍一下可能... 阅读全文
posted @ 2013-11-04 21:34 曹守鑫 阅读(193) 评论(0) 推荐(0) 编辑