朴素贝叶斯分类



朴素贝叶斯分类

先上问题吧,我们统计了14天的气象数据(指标包括outlook,temperature,humidity,windy),并已知这些天气是否打球(play)。如果给出新一天的气象指标数据:sunny,cool,high,TRUE,判断一下会不会去打球。

table 1

outlook
temperature
humidity
windy
play

sunny
hot
high
FALSE
no

sunny
hot
high
TRUE
no

overcast
hot
high
FALSE
y[......]

Read more

聚类算法之BIRCH(Java实现)



聚类算法之BIRCH(Java实现)

BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)天生就是为处理超大规模(至少要让你的内存容不下)的数据集而设计的,它可以在任何给定的内存下运行。关于BIRCH的更多特点先不介绍,我先讲一下算法的完整实现细节,对算法的实现过程搞清楚后再去看别人对该算法的评价才会感受深刻。

你不需要具备B树的相关知识,我接下来会讲得很清楚。

BIRCH算法的过程就是要把待分类的数据插入一棵树中,并且原始数据都在叶子节点上。这棵树看起来是这个样子:

 [......]

Read more

FP-Tree算法的实现

FP-Tree算法的实现

在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库。于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效的一种。

支持度和置信度
严格地说Apriori和FP-Tree都是寻找频繁项集的算法,频繁项集就是所谓的“支持度”比较高的项集,下面解释一下支持度和置信度的概念。

设事务数据库为:

复制代码
A  E  F  G

A  F  G

A  B  E  F  G

E  F  G
复制代码
则{A,F,G}的支持度数为3,支持度[......]

Read more

eclipse Java heap space 解决方案

eclipse Java heap space 解决方案

当运行程序出现Java heap space 原因就是jvm内存不足

eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无关。

那么怎么才能设置某个程序的jvm大小呢(当然控制台运行的话不会存在这个问题,如:java -Xms256m -Xmx1024m classname,这样就可以把当前程序的jvm大小给设定)?

因为eclipse里默认的一个程序的jvm配置为:[......]

Read more

svmrank原理

svmrank原理

机器学习分类过程中,如果遇到多个分类器表现差不多,想综合各个分类器的优势时,可以考虑多分类器投票,即VOTING的方法,也可以考虑learning to rank的方法优选偏重于正确分类标签的预测得分组合。下面简单总结一下使用svmrank进行集成学习的方法。
首先把数据分为训练集、验证集、测试集,然后都进行特征提取和量化

训练集(training):
原始数据,每一列都是特征,用来提取原始特征,训练多个基分类器

验证集(developing):

结合多个基分类器对每种类别的得分,训练集成分类器

测试集(testing):

最终测试用[......]

Read more

Java使用commons-dbcp2.0

Java使用commons-dbcp2.0

dbcp 是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。单独使用dbcp需要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar。

1.关于commons-pool及commons-dbcp版本区别
之前项目一直用的是commons-dbcp1.4,因为项目中原来用的是jedis-2.1.0.jar,升级到jedis-2.5.1.jar之后,jedis内部所用的池依赖由原来的commons-pool-1.6.jar改为了common[......]

Read more

Commons CLI使用详解

Commons CLI使用详解

Preface:

Apache Commons CLI library为用户提供了一个解释命令行的API.它在解释命令行时主要有三个状态,即:定义、解释和询问交互。下面的部分中将会详细的讨论这三个部分的内容,以及怎么样利用CLI实现它们。

接下来的部分就是一些实例,通过实例演示了如何使用Commons CLI来解释处理命令。

Example:

下面就是我们要实现的效果(在这里参数与命令没有任何特殊意义,只是为了表示如何完成相应的功能):
usage: gmkdir [-p][-v/--verbose][--block-size[......]

Read more

Commons Configuration使用

Commons Configuration使用

项目开发过程中不免有许多在运行过程中需要经常改动的参数,比如说数据库的连接参数等。把这些需要经常改动的参数保存在配置文件中,让用户可以修改,这样既增强了项目的适应能力,也减少了我们的维护成本。这种做法不失为一个很好选择。

不过,这并不是一个很新的技巧,在很早的Windows版本中就有大量的INI文件,还有功能更加强大的注册表。在课堂上我们已经学习了把 Oracle的配置参数保存在属性文件(.properties)中,在运行的过程中读取使用,使用也比较简单,只需要查看一下Sun的JDK帮助文档, 找到Properties类,使用该类的l[......]

Read more

commons-digester使用

commons-digester使用

digester组件简化了xml文件处理操作,能将xml文件按照事先确定的规则(采用编码形式或xml配置文件形式),映射成java对象。digester组件现在最新版本是2.0,它所依赖的组件是:commons-logging(推荐1.1版本),BeanUtils(推荐1.8版本),还有需要jdk1.5.
基本概念
1. 在Digester的内部采用SAX来解析XML文件。为了能够正确的使用它,必须在解析之前进行相应的设置。同时,在解析xml文件的过程中,它使用Stack来保存和检索这个期间产生的对象.
2. 为了简化使用,它通过匹配模式来定位[......]

Read more

Java中的System类

Java中的System类System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。

由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。

         1、成员变量

System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。

例如:

System.out.println(“Test”);

该行代码的作用是将字符串”Test”输出到系统的标[......]

Read more