全栈工程师开发手册 (作者:栾鹏)

python开发大全、系列文章、精品教程

数据挖掘的技术过程:

  1. 数据清理(消除噪音或不一致数据)
  2. 数据集成(多种数据源可以组合在一起)
  3. 数据选择(从数据库中提取与分析任务相关的数据)
  4. 数据变换(数据变换或统一成适合挖掘的形式;如,通过汇总或聚集操作)
  5. 数据挖掘(基本步骤,使用智能方法提取数据模式)
  6. 模式评估(根据某种兴趣度度量,识别提供知识的真正有趣的模式)
  7. 知识表示(使用可视化和知识表示技术,向用户提供挖掘的知识)。

可以挖掘的数据类型:

关系数据库、数据仓库、事务数据库、空间数据库、时间序列数据库、文本数据库和多媒体数据库。

关系数据库:是表的集合,每个表都赋予一个唯一的名字。每个表包含一组 属性(列或字段),并通常存放大量 元组(记录或行)。关系中的每个元组代表一个被唯一关键字标识的对象,并被一组属性值描述。

数据仓库:通过数据清理、数据变换、数据集成、数据装入和定期数据刷新构造

事务数据库:由一个文件组成,其中每个记录代表一个事务。通常,一个事务包含一个唯一的事务标识号(trans_ID),和一个组成事务的项的列表(如,在商店购买的商品)

数据抽样:

抽样是一种选择数据对象子集进行分析的常用方法。在统计学中,抽样长期用于数据的事先调查和最终的数据分析。在数据挖掘中,抽样也非常有用。然而,在统计学和数据挖掘中,抽样的动机并不相同。统计学使用抽样是因为得到感兴趣的整个数据集的费用太高、太费时间,而数据挖掘使用抽样是因为处理所有的数据的费用太高、太费时间。在某些情况下,使用抽样的算法可以压缩数据量,以便可以使用更好但开销较大的数据挖掘算法。
有效抽样的主要原理如下:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。而样本是有代表性的,前提是它近似地具有与原数据集相同的(感兴趣的)性质。如果数据对象的均值(平均值)是感兴趣的性质,而样本具有近似于原数据集的均值,则样本就是有代表性的。由于抽样是一个统计过程,特定样本的代表性是变化的,因此我们所能做的最好的抽样方案就是选择一个确保以很高的概率得到有代表性的样本。如下所述,这涉及选择适当的样本容量和抽样技术。

  1. 抽样方法
    有许多抽样技术,但是这里只介绍少数最基本的抽样技术和它们的变形。最简单的抽样是简单随机抽样(simple random sampling)。对于这种抽样,选取任何特定项的概率相等。随机抽样有两种变形(其他抽样技术也一样):(1) 无放回抽样–每个选中项立即从构成总体的所有对象集中删除;(2) 有放回抽样–对象被选中时不从总体中删除。在有放回抽样中,相同的对象可能被多次抽出。当样本与数据集相比相对较小时,两种方法产生的样本差别不大。但是,对于分析,有放回抽样较为简单,因为在抽样过程中,每个对象被选中的概率保持不变。
    当总体由不同类型的对象组成,每种类型的对象数量差别很大时,简单随机抽样不能充分地代表不太频繁出现的对象类型。当分析需要所有类型的代表时,这可能出现问题。例如,当为稀有类构建分类模型时,样本中适当地提供稀有类是至关重要的,因此需要提供具有不同频率的感兴趣的项的抽样方案。分层抽样(stratified sampling)就是这样的方法,它从预先指定的组开始抽样。在最简单的情况下,尽管每组的大小不同,但是从每组抽取的对象个数相同。另一种变形是从每一组抽取的对象数量正比于该组的大小。
    例2.8 抽样与信息损失 一旦选定抽样技术,就需要选择样本容量。较大的样本容量增大了样本具有代表性的概率,但也抵消了抽样带来的许多好处。反过来,使用较小容量的样本,可能丢失模式,或检测出错误的模式。图2-9a显示包含8 000个二维点的数据集,而图2-9b和图2-9c显示从该数据集抽取的容量分别为2 000和500的样本。该数据集的大部分结构都出现在2 000个点的样本中,但是许多结构在500个点的样本中丢失了。

图2-9 抽样丢失结构的例子
例2.9 确定适当的样本容量 为了说明确定合适的样本容量需要系统的方法,考虑下面的任务。
给定一个数据集,它包含少量容量大致相等的组。从每组至少找出一个代表点。假定每个组内的对象高度相似,但是不同组中的对象不太相似。还假定组的个数不多(例如,10个组)。图2-10a显示了一个理想簇(组)的集合,这些点可能从中抽取。
使用抽样可以有效地解决该问题。一种方法是取数据点的一个小样本,逐对计算点之间的相似性,然后形成高度相似的点组。从这些组每组取一个点,则可以得到具有代表性的点的集合。然而,按照该方法,我们需要确定样本的容量,它以很高的概率确保得到期望的结果,即从每个簇至少找出一个代表点。图2-10b显示随着样本容量从10变化到60时,从10个组的每一个得到一个对象的概率。有趣的是,使用容量为20的样本,只有很小的机会(20%)得到包含所有10个簇的样本。即便使用容量为30的样本,得到不包含所有10个簇中对象的样本的几率也很高(几乎40%)。该问题将在第8章习题4讨论聚类中进一步考察。

图2-10 从10个组找出具有代表性的点
2. 渐进抽样
合适的样本容量可能很难确定,因此有时需要使用自适应(adaptive)或渐进抽样(progre- ssive sampling)方法。这些方法从一个小样本开始,然后增加样本容量直至得到足够容量的样本。尽管这种技术不需要在开始就确定正确的样本容量,但是需要评估样本的方法,确定它是否足够大。
例如,假定使用渐进抽样来学习一个预测模型。尽管预测模型的准确率随样本容量增加,但是在某一点准确率的增加趋于稳定。我们希望在稳定点停止增加样本容量。通过掌握模型准确率随样本逐渐增大的变化情况,并通过选取接近于当前容量的其他样本,我们可以估计出与稳定点的接近程度,从而停止抽样。

数据预处理

分箱法:

由于分箱方法考虑相邻的值,因此是一种局部平滑方法。分箱的主要目的是去噪,将连续数据离散化,增加粒度。
按照取值的不同可划分为按箱平均值平滑、按箱中值平滑以及按箱边界值平滑。

假设有8、24、15、41、6、10、18、67、25等9个数,先对数进行从小到大的排序,6、8、10、15、18、24、25、41、67,再分为3箱。
箱1: 6、8、10
箱2: 15、18、24
箱3: 25、41、67
分别用三种不同的分箱法求出平滑存储数据的值:
按箱平均值求得平滑数据值:箱1: 8,8,8,平均值是8,这样该箱中的每一个值被替换为8。
按箱中值求得平滑数据值:箱2: 18,18,18 ,可以使用按箱中值平滑,此时,箱中的每一个值被箱中的中值替换。
按箱边界值求得平滑数据值: 箱3:25,25,67,箱中的最大和最小值被视为箱边界。箱中的每一个值都被最近的边界值替换。

可以挖掘的模式类型:

挖掘频繁模式、关联和相关性

用于预测分析的分类与回归

聚类分析

离群点分析

使用的技术

面向的应用类型

商务智能、web搜索引擎

在挖掘中需要注意的东西

源数据特征方面:

1、监督还是非监督,即有无样本数据。
2、对象特征(属性)是什么产生的,为什么这么产生
3、属性是离散的还是连续的
4、混合类型属性。离散属性是标称还是数值。标称属性类型:二元、有序、无关。数值属性类型:区间、比例
5、特征维度和稀疏度怎么处理
6、缺失值怎么处理
7、各维度尺度怎么处理
8、异常噪声怎么处理
9、超大数据集怎么办

数据间相似性和相异性的度量:

1、数据矩阵(对象-属性结构)、相异性矩阵(对象-对象结构)
2、标称属性的相似度、二元属性的相似度、数值属性的相似度、序数属性相似度、混合属性相似度
3、稀疏特征向量的余弦相似性

数据预处理方面(清洗、集承、归约、变换):

1、数据不准确怎么办?
2、数据不完整这么办?
3、数据格式不一致怎么办?
4、数据重复、冗余怎么办?
5、数据已过时怎么办?
6、数据噪声、离群点怎么办?
7、维度太高怎么办?(归约、小波变换、主成分分析、属性子集、)

数据结果方面:

1、数值结果还是类结果
2、如何判断结果的好坏(分类结果评估?聚类结果评估)
3、结果能否反馈到模型中(后馈)

模型方面:
1、如何判断模型的好坏
2、如何用现有数据增强模型(交叉验证)
3、如何并用多个模型(随机森林)

数据挖掘算法

分类器与聚类算法不同。聚类算法是非监督算法,只是对一群输入对象进行分组,每组属于什么类别是不知道的。而分类器是在没有任何数据前就已经定好了拥有哪些类。分类器是监督算法。对一批已知所属分类的数据集进行统计训练。然后再对新来的数据进行判定属于哪个分类。

分类过程概述:首先有一批已知分类的数据集。对每个输入对象提取特征,根据输入对象的特征属性和输入对象的所属分类,计算分类与特征属性之间的概率关系,以此来实现样本的训练。当对新的输入对象进行预测所属分类时,提取新输入对象的特征,根据训练好的概率,判断输入对象属于每个分类的概率。

python机器学习算法

参考:https://blog.csdn.net/luanpeng825485697/article/details/78347433

python机器学习库教程

参考:https://blog.csdn.net/luanpeng825485697/article/details/78347433

分类模型的评判

用什么评估:

混淆矩阵(Confusion Matrix)分析

怎么评估:

交叉验证

评估结果:

一个模型在训练数据上能够获得比其他模型更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个模型出现了过拟合的现象。出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。

例如下图

可以看出在a中虽然完全的拟合了样本数据,但对于b中的测试数据分类准确度很差。而c虽然没有完全拟合样本数据,但在d中对于测试数据的分类准确度却很高。过拟合问题往往是由于训练数据少等原因造成的。

由测量的样本数据,估计一个假定的模型/函数。根据拟合的模型是否合适?可分为以下三类:

1、合适拟合
2、欠拟合
3、过拟合

欠拟合:

合适的拟合:

过拟合:

大数据工程师基技能图谱:

在博客的文章中我们会尽量给出数据中所设计的技术教程。

其中数据可视化中,我们给出了echart教程http://blog.csdn.net/luanpeng825485697/article/details/76691965

其中编程语言中,我们给出了java和python语言。
java语言参考:http://blog.csdn.net/luanpeng825485697/article/details/78148311
python语言参考:http://blog.csdn.net/luanpeng825485697/article/details/78347433

其中数据分析中,我们给出了c++实现的matlab函数,进行数据分析,参考:
http://blog.csdn.net/luanpeng825485697/article/details/77510987

python中给出numpy和pandas库的使用

机器学习算法中,我们使用python给出了案例教程,参考:
http://blog.csdn.net/luanpeng825485697/article/details/78347433

机器学习工具,我们给出
scikit-learn、caffe、keras、tensorflow的使用
http://blog.csdn.net/luanpeng825485697/article/details/78347433

大数据处理平台,我们给出
spark、hadoop的开发教程

数据仓库,我们给出
spark sql的开发教程

数据挖掘工程师知识集锦相关推荐

  1. python数据挖掘工程师待遇_数据挖掘工程师岗位的具体职责

    数据挖掘工程师负责内容的处理,包括关键词提取.主题分析.类目预测.质量打分等.以下是学习啦小编整理的数据挖掘工程师岗位的具体职责. 数据挖掘工程师岗位的具体职责1 职责: 1. 参与市场营销分析.策划 ...

  2. 算法工程师属于计算机哪个领域,算法工程师、数据研发工程师,数据挖掘工程师的区别是什么?...

    算法工程师: 专业要求:计算机.电子.通信.数学等相关专业: 学历要求:本科及其以上的学历,大多数是硕士学历及其以上: 语言要求:英语要求是熟练,基本上能阅读国外专业书刊: 必须掌握计算机相关知识,熟 ...

  3. 大数据分析工程师面试集锦5--Spark面试指南

    点击上方"大数据与人工智能","星标或置顶公众号" 第一时间获取好内容 作者丨斌迪.HappyMint 编辑丨Zandy 导语 本篇文章为大家带来spark面试 ...

  4. 【数据挖掘】数据挖掘工程师是做什么的?

    [数据挖掘]数据挖掘工程师是做什么的? 2016-08-10 17:16 数据挖掘,从字面上理解,就是在数据中找到有用的东西,哪些东西有用就要看具体的业务目标了.最简单的就是统计应用了,比如电商数据, ...

  5. 关于数据挖掘相关知识汇集

    1.什么是数据挖掘 这是个有意思的问题. 由于数据科学刚刚兴起,数据科学家作为一种新生职业被提出,数据研究高级科学家Rachel Schutt将其定义为"计算机科学家.软件工程师和统计学家的 ...

  6. 学python数据挖掘自学路线图_学习攻略 | 数据挖掘工程师学习路线图

    原标题:学习攻略 | 数据挖掘工程师学习路线图 最近秋招也已经慢慢接近尾声了,从去年 8 月底开始,先后参加了 datacastle ,阿里天池,牛客网各自举办的数据挖掘比赛(都是 top10 ),今 ...

  7. Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程

    Interview之AI:人工智能领域岗位求职面试-人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础.ML算法简介.DL算法简介)来理解技术交互流程 目录 一.A ...

  8. ETL工程师和数据挖掘工程师的区别?

    ETL工程师: Extraction-Transformation-Loading的缩写,中文名称为数据抽取.转换和加载. ETL负责将分布的.异构数据源中的数据如关系数据.平面数据文件等抽取到临时中 ...

  9. 传说中的数据挖掘工程师,究竟是做什么的?

    数据挖掘,从字面上理解,就是在数据中找到有用的东西,哪些东西有用就要看具体的业务目标了.最简单的就是统计应用了,比如电商数据,如淘宝统计过哪个省购买泳衣最多等. 进一步,可以基于用户的浏览.点击.收藏 ...

最新文章

  1. 2020 年最值得学习的 5 大 AI 编程语言
  2. 如何给easyui datagrid toolbar上方添加搜索框
  3. Spring Cloud对Hystrix的支持
  4. 公开课精华 | 移动机器人视觉三维感知的现在与将来
  5. 【实践】美团到店综合业务场景下的知识图谱构建与应用实践.pdf(附下载链接)...
  6. spring作用域单例和global_面试必备 | 69道Spring面试题
  7. Nodejs express 获取url参数,post参数的三种方式
  8. Vue router路由懒加载
  9. QQ邮箱自动登录问题--frame嵌套元素定位
  10. 浅谈公路工程项目管理的发展趋势
  11. 本学期在实验室的收获
  12. 输出的字体全部变成繁体字
  13. 802.11 a/b/g/n的理解
  14. CSV文件打开乱码解决方法
  15. STC12C5A56S2和DS12C887做的电子闹铃
  16. java.sql.SQLSyntaxErrorException: Table ‘H_PERSION‘ doesn‘t exist
  17. (二)Semi-supervised(半监督学习)李宏毅
  18. Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余
  19. FASTQ文件详解【转】
  20. 贝索斯证词:零售业不是赢家通吃,亚马逊天天在竞争

热门文章

  1. 乐观锁实现接口幂等性_深入理解幂等性
  2. OpenWrt交换机手册(Switch Documentation)
  3. Android Studio之——问题集合及解决方法(对号入座)
  4. 计算机桌面出现家庭组,如何删除桌面上的“家庭组”图标;如何设置桌面图标...
  5. android:ellipsize的使用
  6. (最简单)小米MIX 3的Usb调试模式在哪里打开的方法
  7. 最小二乘法与主成分分析法原理及应用详解和它们的联系
  8. Vmware、KVM、Hyper-V、Xen 美国云主机之间对比
  9. Android kotlin静态属性、静态方法
  10. 如何修改mtk6573的设备号