目录
文章目录
前言
大数据挖掘学习笔记
正文
1.数据挖掘概述
1.1 数据挖掘的概念
?数据挖掘:即数据中的知识发现(KDD)
一般而言,数据挖掘由以下步骤的迭代步骤组成:
- 数据清理——消除噪声和删除不一致数据
- 数据集成——多种数据源可以组合在一起,形成数据集市或数据仓库
- 数据选择——从数据库中提取与分析任务相关的数据
- 数据变换——通过汇总或聚集操作,把数据经过变换统一成适合挖掘的形式
- 数据挖掘——使用智能方法提取数据模式
- 模式评估——根据某种兴趣度量,识别代表知识的真正有趣的模式
- 知识展示——使用可视化和知识表示技术向用户提供挖掘的知识
1.2 数据挖掘的功能
?数据挖掘功能用于指定数据挖掘任务发现的模式
数据挖掘任务{描述性数据挖掘任务:刻画目标数据中数据的一般性质预测性数据挖掘任务:在当前数据上进行归纳,以便做出预测
1.2.1常见的数据挖掘功能:
- 聚类:把数据分成不同的群组,群组之间差异明显
- 关联分析:寻找数据中的值的关联和相关性
- 数据总结:对数据进行浓缩,给出它的紧凑描述
- 偏差检测:对分析对象的少数的,极端的特例进行描述,揭示内在的原因
- 预测:把握分析对象发展的规律,对未来的趋势做出预见
- 分类:构造一个分类器,把数据映射到给定类别中的某一个
聚类,关联分析,数据总结,偏差检测可以认为是描述性任务,而预测和分类可以认为是预测性任务
1.2.2数据挖掘功能详细介绍:
- 聚类:聚类是把一个数据对象(或观测)划分为子集的过程,每一个子集就是一个簇。数据对象根据最大化类内相似性,最小化类间相似性的原则进行聚类或分组,因为没有提供类标记信息,通过观察学习而不是通过示例学习,聚类是一种无监督学习
- 分类:分类是一种重要的数据分析形式,它提取刻画重要数据类的模型。这种模型称为分类器,预测分类的(离散的,无序的)类标记,是一种监督学习,即分类器的学习是在被告知每个训练元组属于哪个类的"监督"下学习的
- 关联分析:若两个或多个变量之间的取值之间存在某种规律性,就称为关联。关联可以分为简单关联,时序关联,因果关联等。关联分析的目的是找出数据中隐藏的关联网。有时并不知道数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度
- 数据总结:从数据分析的统计分析演变而来,其目的是对数据进行浓缩,给出它的紧凑描述。其中,数据描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。数据描述分为特征性描述和区别性描述,前者描述这类对象的共同特征,后者描述不同类对象之间的区别。
- 偏差检测:偏差包括很多潜在的知识,如分类中的反常实例,不满足规则的特例,观测结果与模型预测值的偏差,量值随时间的变化等。偏差检测基本方法是,寻找观测结果与参照值之间有意义的差别,对分析对象中少数的,极端的特例进行描述,解释内在原因。
- 预测:通过对样本数据(历史数据)的输入值和输出值的关联性学习,得到预测模型,再利用该模型对未来的输入值进行输出值预测。
1.3 数据挖掘运用到的技术
- 统计学
- 机器学习
- 数据库和数据仓库
- 信息检索
- 可视化
1.4 大数据挖掘和传统数据挖掘的区别
主要区别体现在以下几方面:
- 大数据挖掘在一定程度上降低了对传统数据挖掘模型以及算法的依赖:当数据越来越大时,数据本身(而不是研究数据所使用的算法和模型)保证了数据分析结果的有效性。即便缺乏精准的算法,只要拥有足够多的数据,也能得到接近事实的结论。
- 大数据挖掘在一定程度上降低了因果关系对传统数据挖掘结果精度的影响:大数据分析可以挖掘出不同要素之间的相关关系,人们不需要知道这些要素为什么相关,就可以利用其结果。计算机可以在不了解问题逻辑的情况之下提供最为可靠的结果。
- 大数据挖掘能够在最大程度上利用互联网上记录的用户行为数据进行分析:大数据可以处理半结构化或非结构化的数据,因此对于数据结构化的要求大大降低,互联网上人们留下的社交信息,地理位置信息,行为习惯信息,偏好信息等各种维度的信息都可以实时处理,从而立体完整地勾勒出每一个个体的各种特征
2. 大数据挖掘的计算框架
2.1 大数据挖掘计算框架
目前,在大数据处理领域形成了以Hadoop,Spark等为代表的大数据生态圈
2.1.1 Hadoop框架
Hadoop是一个由Apache基金会所开发的分布式系统基础架构
Hadoop与传统系统的区别在于:Hadoop可以在相同的数据上同时运行不同类型的分析工作
Hadoop的框架最为核心的设计就是HDFS和MapReduce
- HDFS为海量的数据提供了存储
- MapReduce为海量的数据提供了计算
Hadoop大数据生态圈基本上是为了处理超过单机尺度的数据处理而诞生的。
可以把它比作一个厨房工具生态圈:
做饭所需要的各种锅碗瓢盘等工具各有各的用处,互相之间还有重合。当然,可以用汤锅直接当碗吃饭喝汤,也可以用小刀或刨子去皮,但是每个工具又有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择
2.1.2 典型大数据计算框架对比
在面对任何一个大数据应用场景时,你首先想到的不是用什么工具,而是用什么框架
计算框架 | 计算效率(实时性) | 容错性 | 特点 | 适用场景 |
---|---|---|---|---|
MapReduce | 低 | 任务出错重做 | 编程接口简单,计算模型受限 | 文本处理,Log分析,机器学习 |
Spark | 高 | RDD的Lineage保证 | 内存计算通用性好,更适合迭代式任务 | 迭代式离线分析任务,机器学习 |
Dryad | 较高 | 任务出错重做 | 针对Join进行了优化,允许动态优化调度逻辑(修改DAG拓扑) | 机器学习,微软技术栈 |
GraphLab | 较高 | 检查点技术 | 机器学习图计算专用框架 | 机器学习,大图计算 |
Storm | 高 | Worker重启或分配到新机器,任务重做 | 通用性好,消息传递可靠,支持热部署,主节点可靠性差 | 通用的实时数据分析处理 |
S4 | 高 | 部分容错,检查点技术 | 通用性较好,通信在TCP和UDP之间权衡,持久化方式简单 | 实时广告推荐,容忍数据丢失 |
Samza | 高 | 任务出错重做 | 可扩展性好,兼容流处理和批处理 | 在线和离线任务相结合的场景 |
Sparking Streaming | 高 | RDD和预写日志 | 通用性好,容错性好,通过设置短时间片实现实时,应用较为局限 | 历史数据和实时数据相结合的分析 |
2.2 大数据挖掘处理基本流程
2.2.1 大数据对数据的处理与传统的处理方式不同
- 全样而非抽样:更注重全体数据的处理而非抽样数据
- 效率而非精确:更注重处理的效率而非精度
- 相关而非因果:更注重事物之间的相关性而非因果性
2.2.2 大数据挖掘处理基本流程
序号 | 环节名称 | 工具名称 |
---|---|---|
1 | 数据采集 | Flume,Kafka,Scribe等 |
2 | 数据存储 | HDFS,HBase,Cassadra等 |
3 | ETL | Sqoop,DataX等 |
4 | 数据计算 | MapReduce,Storm,Impala,Spark,Spark Streaming等 |
5 | 数据分析与挖掘 | Hive,Pig,Mahout,R语言等 |
6 | 数据可视化 | D3,js,ECharts等 |
后记
保研的学长们去的去清华,北大,浙大,川大,上届也太厉害了哎