- 浏览: 15509 次
- 性别:
最新评论
文章列表
首先解压scala,本次选用版本scala-2.11.1
[hadoop@centos software]$ tar -xzvf scala-2.11.1.tgz
[hadoop@centos software]$ su -
[root@centos ~]# vi /etc/profile
添加如下内容:
SCALA_HOME=/home/hadoop/software/scala-2.11.1
PATH=$SCALA_HOME/bin
EXPORT SCALA_HOME
[root@centos ~]# source /etc/profile
[root@centos ~] ...
Canopy并行化处理在Mahout里面有很好的实现,网上有很多人都做过相关的分析,有的写的很详细,本来只想看看Mahout Canopy源码就好了,但还是觉得自己记录下也好。我看的是mahout-distribution-0.9版本。
首先先看下CanopyDriver类:
r ...
Canopy聚类算法是一个将对象分组到类的简单、快速、精确地方法。每个对象用多维特征空间里的一个点来表示。这个算法使用一个快速近似距离度量和两个距离阈值 T1>T2来处理。基本的算法是,从一个点集合开始并且随机删除 ...
前面是单机版的实现,现在通过MapReduce来实现FPGrowth算法,主要用了两个MR,具体过程如下:
1、第一个MR扫描所有数据集统计数据集中的频繁一项集,即每个项的出现次数。
2、读取第一个MR产生的文件,对频繁一项集排序,然后上传到HDFS上。
3、第二个MR扫描所有数据集,并根据第二步产生的排序好的频繁一项集来得出频繁项集。
第二个MR的Map阶段过程:首先根据排好序的频繁一项集将事务数据排好序,然后遍历排好序的事务数据,以频繁项为键,事务数据为值传递给Reduce阶段。
第二个MR的Reduce阶段过程:Reduce节点接收到从Map节点过来的数据,遍历这个频繁项对应的 ...
由于Apriori算法需要多次扫描事务数据库,需要生成候选项集,大大增加了时间与空间的代价,FP Growth算法利用了巧妙的数据结构,大大降低了Aproir挖掘算法的代价,它不需要不断得生成候选项目队列和不断得扫描整个数据库进行比对。为了达到这样的效果,它采用了一种简洁的数据结构,叫做frequent-pattern tree(频繁模式树)。FP-growth算法比Apriori算法快一个数量级,在空间复杂度方面也比Apriori也有数量级级别的优化。对于海量数据,FP-growth的时空复杂度仍然很高,可以采用的改进方法包括数据库划分,数据采样等等。
FPGrowth算法的介绍与 ...
今天看了一下关联规则分析中的Apriori算法,先了解下基本概念:
关联规则分析用于发现隐藏在大型数据集中的有意义的联系。在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性或因果结构。
•关联规则挖掘形式化定义:
•原始数据描述
设I ={i1, i2,…,im}是所有项(item)的集合,若干项的集合,称为项集
上篇文章里面虽然结合hadoop用到mapreduce去计算属性的增益率,但是发现整个程序似乎也并没有做到并行化处理。后面又看了一些网上的资料,自己又想了想,然后又重新实现了一下决策树,大体思路如下:
1、将一个大数据集文件拆分成N个小数据集文件,对数据做好预处理工作,上传到HDFS
2、计算HDFS上小数据集文件的最佳分割属性与分割点
3、汇总N个小数据集文件的最佳划分,投票选出最佳划分
4、N个小数据集的节点根据最终的最佳划分,分割自己节点上的数据,上传到HDFS,跳转到第二步
下面是具体的实现代码:
public class DecisionTreeSprintBJob ...
之前写的代码都是单机上跑的,发现现在很流行hadoop,所以又试着用hadoop mapreduce来处理下决策树的创建。因为hadoop接触的也不多,所以写的不好,勿怪。
看了一些mahout在处理决策树和随机森林的过程,大体过程是Job只有一个Mapper处理,在map方法里面做数据的转换收集工作,然后在cleanup方法里面去做决策树的创建过程。然后将决策树序列化到HDFS上面,分类样本数据集的时候,在从HDFS上面取回决策树结构。大体来说,mahout决策树的构建过程好像并没有结合分布式计算,因为我也并没有仔仔细细的去研读mahout里面的源码,所以可能是我没发现。下面是我实现 ...
了解了一些决策树的构建算法后,现在学习下随机森林。还是先上一些基本概念:
随机森林是一种比较新的机器学习模型。顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类,即选举投票。
优点:
a. 在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合
b. 在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的 ...
接着上面说下决策树的一些其他算法:SLIQ、SPRINT、CART。这些算法则是根据Gini指标来计算的。
SLIQ
SLIQ(Supervised Learning In Quest)利用三中数据结构来构造树,分别是属性表、类表和类直方图。
SLIQ算法在建树阶段,对连续属性采 ...
之前一直做的都是J2EE,最近开始接触数据挖掘,特做笔记记录一下。第一次写东西,写的不好,望大家谅解。先上一些基础概念,大致了解下决策树这个东西:
决策树(decision tree)是一个树结构(可以是二叉树或非二叉树) ...
初学Python,为熟悉文件相关操作,写了一个简单且粗糙的清除项目下svn文件功能。
import os
import time
import stat
def clearSVN(destPath):
if os.path.isdir(destPath) == False :
return;
else :
destFileName = os.path.basename(destPath)
print 'current dir name is %s' %destFileName
if st ...
通过paramiko库实现SSH连接功能
import os
import paramiko
host = '192.168.10.10'
port = 22
username = 'hadoop'
password = 'hadoop'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
private_key_file = os.path.expanduser('C:/Program Files/VMware/VMware Share/id ...
初学Python,参考相关资料做了个简易抓取网页界面,主要为了增加对python的熟识度。主要是通过urllib2获取预先指定的地址的页面,通过BeautifulSoup来解析界面元素,找到href标签,并将相关的数据存入数据库,以方便后面取出继续抓取。整个抓取和解析也是基于多线程与队列来控制的。做的比较简单与粗糙,后续深入可以改进。
import DBHelper
import CodeHelper
import urllib2
from bs4 import BeautifulSoup
import threading as thread
import Queue
im ...