一、大数据算法定义
在给定的资源约束下,以大数据为输入,在给定时间约束内可以生成满足给定约束结果的算法。
(其中的时间约束,不同研究和业务的要求不同。如科学研究可能允许几个月的计算时间,但搜索引擎和个性化推荐要求几分钟甚至几秒计算出结果。)
(1)大数据算法可以不是:
精确算法、内存算法、串行算法、仅在电子计算机上运行的算法;
这与“算法设计与分析”中的算法大不相同。
(2)大数据算法不仅是:
云计算、MapReduce(并行编程架构模型)、大数据分析和挖掘的算法
(3)大数据特点(5V):
- Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
- Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。
- Value:数据价值密度相对较低,浪里淘沙,沙里淘金。随着互联网以及物联网的广泛应用,产生海量信息,但目前的大部分信息价值密度较低。如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。
- Velocity:数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。
- Veracity:数据的准确性和可信赖度,即数据的质量。
二、大数据难点:
- 访问全部数据时间过长-------读取部分数据-------时间亚线性算法
- 数据难于放入内存计算-------将数据存储到磁盘上--------外存算法
- 数据难于放入内存计算-------仅基于少量数据进行计算-------空间亚线行算法
- 单个计算机难于保存全部数据,但计算需要全部数据-------并行处理--------并行算法
- 计算机计算能力不足或知识不足----------人来帮忙----------众包算法
三、大数据算法设计技术:
- 精确算法设计方法:(如DP,分治,贪心策略,回溯法等)
- 并行算法
- 近似算法
- 随机算法
- 在线算法/数据流算法
- 外存算法
- 面向新型体系结构的算法(如GPU算法)
- 现代优化算法(遗传算法,蚁群算法,模拟退火等)
四、大数据的算法分析:
- 时间空间复杂度
- IO复杂度
- 结果质量(近似比、competitive ratio)
- 通讯复杂度(数据量大,并行算法运行考虑)
简单罗列了一下大数据算法的相关概念,只能说算法千千万,还是需要一些时间去理解各种算法的适用场景,优缺点等。后面还会继续总结和更新。希望大家可以多留言探讨,和大家一起进步!
本文转自 简书,原文链接:https://zhuanlan.zhihu.com/p/71760327,如需转载请自行联系原作者