大数据应该这样学:数据挖掘与数据分析知识流程梳理

编辑文章

数据挖掘和数据分析的不同之处:

在应用工具上,数据挖掘一般要通过自己的编程来实现需要掌握编程语言;而数据分析更多的是借助现有的分析工具进行。

在行业知识方面,数据分析要求对所从事的行业有比较深的了解和理解,并且能够将数据与自身的业务紧密结合起来;而数据挖掘不需要有太多的行业的专业知识。

交叉学科方面,数据分析需要结合统计学、营销学、心理学以及金融、政治等方面进行综合分析;数据挖掘更多的是注重技术层面的结合以及数学和计算机的集合

数据挖掘和数据分析的相似之处:

对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解

想学习的同学欢迎加入大数据学习qq群:458345782,有大量干货(零基础以及进阶的经典实战)分享给大家

并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系 。

数据挖掘和数据分析都是对数据进行分析、处理等操作进而得到有价值的知识。

都需要懂统计学,懂数据处理一些常用的方法,对数据的敏感度比较好。

数据挖掘和数据分析的联系越来越紧密,很多数据分析人员开始使用编程工具进行数据分析,如SAS、R、SPSS等。而数据挖掘人员在结果表达及分析方面也会借助数据分析的手段。二者的关系的界限变得越来越模糊。

数据挖掘

1 数学预备知识

概率论:支撑整个数据挖掘算法和机器学习算法的数学基础,要熟悉常见的一些概率分布。

矩阵论:线性代数中对数据挖掘最有用的部分,还有一些线性空间相关知识也很重要。

信息论:将信息和数学紧密连接在一起并完美的表达的桥梁,需要掌握信息熵、信息增益等相关知识。

统计学:数据分析最早的依赖基础,通常和概率论一起应用,现在的机器学习和数据挖掘很多都是基于统计的,常见的均值、方差、协方差等都要熟练掌握。

2 编程基础

数据挖掘需要一定的编程基础,因为要实现模型以及数据的处理很多工作都是需要程序来进行的,数据挖掘常用的编程语言如下:

SQL:数据库的熟练使用是任何数据挖掘人员必不可少的技能。

C++ :有很多的标准模板库以及机器学习模型库进行调用可以方便编程实现。

Python:对字符串处理有极大的优势,是解释型语言,实现简单,而且有很多开源的机器学习模型库的支持,可处理大规模数据。

Matlab:拥有强大的矩阵运算,也是解释型语言,有很多发展较成熟库可以直接调用,支持数据结果的可视化表示,但是处理数据量有限。

R:近年兴起的数据分析编程语言,数据可视化做的比较好,语法简单,学习成本很低,很多非程序设计人员都可以数量掌握。

Java:使用范围最广的编程语言,有很多社区进行交流,进行编程实现具有灵活高效的特点,不足之处就是实现功能的代码量较大(相对于其他数据挖掘编程语言)。

Scala: 一种具有面向对象风格、函数式风格、更高层的并发模型的编程语言。同时Scala是大数据处理平台Spark的实现语言。

3 数据挖掘的模型知识

机器学习和数据挖掘是紧密相关的,要进行数据挖掘需要掌握一些机器学习所用的方法和模型知识,通过模型的训练可以得到处理数据的最优的模型。数据挖掘常用的模型如下:

3.1 监督学习模型

就是人们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。

3.1.1决策树:

决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。

主要的决策树算法有ID3、C4.5(C5.0)、CART、PUBLIC、SLIQ和SPRINT算法等。它们在选择测试属性采用的技术、生成的决策树的结构、剪枝的方法以及时刻,能否处理大数据集等方面都有各自的不同之处。

3.1.2 贝叶斯方法:

贝叶斯(Bayes)分类算法是一类利用概率统计知识进行分类的算法,如朴素贝叶斯(Naive Bayes)算法。这些算法主要利用Bayes定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。由于贝叶斯定理的成立本身需要一个很强的条件独立性假设前提,而此假设在实际情况中经常是不成立的,因而其分类准确性就会下降。为此就出现了许多降低独立性假设的贝叶斯分类算法,如TAN(Tree Augmented Native Bayes)算法,它是在贝叶斯网络结构的基础上增加属性对之间的关联来实现的。

3.1.3 神经网络

神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在这种模型中,大量的节点(称”神经元”)之间相互联接构成网络,即”神经网络”,以达到处理信息的目的。神经网络通常需要进行训练,训练的过程就是网络进行学习的过程。训练改变了网络节点的连接权的值使其具有分类的功能,经过训练的网络就可用于对象的识别。目前,神经网络已有上百种不同的模型,常见的有BP神经网络、径向基RBF网络、Hopfield网络、随机神经网络(Boltzmann机)、竞争神经网络(Hamming网络,自组织映射网络)等。但是当前的神经网络仍普遍存在收敛速度慢、计算量大、训练时间长和不可解释等缺点。

3.1.4 支持向量机(SVM)

支持向量机(SVM,Support Vector Machine)是根据统计学习理论提出的一种新的学习方法,它的最大特点是根据结构风险最小化准则,以最大化分类间隔构造最优分类超平面来提高学习机的泛化能力,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值