2012年10月25日

Apriori算法实战-福彩双色球

摘要: Apriori算法是数据挖掘的入门级算法,这里记录一下用Weka提供的Apriori实现对福彩双色球开奖结果的挖掘过程。 我们的挖掘目标是历届开奖结果中红球的频繁2,3项集。 1. 数据准备 福彩双色球的原理是红球33选6,蓝球是16选1,历届福彩双色球的中奖结果可以在乐彩网站找到,我们可以用一个非常简单的爬虫去爬取这些数据。我这里有已经爬好的数据,从2003年2月23号的第一期开始,到2012年10月24号为止,总共1403期,可以来信(kemaswill@163.com)索取。 双色球是从红球中33选6,所以条记录只有6个数,假设为3,7,11,18,25,29,我们需要对这种记录进行.. 阅读全文

posted @ 2012-10-25 15:22 潘的博客 阅读(1586) 评论(1) 推荐(1) 编辑

2012年10月24日

Ubuntu下Storm安装(单机,分布式)

摘要: 1. Ubuntu下Storm单机版安装 安装Storm还需要提前安装Python,Zookeeper,ZeroMQ,jzmq,然后才是Storm的安装和配置: 1.1 安装Python 一般Linux系统都会自带Python,如果没有可以按照以下步骤安装:wgethttp://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz tar zxf Python-2.7.2.tgz cd Python-2.7.2 ./configure make make install 在/etc/ld.so.conf后追加/usr/local/lib/ sudo 阅读全文

posted @ 2012-10-24 21:50 潘的博客 阅读(4833) 评论(1) 推荐(1) 编辑

2012年10月17日

Mahout学习笔记-推荐算法

摘要: Mahout中的推荐算法主要有:User-based Recommender, Item-based Recommender和Slope-One Recommender。 1. User-based Recommender 该算法的主要思想是:与用户u最相似的用户喜欢的商品有很大可能也是用户u喜欢的商品。1 对于用户u的每一个没有preference的商品i2 对于每一个对商品i有preference的用户v3 计算用户u与v的相似性s//实际上无需在线计算,可以事先计算好存储起来4 将用户v对于商品i的preference,乘以s,加到用户u对商品i的预测pref... 阅读全文

posted @ 2012-10-17 21:55 潘的博客 阅读(727) 评论(0) 推荐(0) 编辑

2012年10月5日

基本算法-堆排序及其Java实现

摘要: (二叉)堆(heap)数据结构是一种数组对象,可以视作一颗完全二叉树,从该二叉树的根开始层次遍历这颗二叉树就可以得到其对应的数组。树的根节点为A[0],对于树中某个节点的坐标i,其左右孩子节点和父亲节点的坐标可以很方便的求得: LEFT(i)=2*i+1; RIGHT(i)=2*i+2; PARENT(i)=i/2 . 有两种二叉堆:最大堆和最小堆。最大堆中,每个节点存储的数值都大于等于其左右两个孩子节点存储的数值,亦即A[i]>=A[LEFT[i]]&&A[i]>=A[RIGHT[i]]。最小堆则正好相反。本文以最大堆为例。 知道了最大堆的定义之后,就要在给定的任 阅读全文

posted @ 2012-10-05 11:24 潘的博客 阅读(1289) 评论(0) 推荐(0) 编辑

2012年10月4日

基本算法-求最大子数组和 及其变种

摘要: 这是个非常常见的算法题,见诸于《编程之美》、《编程珠玑》等经典算法书籍(亦或,经典面试书籍:))。网上有很多关于这个问题的讨论和实现,我谨在此写下自己的理解,可能之前有人写过,但毕竟是自己思考出来的东西,权当记录一下。 问题:一个有N个整数元素的一维数组(A[0],A[1].....,A[n-1]),这个数组当然有很多个子数组(n*n个),求最大的子数组之和。 经典解法:1 maxsofar=02 maxendinghere=03 for i=[0,n)4 maxendinghere=max(maxendinghere+a[i],0)5 maxsofar=max(ma... 阅读全文

posted @ 2012-10-04 20:42 潘的博客 阅读(634) 评论(0) 推荐(0) 编辑

基本算法-0/1背包问题

摘要: 关于0/1背包问题网上有非常多的博文,在此我谨记录一下自己的理解。 问题表述:有N件物品和一个容量为V的背包。第i件物品的体积是C[i](0<=i<=N-1),价值是W[i]。求解将哪些物品装入背包可使价值总和最大。每个物品最多只可以放入背包一次。 这个问题的经典解法思路如下: 我们用f[i][j]表示在考虑前i个物品时体积为j的背包的最大价值,注意,我们并不是把前i个物品全部放入背包,而是考虑i个物品中挑选一些放入背包,使得价值最大的那些情况。 首先,我们考虑只有1个物品(第0个)时,容量分别为0,1,...,V的各背包所包含物品的最大价值。很明显,容量大于等于C[0]的背包的最 阅读全文

posted @ 2012-10-04 19:45 潘的博客 阅读(543) 评论(0) 推荐(0) 编辑

2012年10月2日

机器学习-AdaBoosting及其Java实现

摘要: Adaboost with trees is the best off-the-shelf classifier in the world. -Breiman 1996 决策树算法起源于1984年Breiman,Friedman等人提出的CART,后来又有人(Quinlan等)提出ID3,C4.5,C5.0,CHAID等算法,但是90年代随着支持向量机(SVM)的提出和发展,决策树遇到了极大的挑战。1996年,Freund和Schapire等人提出了Adaboost算法,可以将多个弱分类器(比如Stump决策树)组合起来形成一个更加强大的强分类器,其性能可以与支持向量机媲美,所以才会有Bre. 阅读全文

posted @ 2012-10-02 14:34 潘的博客 阅读(2653) 评论(0) 推荐(0) 编辑

2012年9月29日

机器学习-CART决策树

摘要: 之前泛泛看了下了Random Forest和决策树,现在落实到一个具体决策树算法:CART(Classification and Regression Tree)。 CART是1984年由Breiman, Friedman, Olshen, Stone提出的一个决策树算法,虽然不是第一个机器学习领域的决策树,但却是第一个有着复杂的统计学和概率论理论保证的决策树(这些话太学术了,引自参考文献[2])。 CART是一个二叉决策树,亦即决策树的每个内部节点(决策节点)最多有两个分支。因为之前有博文介绍过ID3和C4.5算法,所以这里只从确定最佳分裂属性和剪枝两方面介绍CART。 1. 确定最佳分裂. 阅读全文

posted @ 2012-09-29 09:54 潘的博客 阅读(3599) 评论(0) 推荐(0) 编辑

2012年9月28日

机器学习-决策树

摘要: 既然上次讲到了随机森林,而随机森林是由多棵决策树构成的,现在就回头仔细看看决策树。 博客园中已经有介绍决策树的非常好的博文。其中详细介绍了ID3,C4.5决策树的构造,这篇博文主要关注在树的每个节点如何确定最佳分裂属性和剪枝。 1.确定最佳分裂属性 一般介绍决策树都是以ID3(Quinlan 1986)为例。ID3算法使用的是信息增益,信息增益的具体细节我不再赘述。在决策树的节点N上,ID3算法选取在该节点对应的训练样例集合D上用输入属性进行分类后信息增益最大的输入属性。信息增益的定义为:。其中S为节点N上的训练样例集合,A为某个输入属性。对于所有在节点N上可用的输入属性,我们选取信息增益值. 阅读全文

posted @ 2012-09-28 17:21 潘的博客 阅读(1790) 评论(0) 推荐(0) 编辑

2012年9月22日

机器学习-Random Forest算法简介

摘要: Random Forest是加州大学伯克利分校的Breiman Leo和Adele Cutler于2001年发表的论文中提到的新的机器学习算法,可以用来做分类,聚类,回归,和生存分析,这里只简单介绍该算法在分类上的应用。 Random Forest(随机森林)算法是通过训练多个决策树,生成模型,然... 阅读全文

posted @ 2012-09-22 22:09 潘的博客 阅读(24522) 评论(2) 推荐(3) 编辑

导航