- 浏览: 41770 次
最新评论
-
V3551G:
你好, 请问有没有测试的demo
java实现GMM算法 -
tcblackmamba:
能看一下您的数据集嘛??
java实现ID3算法 -
u012410225:
博主,问一下,这里有个AprioriUtil,这个class类 ...
java实现apriori算法 -
vigiles:
微笑春天 写道楼主 for(int i = 0; i &l ...
java实现简单的感知器算法(Perceptron Algorithm) -
微笑春天:
楼主 if(result < 0) { // 说明预测错 ...
java实现adaboost算法
文章列表
主要参考了http://blog.csdn.net/sealyao/article/details/6460578中对于fp tree的介绍,fp算法的主要思路如下:
1. 扫描数据集,按照每个item出现的次数对每条记录排序(从大到小)
2. 再次扫描数据集,建立FP tree,同时把相同的item连接到“头”表中
3. 扫描“头表”,为每个item建立CPB(conditional pattern base)
4. 以CPB作为新的数据集,重复步骤2到步骤3,输出频繁项集
树结构代码如下:
package fp;
import java.util.ArrayList;
...
GMM算发步骤:
1. 初始化参数,包括Gauss分布个数、均值、协方差;
2. 计算每个节点属于每个分布的概率;
3. 计算每个分布产生每个节点的概率;
4. 更新每个分布的权值,均值和它们的协方差。
基本参数类:
public class Parameter {
private ArrayList<ArrayList<Double>> pMiu; // 均值参数k个分布的中心点,每个中心点d维
private ArrayList<Double> pPi; // k个GMM的权值
private ArrayList<Arra ...
ID3是经典的分类算法,要理解ID3算法,需要先了解一些基本的信息论概念,包括信息量,熵,后验熵,条件熵。ID3算法的核心思想是选择互信息量最大的属性作为分割节点,这样做可以保证所建立的决策树高度最小。
树结构代 ...
apriori算法是经典的求频繁项集的算法,基本原理是:找出频繁1项集(需事先规定好门限),然后利用频繁1项集产生频繁2项集,以此类推。代码如下:
public class AprioriAlgorithm {
private static final int THRESHOLD = 2;
/**
*
* @Title: appriGen
* @Description: 产生频繁1项集
* @return ArrayList<ArrayList<String>>
* @throws
*/
public ArrayLi ...
kmeans算法是一种经典的聚类算法,其核心思想是:根据给定的聚类个数k,随机选择k个点作为初始的中心节点,然后按照样本中其他节点与这k个节点的距离进行分类。每分类一次就重新计算一次k个中心节点,直到所有样本中的节点所属的分类不再变化为止。
代码:
public class KmeansAlgorithm {
private static final int T = 10; // 最大迭代次数
private static final double THRESHOLD = 0.1; // 中心节点位置变化大小的阈值
public ArrayList<ArrayLi ...
adaboost算法的主要原理是训练若干个弱分类器,根据训练结果赋予它们不同的权值,最后再将这些弱分类器组合起来,形成一个强分类器,adaboost的基本原理在http://wenku.baidu.com/view/49478920aaea998fcc220e98.html###中已经有很详细的描述
这里使用上一篇博客中的感知器算法作为弱分类器,代码如下:
首先是adaboost算法的结果类
/**
*
* @author zhenhua.chen
* @Description: adboost算法的结果类,包括弱分类器的集合和每个弱分类器的权重
* @date 20 ...
使用诸如matlab之类的实验室语言实现各类DM算法很方便,可以很快的获得实验结果,因为各类经典的数学或者DM算法都以函数的形式体现,你要做的大部分工作都可以调用这些函数,而你只需要编写少量代码就ok。但使用这类语言也有缺点,其一是这样做的效率可能不怎么高,原因是你不清楚底层代码的实现而盲目调用。其二是无法真正理解这些经典的数学或者是DM算法(看懂一个算法距离实现一个算法还是很遥远的)。 so,我尝试使用java实现一系列经典的DM算法,以加深对它们的理解。先从比较简单的感知器算法开始。 感知器算法流程:
/**
* 感知器算法:作为adaboost算法的弱分类器
* 参考资料:h ...