数据科学导论

这篇博客基于袁博老师的《数据科学导论》这一门慕课数据科学导论
,是为记录自己学习完这一门课后的所感所想。
也希望自己今后在数据科学这条路上可以坚定地走下去,不忘记欣赏两边的美景,更不忘记自己为何出发。

数据科学初探

谈到数据科学,就不可避免地牵扯到其定义,目前对于数据科学的定义并没有共识,但大体不差,同时提到数据科学,大数据这些热门词汇就需要提及。下面就谈谈个人对于数据科学和大数据的认识。
数据(data)是对事物的原始描述与记录,是构成信息和知识的原始材料。人们常通过属性来刻画和了解事物,其属性的取值就是数据,类型包括:离散型、连续型、符号型和文本型等。
大数据(big data)又称巨量资料,指的是传统数据处理应用软件不足以处理它们的大或复杂的数据集的术语。大数据也可以定义为来自各种来源的大量非结构化或结构化的数据。
数据科学(data science)又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。作为一门交叉学科,它结合了诸多领域中的理论与技术,包括应用数学、统计学、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。
个人看来,数据科学是一门关于数据的科学,其蕴含面十分广阔,大数据仅仅是其中的一小部分,在以前的时代,由于数据量较小,人们对数据的认知停留在统计学的理论及方法上,可是随着信息(数据的加工品)爆炸,人们意识到传统的统计学已经无法满足当今时代的需求,因此大数据便应运而生,但是我们不能止步于头疼医头脚疼医脚,数据科学作为一门关于数据的宏大科学便被提出来并加以研究。

数据采集

要想研究数据,就必须知道数据的来源及收集方法。
现在数据产生来源主要有机构(政府、高校等)个人(微信、微博等)及机器(手环、手机等),其产生的数据量依次递增。
一个典型的用于数据采集的硬件产品通常包含电源管理模块、信号处理模块、传感器模块和无线通信模块。
(关于数据采集的硬件产品的具体工作原理在袁博老师这门课的第二章有所讲解,感兴趣的可自行观看)

数据可视化

数据可视化旨在借助于图形化手段,清晰地表达数据所传递的信息。
数据可视化充分发挥了人类视觉的感知能力,可以让观看者简单直接地了解数据所要表达的信息。所谓耳听为虚眼见为实,此言不假。但是也有一句话值得注意,眼睛看到的不一定是真的,不信你数数下面有几根木板:
在这里插入图片描述
数据可视化时,要注意突出主题,形象生动,避免枯燥乏味或华而不实。根据数据所表达的信息的特征和需求的不同,选择合适的图表来进行表示。
可视化图表种类繁多,在此不再赘述。
从本质上说,可视化架起了人与数据之间沟通的桥梁,有助于发挥人类专家的领域知识和主观能动性。同时,可视化贯穿于从原始数据的直观描述到对数据挖掘过程的理解,再到对数据分析结果的展示,这一完整的过程,是数据科学领域不可或缺的一部分。(袁博老师语)
Visualization is challenging but no visualization is fatal.
个人认为对于数据可视化,简洁合适即为美
在此推荐我曾经读过的一本关于数据可视化的图书:邱南申(Nathan Yan)所著的《数据之美:一本书学会可视化设计》,同时还有我将要读的其姊妹篇《鲜活的数据:数据可视化指南》,个人建议在学习统计分析数据时同步阅读,将其中的感悟加以实践,知行合一,大有裨益。

高性能计算

高性能计算是大数据技术的核心,是数据科学的发动机。
在大数据时代,传统的单核串行处理已经无法满足海量数据的处理需求,因此多核并行处理技术便应运而生。相比于传统的数据处理技术,多核并行处理可以充分提高计算速度。其中,并行处理是其关键技术。

并行处理前提

并不是所有的程序都可并行处理,因此程序的可并行性是其并行处理的前提。记 I(i)为 i 指令的输入,O(i) 为 i 指令的输出,程序可并行需满足以下两个条件:

  1. 一条指令的输入和另一条指令的输出无关,即 I(i) ∩ O(j) = ∅
  2. 两条指令的输出无关,即 O(i) ∩ O(j) = ∅

并行处理内涵

并行(Parallel)处理,顾名思义,指计算机系统中能同时执行两个或多个指令的一种计算方法。
相对于串行处理,并行计算可以划分为时间并行和空间并行。时间并行即指令流水化,指将计算机执行处理步骤拆分为多个步骤,并通过多个硬件处理单元并行执行来加快指令处理速度,类似于工厂中的流水线,多见于单核处理器;空间并行指的是使用多个处理器执行并发计算(并发指的是某一时间点多个程序处于非完毕状态,且程序都是在同一个处理机上运行,但任一时刻只能有一个程序运行,类似于我们常用的页面快速切换),适用于多核处理器。
另外,并行计算也可以分为进程并行和线程并行,进程并行多用于分布式计算环境,线程并行多用于共享内存环境,我们常用的个人电脑多属于线程并行。使用windows操作系统的朋友对任务管理器一定不陌生(小时候为防妈妈检查快速关闭游戏的利器),其界面就很好地展示了两者概念:
在这里插入图片描述
在这里插入图片描述
从上图可以看到每一个应用为一个进程,拥有独立的内存空间,而每一个进程内有多个线程,为一个执行单元。线程运行在进程的环境中,并共享其全局数据。
从程序设计的角度看,并行可分为任务并行和数据并行,我们举个例子简单说明:例如有5名老师100份待批改的试卷,我们有两种方法可选择:一为每名老师批改20份试卷,此为数据并行;二为每名只改某一类题目,如只改填空题,此为任务并行;通常数据并行处理起来比任务并行简单。

并行处理工具

并行处理技术是大数据时代的产物,但是其发展是有其技术基础的,其中GPU的大力发展是其最重要的助推器。相比于传统的处理核心CPU,GPU的多核心数和运算速度快等特点恰恰是并行处理技术最为倚重的。关于GPU的概念不再赘述,值得注意的就是GPU必须依赖于CPU进行工作。
著名的CUDAC是标准C语言的扩展,程序经过较小的修改,可以提升几十倍甚至上千倍的计算效率,展示了GPU的高性能计算特点。
在数据科学中,Python、R和Matlab是主流编程工具。以matlab为例,目前新版的matlab已支持GPU运算,下面为袁博老师所展示的matlab的gpu计算程序:

x = rand(911,'single','gpuArray') %gpu适合单精度浮点数的运算,gpuarray指在gpu上排列运算
a = fft(x) %傅里叶快速变换函数支持gpu运算
y = gather(a) %把gpu的运算结果传输到cpu上

需要注意的是,小规模的计算问题并不宜采用GPU进行计算,因为其数据传输效率远低于GPU的运算速度。(这就牵扯到一个问题,我们通常认为一台计算机的计算速度是由处理器所决定的,但是制约计算机运行速度的通常是数据的传输效率)

计算量化指标

并行计算可以极大地提升计算效率,通常用加速比这一指标来量化其加速效果。记S=Tserial/Tparallel,即加速比为一个程序的串行版本的运行时间和它的并行版本的运行时间的比值。如下图所示,如果我们要求16个数的和,传统的串行即依次相加而得结果,需要进行15次计算;而下图的并行为以两个为一组,将16个数分为8组,每组求和后再汇总,然后再分组,再求和,依次往下,得到结果。一个程序的计算时间为最耗时的计算单元所需时间。在下图中,0号处理单元所需时间即为该程序并行处理所需时间,共计算4次。因此加速比S=15/4=3.75。
此外考虑到并行处理时其处理核心数的不同,因此产生了一个新的计算指标:计算效率,记E=S/N,N为计算核心数。例如我们使用2个计算核心完成了其求和计算,那么计算效率E=3.75/2=1.875。

在这里插入图片描述
在这里要提到两个著名的定理:

  • 阿姆达尔定律(Amdahl’s law/argument):一条计算机科学界的经验法则,因吉恩·阿姆达尔而得名,代表了处理器并行运算之后效率提升的能力。阿姆达尔定律是固定负载(计算总量不变)时的量化标准,假设一个程序中可并行部分的运行时间占总用时的比例为p,N为计算核心数,则S=1/[(1-p)+p/N]。该定律表明当计算核心数足够多时,加速比的上限等于1-p的倒数。由此表明,一个程序的并行潜力取决于其中可并行的部分所占的比例。
  • 古斯塔芬森定律(Gustafson’s law):也是描述处理器并行运算之后效率提升的能力,与阿姆达尔定律不同的是,其基于不同的假设:并行版本程序的运行时间由a+b来表示,即Tparallel=a+b,其中a,b分别表示串行和并行部分的运行时间,Tserial=a+N·b,N为计算核心数,所以加速比S=a+N·b/(a+b)=N-α(N-1) for α=a/(a+b),该定律表明当串行部分的计算量保持固定,可并行部分的线性规模增加时,随着计算核心数的增加,程序理论上的加速比可以呈线性增长。

并行处理瓶颈

制约并行处理速度的最关键因素是通信开销,即将多个并行处理程序所得到的结果进行汇总所需花费,在对程序进行并行处理时需要加以注意。
通常将原始问题拆分的程度越细越有助于提升并行潜力和加速比,但是线程和进程间同步和通信的开销也可能随之增大,所以需要找到一个合适的平衡点。

数据隐私

数据隐私想必大家都不陌生,我们每个人基本上都收到过形形色色的“关心”电话或消息,原因就在于我们的信息被泄露了,因此隐私权作为一个重要权利成为大数据时代的一个热门话题。

经典案例

侵犯隐私权的表现

  • 对个人数据未经授权的访问
  • 对个人敏感信息的发掘与公开
  • 对数据进行超过合理范围的使用

如何保护隐私权

保护隐私权的方法有两种,也可以说是对所涉及的对象做出的规范:

  • 法律所保护的信息范围
  • 法律所规范的信息主体

社会层面应注重立法,加强监管,目前《网络安全法》、《民法总则》、《最高人民法院、最高人民检察院关于办理侵犯公民个人信息刑事案件适用法律若干问题解释》等均对隐私权做了相关保护;
个人层面应在平时生活中加以注意,如妥善保管个人简历、妥善处理快递单据、注册账号时尽量少提供敏感信息、使用安全的网络连接环境等。

数据知识产权

当今时代,人们越来越重视对版权的保护,数据知识版权自然也不例外。

数据知识产权保护困境

  • 对用户数据的过度采集
  • 对用户历史数据如何处理
  • 用户在享受服务中产生的数据的产权归属问题

保护措施

为保护为保证数据产业长期健康发展,需要在法律上明确数据权属、数据流动和共享问题、数据利益的分配问题。

  • 在我国有《著作权法》、《反不正当竞争法》等对其保护
  • 被遗忘权:指人们有权利要求移除自己负面或过时的个人身份资讯搜索结果,见于欧盟《通用数据保护条例》(GDPR),我国目前尚未规定
    https://en.wikipedia.org/wiki/Right_to_be_forgotten
  • 数据可携带权:指数据主体有权从数据控制者处以结构化、常用和可机读的格式获取其向控制者提供的个人数据,见于欧盟《通用数据保护条例》,我国目前尚无此规定

数据产权保护新挑战

顺丰菜鸟之争:https://wiki.mbalib.com/wiki/顺丰菜鸟之争
随着大数据时代的到来,人们意识到数据产业也会产生数据垄断,主要表现有:

  • 因数据占有造成的进入壁垒或扩张壁垒
  • 拥有海量数据形成市场支配地位,并滥用这种市场支配地位
  • 设计数据方面的垄断协议以及针对数据资产的并购

数据科学应用

数据科学作为一门工具性科学,在各行各业都有着广泛的应用,在《数据科学导论》这门慕课中,主要介绍了其在法律界和环境保护中的巨大作用,感兴趣的可自行前往这门慕课聆听学习。

  • 12
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
山东大学数据科学导论是一门基础数据科学课程,学生在学习过程中可能会面临很多挑战和难题。为了更好地备考和复习该课程,我推荐使用csdn(CSDN中文社区)作为复习资料。 首先,csdn是一个专门提供技术交流和资源分享的知识社区,拥有众多IT从业者、学生和爱好者参与其中,其中也包括了许多和数据科学相关的专家和研究者。在该平台上,你可以找到很多与山东大学数据科学导论课程相关的博文、教程和经验分享。这些资源可以帮助你更好地理解和掌握课程内容。 其次,csdn提供了一个开放的论坛环境,你可以在社区中与其他学生进行讨论和交流。这样一来,你不仅可以解决自己的疑惑,还可以通过与他人的交流分享自己的见解和学习心得。这种互动性有助于加深你对数据科学导论的理解和记忆。 此外,csdn还提供了一些实践项目和代码示例,可以帮助你将理论知识转化为实际应用能力。通过动手实践,你可以更深入地理解数据科学导论中的一些概念和方法,并提升自己的编程和数据处理技能。 总的来说,csdn是一个提供丰富、多样化的数据科学导论复习资料的平台。你可以在这里找到相关的学习资源、与他人交流和分享经验,并通过实践项目提升自己的实际应用能力。希望你能充分利用这个平台,取得好成绩!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值