本文转自博客公园,作者名叫慕辰。毕业于华南理工大学计算机科学与工程学院,硕士学位。他的主要研究兴趣是数据仓库和数据挖掘。现就职于中国南方电网研究所。
什么是数据挖掘?
数据挖掘是指从数据中获取知识。
嗯,这个定义很抽象,但也是业内最公认的解释。如何在大数据环境下开发一个完整的数据挖掘项目,目前还没有统一的标准。说白了,大家都听说过大数据、数据挖掘等概念,但真正能做好的公司并不多。
曾经在A公司云计算业务组的数据引擎团队工作过,有幸参与过几个比较大的数据挖掘项目,所以对于如何在大数据场景下实施数据挖掘项目有一些小经验。但是由于这一系列博文主要是将传统的数据挖掘理论与作者在云A中的一些实践经验相结合,有些观点会带有很强的主观性,欢迎大家和我讨论。
数据挖掘背后的哲学思考
在过去的许多年里,第一原理模型一直是科学工程领域最经典的模型。
比如你想知道一辆车从启动到稳定速度的距离,那么你会先统计从启动到稳定所花的时间,稳定后的速度,加速度等参数;然后用牛顿第二定律(或其他物理公式)建立模型;最后,根据大量实验的结果,列出了计算模型参数的方程。通过这个过程,你就相当于学习了一门知识——某款车从起步到稳速的具体车型。之后,通过将汽车的启动参数输入模型,可以自动计算出汽车在达到稳定速度之前行驶的距离。
然而,在数据挖掘的思想中,知识学习不需要由特定问题的专业知识来建模。如果之前记录了100辆性能相近的车从起步到稳速的距离,我可以把这100个数据平均一下,得出结果。显然,这个过程是直接面向数据的,或者我们直接从数据中开发模型。
这其实是对人的原始学习过程的模拟——比如你想预测一个人跑100米需要多长时间,你必须根据他这个体型的人(研究对象)跑100米需要的时间来做一个估计,而不是用牛顿定律来计算。
数据挖掘的起源
因为数据挖掘理论涉及的范围很广,它实际上起源于很多学科。比如建模主要起源于统计学和机器学习。统计方法是模型驱动的,往往构建一个可以生成数据的模型;机器学习是算法驱动的,它允许计算机通过执行算法来发现知识。仔细想想,“学习”本身就有算法的含义在里面。
但是,除了建模,数据挖掘还有很多其他的任务要做(本文后面会讨论),所以还涉及到很多其他的知识,如下图所示:
数据挖掘的基本任务
数据挖掘的两个基本目标是预测和描述数据。其中,前者的计算机建模和实现过程通常称为监督学习,后者通常称为监督学习。为了进一步细分,数据挖掘的目标可以分为以下几个方面:
预测主要包括分类-将样本分成几个预定义的类别之一,将样本回归映射到一个实际值预测变量;描述主要包括聚类——将样本划分为不同的类(没有预定义的类),关联规则发现——发现数据集中不同特征的相关性。本系列的其他文章将深入解释这些作品。如果读者对这些概念不熟悉,请不要担心。
数据挖掘的基本流程
从形式上讲,数据挖掘的开发过程是迭代的。开发人员通过以下阶段反复处理数据:
其中,
1.解读需求
绝大多数数据挖掘项目都是针对特定领域的,因此数据挖掘工作者不应该沉浸在自己世界的YY算法模型中,而应该与特定领域的专家进行沟通与合作,正确解读项目需求。这种合作应该贯穿整个项目生命周期。
2.收集数据
在大公司中,数据收集大多是从其他业务系统数据库中提取的。在许多情况下,我们对数据进行采样。在这种情况下,必须了解数据的抽样过程是如何影响抽样分布的,从而保证评估模型环节中用于训练和测试模型的数据来自同一个分布。
3.预处理数据
数据预处理可以分为数据准备和数据约简两部分。前者包括缺失值处理、离群值处理、归一化、扁平化、时间序列加权等。后者主要包括降维、值约简和案例约简。接下来两篇博文将分别讲解数据准备和数据约简。
4.评价模型
准确的说,这一步是在不同的模型之间进行选择,找到最好的模型。很多人认为这一步是数据挖掘的全部,但显然是局部的,甚至在大多数情况下,这一步消耗的时间和精力是整个过程中最少的。
5.解释模型
在大多数情况下,数据挖掘模型用于辅助决策。显然,人们不会按照“黑箱模型”来做决定。如何根据具体环境合理解释模型,也是一个很重要的任务。
数据挖掘的工程架构
回到本文开头提到的问题“如何在大数据环境下开发一个完整的数据挖掘项目?”。这个问题每个公司都有自己的答案,这里只介绍A公司的情况。
在A公司的数据引擎团队中,主要人员分为A、B、C、D四组..这四个组之间的分工非常明确,如下图所示:
图中这些数据引擎建立在基于维度建模的云数据仓库上,为上层应用提供算法支持、推荐支持、可视化支持等。还可以看到,A公司的数据挖掘工程架构主要由底层数据仓库、中间数据引擎、高级可视化/前端输出三大块组成。很多朋友问我,你是数据挖掘工程师,但是为什么你面前的博文都是数据仓库和数据可视化?我觉得他们看到这里不会有这个问题。
至于这些引擎的具体功能、开发方法和架构,由于涉及公司机密,无法深入阐述。请见谅。
总结
数据挖掘涉及的范围很广,所以本文的目的只是为了让读者对数据挖掘有一个感性的认识。如果读者不清楚什么是数据挖掘,不用担心。随着这一系列的学习,一定会有所收获,并最终发现数据挖掘是一个非常有趣的课题,比简单地编写代码有趣得多。
最近的精彩活动(点击直接查看):
结束
版权声明:
转载的文章均来自开放网络,仅供学习,不会用于任何商业目的。如来源有误或侵犯原作者权益,请联系我们进行删除或授权,联系邮箱:holly0801@163.com。在微信官方账号转载大数据文章请注明原链接和作者,否则任何版权纠纷都与大数据无关。
大数据
为您提供与大数据相关的最新技术和信息。
最近的精彩文章(直接点击查看):
161224
161222
161216
161213
161208
161206
161205
161129
161126
161122
161119
161114
161112
161108
161107
161105
161028
161025
161023
161016
161014
161009
161001
更多精彩文章,请点击微信官方账号后台的“历史文章”。谢谢你。
1.《什么是数据挖掘 说说什么是数据挖掘》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《什么是数据挖掘 说说什么是数据挖掘》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1004691.html