`
czhsuccess
  • 浏览: 41815 次
社区版块
存档分类
最新评论
文章列表
主要参考了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 ...
Global site tag (gtag.js) - Google Analytics