❶ 《大数据时代生活、工作与思维的大变革》pdf下载在线阅读,求百度网盘云资源
《大数据时代》([英] 维克托•迈尔•舍恩伯格(Viktor Mayer-Schönberger))电子书网盘下载免费在线阅读
资源链接:
链接:
书名:大数据时代
作者:[英] 维克托•迈尔•舍恩伯格(Viktor Mayer-Schönberger)
译者:周涛
豆瓣评分:7.5
出版社:浙江人民出版社
出版年份:2012-12
页数:261
内容简介:
《大数据时代》是国外大数据研究的先河之作,本书作者维克托•迈尔•舍恩伯格被誉为“大数据商业应用第一人”,拥有在哈佛大学、牛津大学、耶鲁大学和新加坡国立大学等多个互联网研究重镇任教的经历,早在2010年就在《经济学人》上发布了长达14页对大数据应用的前瞻性研究。
维克托•迈尔•舍恩伯格在书中前瞻性地指出,大数据带来的信息风暴正在变革我们的生活、工作和思维,大数据开启了一次重大的时代转型,并用三个部分讲述了大数据时代的思维变革、商业变革和管理变革。
维克托最具洞见之处在于,他明确指出,大数据时代最大的转变就是,放弃对因果关系的渴求,而取而代之关注相关关系。也就是说只要知道“是什么”,而不需要知道“为什么”。这就颠覆了千百年来人类的思维惯例,对人类的认知和与世界交流的方式提出了全新的挑战。
本书认为大数据的核心就是预测。大数据将为人类的生活创造前所未有的可量化的维度。大数据已经成为了新发明和新服务的源泉,而更多的改变正蓄势待发。书中展示了谷歌、微软、亚马逊、IBM、苹果、facebook、twitter、VISA等大数据先锋们最具价值的应用案例。
作者简介:
他是十余年潜心研究数据科学的技术权威,他是最早洞见大数据时代发展趋势的数据科学家之一,也是最受人尊敬的权威发言人之一。他曾先后任教于世界最著名的几大互联网研究学府。现任牛津大学网络学院互联网治理与监管专业教授,曾任哈佛大学肯尼迪学院信息监管科研项目负责人,哈佛国家电子商务研究中网络监管项目负责人;曾任新加坡国立大学李光耀学院信息与创新策略研究中心主任。并担任耶鲁大学、芝加哥大学、弗吉尼亚大学、圣地亚哥大学、维也纳大学的客座教授。
他的学术成果斐然,有一百多篇论文公开发表在《科学》《自然》等著名学术期刊上,他同时也是哈佛大学出版社、麻省理工出版社、通信政策期刊、美国社会学期刊等多家出版机构的特约评论员。
他是备受众多世界知名企业信赖的信息权威与顾问。他的咨询客户包括微软、惠普和IBM等全球顶级企业;而他自己早在1986年与1995年就担任两家软件公司的总裁兼CEO,由他的公司开发的病毒通用程序,成为当时奥地利最畅销的软件产品。1991年跻身奥地利软件企业家前5名之列,2000年 被评为奥地利萨尔斯堡州的年度人物。
他也是众多机构和国家政府高层的信息政策智囊。他一直专注于信息安全与信息政策与战略的研究,是欧盟专家之一,也是世界经济论坛、马歇尔计划基金会等重要机构的咨询顾问,同时他以大数据的全球视野,熟悉亚洲信息产业的发展与战略布局,先后担任新加坡商务部高层、文莱国防部高层、科威特商务部高层、迪拜及中东政府高层的咨询顾问。
所著《大数据》一书是开国外大数据系统研究的先河之作,而在这之前,他已经在《经济学人》上和数据编辑肯尼斯.尼尔-库克耶一起,发表了长达14页的大数据专题文章,成为最早洞见大数据时代趋势的数据科学家之一。而他的《删除》一书,同样被认为是关于数据的开创性作品,并且创造了“被遗忘的权利”的概念而在媒体圈和法律圈得到广泛运用。该书获得美国政治科学协会颁发的唐•K•普赖斯奖,以及媒介环境学会颁发的马歇尔•麦克卢汉奖。同时受到《连线》、《自然》《华尔街日报》《纽约时报》等各大权威媒体广泛好评。
❷ 大数据时代的数据分析技术面临的挑战
数据分析是整个大数据处理流程的核心,大数据的价值产生于分析过程。从异构数据源抽取和集成的数据构成了数据分析的原始数据。根据不同应用的需求可以从这些数据中选择全部或部分进行分析。小数据时代的分析技术,如统计分析、数据挖掘和机器学习等,并不能适应大数据时代数据分析的需求,必须做出调整。
大数据时代的数据分析技术面临着一些新的挑战,主要有以下几点。
(1)数据量大并不一定意味着数据价值的增加,相反这往往意味着数据噪音的增多。因此,在数据分析之前必须进行数据清洗等预处理工作,但是预处理如此大量的数据,对于计算资源和处理算法来讲都是非常严峻的考验。
(2)大数据时代的算法需要进行调整。首先,大数据的应用常常具有实时性的特点,算法的准确率不再是大数据应用的最主要指标。在很多场景中,算法需要在处理的实时性和准确率之间取得一个平衡。其次,分布式并发计算系统是进行大数据处理的有力工具,这就要求很多算法必须做出调整以适应分布式并发的计算框架,算法需要变得具有可扩展性。许多传统的数据挖掘算法都是线性执行的,面对海量的数据很难在合理的时间内获取所需的结果。因此需要重新把这些算法实现成可以并发执行的算法,以便完成对大数据的处理。最后,在选择算法处理大数据时必须谨慎,当数据量增长到一定规模以后,可以从小量数据中挖掘出有效信息的算法并一定适用于大数据。
(3)数据结果的衡量标准。对大数据进行分析比较困难,但是对大数据分析结果好坏的衡量却是大数据时代数据分析面临的更大挑战。大数据时代的数据量大,类型混杂,产生速度快,进行分析的时候往往对整个数据的分布特点掌握得不太清楚,从而会导致在设计衡量的方法和指标的时候遇到许多困难。
❸ 关于大数据时代这本书
<大数据时代>
页数 270
你的PDF具体全不全,请参照一下目录校验:
目录如下:
推荐序一 拥抱“大数据时代”
宽带资本董事长 田溯宁
推荐序二 实实在在大数据
中国互联网发展的重要参与者,知名IT 评论人
译者序在路上·晃晃悠悠
电子科技大学教授,互联网科学中心主任
引言一场生活、工作与思维的大变革
大数据开启了一次重大的时代转型。就像望远镜让我们能够感受宇宙,显微镜让我们能够观测微生物一样,大数据正在改变我们的生活以及理解世界的方式,成为新发明和新服务的源泉,而更多的改变正蓄势待发……
大数据,变革公共卫生
大数据,变革商业
大数据,变革思维
大数据,开启重大的时代转型
预测,大数据的核心
大数据,大挑战
第一部分 大数据时代的思维变革
第1章 更多:不是随机样本,而是全体数据
当数据处理技术已经发生了翻天覆地的变化时,在大数据时代进行抽样分析就像在汽车时代骑马一样。一切都改变了,我们需要的是所有的数据,“样本= 总体”。
让数据“发声”
小数据时代的随机采样,最少的数据获得最多的信息
全数据模式,样本=总体
第2章 更杂:不是精确性,而是混杂性
执迷于精确性是信息缺乏时代和模拟时代的产物。只有5% 的数据是有框架且能适用于传统数据库的。如果不接受混乱,剩下95% 的非框架数据都无法被利用,只有接受不精确性,我们才能打开一扇从未涉足的世界的窗户。
允许不精确
大数据的简单算法比小数据的复杂算法更有效
纷繁的数据越多越好
混杂性,不是竭力避免,而是标准途径
新的数据库设计的诞生
第3章 更好:不是因果关系,而是相关关系
知道“是什么”就够了,没必要知道“为什么”。在大数据时代,我们不必非得知道现象背后的原因,而是要让数据自己“发声”。
关联物,预测的关键
“是什么”,而不是“为什么”
改变,从操作方式开始
大数据,改变人类探索世界的方法
第二部分 大数据时代的商业变革
第4章 数据化:一切皆可“量化”
大数据发展的核心动力来源于人类测量、记录和分析世界的渴望。信息技术变革随处可见,但是如今信息技术变革的重点在“T”(技术)上,而不是在“I”(信息)上。现在,我们是时候把聚关灯打向“I”,开始关注信息本身了。
数据,从最不可能的地方提取出来
数据化,不是数字化
量化一切,数据化的核心
当文字变成数据
当方位变成数据
当沟通成为数据
一切事物的数据化
第5章 价值:“取之不尽,用之不竭”的数据创新
数据就像一个神奇的钻石矿,当它的首要价值被发掘后仍能不断给予。它的真实价值就像漂浮在海洋中的冰山,第一眼只能看到冰山的一角,而绝大部分都隐藏在表面之下。
数据创新1:数据的再利用
数据创新2:重组数据
数据创新3:可扩展数据
数据创新4:数据的折旧值
数据创新5:数据废气
数据创新6:开放数据
给数据估值
第6章 角色定位:数据、技术与思维的三足鼎立
微软以1.1 亿美元的价格购买了大数据公司Farecast,而两年后谷歌则以7 亿美元的价格购买了给Farecast 提供数据的ITA Software 公司。如今,我们正处在大数据时代的早期,思维和技术是最有价值的,但是最终大部分的价值还是必须从数据本身来挖掘。
大数据价值链的3大构成
大数据掌控公司
大数据技术公司
大数据思维公司和个人
全新的数据中间商
专家的消亡与数据科学家的崛起
大数据,决定企业的竞争力
第三部分 大数据时代的管理变革
第7章 风险:让数据主宰一切的隐忧
我们时刻都暴露在“第三只眼”之下:亚马逊监视着我们的购物习惯,谷歌着监视我们的网页浏览习惯,而微博似乎什么都知道,不仅窃听到了我们心中的“TA”,还有我们的社交关系网。
无处不在的“第三只眼”
我们的隐私被二次利用了
预测与惩罚,不是因为所做,而是因为“将做”
数据独裁
挣脱大数据的困境
第8章 掌控:责任与自由并举的信息管理
当世界开始迈向大数据时代时,社会也将经历类似的地壳运动。在改变人类基本的生活与思考方式的同时,大数据早已在推动人类信息管理准则的重新定位。然而,不同于印刷革命,我们没有几个世纪的时间去适应,我们也许只有几年时间。
管理变革1:个人隐私保护,从个人许可到让数据使用者承担责任
管理变革2:个人动因VS预测分析
管理变革3:击碎黑盒子,大数据程序员的崛起
管理变革4:反数据垄断大亨
结语 正在发生的未来
大数据并不是一个充斥着算法和机器的冰冷世界,人类的作用依然无法被完全替代。大数据为我们提供的不是最终答案,只是参考答案,帮助是暂时的,而更好的方法和答案还在不久的未来。
❹ 《DT时代:从“互联网+”到“大数据×”》pdf下载在线阅读,求百度网盘云资源
《DT时代:从“互联网+”到“大数据×”》(大数据战略重点实验室 著;连玉明 编)电子书网盘下载免费在线阅读
资源链接:
链接:
书名:DT时代:从“互联网+”到“大数据×”
作者:大数据战略重点实验室 著;连玉明 编
豆瓣评分:4.8
出版社:中信出版集团
出版年份:2015-5-1
页数:354
内容简介:
知识就是力量,信息就是能量,数据就是变量。本书全面阐述了人类从IT时代走向DT时代的基本特征和规律。《DT时代》认为,大数据正成为人类的第二母语,大数据已经成为DT时代一个国家最重要的战略资源之一。
DT不仅仅是技术的提升,而是思想的革命。《DT时代》首次提出块数据的数量(volume)、速度(velocity)、多样(variety)、价值(value)和数聚(variable)的五V空间理论,将对大数据的认知推进到新的高度。《DT时代》认为,块数据作为大数据的解决方案,实现了从数据到数聚、从解构到重构、从多维到共享的跨越,块数据社会、慢数据决策和流数据价值三位一体,标志着大数据时代的真正到来。
《DT时代》强调,众联、众包、众创、众筹为人们越来越熟知,平等思维、共享思维、扁平化思维、跨界思维、场景思维被越来越多地掌握和运用。把大数据产业作为创新驱动的引领性产业,是实现经济发展和生态保护双赢的唯一选择。
《DT时代》还提出,安全是大数据的生命线。以大数据技术对抗大数据平台安全威胁是大数据成功的必由之路,在此基础上本书对大数据立法问题进行了探讨并提出,必须建立健全安全防护体系,切实强化大数据安全管理和“公开的隐私”的保护。只有更好的保护,才有更好的分享。
精彩书评
★《DT时代》是一部极具影响力的全视角解读大数据时代的新著。大数据是社会变革的工具,是改变世界的战略高地。对于大数据,人们的已知远不如未知,更大的发展和变革在未来。
——美国《中美邮报》
★从IT时代到DT时代,大数据开启了一个重大的时代转型和新常态节点。大数据及以大数据为核心的产业价值链正在影响和主导新的经济范式和国家战略,并为推进中国国家治理体系和治理能力现代化提供强劲的动力。通过阅读《DT时代》一书或许可以有一个全新的认识。
——日本《中日新报》
★《DT时代》让我们真切地意识到,大数据改变了我们的思维方式、生产方式、生活方式。我们的精神世界和物质世界都将构建在大数据之上。大数据不仅仅是一门技术,更是一种全新的商业模式,它与云计算共同构成了下一代经济的生态系统。
——匈牙利《联合报》
★《DT时代》一书最大限度地刺激你的大脑神经,它告诉我们,我们正在经历一场意义堪比工业革命的重大转变,企业只有洞悉大趋势,随势而变,才能成为数字经济时代的赢家;个人只有正视当下的冲击,才能在数据化浪潮里游刃有余。《DT时代》告诉读者如何在大数据时代中生存。
——加拿大《世界华人周刊》
★大数据对人类社会发展的推动和人们生活方式的改变是史无前例的。《DT时代》一书提出,DT时代对我们生活的5个新改变,可用5个“H”来概括:以别人为中心的生活更Happy(快乐);透明数据的“剧透”很Harmonious(和谐);越小的企业越High-speed(高速);“活雷锋”让“众”创更Heated(激昂兴奋);跨界融合更Hotsy-totsy(精彩)。
——澳大利亚《华夏时报》
★大数据是人类认识世界、改造世界的一次飞跃,蕴含着巨大的价值。通过翔实的案例和严谨的叙述,本书向人们揭示了大数据在社会发展中的革命性作用,众联、众包、众创、众筹被人们越来越熟知,平台思维、扁平思维、网络思维、跨界思维、精准思维被越来越多地掌握和运用。DT的核心,是关于数据驱动的创新。
——西班牙《侨声报》
★除了上帝,任何人都必须用数据来说话。大数据浪潮,汹涌来袭,与互联网的发明一样,这绝不仅仅是信息技术领域的革命,更是在全球范围启动透明政府、加速企业创新、引领社会变革的利器。“大数据战略”,是当下领航全球的先机。《DT时代》是一本“预言式”的书。
——瑞典《北欧时报》
★马云曾经在一次演讲中说道:“人类正从IT时代走向DT时代。”IT时代是以自我控制、自我管理为主的时代,而DT时代是以服务大众、激发生产力为主的时代。这两者之间看起来似乎是一种技术的差异,但实际上是思想观念层面的差异。《DT时代》一书提出,大数据成为人类的第二母语,DT不再只是一种技术工具、一种工作手段,它将深刻改变我们的生活方式、生产方式和思维方式。
——英国《侨报》
★当今社会,创新创业的源泉是新思想,而《DT时代》带给我们的就是新思想。如果说方块字是华人的第一母语,告诉我们从哪里来,那么大数据就是我们的第二母语,指引我们到哪里去。这个“哪里”就是未来。谁相信未来,谁就能成功。
——韩国《新华报》
★大数据产业是具有战略意义的前沿性、高端性、新兴性产业,在新一轮科技革命和产业变革中占据重要位置。《DT时代》一书提出,在中国经济新常态大背景下,以大数据应用为战略引领,实现从“互联网+”到“大数据×”的融合效应,打通大数据成果向现实生产力转化的通道。
——南非《华侨新闻报》
作者简介:
大数据战略重点实验室,是一个跨学科、专业化、国际化、开放型研究平台。实验室聚集国内外大数据相关专业研究者、管理者和决策者,发挥独立、客观、公正、持续的科学精神和创新方法,立足全球大数据发展趋势和中国大数据发展实践,以大数据发展的重大理论和现实问题为主攻方向,进行大数据发展全局性、战略性、前瞻性研究和咨询,构建“块数据”理论模型和应用模型。曾研究编制“大数据指数”,出版年度《大数据蓝皮书》,建立大数据发展规划数据库,举办“中国DT产业50人论坛”,搭建开放式协作创新平台、专业化决策咨询平台、网络化成果转化平台和国际化合作交流平台,奋力打造具有较大影响力和国际知名度的大数据高端战略智库。
连玉明,著名城市专家,教授,工学博士。现任大数据战略重点实验室主任,北京国际城市发展研究院院长,贵州大学贵阳创新驱动发展战略研究院院长。兼任北京市社会科学界联合会副主席,北京市哲学社会科学京津冀协同发展研究基地首席专家,城市科学研究北京市重点实验室主任。
❺ 大数据的新算法:简化数据分类
大数据的新算法:简化数据分类
如今,大数据时代悄然来临。专家用“大数据”的表达描述大量信息,比如数十亿人在计算机、智能手机以及其他电子设备上分享的照片、音频、文本等数据。当前这种模式为我们的未来展现了前所未有的愿景:比如追踪流感疫情蔓延,实时监控道路交通,处理紧急自然灾害等。对人们而言,想要利用这些庞大的数据,首先必须要了解它们,而在此之前我们需要一种快捷有效自动的方式对数据进行分类。
其中一种最为常用的系统,是一系列称之为簇分析的统计技术,这种技术能依据数据的“相似性”进行数据分组。来自意大利国际高等研究院(SISSA)的两位研究者基于简单且强大的原理设计了一种簇分析方法,被证明可以非常有效地解决一些大数据分析中遇到的主要典型问题。
数据集合可以视为多维空间的云数据点。这些点呈现不同分配方式:或稀疏地分布在一个区域,或密集地分布在另外一个区域。簇分析就是用来有效地鉴别密集型区域,基于基本的准则将数据分为一定数量的重要子集合,每个子集合对应一种分类。
“以一个面部图像数据库为例,”SISSA统计与生物物理系教授Alessandro Laio说,“数据库可能包含同一个人的多张照片,簇分析可以用来归类同一人的所有照片。这种类型的分析可用自动脸部识别系统来完成。”
“我们试着设计一种较现有方法更为有效的算法,来解决簇分析中典型的问题。”Laio继续补充说。
“我们的方法基于一种新的鉴定簇中心,比如子集合,”另一位研究者Alex Rodriguez解释道,“试想这样的情形,在无法访问地图中,却不得不鉴定全球所有的城市时,这无疑是一个艰巨的任务。”Rodriguez进一步解释道,“因此我们在做一种探索式的识别,尝试寻找一条简单的规则或是一种捷径来达成目标。”
“为了确定一个地方是否达到城市级别规模,我们可以让当地居民计数自己的‘邻居’,换句话说,他房子的100米内住了多少人。一旦得到这个数字,我们继续去确认每一个居民,他们身边最近的拥有最多邻居数的居民。借助这两组数据结果交叉的部分,就可以推断每个人所在居住区域人口的稠密程度,以及拥有邻居数最多的两家间距。就全球人口而言,通过自动交叉检测这些数据,我们能识别代表簇状中心的个体,这些个体就是不同的城市。” Laio解释道。
“我们的算法能够精确地完成此类计算,也适用于其他场景,”Rodriguez进一步补充说,此算法表现相当优异。Rodriguez对此有着深刻理解:“借用面部数据档案Olivetti Face数据库,我们测试了自己的数学模型,并获得了满意的结果。此系统能够正确地识别大部分个体,从不产生假阳性结果,这意味着在某些情况下,它可能无法识别事物,但绝不会混淆一个个体与另一个个体。与类似的方法相比,我们的算法能够有效地剔除异类,要知道这些异类的数据点与其他数据存在较大差异是会损毁分析结果的。”
以上是小编为大家分享的关于大数据的新算法:简化数据分类的相关内容,更多信息可以关注环球青藤分享更多干货
❻ 大数据时代 无处不在的算法应用
大数据时代 无处不在的算法应用
能不能讲讲算法在工作中的运用?你个人学习算法的过程是怎样的?我对算法还是有点怕。除此之外,你认为大学是应该多花时间学应用技术还是理论知识呢?
今天就来聊聊我自己学习算法的过程,以及算法在实际工作中的应用。
以前,我们认为大数据总是优于好算法。也就是说,只要数据量足够大,即使算法没有那么好,也会产生好的结果。
前一阵子“极客时间” App 发布了一条极客新闻:“算法比数据更重要,AlphaGo Zero 完胜旧版。”新闻的内容是谷歌人工智能团队 DeepMind 发布了新版的 AlphaGo 计算机程序,名为 AlphaGo Zero。这款软件能够从空白状态开始,不需要人类输入任何命令,便可以迅速自学围棋,并以 100 比 0 的战绩击败了上一代 AlphaGo。
AlphaGo Zero 最大的突破在于实现了“白板理论”。白板理论认为:婴儿是一块白板,可以通过后天学习和训练来提高智力。AI 的先驱图灵认为,只要能用机器制造一个类似于小孩的 AI,然后加以训练,就能得到一个近似成人智力,甚至超越人类智力的 AI。
自学成才的 AlphaGo Zero 正是实现了这一理论。AlphaGo 的首席研究员大卫·席尔瓦(David Silver)认为,从 AlphaGo Zero 中可以发现,算法比所谓的计算或数据量更为重要。事实上,AlphaGo Zero 使用的计算要比过去的版本少一个数量级,但是因为使用了更多原理和算法,它的性能反而更加强大。
由此可见,在大数据时代,算法的重要性日渐明晰。一个合格的程序员,必须掌握算法。
我不知道大家是怎样一步步开始精通算法和数据结构的。大二时,我第一次接触到了《数据结构》,因为从来没有过这方面的思维训练,当时的我学习这门课比较费力。那时候接触到的编程比较少,所以并没有很多实际经验让我欣赏和体味:一个好的数据结构和算法设计到底 “美” 在哪里。
开始学习的时候,我甚至有点死记硬背的感觉,我并不知道 “如果不这样设计”,实际上会出现哪些问题。各种时间和空间复杂度对我而言,也仅仅是一些不能融入到实际问题的数学游戏。至于“每种最坏情况、平均情况的时间空间复杂度与各种排序”,这些内容为什么那么重要,当时我想,可能因为考试会考吧。
没想到后来的时日,我又与算法重新结缘。可能是因为莱斯大学给的奖学金太高了,所以每个研究生需要无偿当五个学期的助教 。好巧不巧,我又被算法老师两次挑中当助教。所以,在命运强制下,一本《算法导论》就这样被我前前后后仔细学习了不下四遍。这样的结果是,我基本做过整本书的习题,有些还不止做了一遍。我学习算法的过程,就是反复阅读《算法导论》的过程。
那么,学习算法到底有什么用处呢?
首先,算法是面试的敲门砖国内的情况我不太清楚,但就硅谷的 IT 公司而言,不但电话面试偏算法,现场面试至少有两轮都是考算法和编程的。
大一些老一些的公司,像谷歌、Facebook、领英、Dropbox 等,都是直接在白板上写程序。小一些新一些的公司,如 Square、Airbnb 等,都是需要现场上机写出可运行的程序。Twitter、Uber 等公司则是白板上机兼备,视情况而定。
虽说还有其它考系统设计等部分,但如果算法没有打好基础,第一关就很难过,而且算法要熟悉到能够现场短时间内写出正解,所以很多人准备面试前都需要刷题。
有一次我当面试官,电话面试另外一个人,当时是用 Codepad 共享的方式,让对方写一个可运行的正则表达式解析器。45 分钟过去了,对方并没有写出来。我就例行公事地问:“你还有什么问题想问或者想了解么?” 对方估计因为写不出程序很有挫败感,就反问:“你们平时工作难道就是天天写正则表达式的解析器么?”
一瞬间,我竟无言以对。想了想,我回复说:“不用天天写。那我再给你 15 分钟,你证明给我看你还会什么,或者有什么理由让我给你进一步面试的机会?” 对方想了一会,默默挂掉了电话。
老实说,我对目前面试中偏重算法的程度是持保留意见的。算法题答得好,并不能说明你有多牛。牛人也有因为不愿刷题而马失前蹄的时候。但是除了算法测试,显然也没有更好的方法佐证候选人的实力;然而怎样才能最优化面试流程,这也是个讨论起来没完的话题,并且每次讨论必定无果而终。
其次,编程时用到的更多是算法思想,而不是写具体的算法说到实际工作中真正需要使用算法的机会,让我想一想 —— 这个范围应该在 10% 的附近游走。
有些朋友在工作中遇到算法场景多些,有的少些。更多的时候,是对业务逻辑的理解,对程序语言各种特性的熟练使用,对代码风格和模式的把握,各种同步异步的处理,包括代码测试、系统部署是否正规化等等。需要设计甚至实现一个算法的机会确实很少,即使用到,现学可能都来得及。
但是熟悉基本算法的好处在于:如果工作需要读的一段代码中包含一些基本算法思想,你会比不懂算法的人理解代码含义更快。读到一段烂代码,你知道为什么烂,烂在哪,怎么去优化。
当真的需要在程序中设计算法的时候,熟悉算法的你会给出一个更为完备的方案,对程序中出现的算法或比较复杂的时间复杂度问题你会更有敏感性。熟悉算法你还可以成为一个更优秀的面试官,可以和别的工程师聊天时候不被鄙视。
最后,不精通算法的工程师永远不是好工程师当然,除了算法导论中那些已成为经典的基本算法以及算法思想(Divide-and-conquer,Dynamic programming)等,其实我们每天接触到的各种技术中,算法无处不在。
就拿人人都会接触的存储为例吧,各种不同的数据库或者键值存储的实现,就会涉及各种分片(Sharding)算法、缓存失败(Cache Invalidation)算法、 锁定(Locking)算法,包括各种容错算法(多复制的同步算法)。 虽然说平时不太会去写这些算法 —— 除非你恰恰是做数据库实现的 —— 但是真正做到了解这项技术的算法细节和实现细节,无论对于技术选型还是对自己程序的整体性能评估都是至关重要的。
举个例子,当你在系统里需要一个键值存储方案的时候,面对可供选择的各种备选方案,到底应该选择哪一种呢?
永远没有一种方案在所有方面都是最佳的。就拿 Facebook 开源的 RocksDB 来说吧。了解它历史的人都知道,RocksDB 是构建在 LevelDB 之上的,可以在多 CPU 服务器上高效运行的一种键值存储。而 LevelDB 又是基于谷歌的 BigTable 数据库系统概念设计的。
早在 2004 年,谷歌开始开发 BigTable,其代码大量的依赖谷歌内部的代码库,虽然 BigTable 很牛,却因此无法开源。2011 年,谷歌的杰夫·迪恩和桑杰·格玛沃尔特开始基于 BigTable 的思想,重新开发一个开源的类似系统,并保证做到不用任何谷歌的代码库,于是就有了 LevelDB。这样一个键值存储的实现也用在了谷歌浏览器的 IndexedDB 中,对于谷歌浏览器的开源也提供了一定的支持。
我曾经在文章中提到过 CockroachDB,其实又可以看作是基于 RocksDB 之上的一个分布式实现。从另一个层面上讲,CockroachDB 又可以说是 Spanner 的一个开源实现。知道这些,就知道这些数据库或键值存储其实都同出一系。再来看看 LevelDB 底层的 SSTable 算法,就知道他们都是针对高吞吐量(high throughput),顺序读 / 写工作负载(sequential read/write workloads)有效的存储系统。
当然,一个系统里除了最基本的算法,很多的实现细节和系统架构都会对性能及应用有很大的影响。然而,对算法本身的理解和把握,永远是深入了解系统不可或缺的一环。
类似的例子还有很多,比如日志分析、打车软件的调度算法。
拿我比较熟悉的支付领域来说吧,比如信用卡 BIN 参数的压缩,从服务端到移动 App 的数据传输,为了让传输数据足够小,需要对数据进行压缩编码。
每个国家,比如中国、韩国、墨西哥信用卡前缀格式都不一样,如何尽量压缩同时又不会太复杂,以至于影响移动 App 端的代码复杂度,甚至形成 Bug 等,也需要对各种相关算法有详尽地了解,才有可能做出最优的方案。
关于算法我们来总结一下:
在大数据时代,数据和算法都同等重要,甚至算法比计算能力或数据量更为重要。
如何学习算法呢?读经典著作、做题,然后在实践中阅读和使用算法。
算法是面试的敲门砖,可以帮助你得到一份自己喜欢的工作。
写程序中用到的更多是算法思想,不是写具体的算法。
不精通算法的工程师永远不会是一个优秀的工程师,只有对各种相关算法有详尽理解,才有可能做出最优的方案。
❼ 大数据常用的各种算法
我们经常谈到的所谓的 数据挖掘 是通过大量的数据集进行排序,自动化识别趋势和模式并且建立相关性的过程。那现在市面的数据公司都是通过各种各样的途径来收集海量的信息,这些信息来自于网站、公司应用、社交媒体、移动设备和不断增长的物联网。
比如我们现在每天都在使用的搜索引擎。在自然语言处理领域,有一种非常流行的算法模型,叫做词袋模型,即把一段文字看成一袋水果,这个模型就是要算出这袋水果里,有几个苹果、几个香蕉和几个梨。搜索引擎会把这些数字记下来,如果你想要苹果,它就会把有苹果的这些袋子给你。
当我们在网上买东西或是看电影时,网站会推荐一些可能符合我们偏好的商品或是电影,这个推荐有时候还挺准。事实上,这背后的算法,是在数你喜欢的电影和其他人喜欢的电影有多少个是一样的,如果你们同时喜欢的电影超过一定个数,就把其他人喜欢、但你还没看过的电影推荐给你。 搜索引擎和推荐系统 在实际生产环境中还要做很多额外的工作,但是从本质上来说,它们都是在数数。
当数据量比较小的时候,可以通过人工查阅数据。而到了大数据时代,几百TB甚至上PB的数据在分析师或者老板的报告中,就只是几个数字结论而已。 在数数的过程中,数据中存在的信息也随之被丢弃,留下的那几个数字所能代表的信息价值,不抵其真实价值之万一。 过去十年,许多公司花了大价钱,用上了物联网和云计算,收集了大量的数据,但是到头来却发现得到的收益并没有想象中那么多。
所以说我们现在正处于“ 数字化一切 ”的时代。人们的所有行为,都将以某种数字化手段转换成数据并保存下来。每到新年,各大网站、App就会给用户推送上一年的回顾报告,比如支付宝会告诉用户在过去一年里花了多少钱、在淘宝上买了多少东西、去什么地方吃过饭、花费金额超过了百分之多少的小伙伴;航旅纵横会告诉用户去年做了多少次飞机、总飞行里程是多少、去的最多的城市是哪里;同样的,最后让用户知道他的行程超过了多少小伙伴。 这些报告看起来非常酷炫,又冠以“大数据”之名,让用户以为是多么了不起的技术。
实际上,企业对于数据的使用和分析,并不比我们每年收到的年度报告更复杂。已经有30多年历史的商业智能,看起来非常酷炫,其本质依然是数数,并把数出来的结果画成图给管理者看。只是在不同的行业、场景下,同样的数字和图表会有不同的名字。即使是最近几年炙手可热的大数据处理技术,也不过是可以数更多的数,并且数的更快一些而已。
在大数据处理过程中会用到那些算法呢?
1、A* 搜索算法——图形搜索算法,从给定起点到给定终点计算出路径。其中使用了一种启发式的估算,为每个节点估算通过该节点的较佳路径,并以之为各个地点排定次序。算法以得到的次序访问这些节点。因此,A*搜索算法是较佳优先搜索的范例。
2、集束搜索(又名定向搜索,Beam Search)——较佳优先搜索算法的优化。使用启发式函数评估它检查的每个节点的能力。不过,集束搜索只能在每个深度中发现最前面的m个最符合条件的节点,m是固定数字——集束的宽度。
3、二分查找(Binary Search)——在线性数组中找特定值的算法,每个步骤去掉一半不符合要求的数据。
4、分支界定算法(Branch and Bound)——在多种最优化问题中寻找特定最优化解决方案的算法,特别是针对离散、组合的最优化。
5、Buchberger算法——一种数学算法,可将其视为针对单变量较大公约数求解的欧几里得算法和线性系统中高斯消元法的泛化。
6、数据压缩——采取特定编码方案,使用更少的字节数(或是其他信息承载单元)对信息编码的过程,又叫来源编码。
7、Diffie-Hellman密钥交换算法——一种加密协议,允许双方在事先不了解对方的情况下,在不安全的通信信道中,共同建立共享密钥。该密钥以后可与一个对称密码一起,加密后续通讯。
8、Dijkstra算法——针对没有负值权重边的有向图,计算其中的单一起点最短算法。
9、离散微分算法(Discrete differentiation)。
10、动态规划算法(Dynamic Programming)——展示互相覆盖的子问题和最优子架构算法
11、欧几里得算法(Euclidean algorithm)——计算两个整数的较大公约数。最古老的算法之一,出现在公元前300前欧几里得的《几何原本》。
12、期望-较大算法(Expectation-maximization algorithm,又名EM-Training)——在统计计算中,期望-较大算法在概率模型中寻找可能性较大的参数估算值,其中模型依赖于未发现的潜在变量。EM在两个步骤中交替计算,第一步是计算期望,利用对隐藏变量的现有估计值,计算其较大可能估计值;第二步是较大化,较大化在第一步上求得的较大可能值来计算参数的值。
13、快速傅里叶变换(Fast Fourier transform,FFT)——计算离散的傅里叶变换(DFT)及其反转。该算法应用范围很广,从数字信号处理到解决偏微分方程,到快速计算大整数乘积。
14、梯度下降(Gradient descent)——一种数学上的最优化算法。
15、哈希算法(Hashing)。
16、堆排序(Heaps)。
17、Karatsuba乘法——需要完成上千位整数的乘法的系统中使用,比如计算机代数系统和大数程序库,如果使用长乘法,速度太慢。该算法发现于1962年。
18、LLL算法(Lenstra-Lenstra-Lovasz lattice rection)——以格规约(lattice)基数为输入,输出短正交向量基数。LLL算法在以下公共密钥加密方法中有大量使用:背包加密系统(knapsack)、有特定设置的RSA加密等等。
19、较大流量算法(Maximum flow)——该算法试图从一个流量网络中找到较大的流。它优势被定义为找到这样一个流的值。较大流问题可以看作更复杂的网络流问题的特定情况。较大流与网络中的界面有关,这就是较大流-最小截定理(Max-flow min-cut theorem)。Ford-Fulkerson 能找到一个流网络中的较大流。
20、合并排序(Merge Sort)。
21、牛顿法(Newton's method)——求非线性方程(组)零点的一种重要的迭代法。
22、Q-learning学习算法——这是一种通过学习动作值函数(action-value function)完成的强化学习算法,函数采取在给定状态的给定动作,并计算出期望的效用价值,在此后遵循固定的策略。Q-leanring的优势是,在不需要环境模型的情况下,可以对比可采纳行动的期望效用。
23、两次筛法(Quadratic Sieve)——现代整数因子分解算法,在实践中,是目前已知第二快的此类算法(仅次于数域筛法Number Field Sieve)。对于110位以下的十位整数,它仍是最快的,而且都认为它比数域筛法更简单。
24、RANSAC——是“RANdom SAmple Consensus”的缩写。该算法根据一系列观察得到的数据,数据中包含异常值,估算一个数学模型的参数值。其基本假设是:数据包含非异化值,也就是能够通过某些模型参数解释的值,异化值就是那些不符合模型的数据点。
25、RSA——公钥加密算法。较早的适用于以签名作为加密的算法。RSA在电商行业中仍大规模使用,大家也相信它有足够安全长度的公钥。
26、Schönhage-Strassen算法——在数学中,Schönhage-Strassen算法是用来完成大整数的乘法的快速渐近算法。其算法复杂度为:O(N log(N) log(log(N))),该算法使用了傅里叶变换。
27、单纯型算法(Simplex Algorithm)——在数学的优化理论中,单纯型算法是常用的技术,用来找到线性规划问题的数值解。线性规划问题包括在一组实变量上的一系列线性不等式组,以及一个等待较大化(或最小化)的固定线性函数。
28、奇异值分解(Singular value decomposition,简称SVD)——在线性代数中,SVD是重要的实数或复数矩阵的分解方法,在信号处理和统计中有多种应用,比如计算矩阵的伪逆矩阵(以求解最小二乘法问题)、解决超定线性系统(overdetermined linear systems)、矩阵逼近、数值天气预报等等。
29、求解线性方程组(Solving a system of linear equations)——线性方程组是数学中最古老的问题,它们有很多应用,比如在数字信号处理、线性规划中的估算和预测、数值分析中的非线性问题逼近等等。求解线性方程组,可以使用高斯—约当消去法(Gauss-Jordan elimination),或是柯列斯基分解( Cholesky decomposition)。
30、Strukturtensor算法——应用于模式识别领域,为所有像素找出一种计算方法,看看该像素是否处于同质区域( homogenous region),看看它是否属于边缘,还是是一个顶点。
31、合并查找算法(Union-find)——给定一组元素,该算法常常用来把这些元素分为多个分离的、彼此不重合的组。不相交集(disjoint-set)的数据结构可以跟踪这样的切分方法。合并查找算法可以在此种数据结构上完成两个有用的操作:
查找:判断某特定元素属于哪个组。
合并:联合或合并两个组为一个组。
32、维特比算法(Viterbi algorithm)——寻找隐藏状态最有可能序列的动态规划算法,这种序列被称为维特比路径,其结果是一系列可以观察到的事件,特别是在隐藏的Markov模型中。