一文带你梳理数据挖掘与数据分析知识流程
数据挖掘和数据分析的区别:
1. 在应用工具方面,数据挖掘一般是通过自己的编程实现的,需要掌握编程语言;而数据分析更多的是借助现有的分析工具进行。
2.在行业知识方面,数据分析需要对自己从事的行业有深入的了解和了解,并能将数据与自己的业务紧密结合;数据挖掘不需要太多的行业专业知识。
3.在跨学科方面,数据分析需要结合统计学、营销学、心理学、金融学、政治学等进行综合分析;数据挖掘更注重技术方面的结合和数学与计算机的融合
数据挖掘和数据分析之间的相似之处:
1. 数据挖掘和数据分析都分析和处理数据以获得有价值的知识。
2. 都需要懂统计,懂一些常用的数据处理方法,对数据更加敏感。
3. 数据挖掘和数据分析的关系越来越密切,很多数据分析师开始使用编程工具进行数据分析,比如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 贝叶斯方法:
贝叶斯分类算法是一类利用概率和统计知识进行分类的算法,如朴素贝叶斯算法。这些算法主要利用贝叶斯定理来预测未知类别的样本属于每个类别的可能性,并选择最可能的类别作为样本的最终类别。由于贝叶斯定理的建立本身需要条件独立性的强假设,而这种假设在实际情况中往往不成立,因此其分类精度会下降。为此,出现了许多减少独立性假设的贝叶斯分类算法,例如 TAN(Tree Augmented Native Bayes)算法,
3.1.3 神经网络
神经网络是一种用于信息处理的数学模型,使用类似于大脑中突触连接的结构。在这个模型中,大量的节点(称为“神经元”)相互连接形成一个网络,即“神经网络”来达到处理信息的目的。神经网络通常需要训练,训练过程就是网络学习的过程。训练改变网络节点的连接权值,使其具有分类功能,训练后的网络可用于物体识别。目前有数百种不同的神经网络模型,如BP神经网络、径向基RBF网络、Hopfield网络、随机神经网络(玻尔兹曼机)、竞争神经网络(Hamming网络、自组织映射网络)等。然而,目前的神经网络普遍存在收敛速度慢、计算量大、训练时间长、无法解释等缺点。
3.1.4 支持向量机 (SVM)
支持向量机(SVM,Support Vector Machine)是基于统计学习理论提出的一种新的学习方法。机器的泛化能力可以较好地解决非线性、高维、局部极小等问题。对于分类问题,支持向量机算法根据区域内的样本计算区域的决策面,从而确定该区域内未知样本的类别。
3.1.5 集成学习分类模型
集成学习是一种机器学习范式,它试图通过不断调用单一的学习算法获得不同的基础学习器,然后将这些学习器按照规则组合起来解决同一个问题,可以显着提高学习系统的泛化能力。(加权)投票的方法主要用于组合多个基学习器。常用算法有bagging、boosting、随机森林等。由于集成学习采用投票平均法组合多个分类器,可以降低单个分类器的误差,得到问题空间模型更准确的表示,从而提高分类器的分类精度。
3.1.6 其他分类学习模型
此外,还有很多分类模型,如逻辑回归模型、隐马尔可夫分类模型(HMM)、基于规则的分类模型等。对于处理不同的数据和分析不同的问题,每种模型都有自己的特点和优势。
3.2 无监督学习模型
在无监督学习中,对数据没有特别的识别,学习模型是对数据的某种内部结构进行推断,应用场景包括关联规则的学习和聚类。常见的聚类算法如下:
3.2.1 K-means 聚类
K-means算法的基本思想是初始随机给出K个簇中心,按照最近邻原则将待分类的样本点划分到各个簇中。然后通过平均重新计算每个聚类的质心以确定新的聚类质心。迭代直到聚类中心的移动距离小于给定值。
3.2.2 基于密度的聚类
对象的聚类是基于密度完成的。它会根据对象周围的密度(如 DBSCAN)不断增长集群。典型的基于密度的方法包括: DBSCAN (Densit-based Spatial Clustering of Application with Noise):该算法通过连续增长足够高密度的区域来执行聚类;它可以从包含噪声的空间数据库中发现任意形状的集群。该方法将簇定义为一组“密度连接”点。OPTICS(Ordering Points To identify the Clustering Structure):不显式生成集群,而是计算增强的集群顺序以进行自动化交互式集群分析。
3.2.3 层次聚类方法
层次聚类方法将给定的数据集分层分解,直到满足特定条件。层次内聚的代表是AGNES算法,层次分裂的代表是DIANA算法。具体可以分为凝聚和分裂两种。
凝聚层次聚类是一种自下而上的策略,首先将每个对象视为一个簇,然后将这些原子簇合并成越来越大的簇,直到所有对象都在一个簇中,或者某个终端条件满足,大多数层次聚类方法属于这一类,它们仅在聚类之间的相似性定义上有所不同。
分裂层次聚类,相对于凝聚层次聚类,采用自顶向下的策略,首先将所有对象放在同一个簇中,然后逐渐将它们细分为越来越小的簇,直到每个对象都有自己的簇,或者达到一定的终止条件。
3.2.4 谱聚类
谱聚类(SC)是一种基于图论的聚类方法,将一个带权无向图划分为两个或多个最优子图,使子图尽可能相似,子图之间的距离尽可能远可以达到共同聚类的目的。其中,最优是指最优目标函数不同,可以是切边最小的最小分割,也可以是相同尺寸切边最小的分割。谱聚类可以识别任意形状的样本空间,收敛到全局最优解。
此外,常用的聚类方法包括基于网格的聚类、模糊聚类算法、自组织神经网络SOM、基于统计的聚类算法(COBWeb、AutoClass)等。
3.3 半监督学习
3.3.1 半监督学习概述
半监督学习算法要求输入数据被部分识别和部分未标记。这种学习模型可以用来进行预测,但是模型首先需要学习数据的内部结构,才能合理地组织数据进行预测。应用场景包括分类和回归,算法包括对常用监督学习算法的一些扩展,这些算法首先尝试对未标记的数据进行建模,然后对标记的数据进行预测。图推理或拉普拉斯 SVM。
3.3.2 多视图算法
它通常用于可以执行自然特征分割的数据集。考虑一种特殊情况(每个数据点代表两个特征):每个数据点被视为一组两个特征,然后通过协同训练算法进行处理。隐含地利用聚类或流形假设的协同训练算法使用两个或多个学习器,它们在学习过程中选择一些高置信度的学习器 未标记的示例相互标记,从而允许更新模型。
3.3.3 基于图的算法
基于图的算法是基于图正则化框架的半监督学习算法。这样的算法直接或间接地利用了流形假设。他们通常首先基于训练示例和一些相似性度量来构建图。图中的节点对应于有(标记的或未标记的)示例,边是示例之间的相似度。然后,定义待优化的目标函数,以决策函数在图上的平滑度作为正则化项,寻找最优模型参数。
3.4 文本处理模型
3.4.1分词模型
分词模型主要用在文本处理过程中,这里特指中文分词模型。中文分词算法一般分为三类:基于字符串匹配、基于理解和基于统计。
基于字符串匹配的分词:
机械分词算法。将要分类的字符串与足够大的机器字典中的条目进行匹配。分为正向匹配和反向匹配;最大长度匹配和最小长度匹配;简单的分词和分词和标记过程的集成方法。因此,常用的方法有:正向最大匹配、反向最大匹配和最小分割法。在实际应用中,采用机械分词作为初始分词方法,利用语言信息提高分词准确率。优先识别特征明显的词,并以这些词为断点,将原字符串分割成更小的字符串进行机械匹配,降低匹配错误率;
基于理解分词:
分词的句法和语义分析同时模拟人类对句子的理解,包括分词子系统、句法和语义系统以及一般控制部分。在总控部分的协调下,分词系统可以获取相关词、句子等的句法和语义信息来判断分词的歧义。需要广泛的语言知识和信息。
基于统计分词:
相邻单词同时出现的次数越多,形成单词的可能性就越大。统计语料中词组的频率,不需要分词词典,但错误率高。考虑:使用基本字典进行关键字分割,使用统计方法识别新短语,或两者结合。
3.4.2 TF-IDF 模型
TF-IDF(词频-逆文档频率)是一种常用的信息检索和信息挖掘加权技术。TF-IDF 是一种统计方法,用于评估单词对文档集或语料库中的文档的重要性。一个词的重要性与它在文档中出现的次数成正比,但与它在语料库中出现的频率成反比。搜索引擎经常应用各种形式的 TF-IDF 加权作为文档和用户查询之间相关程度的度量或评级。除了 TF-IDF,互联网上的搜索引擎使用基于链接分析的排名方法来确定文档在搜索结果中出现的顺序。
TFIDF的主要思想是:如果一个词或词组在一篇文章中TF频繁出现,而在其他文章中很少出现,则认为该词或词组具有良好的类别区分能力,适合分类。TFIDF其实就是:TF*IDF,TF Term Frequency,IDF逆文档频率。TF代表词条在文档d中出现的频率(换句话说:TF词条频率(Term Frequency)是指给定词在文档中出现的次数)。IDF的主要思想是:如果包含term t的文档较少,即n越小,IDF越大,说明term t有很好的分类能力。如果某类文档 C 中包含词条 t 的文档数量为 m,而其他类型中包含t的文档总数为k,显然包含t的文档数为n=m+k。当m很大时,n也很大。,根据IDF公式得到的IDF值会很小,说明条目t的分类能力不强。(另一种说法:IDF逆文档频率(Inverse Document Frequency)是指如果包含词条的文档越少,IDF越大,说明词条有很好的区分类别的能力。)但实际上,如果一个词条频繁出现在一类文档中的出现表明该条目能够很好地代表该类文本的特征。这些词条应该被赋予较高的权重,并被选为该类文本的特征词来区分它们。和其他类别的文档。这就是 IDF 的不足之处。
3.4.3 LDA 模型
LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为三层贝叶斯概率模型,包括词、主题和文档的三层结构。所谓生成模型,就是我们认为一篇文章的每个词都是通过“以一定的概率选择一个主题,并以一定的概率从这个主题中选择一个词”的过程得到的。文档到主题遵循多项分布,主题到单词遵循多项分布。
LDA 是一种无监督机器学习技术,可用于识别大规模文档集合或语料库中隐藏的主题信息。它采用词袋法,将每个文档视为一个词频向量,从而将文本信息转化为易于建模的数字信息。但是bag-of-words方法不考虑词之间的顺序,简化了问题的复杂性,为模型改进提供了机会。每个文档代表一个由一些主题组成的概率分布,每个主题代表一个由许多词组成的概率分布。
4 模型评价指标
4.1 模型评估概述
在建模构建过程中会产生一系列的分析结果、模式或模型。可以使用多种数据分析方法和模型来分析相同的采样数据。模型评估的目的之一是从这些模型中自动找到最佳模型,另一个是为业务解释和应用模型。
模型效果评估通常分为两个步骤。第一步是直接使用原始模型的样本数据进行测试。如果这一步失败,那么建立的决策支持信息的价值就不大了。一般来说,在这一步应该得到更好的评价。这说明你确实从这批数据样本中挖掘出了实际规律。第一步通过后,第二步是寻找另一批数据,已知这些数据反映了客观的真实性和规律性。这次的测试效果可能会比上一次差,要注意区别。如果差异无法接受,那么需要考虑第一步构建的样本数据是否具有足够的代表性,或者模型本身是否完善。这个时候,或许是时候反思一下之前的工作了。如果在此步骤中获得肯定的结果,则应很好地评估已建立的数据挖掘模型。
4.2 常用的模型评价方法
4.2.1 预测精度
预测准确率,也称为精确度,是检索到的相关文献数与检索到的文献总数之比,衡量检索系统的精度。该值介于 0 和 1 之间,值越接近 1,精度越高。
计算公式:正确率=提取的正确消息数/提取的消息数
4.2.2 召回
召回率是指检索到的相关文档的数量与文档库中所有相关文档的数量之比,衡量检索系统的召回率。该值介于 0 和 1 之间。该值越接近 1,召回率越高。
计算公式:召回率=提取的正确信息数/样本中信息数
4.2.3 综合指标F值
F值是正确率和召回率的调和平均值,可以综合平衡地表示模型的性能效果。
计算公式:F值=正确率*召回率*2/(正确率+召回率)
4.2.4 ROC曲线
接收者操作特征 (ROC) 曲线是评估模型的一种非常有效的方法,可以为选定的临界值提供定量提示。设置纵轴为灵敏度(Sensitivity),横轴为1-Specificity(1-Specificity),得到ROC曲线。曲线下的积分面积(Area)与每种方法的优劣密切相关,反映了分类器正确分类的统计概率。值越接近1,算法效果越好。
4.2.5 数据相似度
聚类效果可以通过向量数据之间的相似度来衡量。向量数据之间的相似度定义为两个向量(实时向量数据和聚类中心向量数据)之间的距离,距离越近,相似度越大。该值越大,即实时矢量数据被分类到某个簇中。常用的相似度计算方法有:欧几里得距离、皮尔逊相关系数、余弦相似度和谷本系数。
4.2.6 其他模型评估方法
除了上述模型评估方法外,还有一些更详细的模型评估方法。如相对绝对误差、平均绝对误差、均方根误差、相对平方根误差等指标来衡量。此外,模型的鲁棒性和容错性、处理数据的速度、可以处理的数据规模都是衡量一个模型的重要指标。
5 数据挖掘开发平台
5.1 单机模型开发平台
直接在单机上部署数据挖掘开发环境,例如安装MySQL+python搭建数据挖掘环境。
5.2 分布式集群开发平台
5.2.1 Hadoop集群环境
Hadoop是一种将多台物理机或虚拟机(VMware等厂商的虚拟化技术在一台物理机上运行多台虚拟机)作为一台机器运行的分布式集群技术。基于 Hadoop 的数据挖掘 一旦数据挖掘完成,就会生成挖掘结果或模式。
5.4.2 Spark集群环境
Spark 是加州大学伯克利分校 AMP 实验室开源的类似 Hadoop MapReduce 的通用并行。Spark具有Hadoop MapReduce的优势;但与 MapReduce 不同的是,Job 的中间输出结果可以存储在内存中,因此无需读写 HDFS。,因此 Spark 更适合需要迭代 map reduce 的数据挖掘和机器学习算法。
6 数据挖掘的发展历程
6.1 数据采集
6.2 数据清洗
6.3 数据转换
6.4 特征工程
6.5 模型训练
6.6 模型优化
6.7 结果分析
三、数据分析
与数据挖掘相比,数据分析更多的是使用一定的工具和一定的专业知识来分析数据。最初的数据分析来源于统计学家和经济学家的一些理论,然后结合一定的实际应用场景来解决问题。数据分析更侧重于业务层面。对于大多数非计算机相关的专业人士来说,掌握通用的数据分析方法是非常有用的,而且上手也相对容易。
1 数学和专业准备知识
§ 概率论:数据分析的重要数学基础,熟悉一些常见的概率分布。
§ 统计学:数据分析最早的依赖基础,通常与概率论一起应用,数据分析要掌握共同均值、方差、协方差等。
§ 心理学:数据分析通常结合不同学科的知识进行。在数据分析的过程中,分析师往往需要根据用户的心理对结果进行调整和分析。
§ 专业知识:一般来说,数据分析师分析一个特定的领域,需要分析师具备一定的行业专业知识。
2 使用数据分析软件
§ SPSS:非常强大的专业数据统计软件,界面友好,输出结果漂亮。SPSS软件具有信息收集、处理、分析、综合评价和预测等功能。包含广义线性混合模型、自动线性模型、统计门户网站和直销功能。
§ SAS:由数十个特殊模块组成的模块化集成的大型应用软件系统,功能包括数据访问、数据存储与管理、应用程序开发、图形处理、数据分析、报告编制、运筹学方法、计量经济学和预测等等。
§ Excel:办公套件中最称职的数据分析软件,简单实用。
§ Sql:非计算机专业数据分析师操作数据所必需的数据库语言。
§ R:近几年兴起的数据分析编程语言,数据可视化较好,语法简单,学习成本很低,很多非程序员都能大量掌握。
3 数据分析模型选择
数据分析师可以借助一些现场分析软件进行分析,其中集成了一些很好的分析模型,分析师可以根据自己的实际应用场景选择合适的模型。基本分析方法有:比较分析法、分组分析法、交叉分析法、结构分析法、漏斗图分析法、综合评价分析法、因子分析法、矩阵相关分析法等。高级分析方法包括:相关分析、回归分析、聚类分析、判别分析、主成分分析、因子分析、对应分析、时间序列等。
4 分析结果的显示
以一些可视化的图表或报告的形式展示数据分析的结果,可以增强对分析结果的理解。
常用的分析结果显示方式有:
图表展示:使用一些条形图、饼图、箱形图等来展示。
曲线显示:使用趋势曲线或ROC曲线显示。
文字展示:通过语言和文字描述对结果进行分析展示,但不够直观。
5 数据分析过程
5.1 数据采集
5.2 数据清洗
5.3 分析工具选择
5.4 数据分析模型选择
5.5 数据处理
5.6 处理结果显示
5.7 结果数据分析