大数据到底怎么学:数据科学概论与大数据学习误区

发表于:2018-7-12 10:03

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:阿杜白话大数据    来源:简书

分享:
  3.大数据盲人摸象:如何构建完整的知识结构和分析能力
  从数字化、信息化、网络化到未来的智能化时代,移动互联网、物联网、云计算、大数据、人工智能等前沿信息技术领域,逐个火了一遍。也代表了信息技术发展的大趋势,什么是大数据,大数据的技术范畴及其逻辑关系,估计很多人都是根据自己所熟悉的领域在盲人摸象(如图5)。其实我这里讲的盲人摸象并不是贬义,毕竟一个领域的学习到精通就是从盲人摸象式开始的。大数据、数据科学都是很虚的一个概念,分析目标和采用技术都包罗万象,就好比写程序,分前端和后端,分B/S和C/S,分嵌入式、企业应用和APP等,开发语言更是有数十种,不同方向所需要的技术也是大不相同。
   
  图5 大数据盲人摸象
  所以怎么从点到面,构建大数据领域完整的知识结构和分析能力至关重要,某方面的技术和语言只是工具而已。大数据知识结构,就是既有精深的大数据基础理论知识,又有广博的知识面和应用全局观,具有大数据产业发展所需要的最合理、最优化、最关键的核心技术与知识体系。通过合理的知识结构和科学的大数据思维方法,提高大数据分析实战技能。这个目标很大,但还是可以达到的,首先要搞清楚大数据产业链的情况,接下来要明确大数据技术栈也就是相关技术体系,最后定下学习目标和应用方向,是面对什么行业的数据,是关注存储还是机器学习,数据规模是什么量级,数据类型是文本、图像、网页还是商业数据库?每个方向所用技术有较大差异,需要找准学习的兴趣点和切入点。
   
  图6 大数据技术栈与学习路线参考图
  上面这个大数据技术栈和学习路线图,可以说是一个大数据学习的总纲,专业性很强,值得初学者深入研究和理解,对我在前面提到的数据科学技术体系来讲,是更丰富的补充。比如基础学习部分包括线性代数、关系代数、数据库基础、CAP理论、OLAP、多维数据模型、数据预处理ETL等都分析得很到位。总之大数据学习不能像炒菜一样,等到把所有材料准备好了才下锅(因为这个领域技术体系庞杂应用目标广泛,就算学个十年二十年也难以掌握其大部分核心理论技术),而是结合自己的兴趣或工作需求,找一个点猛扎进去,掌握这个点的相关技术,深入理解其分析的流程、应用和评价等环节,搞透彻一个点之后,再以点带面,举一反三,逐步覆盖大数据各个领域,从而构建完整的知识结构和技术能力体系,这才是大数据学习的最佳路径。
  4.大数据要怎么学:数据科学特点与大数据学习误区
  (1)大数据学习要业务驱动,不要技术驱动:数据科学的核心能力是解决问题。大数据的核心目标是数据驱动的智能化,要解决具体的问题,不管是科学研究问题,还是商业决策问题,抑或是政府管理问题。所以学习之前要明确问题,理解问题,所谓问题导向、目标导向,这个明确之后再研究和选择合适的技术加以应用,这样才有针对性,言必hadoop,spark的大数据分析是不严谨的。不同的业务领域需要不同方向理论、技术和工具的支持。如文本、网页要自然语言建模,随时间变化数据流需要序列建模,图像音频和视频多是时空混合建模;大数据处理如采集需要爬虫、倒入导出和预处理等支持,存储需要分布式云存储、云计算资源管理等支持,计算需要分类、预测、描述等模型支持,应用需要可视化、知识库、决策评价等支持。所以是业务决定技术,而不是根据技术来考虑业务,这是大数据学习要避免的第一个误区。
  (2)大数据学习要善用开源,不要重复造轮子:数据科学的技术基因在于开源。IT前沿领域的开源化已成不可逆转的趋势,Android开源让智能手机平民化,让我们跨入了移动互联网时代,智能硬件开源将带领跨入物联网时代,以Hadoop和Spark为代表的大数据开源生态加速了去IOE(IBM、ORACLE、EMC)进程,倒逼传统IT巨头拥抱开源,谷歌和OpenAI联盟的深度学习开源(以Tensorflow,Torch,Caffe等为代表)正在加速人工智能技术的发展。数据科学的标配语言R和Python更是因开源而生,因开源而繁荣,诺基亚因没把握开源大势而衰落。为什么要开源,这得益于IT发展的工业化和构件化,各大领域的基础技术栈和工具库已经很成熟,下一阶段就是怎么快速组合、快速搭积木、快速产出的问题,不管是linux,anroid还是tensorflow,其基础构件库基本就是利用已有开源库,结合新的技术方法实现,组合构建而成,很少在重复造轮子。另外,开源这种众包开发模式,是一种集体智慧编程的体现,一个公司无法积聚全球工程师的开发智力,而一个GitHub上的明星开源项目可以,所以要善用开源和集体智慧编程,而不要重复造轮子,这是大数据学习要避免的第二个误区。
  (3)大数据学习要以点带面,不贪大求全:数据科学要把握好碎片化与系统性。根据前文的大数据技术体系分析,我们可以看到大数据技术的深度和广度都是传统信息技术难以比拟的。我们的精力很有限,短时间内很难掌握多个领域的大数据理论和技术,数据科学要把握好碎片化和系统性的关系。何为碎片化,这个碎片化包括业务层面和技术层面,大数据不只是谷歌,亚马逊,BAT等互联网企业,每一个行业、企业里面都有它去关注数据的痕迹:一条生产线上的实时传感器数据,车辆身上的传感数据,高铁设备的运行状态数据,交通部门的监控数据,医疗机构的病例数据,政府部门的海量数据等等,大数据的业务场景和分析目标是碎片化的,而且相互之间分析目标的差异很大;另外,技术层面来讲,大数据技术就是万金油,一切服务于数据分析和决策的技术都属于这个范畴,其技术体系也是碎片化的。那怎么把握系统性呢,不同领域的大数据应用有其共性关键技术,其系统技术架构也有相通的地方,如系统的高度可扩展性,能进行横向数据大规模扩张,纵向业务大规模扩展,高容错性和多源异构环境的支持,对原有系统的兼容和集成等等,每个大数据系统都应该考虑上述问题。如何把握大数据的碎片化学习和系统性设计,离不开前面提出的两点误区,建议从应用切入、以点带面,先从一个实际的应用领域需求出发,搞定一个一个技术点,有一定功底之后,再举一反三横向扩展逐步理解其系统性技术。
  (4)大数据学习要勇于实践,不要纸上谈兵:数据科学还是数据工程?大数据只有和特定领域的应用结合起来才能产生价值,数据科学还是数据工程是大数据学习要明确的关键问题,搞学术发paper数据科学OK,但要大数据应用落地,如果把数据科学成果转化为数据工程进行落地应用,难度很大,这也是很多企业质疑数据科学价值的原因。且不说这种转化需要一个过程,从业人员自身也是需要审视思考的。工业界包括政府管理机构如何引入研究智力,数据分析如何转化和价值变现?数据科学研究人员和企业大数据系统开发工程人员都得想想这些关键问题。目前数据工程要解决的关键问题主线是数据(Data)>知识(Knowledge)>服务(Service),数据采集和管理,挖掘分析获取知识,知识规律进行决策支持和应用转化为持续服务。解决好这三个问题,才算大数据应用落地,那么从学习角度讲,DWS就是大数据学习要解决问题的总目标,特别要注重数据科学的实践应用能力,而且实践要重于理论。从模型,特征,误差,实验,测试到应用,每一步都要考虑是否能解决现实问题,模型是否具备可解释性,要勇于尝试和迭代,模型和软件包本身不是万能的,大数据应用要注重鲁棒性和实效性,温室模型是没有用的,训练集和测试集就OK了吗?大数据如何走出实验室和工程化落地,一是不能闭门造车,模型收敛了就想当然万事大吉了;二是要走出实验室充分与业界实际决策问题对接;三是关联关系和因果关系都不能少,不能描述因果关系的模型无助于解决现实问题;四是注重模型的迭代和产品化,持续升级和优化,解决新数据增量学习和模型动态调整的问题。所以,大数据学习一定要清楚我是在做数据科学还是数据工程,各需要哪些方面的技术能力,现在处于哪一个阶段等,不然为了技术而技术,是难以学好和用好大数据的。
  (5)大数据学习的三个阶段:不同阶段的技术路线各有侧重,把握主要矛盾。在大数据应用实施过程中,由于技术和成本考虑,不可能短时间内解决所有问题,大数据应用本身有其规律和特点,比如分析目标一定是要跟数据规模匹配,分析技术的采用取决于数据结构和数据源条件,数据集成一定要覆盖比较全面的业务背景,关键环节数据不能有缺失等等。大数据学习可以根据应用目标分三个阶段:
  1)大数据基础设施建设阶段:这个阶段的重点是把大数据存起来,管起来,能用起来,同时要考虑大数据平台和原有业务系统的互通联合问题。一句话,做好全局数据集成解决数据孤岛问题!要完成大数据基础设施系统建设开发,需要明确数据采集、存储和分析各层核心组件的选型和使用,搭建稳定的大数据集群,或选择私有云方案的服务集群,与生产系统并线运行,使待分析的历史数据和实时数据得以采集并源源不断流入大数据系统。这个阶段的关键技术学习包括采集爬虫、数据接口、分布式存储、数据预处理ETL、数据集成、数据库和数据仓库管理、云计算和资源调度管理等等内容。
  2)大数据描述性分析阶段:此阶段主要定位于离线或在线对数据进行基本描述统计和探索式可视化分析,对管理起来的大数据能进行海量存储条件下的交互式查询、汇总、统计和可视化,如果建设了BI系统的,还需整合传统BI技术进行OLAP、KPI、Report、Chart、Dashboard等分析和初步的描述型数据挖掘分析。这个基础分析阶段是对数据集成质量的检验,也是对海量数据条件下的分布式存储管理技术应用稳定性的测试,同时要能替代或集成传统BI的各类报表。这个阶段的关键技术学习包括可视化、探索式交互式分析、多维分析、各类基本报表和图表的查询设计等等。
  3)大数据高级预测分析和生产部署阶段:在初步描述分析结果合理,符合预期目标,数据分布式管理和描述型分析稳定成熟的条件下,可结合进一步智能化分析需求,采用如深度学习等适用海量数据处理的机器学习模型,进行高级预测性挖掘分析。并通过逐步迭代优化挖掘模型和数据质量,形成稳定可靠和性能可扩展的智能预测模型,并在企业相关业务服务中进行分析结果的决策支持,进行验证、部署、评估和反馈。这个阶段的关键技术包括机器学习建模、决策支持、可视化、模型部署和运维等。
  在上述几个阶段的技术学习过程中,需要注意几个关键问题:一是重视可视化和业务决策,大数据分析结果是为决策服务,而大数据决策的表现形式,可视化技术的优劣起决定性作用;二是问问自己,Hadoop、Spark等是必须的吗?要从整个大数据技术栈来考虑技术选型和技术路线的确定;三是建模问题处于核心地位,模型的选择和评估至关重要,在课堂和实验室中,多数模型的评估是静态的,少有考虑其运行速度、实时性及增量处理,因此多使用复杂的臃肿模型,其特征变量往往及其复杂。而Kaggle竞赛中的各种Boost方法,XGBDT、随机森林等模型,在数据挖掘和机器学习教材中却少有提及,所以要充分参考业界实战经验不能尽信书;四是开发语言的选择,基础框架系统Java是必须掌握的,应用级的机器学习和数据分析库Python是必须掌握的,而要深入各种框架和学习库的底层,C++是必须掌握的;五是模型的产品化,需要将实际数据通过管道设计转换为输入特征传递给模型,如何最小化模型在线上和线下的表现差距,这些都是要解决关键的问题。
  (6)其它补充:Kaggle,众包与培训。众包是一种基于互联网的创新生产组织形式,企业利用网络将工作分配出去,通过让更合适的人群参与其中来发现创意和解决问题,如维基百科,还有IT资源社区GitHub,都是典型的众包平台。众包+开源极大推动了IT产业的快速发展,当然Kaggle作为数据科学领域顶级的众包平台,其影响力远不止于此(所以刚刚被谷歌收购)。企业和研究者可在Kaggle上发布数据,数据分析人员可在其上进行竞赛以产生最好的模型。这一众包模式本质就是集体智慧编程的体现,即有众多策略可以用于解决几乎所有预测建模问题,而分析人员不可能一开始就能找到最佳方案,Kaggle的目标就是通过众包的形式来解决这一难题,进而使数据科学成为一场集体智慧运动。所以说要学好大数据,严重推荐去Kaggle冲冲浪,很好的历练平台。至于大数据培训嘛,基础理论和技术还不甚了解的情况下可以去培训学习,有基础之后还得靠自己多练多解决实际问题。
  5.结论与展望
  做个小结,大数据不是银弹(Silver Bullet),大数据的兴起只是说明了一种现象,随着科技的高速发展,数据在人类生活和决策中所占的比重越来越大。面对如此广度和深度的大数据技术栈和工具集,如何学习和掌握好大数据分析这种技能,犹如盲人摸象,冷暖自知。不过技术的学习和应用也是相通的,条条大路通罗马,关键是要找准切入点,理论与实践结合,有全局观,工程化思维,对复杂系统设计开发与关键技术体系的主要矛盾要有所把握。熟悉大数据基础理论与算法、应用切入、以点带面、举一反三、横向扩展,从而构建完整的大数据知识结构和核心技术能力,这样的学习效果就会好很多。
  另外,技术发展也遵循量变到质变规律,人工智能+物联网+大数据+云计算是四位一体发展的(时间有先后,但技术实质性突破都在最近几年),未来智能时代的基础设施、核心架构将基于这四个层面,这种社会演化趋势也很明显:农业时代〉工业时代〉互联网时代〉智能化时代。在这个四位一体智能技术链条里面,物联网重在数据采集,云计算重在基础设施,大数据技术处于核心地位,人工智能则是发展目标,所以学习大数据技术还需要对这四个方面加以综合研究和理解。
  最后泼点冷水,简单说说大数据的前景,未来大数据岗位需求不会有媒体宣传的那么多,大数据具体工作不会有美国大片里那么炫酷,不要老盯着BAT,我国大数据的发展还处于初级阶段。总之技术归于技术,实践才能出真知,落地解决问题是关键,Palantir也是十年才磨出一剑。不过在大数据时代,人人都得懂点数据分析,这倒是最实在的,不懂编程?那就学Python吧,如果说人工智能时代的大妈和小学生都能编程的话,那一定用的是Python:)
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号