新書推薦:

《
海上墨林:大师眼中的海派画家
》
售價:NT$
449.0

《
赌注:海难、叛变和谋杀的故事
》
售價:NT$
352.0

《
工业机器人自动化生产线集成与运维 杨铨 黄洁
》
售價:NT$
356.0

《
战争与史学家:李维历史书写中的汉尼拔战争
》
售價:NT$
296.0

《
低卡料理,30天神奇变瘦
》
售價:NT$
305.0

《
古韵新声
》
售價:NT$
8568.0

《
常见中药炮制品在方剂中的选用
》
售價:NT$
454.0

《
工厂生产设备精细化、精益化、精进化管理手册
》
售價:NT$
352.0
|
編輯推薦: |
从本书你将学到什么
√ 对R程序进行基准测试和性能分析以解决性能瓶颈
√ 理解CPU、内存和磁盘IO是如何限制R程序的性能的
√ 优化R代码使其运行更快并消耗更少内存
√ 在R中使用编译代码和C这样的其他语言以加快计算速度
√ 利用GPU提升计算速度
√ 使用基于磁盘的内存和块技术处理超过内存容量的数据集
√ 通过并行计算接入多个CPU
√ 在R中利用高级数据库系统和大数据工具
这本书的读者是谁
这本书可以帮助那些想要提升R程序性能的程序员和开发者,使R程序在处理大型数据集的时候运行更快;也适合那些试图解决某个讨厌的性能问题的程序员和开发者。
|
內容簡介: |
本书对R语言做了简要描述,配以大量编程实践和代码样例,适合于想要提高R语言性能的程序员和开发者,对大量数据的处理、R语言的实际应用、基准测试均有指导意义。现代社会面对越来越庞大的数据和数据分析,R语言正是分析和处理大数据的有效方式,本书正是全面解析R语言的优秀书目。
|
關於作者: |
Aloysius Lim
擅长将复杂的数据和模型表述为简单易懂的见解。作为About People的联合创办者、数据科学家及设计顾问,他喜欢解决问题,以及帮助他人寻找利用数据解决业务难题的实践方案。在政府、教育和零售行业长达7年的丰富经验,造就了他寻找具有创造性的解决办法的独特视角。
衷心地感谢上帝给我机会撰写本书,让我分享这些知识。在这个过程中,我亲爱的妻子Bethany给予了极大的支持和鼓励。谢谢你全部的爱,亲爱的。非常感谢我的搭档William,他是我灵感和洞察力的来源。
William Tjhi
数据科学家,在学术、政府及工业界具有多年的工作经验。他自读博期间开始了数据科学之旅,研究了一些新算法以提高高维数据聚类的健壮性。取得博士学位之后,他从基础研究转向了应用研究,致力于采用机器学习方法解决分子生物学和传染病学中的各种问题。他在一些同行评审的期刊和会议上发表了部分研究成果。随着大数据的兴起,William离开了学术界,转而投入工业界,开始了商业和公共部门领域的数据科学实践。 William热衷于R,从他搞研究的那天开始就一直使用R作为主要的分析工具。他曾经是Revolution Analytics的一员,那时候他做了很多使R更加适合大数据的贡献。
|
目錄:
|
前言X
1 理解R的性能:为什么R程序有时候很慢?1
计算性能的三个限制因素:CPU、RAM和磁盘IO2
R是运行时解释的4
R是单线程的5
R需要将全部数据加载到内存5
算法设计影响时间和空间复杂度6
小结9
2 性能分析:衡量代码的性能11
衡量总运行时间11
使用system.time衡量运行时间12
使用rbenchmark重复衡量运行时间13
使用microbenchmark衡量运行时间的分布15
分析运行时间16
使用Rprof分析函数的性能16
性能分析的结果18
分析内存使用情况20
使用OS工具监控内存使用情况、CPU使用情况和磁盘IO22
瓶颈的发现及解决23
小结26
3 加快R运行的简单方法27
向量化27
使用内置函数29
预分配内存30
使用更简单的数据结构33
使用哈希表进行大型数据上的频繁查找34
去CRAN寻找更快的包35
小结36
4 使用编译代码加快运行速度37
在运行之前编译R代码37
编译函数38
即时编译(JIT)R代码41
在R中使用编译语言41
前提条件42
以内联形式包含编译代码42
调用外部编译代码46
使用编译代码的注意事项49
小结52
5 使用GPU让R运行得更快53
GPU上的通用计算53
R和GPU54
安装gputools55
使用gputools实现快速统计建模55
小结59
6 减少内存使用的简单方法61
重用对象而不多占用内存61
删除不再需要的中间数据66
运行时计算值而不是永久性存储值69
交换活跃数据和非活跃数据71
小结71
7 使用有限的内存处理大型数据集73
使用节约内存的数据结构73
更小的数据类型76
稀疏矩阵77
对称矩阵78
比特向量79
使用内存映射文件并以块的形式处理数据80
bigmemory包81
ff包85
小结89
8 使用并行计算加倍提升性能91
数据并行性 v.s. 任务并行性91
实现数据并行的算法95
实现任务并行的算法98
集群节点运行同一个任务时98
集群节点运行多个不同任务时100
计算机集群并行执行多个任务102
共享内存并行性 v.s. 分布式内存并行性104
优化并行的性能108
小结109
9 将数据处理交给数据库系统111
将数据抽取到R v.s. 在数据库中处理数据111
在关系型数据库中使用SQL进行数据预处理112
将R表达式转化为SQL116
使用dplyr117
使用PivotalR119
在数据库中运行统计和机器学习算法122
使用列式数据库提升性能125
使用数据库阵列**化科学计算的性能128
小结129
10 R和大数据131
理解Hadoop131
在Amazon Web Services上配置Hadoop133
使用Hadoop批量处理大型数据集136
将数据上传到HDFS136
使用RHadoop分析HDFS数据138
R中的其他Hadoop包142
小结143
|
|