京公网安备 11010802034615号
经营许可证编号:京B2-20210330
在机器学习方面使用 R + Hadoop 方案真的有那么好2
第3、4步,这里虽然举了很简单的例子,但这些是在数学模型和数据模型上是最没有开发压力的,需要关心的只是资深程序员的功底了。举例说明,文本挖掘(NLP)统计完词频你还是得会空间里做PCA(或者其他形式的大矩阵加工);如果不然,只引入HMM模型和基础字典树的话,学习成本就只有学习贝叶斯理论了,并且仍然可以高效并行的解决NLP问题,有兴趣的可以参考Viterbi算法和CRF算法。
大数据的幻觉:存储和计算的冲突
大数据处理,多大算大?像我说的,在3,4步出来的数据,原始数据很大,加工汇总完了很小,或者处理起来是高度独立的。分布式存储不影响分析,说是大数据,其实和小数据处理没差别。
需要随时交换资源的聚类,回归,SVD,PCA,QR,LU等关系到矩阵分解的计算甚至是高效访问,更进一步还有热数据在内存上而不是物理存储上的多次迭代,这才是大数据真正的挑战。
那些有监督的分类树,把数据集切成1000份并且有冗余的给500台机器每台3-5份数据最后得到集成的分类结果,我很难称其为“大数据计算技术”,它的本质和挖矿机每秒能做无数个高度同质化的hash计算一样,不需要资源交换,不需要大量通信,它只是“小数据+独立运算后直接能够整合结果”的范围内打转。
数据在物理存储、内存、甚至显存的原地迭代会带来数据重分布;在传统数仓领域数据,重分布其实是对未来效率提高预期的妥协,且里面含有比较多对传统业务稳定数据架构的理解。
大数据时代明显不存在什么数据仓库ER模型稳定性,不知道大家有没有这种体验:一个新需求,一个全新的不着边际的研究性问题的场景下,就能建个新库来进行探索与数据加工整理,数据挖掘。各自为政,实验容易,落地与整合困难。—— 这个情况下如果要频繁走物理存储的话,基于key的重新分布会让数据像煮沸的一锅粥大量占用网络与IO写入带宽,与传统数据库性能的巨大鸿沟是无法回避的问题。因此在这个场景下,Spark、Storm、GPU计算火起来,如Scala、Clojure、Python等含有FP概念的语言走得越来越靠近开发工程师的视线,较高级的封装工具如图模型计算的GraphSQL等组件也浮出水面。而且说句实话,Map(映射)和Reduce(规约)在这些语言中,已经是老的掉了好多年牙的概念了。(FP:Functional Programming我反对翻译成函数式编程,这明明是泛函编程)
大数据概念引入这件事儿是大炮打蚊子——内存内的分析和数据探索,展现(单节点):
*从数据记录条数讲:
百万级,R的上限;
千万级-亿级,SAS的上限;
千万级,Python的上限;
*我的使用经验,从数据占用内存的效率讲:加载400M数据会使得
Python(Numpy列存)占用内存500M
R(我谨慎猜测是行存列存和二维表三样都存一份)加载占内存2G
SAS(行存)占用600M,经过表级压缩(依然是行存)150M
*后续的原始处理
尤其是字符串操作这种数据清洗,R几乎不能做,精通shell及regexp的人又做的太容易。
若想用R,这就需要你输入到R的数据几乎就能直接开始跑分析了。若不信邪,我推荐你用readLines加上strsplit来操作读入R的文件,看看他数据清洗的效率和read.delim,和SAS proc import 以及 Python的with as语法相差多少。
*展现方案:
只要数据量低于刚才提到的限度,R又提供了最好的展现方案,因为“展现方案是专用而非泛用”的:
a. Hadley最著名的R包之一ggplot2未来会引入SVG等可交互元素。一个具有d3.js可视化特性的绘图包还不让你震惊吗?
b. 百度echarts团队项目被taiyun包装成recharts放在了github上
c. 已经加入RStudio的R统计达人Yihui Xie的作品knitr,能够使用markdown语法动态将数据挖掘结果,图片,视频生成打包放进html或者pdf文档。
说说对手:
a. R要比Python现有的可视化包(以matplotlib和pygame为主)更友好,更易于操作。
b. 虽然让从来没接触过前端的人沉浸在用Chrome即可调试的JavaScript里面不太科学,但我爱不释手,而且其核心的展现方式确实未来会加入R。
c. Java风格的Processing,无缝调用java库,封装大量java图形函数、视频相关API、鼠标响应API,可以导出java applet或port成js代码;搞大数据的人必然熟悉java开发,可以几乎0成本又高效快速的使用它。
这几种工具确实各有所长,我个人无法取舍,但平心而论,R是学习门槛、编码效率和产出效果同时最出色的(个人经历原因无法对SAS VA,Tableau,Flex或更一般的BI展现工具置评,其受众因为软件成本,落地性不够等原因,我缺乏使用它们的经验,它们也缺乏对我的吸引力)
归纳下我的理解,R的产出报告类似html+javascript+CSS一样,是适合轻量分析,轻量展现的。
大数据干这件事儿是正道——非结构化大数据批量或者迭代处理:
你的算法已经走到了“万事俱备,只差跑全量” 这样一个对手中的数据很了解的地步了。Wiki 对Revolution Analytics的介绍讲:R didn’t natively handle datasets larger than main memory,这么灵活小巧的工具做个抽样数据分析明明是很好的。
非结构化大数据应用的场景只能是:
-你很懂数据分布的细节(也许是项目经验,也许是R上已经做过抽样探索)
-问题适合的算法你了然于胸;增量算法存在;暴力并行计算(矩阵计算,图迭代)没问题
-你觉得把类似Mahout计算的步骤经过代码包装交付给R来做没问题
-你完全不care交互式探索
这是你需要的R应用场景么?或者换一种说法,这种应用场景R有什么优势?调用编译好的cpp库,fortran库是R发挥优势的地方吗?要知道算法效率排名上R<java<C++。算法月内要上线,自己看着办。
说下前鄙team(一个不是专业做数据挖掘的数据部门)的经验:
讲了半天R+Hadoop,不上Mahout,随便搞搞RSnow,准备买SAS。
因为我会SAS(少量用Macro,没用过矩阵,因为没必要)和R(没有学习成本),Python的并行包pp使用中,考虑mahout。
更新:当大数据平台用户不满足于存储,简单加工以及成型算法实施,也开始关注最小查询、交互式探索效率了,诸如Spark的内存解决方案将会更合适。
现team是一个同事至少是硕士(统计/金融/计算机),专做金融行业数据挖掘的小团队。能力和业务场景可以供参考。
* SAS能力覆盖面95%(具备核心价值的数据在服务器上能够处理的量很少超过上亿,主推SAS)
* Python和R覆盖面都在70%+
* Hadoop/大数据概念淡:客户有足够的Teradata、Oracle、SAS服务器
* Hive/Spark:Hive做辅助、灵活仓储,PySpark作为一个可以预期、稳定的数据挖掘平台的接点
结束语:
顺便也给数学系、统计系的数据分析师,以及他们的领导们提醒一句:如果员工A有员工B没有的代码开发能力,R又完全替员工B把数学的事情做完了,形成了依赖,那员工B存在的意义是什么?强调数学理论这么一点点优势也都不复存在了。
机器学习算法在不同的阶段适合使用不同的工具,研究和使用接不上也就算了,千万别连工具适合的环境都不懂,作为互联网从业者,这就太盲从了。
精英的研究者是自己做开发的——这话也可以这么说,精英的开发者们自己做研究。每一个模型都不完美,何况新问题涌现的越来越快,现存的模型很可能不满足你的分析需要。所以才要一边扎实理论,以最少的尝试嗅到最适合问题的算法,一边以开放的心态接纳和理解新技术的应用场景,深入发展数据挖掘研究,从代码优化改造(山寨)走向技术原创。
一个不好的消息是,不管是从indeed.com职位Post、搜索还是行业生命周期研究看,大数据这几个字正在迅速退掉金色,其名字的价值泡沫正在逐步被挤出。抓住技术的重点与技术适合的场景,对个人以及对行业都是磨刀不误砍柴工的事情。
CDA学员免费下载查看报告全文:2026全球数智化人才指数报告【CDA数据科学研究院】.pdf
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在Power BI数据可视化分析中,切片器是连接用户与数据的核心交互工具,其核心价值在于帮助使用者快速筛选目标数据、聚焦分析重点 ...
2026-04-23以数为据,以析促优——数据分析结果指导临床技术改进的实践路径 临床技术是医疗服务的核心载体,其水平直接决定患者诊疗效果、 ...
2026-04-23很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标是所有企业都需要的”“哪些指标是因行业而异的”“北极星指标和 ...
2026-04-23近日,由 CDA 数据科学研究院重磅发布的《2026 全球数智化人才指数报告》,被中国教育科学研究院官方账号正式收录, ...
2026-04-22在数字化时代,客户每一次点击、浏览、下单、咨询等行为,都在传递其潜在需求与决策倾向——这些按时间顺序串联的行为轨迹,构成 ...
2026-04-22数据是数据分析、建模与业务决策的核心基石,而“数据清洗”作为数据预处理的核心环节,是打通数据从“原始杂乱”到“干净可用” ...
2026-04-22 很多数据分析师每天盯着GMV、转化率、DAU等数字看,但当被问到“什么是指标”“指标和维度有什么区别”“如何搭建一套完整的 ...
2026-04-22在数据分析与业务决策中,数据并非静止不变的数值,而是始终处于动态波动之中——股市收盘价的每日涨跌、企业月度销售额的起伏、 ...
2026-04-21在数据分析领域,当研究涉及多个自变量与多个因变量之间的复杂关联时,多变量一般线性分析(Multivariate General Linear Analys ...
2026-04-21很多数据分析师精通描述性统计,能熟练计算均值、中位数、标准差,但当被问到“用500个样本如何推断10万用户的真实满意度”“这 ...
2026-04-21在数据处理与分析的全流程中,日期数据是贯穿业务场景的核心维度之一——无论是业务报表统计、用户行为追踪,还是风控规则落地、 ...
2026-04-20在机器学习建模全流程中,特征工程是连接原始数据与模型效果的关键环节,而特征重要性分析则是特征工程的“灵魂”——它不仅能帮 ...
2026-04-20很多数据分析师沉迷于复杂的机器学习算法,却忽略了数据分析最基础也最核心的能力——描述性统计。事实上,80%的商业分析问题, ...
2026-04-20在数字化时代,数据已成为企业决策的核心驱动力,数据分析与数据挖掘作为解锁数据价值的关键手段,广泛应用于互联网、金融、医疗 ...
2026-04-17在数据处理、后端开发、报表生成与自动化脚本中,将 SQL 查询结果转换为字符串是一项高频且实用的操作。无论是拼接多行数据为逗 ...
2026-04-17面对一份上万行的销售明细表,要快速回答“哪个地区卖得最好”“哪款产品增长最快”“不同客户类型的购买力如何”——这些看似复 ...
2026-04-17数据分析师一天的工作,80% 的时间围绕表格结构数据展开。从一张销售明细表到一份完整的分析报告,表格结构数据贯穿始终。但你真 ...
2026-04-16在机器学习无监督学习领域,Kmeans聚类因其原理简洁、计算高效、可扩展性强的优势,成为数据聚类任务中的主流算法,广泛应用于用 ...
2026-04-16在机器学习建模实践中,特征工程是决定模型性能的核心环节之一。面对高维数据集,冗余特征、无关特征不仅会增加模型训练成本、延 ...
2026-04-16在数字化时代,用户是产品的核心资产,用户运营的本质的是通过科学的指标监测、分析与优化,实现“拉新、促活、留存、转化、复购 ...
2026-04-15