大数据算法MOOC笔记2:大数据算法定义、分析与设计

大数据上求解问题的过程:


1、问题是否可计算(图灵机模型)
        当拿到一个计算问题,首先应该考虑该问题是否可计算。根据可计算理论,有很多问题计算机是无法计算的。我们今天的电子计算机模型是图灵机模型。在小数据上不可计算的问题,在大数据上肯定也不能计算。计算模型的能力是一样的,只是快慢有区别。
2、计算的可行性

        大数据上的计算问题与传统计算问题有本质区别。第一、数据量巨大;第二、用来处理数据的资源有限;第三、大数据有很强的实时性,对计算时间有约束。在这三种约束之下分析问题,就是大数据上计算的可行性问题。

3、算法设计与分析
        对于小数据上的算法可以通过实验测试性能,但是大数据上的算法如果通过实验测试性能会耗费大量的计算成本,所以大数据的算法分析十分重要。
4、用计算机语言实现算法
        经过了大数据的算法分析后,得到了算法,接下来就要用计算机程序语言实现算法,得到一些程序模块。
5、构建一个面向大数据的软件系统
        面向大数据的软件系统,需要在相应的平台上实现,比如Hadoop、Spark都是实现软件系统的平台。

大数据算法

定义:在给定的资源约束下,以大数据为输入,在给定的时间约束内可以计算出给定问题结果的算法。
与传统算法相同之处:都是算法,具备算法的5个条件:有穷性、确定性、可行性、输入、输出。
与传统算法区别之处:
第一、资源约束,如内存、cpu计算能力等。
第二、以大数据为输入,而不是小规模的输入。
第三、大数据算法需要在时间约束之内产生结果。
第四、大数据算法可以不是精确算法、可以不是内存算法(必须使用外存甚至网络存储)、可以不是串行算法(机群的并行算法)、可以人机协同工作(传统算法完全在电子计算机上执行,无人工参与)。

概念区分:

区分MapReduce、云计算、数据挖掘、大数据。

1.基于MapReduce的算法是一类非常重要的大数据算法,但大数据算法不仅仅是MapReduce上的算法。

2.云计算平台上的算法未必是面向大数据的。同样大数据算法也不全是云上的算法,大数据算法可以是基于单机、手机等低端设备。
3.大数据的应用广泛,如数据的分析与挖掘、获取、清洗、查询、可视化等方面。其中数据分析与挖掘的商业价值较为明显。区分大数据和数据挖掘。

4.大数据算法中涉及到很多数据管理的知识,所以和数据库中的算法关系密切。但大数据算法不仅仅是数据库中的算法,还有专门为大数据设计的算法。


大数据算法的难度分析及解决办法

难度主要体现在4个方面:
第一:访问全部数据时间过长
        放弃使用全部数据,通过 读取部分数据得到一个较为满意的不精确的结果,但在可以接受的范围内。这种方法称作“ 时间亚线性算法”。
第二:数据难以放入内存计算
        一个策略是把数据放到磁盘上,基于磁盘上的数据来设计算法,即 外存算法
        另一策略是不对全部的数据进行计算,而只向内存里放入部分数据,从而得到一个质量较为满意的结果,这种方法称作“ 空间亚线性算法”。
第三:单个计算机难以保存全部数据,计算需要全部数据
        这种情况往往需要采用并行处理技术,设计 并行算法。在多数人的理解中,大数据算法就等同于并行算法,但大数据算法不完全是并行算法。
第四:计算机计算能力不足或知识不足
        人工参与,这类算法叫做“ 众包算法”。

大数据的算法设计与分析:

1、精确算法设计方法:就是传统算法设计与分析中讲述的贪心法、分治法、DP、搜索、剪枝。
2、并行算法:多机并行协同处理,所以机器之间需要通信,在分析算法时间复杂度时,需要考虑通信量的大小,即 通信复杂度
3、近似算法:如上面提到的时间亚线性、空间亚线性算法。近似算法中需要分析计算 结果的质量和近似比(最优解和近似解的比例)
4、随机算法:最典型的一个技术就是抽样。虽无法处理整个数据集合,但可以从中抽取部分数据进行处理,通过抽样以小见大。
5、在线算法/数据流算法
        这种算法是指数据源源不断地到来,根据到来的数据返回相应的部分结果。适用于两种情况:
        第一、数据量非常大仅能扫描一次时,可以把数据看成数据流,把扫描看成数据到来。
        第二、数据更新非常快,不能把所有数据都保存下来再计算结果,此时可以把数据看成是一个数据流。
        在线算法中需要分析 竞争比,即根据当前数据得到的解和知道所有数据的情况下得到解的代价相差多少。
6、外存算法
        这种算法在分析算法时间复杂度时以I/O次数作为判断标准。
7、面向新型体系结构的算法
        特定的体系结构包括多级cache、GPU、FGPU。
8、现代优化算法:模拟退火、蚁群、遗传、禁忌搜索等。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值