随笔分类 -  数据分析&挖掘

谈到数据分析和挖掘相关的技术
摘要:本文目的 当前spark(1.3版)随机森林实现,没有包括OOB错误评估和变量权重计算。而这两个功能在实际工作中比较常用。OOB错误评估可以代替交叉检验,评估模型整体结果,避免交叉检验带来的计算开销。现在的数据集,变量动辄成百上千,变量权重有助于变量过滤,去掉无用变量,提高计算效率,同时也可以帮助理... 阅读全文
posted @ 2015-05-28 19:39 bourneli 阅读(3985) 评论(0) 推荐(0) 编辑
摘要:前言 最近阅读了spark mllib(版本:spark 1.3)中Random Forest的实现,发现在分布式的数据结构上实现迭代算法时,有些地方与单机环境不一样。单机上一些直观的操作(递归),在分布式数据上,必须进行优化,否则I/O(网络,磁盘)会消耗大量时间。本文整理spark随机森林实现中的相关技巧,方便后面回顾。 随机森林算法概要 随机森林算法的详细实现和细节,可以参考论文Brei... 阅读全文
posted @ 2015-05-03 14:23 bourneli 阅读(9019) 评论(0) 推荐(0) 编辑
摘要:背景 使用spark开发已有几个月。相比于python/hive,scala/spark学习门槛较高。尤其记得刚开时,举步维艰,进展十分缓慢。不过谢天谢地,这段苦涩(bi)的日子过去了。忆苦思甜,为了避免项目组的其他同学走弯路,决定总结和梳理spark的使用经验。 Spark基础 基石RDD ... 阅读全文
posted @ 2015-04-05 16:11 bourneli 阅读(52639) 评论(3) 推荐(2) 编辑
摘要:本文目的 最近在使用Spark进行数据清理的相关工作,初次使用Spark时,遇到了一些挑(da)战(ken)。感觉需要记录点什么,才对得起自己。下面的内容主要是关于Spark核心—RDD的相关的使用经验和原理介绍,作为个人备忘,也希望对读者有用。 为什么选择Spark 原因如下 代码复用:使用Scala高级语言操作Spark,灵活方便,面向对象,函数编程的语言... 阅读全文
posted @ 2015-03-07 20:36 bourneli 阅读(7255) 评论(0) 推荐(3) 编辑
摘要:背景 上一篇文章总结了linear hard SVM,解法很直观,直接从SVM的定义出发,经过等价变换,转成QP问题求解。这一讲,从另一个角度描述hard SVM的解法,不那么直观,但是可以避免feature转换时的数据计算,这样就可以利用一些很高纬度(甚至是无限维度)的feature转换,得到一些更精细的解。 拉格朗日乘子式 首先,回顾一下SVM问题的定义,如下: 线性约束... 阅读全文
posted @ 2015-01-03 21:33 bourneli 阅读(3069) 评论(0) 推荐(0) 编辑
摘要:背景 支持向量机(SVM)背后的数学知识比较复杂,之前尝试过在网上搜索一些资料自学,但是效果不佳。所以,在我的数据挖掘工具箱中,一直不会使用SVM这个利器。最近,台大林轩田老师在Coursera上的机器学习技法课程上有很详细的讲授SVM的原理,所以机会难得,一定要好好把握这次机会,将SVM背后的原理梳理清楚并记录下来。这篇文章总结第一讲linear hard SVM的相关内容。 最... 阅读全文
posted @ 2015-01-02 21:21 bourneli 阅读(3829) 评论(0) 推荐(0) 编辑
摘要:最近学习特征工程(Feature Enginnering)的相关技术,主要包含两块:特征选取(Feature Selection)和特征抓取(Feature Extraction)。这里记录一些要点,作为备忘。特征选取R中的FSelector包实现了一些特征选取的算法,主要分两大类:Algorith... 阅读全文
posted @ 2014-11-18 19:51 bourneli 阅读(4044) 评论(0) 推荐(0) 编辑
摘要:问题背景 最近某个游戏内测,给到一批内测用户,并且将每位用户标记为RPG游戏用户,休闲游戏用户和卡牌游戏用户中的一种。期望分别统计出这几类用户的次日留存率,并观察是否有明显的区别,用于指导后续开展游戏运营活动。 这里记录使用卡方检验技术验证用户种类与次日行为的独立性,作为备忘。 统计结果 经过数据清理和统计,得到下面的结果 用户... 阅读全文
posted @ 2014-09-01 16:26 bourneli 阅读(1789) 评论(0) 推荐(0) 编辑
摘要:前言 kmeans是最简单的聚类算法之一,但是运用十分广泛。最近在工作中也经常遇到这个算法。kmeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点。 本文记录学习kmeans算法相关的内容,包括算法原理,收敛性,效果评估聚,最后带上R语言的例子,作为备忘。 算法原理 kmeans的计算方法如下: 1 随机选取k个中心点 2 遍历所有数据,... 阅读全文
posted @ 2014-04-04 13:59 bourneli 阅读(162103) 评论(7) 推荐(6) 编辑
摘要:前言主成份分析,简写为PCA(Principle Component Analysis)。用于提取矩阵中的最主要成分,剔除冗余数据,同时降低数据纬度。现实世界中的数据可能是多种因数叠加的结果,如果这些因数是线性叠加,PCA就可以通过线性转化,还原这种叠加,找到最原始的数据源。PCA原理P.S: 下面... 阅读全文
posted @ 2014-03-25 20:32 bourneli 阅读(14782) 评论(0) 推荐(0) 编辑
摘要:这半年来,从1月初到6月底,在coursera上注册了4们有关数据分析/挖掘的课程。这些课程都是利用业余时间学习,每周基本上花5个小时左右。其中通过了3门,注销了一门。感觉还是学到了一些东西。 第一门课程 Computing for Data Science,2013年1月2日开课,为期4周。本课程主要是学习编程语言R---一种数据分析语言和环境,学完后可以用R完成基本分析任务,但一些高级的数据可视化掌握得不熟练,需要后面巩固。 第二门课程 Data Analysis,2013年1月22日开课,为期8周。这门课程与上门课程配套的,主要用R进行一些数据分析。主要的理论是统计学,什么概率,抽... 阅读全文
posted @ 2013-10-14 12:52 bourneli 阅读(1282) 评论(0) 推荐(0) 编辑
摘要:R在Linux上的安装有一些坑(Windows上安装会方便许多),在这里记录,希望可以减少读者不必要的麻烦。我的服务器是SUSE Linux 64位,无法接入互联网(安全原因,你懂的)。到R官网http://www.r-project.org/下载源代码。下载完后上传到服务器上并解压。首先配置,cd... 阅读全文
posted @ 2013-09-04 14:05 bourneli 阅读(25025) 评论(0) 推荐(0) 编辑
摘要:本书概要 《Data Mining with R》这本书通过实例,并结合R讲解数据挖掘技术。本书的核心理念就是“Learning it by doing”。本书分5章,第一章介绍R和MySql的基本知识,后面4章分别结合4个案例进行讲解。最精刚刚看完第二章,觉得还是学习了一些新的东西,在这里记录一下,作为备忘。 本章背景 藻类的过渡繁殖会破坏河流生态。希望找到一种办法对河流内的藻类生长情... 阅读全文
posted @ 2013-08-06 20:23 bourneli 阅读(5476) 评论(2) 推荐(1) 编辑
摘要:Referer:http://www.quora.com/How-can-R-and-Hadoop-be-used-together/answer/Jay-Kreps?srid=OVd9&share=1Another way to answer this questionis that they don't really integrate very well.The advantage of R is not its syntax but rather the incredible library of primitives for visualization and sta 阅读全文
posted @ 2013-08-02 19:34 bourneli 阅读(419) 评论(0) 推荐(0) 编辑
摘要:背景 直观上理解,随机森林通过在构建决策树的过程中将一些行为随机化(比如特征选取,样本选取),产生许多决策树,然后以这些决策树的结果作为投票,将投票最多的预测作为最终结果。随机化的作用是为了减小单个决策树偏倚。 基本思路 两个参数:随机树个数n和每次选取的特征数m。 在构建每一个决策树时,首先有放回的进行N次抽样,N为训练集大小。可以证明,三分之二的样本会选取出来,剩下的三分... 阅读全文
posted @ 2013-07-23 18:59 bourneli 阅读(1105) 评论(3) 推荐(0) 编辑
摘要:记要今天在计算分类模型自行区间时,用到了R中正太分布的qnorm函数,这里做简单记要,作为备忘。R中自带了很多概率分布的函数,如正太分布,二次分布,卡放分布,t分布等,这些分布的函数都有一个共性,每个分布拥有4个带有d,p,q,r前缀的函数。比如正太分布,有dnorm,pnorm,qnorm和rnorm。这几个前缀的意义如下:d Density的缩写,表示密度函数。举个例子,标准正太分布x=0对应的值可以用dnorm(0)计算p Probability的缩写,表示概率函数。举个例子,标准正太分布从负无穷大到0的概率,可以用pnorm(0)计算q Quantile的缩写,表示分位函数。举个例子, 阅读全文
posted @ 2013-06-30 11:40 bourneli 阅读(8978) 评论(1) 推荐(1) 编辑
摘要:Hive中小表与大表关联(join)的性能分析 http://blog.sina.com.cn/s/blog_6ff05a2c01016j7n.html要点:重复度较小的表(比如纬度表)放在前面,可以使得reduce过程中的检查过程变少,提高效率一骑绝尘引发的思考–关于hive程序员是否需要学习mapreduce http://www.alidata.org/archives/1083要点:使用hive的程序员需要知道MR的原理,就好比使用Java的程序员也需要了解GC的原理 阅读全文
posted @ 2013-04-22 20:12 bourneli 阅读(294) 评论(0) 推荐(0) 编辑
摘要:本文目的到今天为止,Coursera上的课程Web Intelligence and Big Data[5]已经上到Week 3(从0开始计数,实际上是4周)。前几周讲了一些机器学习的算法,如LHS,PageRank,朴素贝叶斯分类器等。但是光有这些算法还不够,特别是在当前这种海量数据(Big Data)盛行的年代。所以,Week 3就聊到了一种通用的大数据处理解决方法 —— Map Reduce(后面简称MR)。此方法最初来自Google的一篇论文[1],现在用来指代一种编程方式,主要作用与大规模数据集(通常在1T以上)的并行计算(很多算法都可以用MR方式实现)。本周课程主要内容介绍了MR的 阅读全文
posted @ 2013-04-20 23:50 bourneli 阅读(937) 评论(0) 推荐(0) 编辑
摘要:问题背景 给出N个集合,找到相似的集合对,如何实现呢?直观的方法是比较任意两个集合。那么可以十分精确的找到每一对相似的集合,但是时间复杂度是O(n2)。当N比较小时,比如K级,此算法可以在接受的时间范围内完成,但是如果N变大时,比B级,甚至P级,那么需要的时间是不能够被接受的。比如N= 1B = 1,000,000,000。一台计算机每秒可以比较1,000,000,000对集合是否... 阅读全文
posted @ 2013-04-04 20:14 bourneli 阅读(14846) 评论(3) 推荐(1) 编辑
摘要:本文目的最近一段时间在Coursera上学习Data Analysis,里面有个assignment涉及到了决策树,所以参考了一些决策树方面的资料,现在将学习过程的笔记整理记录于此,作为备忘。算法原理决策树(Decision Tree)是一种简单但是广泛使用的分类器。通过训练数据构建决策树,可以高效的对未知的数据进行分类。决策数有两大优点:1)决策树模型可以读性好,具有描述性,有助于人工分析;2)效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。如何预测先看看下面的数据表格:ID拥有房产(是/否)婚姻情况(单身,已婚,离婚)年收入(单位:千元)无法偿还债务(是 阅读全文
posted @ 2013-03-15 15:44 bourneli 阅读(201557) 评论(3) 推荐(17) 编辑