找回密码
 立即注册
搜索

什么是数据发掘

1221lf 2019-8-14 13:19:54 显示全部楼层 阅读模式
何为数据发掘?

数据发掘就是指从数据中获取知识。

好吧,这样的定义方式比较笼统,但这也是业界认可度最高的一种解释了。对于如何开发一个大数据环境下残缺的数据发掘项目,业界至今仍没有一致的规范。说白了,大家都听说过大数据、数据发掘等概念,但是真正能做而且做好的公司并不是很多。

笔者本人曾任职于A公司云计算事业群的数据引擎团队,有幸参与过几个比较大型的数据发掘项目,因此对于如何实施大数据场景下的数据发掘工程有一些小小的心得。但由于本系列博文次要是结合传统数据发掘实际和笔者本身在A云的一些实际阅历,因此部分观点会有较强客观性,也欢迎大家来跟我讨论。

数据发掘背后的哲学思想

在过去很多年,首要准绳模型(first-principle models)是迷信工程范畴最为经典的模型。

比如你要想知道某辆车从启动到速度波动行驶的间隔,那么你会先统计从启动到波动耗费的工夫、波动后的速度、加速度等参数;然后运用牛顿第二定律(或者其他物理学公式)建立模型;最后根据该车多次实验的结果列出方程组从而计算出模型的各个参数。经过该过程,你就相当于学习到了一个知识 --- 某辆车从启动到速度波动行驶的详细模型。此后往该模型输入车的启动参数便可自动计算出该车达到波动速度前行驶的间隔。

但是,在数据发掘的思想中,知识的学习是不需求经过详细成绩的专业知识建模。假如之前曾经记录下了100辆型号功能相似的车从启动到速度波动行驶的间隔,那么我就可以对这100个数据求均值,从而得到结果。显然,这一过程是是直接面向数据的,或者说我们是直接从数据开发模型的。

这其实是模拟了人的原始学习过程 --- 比如你要预测一个人跑100米要多久工夫,你一定是根据之前了解的他(研讨对象)这样体型的人跑100米用的多少工夫做一个估计,而不会运用牛顿定律来算。

数据发掘的来源

由于数据发掘实际触及到的面很广,它实践上来源于多个学科。如建模部分次要来源于统计学和机器学习。统计学方法以模型为驱动,常常建立一个可以产生数据的模型;而机器学习则以算法为驱动,让计算机经过执行算法来发现知识。细心想想,"学习"本身就有算法的意思在外面嘛。

但是数据发掘除了建模外,还有不少其他要做的工作(本文后面会逐一讲到),因此触及到不少其他知识,如下图所示:

数据发掘的基本义务

数据发掘的两大基本目的是预测和描画数据。其中前者的计算机建模及完成过程通常被称为监督学习(supervised learning),后者的则通常被称为无监督学习(supervised learning)。往更细分,数据发掘的目的可以划分为以下这些:

预测次要包括分类 - 将样本划分到几个预定义类之一,回归 - 将样本映射到一个真实值预测变量上;描画次要包括聚类 - 将样本划分为不同类(无预定义类),关联规则发现 - 发现数据集中不同特征的相关性。本系列其他文章将会分别对这些工作深化停止讲解,假如读者是第一次接触这些概念请不要纠结。

数据发掘的基本流程

从方式下去说,数据发掘的开发流程是迭代式的。开发人员经过如下几个阶段对数据停止迭代式处理:

其中,

1. 解读需求

绝大多数的数据发掘工程都是针对详细范畴的,因此数据发掘工作人员不应该沉浸在本人的世界里YY算法模型,而应该多和详细范畴的专家交流合作以正确的解读出项目需求。这种合作该当贯穿整个项目生命周期。

2. 搜集数据

在大型公司,数据搜集大都是从其他业务系统数据库提取。很多时分我们是对数据停止抽样,在这种状况下必须了解数据的抽样过程是如何影响取样分布,以确保评价模型环节中用于训练(train)和检验(test)模型的数据来自同一个分布。

3. 预处理数据

预处理数据可次要分为数据预备和数据归约两部分。其中前者包含了缺失值处理、异常值处理、归一化、平整化、工夫序列加权等;而后者次要包含维度归约、值归约、以及案例归约。后面两篇博文将分别讲解数据预备和数据归约。

4. 评价模型

确切来说,这一步就是在不同的模型之间做出选择,找到最优模型。很多人以为这一步是数据发掘的全部,但显然这是以偏概全的,甚至绝大多数状况下这一步耗费的工夫和精神在整个流程里是最少的。

5. 解释模型

数据发掘模型在大多数状况下是用来辅助决策的,人们显然不会根据"黑箱模型"来制定决策。如何针对详细环境对模型做出合了解释也是一项非常重要的义务。

数据发掘的工程架构

回到本文扫尾提到的那个成绩,“如何开发一个大数据环境下残缺的数据发掘项目?”。这个成绩每个公司有本人的答案,这里仅以A公司的状况停止引见。

在A公司的数据引擎团队中,次要人员分成A、B、C、D四个大组。这四个大组的分工非常明白,如下图所示:

图中的这些个数据引擎架构在一个基于维度建模的云数据仓库之上,并对下层运用提供算法支撑、引荐支撑、可视化支撑等等。这里也能看出A公司的数据发掘工程架构次要由三大块组成:底层数据仓库、中间数据引擎、高层可视化/前端输入。很多小伙伴问我,你是一名数据发掘工程师呀,可为什么你后面的博文都是数据仓库和数据可视化呢?我想假如他们看到这里想必不会有此疑问了:)。

至于这些引擎的详细作用、开发方法,体系结构等则由于触及公司机密不能深化细说,请各位读者见谅。

小结

数据发掘涵盖的面非常大,本文仅旨在让读者对数据发掘有一个感性的看法。关于什么是数据发掘假如读者还不清楚的话也不要纠结,跟着本系列一同窗习一定能有所播种并会最终发现:数据发掘是一门非常风趣的学问,比单纯的写代码要有意思多了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

大神点评3

说谎。 2019-8-14 21:00:28 显示全部楼层
想知道楼主的感受,怎么样?
回复

使用道具 举报

糕富帅来也 2019-8-16 07:15:16 显示全部楼层
只看文字不过瘾啊~
回复

使用道具 举报

狂鼠 2019-8-16 21:05:48 显示全部楼层
我有一个大胆的想法。。。
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies