山东大学数据科学导论笔记

限于喜欢 提交于 2020-01-18 08:12:52

数据科学导论这门课,怎么说呢。老师也不知道教了什么,学生也不知道学了什么,莫名其妙考试也不知道靠什么。这里整理了一点笔记,仅供考试前参考!!

ch1 引言

引言这一章,基本上不会出题,了解即可。

数据科学概念:是对数据进行分析,抽取信息和知识的过程,提供指导和支持的基本原则和方法。它研究数据的各种类型、状态、属性及其变化规律,它研究各种方法,对数据进行分析,从而揭示自然界和人类行为等现象背后的规律。

数据科学的核心任务,是从数据中抽取有用的信息/知识

数据科学组成:一组概念 Concept 、原则 Principles 、过程 processes 、技术 techniques
/方法 methods 、以及工具 tools 。(简记cpptt)

数据科学的基本原则:

  1. 分析数据、获得知识,从而解决具体的业务问题,是数据科学的核心任务,这个任务可以划分为 understand data, collect data, integrate data, analyze data, visualize result, communicate result 等一系列的阶段
  2. 对数据分析的结果进行评估,需要结合所处的应用程序上下文环境进行仔细考察。
  3. 从大量的基础数据中,我们可能分析出变量之间的相关性
  4. 在一些属性上相似的实体,在其它属性上(可能是未知的一些属性)一般也是相似的。
  5. 在现有的数据上适配得很好的模型(分析结果),有可能不能很好地泛化,即不能适配到新数据上。
  6. 当我们从数据的分析结果中,试图得出一些因果关系的结论的时候,我们必须考虑到一些额外的因子(有可能先前没有考虑进来)。
  7. 通过并行处理提高数据处理(分析)速度

数据处理流程:采集、表示与存储、清洗、集成、分析、展现、决策

ch2 数据预准备

ETL 概念:(蛮重要的)
Extract:从源中提取数据
Transform: 在源、汇或暂存区转换数据
Load:将数据加载到汇中
在这里插入图片描述
数据预准备的阶段任务
阶段:数据特征化、数据清洗、数据集成
任务:必须有效地在空间和时间移动数据,包括数据传输 和 数据序列化和反序列化(用于文件或网络)

几种数据格式:JSON、XML、HTML

ch3 数据模型

关系型数据库不适用的原因

  • 索引:典型的 RDBMS 表存储大部分是索引,负担不起这么大的数据存储开销
  • 事务:安全状态变化需要日志等,而且速度很慢
  • 关系:检查关系会增加更新的开销
  • 稀疏数据支持:当数据非常稀疏时,RDBMS 表是非常浪费的

Key-value 列存储分解

ch4 数据清洗和集成

脏数据 在数据挖掘工作中,脏数据是指不完整、含噪声、不一致的数据

脏数据表现

  1. 将文本解析为字段(分隔符问题)
  2. 命名惯例
  3. 缺少必要的字段(如关键字段)
  4. 不同的表述
  5. 字段太长(被截断)
  6. 主键冲突(从非结构化转成结构化的过程中或在集成期间)
  7. 冗余记录(精确匹配或其他)
  8. 格式问题——尤其是日期
  9. 许可问题/隐私/阻止您按自己的意愿使用数据?

数据质量
正确性:数据记录正确。
完整性:所有有关数据均已记录。
唯一性:实体记录一次。
及时性:数据是最新的。
时间一致性。
一致性:数据本身是一致的。

数据清洗任务

  1. 对元组及其各个属性值格式进行调整,使之符合值域要求,使用统一单位
  2. 完整性约束条件的检查和实施
  3. 从已有的取值导出缺失的值
  4. 解决元组内部和元组之间的矛盾冲突
  5. 消除、合并重复值
  6. 检测离群值,极有可能是无效数据

数据清洗过程

  1. 对数据进行审计,把数据异常的类型标识出来
  2. 定义工作流。选择合适的方法,用于检测和剔出这些异常
  3. 执行工作流。在数据上执行这些方法
  4. 后续处理和控制阶段将检查清洗结果,把在前面步骤中没有纠正过来的错误元组进行进一步处理

数据清洗具体方法

  1. 对数据进行解析,检测语法错误
  2. 数据转换,将数据从一个格式映射到另外一种格式,以适应应用程序的需要
  3. 实施完整性约束条件
  4. 消除重复数据
  5. 用统计方法对数据进行审计,甚至可以对数据中的异常进行纠正

数据清洗的若干问题

  • 不可测量的:准确性和完整性是非常困难的,可能无法测量。
  • 上下文无关:不考虑什么是重要的。
  • 不完整:可解释性、可访问性、元数据、分析等等。
  • 含糊不清:传统的定义没有对数据的实际改进提供任何指导。

数据集成面对的困难

  • 异构数据:没有共同的关键字,不同的字段格式。近似匹配
  • 不同的定义
  • 时间同步:数据是否与相同的时间段相关?时间窗口是否兼容?
  • 遗留数据

数据集成步骤

  1. 预处理/标准化:将数据转换成规范化格式
  2. 项的相似度计算
  3. 模式匹配

ch5 数据探索性分析

数据探索性分析
指对已有的数据在尽量量少的先验假定情况下进行探索,逐步了解数据的特点

数据探索性分析作用
利用人机交互技术和数据可视化技术,通过不断揭示数据的规律和数据间的关联,引导 分析人员发现并认识以前不知道的数据模式或规律。对未知的数据模式和规律的探索是其价值所在。

各种图

  1. 单变量:点图、抖动图、错误条形图、箱线图、直方图、核密度估计、累计分布函数
  2. 二变量:条形图、散点图、折线图、重对数坐标图(对于幂律数据非常有用)
  3. 多变量:堆叠图:堆叠变量是离散的 、平行坐标图:一个离散变量,任意数量的其他变量

探索式数据分析的基本方法

  1. 计算一些汇总统计量,了解数据的典型值,还可以通过确定异常值,了解数据的异常情况
  2. 制图和指表,展示变量的分布情况、时间序列数据的变化趋势以及变量之间的关系。

ch6 NLP

Bow (很重要)
将所有的词语装进一个袋子,不考虑其词法及语序,即每个单词都是独立的。一种特征化,它使用一个忽略顺序的单词计数向量。

ch7 ML

各种距离(很重要)

在这里插入图片描述
还有一个切比雪夫距离。

ch8 推荐

HITS 算法基本流程
输入:一个有向图
初始化:对于每一个节点 p,auth(p)=1,hub(p)=1
利用中枢值更新权威值:对于每一个节点 p,让 auth§等于指向 p 的所有节点 q 的 hub(q)
之和
利用权威值更新中枢值:对于每一个节点 p,让 hub§等于 p 指向的所有节点 q 的 auth(q)
之和
重复上述两步若干(k)次

归一化与极限
• 数值随迭代次数递增
• Auth 和 hub 值的意义在于相对大小
• 在每一轮结束后做归一化:值/总和
• 归一化结果随迭代次数趋向于一个极限,相继两次迭代的值不变,极限与初值无关,即存在“均衡”
• 向量方向的收敛

PageRank 算法
基本思想:用网页间的链接关系计算网页重要性过程:
输入:一个有 n 个节点的网络(有向图),设所有节点的 PageRank 初始值为 1/ n。
选择操作的步骤数 k
对 PageRank 做k 次更新操作,每次使用以下规则:
每个节点将自己当前的 PageRank 值通过出向链接均分传递给所指向的节点。若没有出向链接,则认为传递给自己(或者说保留)。每个节点以从入向链接获得的(包括可能自传的 )所有值之和更新它的 PageRank

退化图结构的处理
• 同比缩减
在每次运行基本 PageRank 更新规则后,将每一节点的 PageRank 值都乘以一个小于 1 的比例因子 s,0<s<1,经验值在 0.8-0.9 之间。
• 统一补偿
在每一节点的 PageRank 值上统一加上(1-s)/n。

ch9 hadoop

大数据时代的技术支撑: 存储设备容量不断增加 CPU 处理能力大幅提升 网络带宽不断增加

大数据概念:数据量大、数据类型多、处理速度快、价值密度低,商业价值高

云计算概念: 云计算实现了通过网络提供可伸缩的、廉价的分布式计算能力,用户只需要在具备网络接入条件的地方,就可以随时随地获得所需的各种 IT 资源
云计算关键技术:虚拟化、分布式存储、分布式计算、多租户等

Hadoop 是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性:

  • 高可靠性、高容错性
  • 高效性
  • 高可扩展性
  • 成本低
  • 运行在 Linux 平台上
  • 支持多种编程语言
    核心: 分布式文件系统 HDFS 和并行运算方法 MapReduce

HDFS 分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群
分布式文件系统设计需求:分布式文件系统的设计目标主要包括透明性、并发控制、可伸缩性、容错以及安全需求等。但是,在具体实现中,不同产品实现的级别和方式都有所不同。
HDFS 目标: 兼容廉价的硬件设备、流数据读写、大数据集、简单的文件模型、强大的跨平台兼容性
HDFS 局限性: 不适合低延迟数据访问、无法高效存储大量小文件、不支持多用户写入及任意修改文件
组成: 主节点(名称节点) + 从节点(数据节点)
主节点:负责管理分布式文件系统的命名空间,保存了两个核心的数据结构,FsImage 和 EditLog。FsImage 用于维护文件系统树以及文件树中所有的文件和文件夹的元数据,操作日志文件 EditLog 中记录了所有针对文件的创建、删除、重命名等操作。名称节点记录了每个文件中各个块所在的数据节点的位置信息。
从节点:是分布式文件系统 HDFS 的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。每个数据节点中的数据会被保存在各自节点的本地 Linux 文件系统中
HDFS 体系结构的局限性(只有一个名称节点):

  • 命名空间的限制:名称节点是保存在内存中的,因此,名称节点能够容纳的对象(文件、块)的个数会受到内存空间大小的限制。
  • 性能的瓶颈:整个分布式文件系统的吞吐量,受限于单个名称节点的吞吐量。
  • 隔离问题:由于集群中只有一个名称节点,只有一个命名空间,因此,无法对不同应用程序进行隔离。
  • 集群的可用性:一旦这个唯一的名称节点发生故障,会导致整个集群变得不可用。

块的好处: 支持大规模文件、存储简化系统设计、适合数据备份

为什么进行冗余数据保存:
作为一个分布式文件系统,为了保证系统的容错性和可用性,HDFS采用了多副本方式对数据进行冗余存储,通常一个数据块的多个副本会被分布到不同的数据节点上。这种多副本方式具有以下几个优点
加快数据传输速度、容易检查数据错误、保证数据可靠性

MapReduce (重点)
在这里插入图片描述
在这里插入图片描述

shuffle过程
在这里插入图片描述
在这里插入图片描述

ch10 老师的随口一说,你以为的介绍,他认为的重点

personal rank(很重要)

在推荐系统中,用户行为数据可以表示成图的形式,具体地,令G(V,E)表示用户物品二分图,其中V由用户顶点集合和物品顶点集合组成。对于数据集中每一个二元组(u, i),图中都有一套对应的边,其中是用户对应的顶点,是物品对应的顶点。图中用户节点和物品节点相连,说明用户对物品产生过行为。
将用户行为数据用二分图表示,将个性化推荐放在二分图模型中,那么给用户u推荐物品任务可以转化为度量Vu和与Vu 没有边直接相连的物品节点在图上的相关度,相关度越高的在推荐列表中越靠前。

1.在执行算法之前,我们需要初始化每个节点的初始概率值。如果我们对用户u进行推荐,则令u对应的节点的初始访问概率为1,其他节点的初始访问概率为0,然后再使用迭代公式计算。

2.对于personalRank来说,由于每个节点的初始访问概率相同,所以所有节点的初始访问概率都是1/N (N是节点总数)。

如果我们要计算所有节点相对于用户u的相关度,则PersonalRank从用户u对应的节点开始游走,每到一个节点都以1-d的概率停止游走并从u重新开始,或者以d的概率继续游走,从当前节点指向的节点中按照均匀分布随机选择一个节点往下游走。这样经过很多轮游走之后,每个顶点被访问到的概率也会收敛趋于稳定,这个时候我们就可以用概率来进行排名了。

众包思想

众包指的是一个公司或机构把过去由员工执行的工作任务,以自由自愿的形式外包给非特定的(而且通常是大型的)大众网络的做法。众包的任务通常是由个人来承担,但如果涉及到需要多人协作完成的任务,也有可能以依靠开源的个体生产的形式出现。

最后,clz老师的数据科学这门课,真的是。。。。还要看看其他老师讲的什么。每个学期可能讲的东西都不太一样。老师也不太记得自己讲的什么,这次考试莫名其妙出了个什么切比雪夫距离,最后还有个协同过滤推荐算法,感觉是全军覆没了。学弟学妹们,加油吧。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!