数据挖掘算法

推荐算法:找到相似的用户

  1. 曼哈顿距离

优点:计算快,在数据完整的情况下效果最好

  1. 欧几里得距离:利用勾股定理

解决用户打分标准不同的问题(分数膨胀)

  1. 闵可夫斯基距离(将1,2组合而成,其中r=1为曼哈顿,r=2为欧几里得,r值越大,单个维度的差值大学会对整体距离有更大的影响)
  2. 皮尔逊相关系数:衡量俩个变量之间的相关性[0--1],1表示完全吻合
  3. 余弦相似度:会处理数据的稀疏性问题并会略过这些非零值
  4. 修正的余弦相似度:是基于模型的协调过滤算法,解决用户对喜欢的物品评价不一致“分数膨胀”现象。优点:扩展性好,对于大数据而言,运算速度快,占用内存少
  5. Slope one :比较流行的基于物品的协同过滤算法(俩物之间的差值,加权的slope one 算法)优势:简单,易于实现。
  6. 基于用户的协同过滤(行与行之间的):将一个用户和其他所有用户进行对比,找到相似的人。优点:扩展性:只在几千个用户,但达到一百万个用户时出现瓶颈

稀疏性:大多数推荐系统中,物品数量要远大于用户数量,因此用户对一个小部分物品评价对于大量数据而言就很难找到俩个相似的用户了,这就造成了数据的稀疏性

9.基于物品的协同过滤(列与列之间的):通过计算用户之间的距离找出相似的用户,并将其评论过的物品推荐给目标用户中,再结合用户的评价来给出推荐结果。通过构建物品相似度模型来做推荐,

10.KNN:被动学习算法:不需要按特定的形式准备数据,但需要大量的内存保存训练集数据。优化方法之一:考察这条记录周围距离最近的K条记录而不只看一条,在分类效果上,增加数据量要比使用更好的算法带来的效果好,但为了解决一个问题,而非发表一篇论文,增加数据量还要会更经济一点,但有些增加很多数量的数据,反而没有比改进一些算法来得实惠。

  1. 预测的准确性
  2. 速度
  3. 健壮性
  4. 可伸缩性
  5. 可解释性

聚类分析中的数据类型:

  1. 数据矩阵:用P变量来表示几个对象(二模矩阵)
  2. 相异度矩阵:存储几个对象俩俩之间的近似性(也叫单模矩阵:行和列代表相同的实体)
  3. (一).区间标度变量(数值变量)选用的变量单位将直接影响聚类分析的结果(变量的标准化-->转换为无单位的值z-score)(二).元变量(三).标称变量(转换为二元后再计算)

11.文本聚类:1.基于语料库2.基于所有文档词的集合

文本特征:计数向量,TF(词语频率)-IDF(逆文本频率指数),词嵌入,主题模型

文本相似度计算:

余弦距离(余弦相似性)

TF-IDF :是一种统计方法,用以评估字词于一个文件集或一个语料库中的其中一份文件的重要程度,随在文件中出现的次数成正比增加但同时随他在语料库中出现的频率成反比下降。

TF:某一个给定的词语在该文件中出现的频率。

IDF:某一特定词语的IDF,可以由总文件数目除以包该词语之文件的数目在将得到的商取对数。

TF-IDF 和 余弦相似度 :用于向量空间模型中,判断俩分文件之间的相似性。

应用案例:交互式问答系统-->特殊形式的短文本-->短文本聚类方法

长文本比端文本聚类容易:1.词量大2.特征多,因此在用于短文本聚类时要考虑到关键词的权重,而只是长文本匹配相同词的个数(也同时增加词的权重(TF-IDF)然后将问题的特征提取出来再跑K-means算法)的话,往往会出错

12.聚类:模式识别,空间数据分析,经济学(市场研究),万维网(WEB上的文档)进行聚类,以发现相同的用户模式。

层次聚类法:从底层聚合依次迭代而只剩下一个分类为之。

单链聚类:由俩个分类相距最近的俩个元素决定。

全链聚类:由俩个分类相距最远的俩个元素决定。

平均链聚类:通过计算分类之间俩俩元素的平均距离来判断分类之间的距离。

K-mean:

  1. 划分方法
  2. 层次的方法(凝聚,分裂)
  3. 基于密度的方法(基于距离,只限于球或圆)
  4. 基于网格的方法
  5. 基于模型的方法

案例:购买推荐系统应用,页聚类,用户聚类,动态促销系统作用(方便用户查询和浏览、增强广告的作用、促进网上销售、提高用户的忠诚度)

步骤:1.随机选取k个点作为聚类的起始点2.然后根据其他点到中心点的距离来分配3.再计算中心点作为下一次计算的起始点。

缺点:由于起始点是随机的,不能保证结果是最优的,只能保证为局部最优,但K-means++解决了此问题。

K-means++

1.随机选1个点2.计算每个点到该中心点的距离,选最小值记为D(dp)3.根据D(dp)的概率来随机取一个点作为中心点(每次选择都将尽可能远离现有中心点)

判断聚类结果的好坏:误差平方和(SSE)(离散程度:计算每个点到中心点的距离平方和)

评估算法:算法复杂度(即算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。)

朴素贝叶斯优点:给出分类结果的置信度,以及他是一种主动学习算法,需要训练集较少,运算效率高,根据训练集构建起一个模型,并用这个模型来对新的记录进行分类,因此速度会很快。

朴素贝叶斯缺点:无法学习特征之间的相互影响。

TAN是贝叶斯分类算法为了降低各属性之间的独立性

13.Apriori:是一种挖掘关联规则的频繁项集算法。其核心是基于俩阶段频集思想的地推算法。

关联规则:

(一).频繁项集:如果项集的频率大于(最小支持度X D中的事务总数)则为频繁项集。由频繁项集产生的强关联的规则,既满足最小支持度和最小置信度的规则。

布尔关联规则、量化关联规则、多层关联规则和多维关联规则

兴趣度的度量:置信度,支持度,噪声和新颖度等。

步骤:1.获取频繁项集2.FP树频繁模式,避免候选项众多,

优点: 对大型数据库的处理能力,不需要将数库读入内存就可以完成频繁项集的挖掘。 
缺点: 需要多次扫描数据库,效率低下。

关联规则聚类系统(ARCS)用相关性变量事件间的相关性或者依赖性。

关联分析:置信度

14.FPGrowth基本思想是将原始数据压缩到一个FPTree上,在该树上进行频繁项集的挖掘。

优点: 
  1)只需要扫描两边数据库,效率高。 
  2)可以并行化实现。 
  缺点: 
  1)受内存大小限制。

备注:

(1)http://blog.csdn.net/huagong_adu/article/details/17739247  (2)http://www.cnblogs.com/zhangchaoyang/articles/2198946.html

15.AdaBoost算法:迭代算法,将不同弱分类器集合起来构成一个更强的最终分类器(强分类器)。

优点:精度高

缺点:容易过拟合

16.DBSCAN:具有噪声的基于密度的聚类方法,是一种很典型的密度聚类算法,和K-Means,BIRCH这些一般只适用于凸样本集的聚类相比,DBSCAN既可以适用于凸样本集,也可以适用于非凸样本集。K均值使用簇的基于原型的概念,而DBSCAN使用基于密度的概念。K均值很难处理非球形的簇和不同大小的簇,DBSCAN可以处理不同大小和不同形状的簇。.K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇

17.EM 期望最大算法:是在概率模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测到的隐变量。在信息完整条件下,ML方法是很容易估计参数的。 算法的一种思路就是一方先让一步,暂且先抛出一个随机的初值,然后用对方算出的数值反复迭代计算。直到计算结果收敛为止。EM算法在高斯混合模型GMM(Gaussian Mixture Model )中有很重要的用途。简单来讲GMM就是一些高斯分布的组合。如果我们已知观测到的数据的类别,则可以根据ML来估计出GMM的参数。反之,对于没有类别信息一堆数据,如果我们已知GMM的参数,可以很容易用贝叶斯公式将它们归入不同的类中;但尴尬的问题是我们即不知道GMM参数,也不知道观测数据的类别。常用在机器学习和计算机视觉的数据集聚领域。

18.SVM:全称是Support Vector Machine,即支持向量机,主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。SVM要解决的问题可以用一个经典的二分类问题加以描述。如图1所示,红色和蓝色的二维数据点显然是可以被一条直线分开的,在模式识别领域称为线性可分问题。然而将两类数据点分开的直线显然不止一条。图1(b)和(c)分别给出了A、B两种不同的分类方案,其中黑色实线为分界线,术语称为“决策面”。每个决策面对应了一个线性分类器。

“最大间隔”的决策面就是SVM要寻找的最优解。而这个真正的最优解对应的两侧虚线所穿过的样本点,就是SVM中的支持样本点,称为“支持向量”。在线性SVM算法中,目标函数显然就是那个“分类间隔”,而优化对象则是决策面。

19.PageRank:根据网站的外部链接和内部链接的数量和质量来衡量网站的价值,即“链接流行度”

20.BIRCH算法:利用层次方法的平衡迭代规约和聚类利用了一个树结构来帮助我们快速的聚类,这个数结构类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)。这颗树的每一个节点是由若干个聚类特征(Clustering Feature,简称CF)组成。从下图我们可以看看聚类特征树是什么样子的:每个节点包括叶子节点都有若干个CF,而内部节点的CF有指向孩子节点的指针,所有的叶子节点用一个双向链表链接起来。

21.先验算法的核心思想基于以下一个事实:一个项集是频繁项集,其所有子集一定是频繁项集;一个项集不是频繁项,其超集一定不是频繁项集。那么我们在寻找事务中的最大频繁项的过程中,只需要扩展是频繁项的子集,这就大大地缩减了搜索空间。

22.近邻算法和朴素贝叶斯算法:使用的都是数值型数据而朴素贝叶斯算法用的是分类型的数据。可以将分类型的数据划分为几个范围作为分类就可以用朴素贝叶斯。

23.决策树型:C4.5 和NB 被称为应用最广泛的俩种分类器模型。

24.贝叶斯算法:弥补近邻算法不能对分类结果的置信度进行量化的缺点。计算得到的概率是真实概率的一种估计,而真概率是对全量数据做统计得到的,用朴素贝叶斯进行情感分析。优点:模型所需的参数很少,对缺失值数据不太敏感,算法也比较简单,具有最小的误差率(理论上),但实际因为缺点:模型假设属性之间相互独立,但在实践应用中往往不成立,属性个数比较多或者属性之间相关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小是,NBC模型的性能最为良好。

 

朴素贝叶斯常用的三个模型有:

高斯模型:处理特征是连续型变量的情况

多项式模型:最常见,要求特征是离散数据

伯努利模型:要求特征是离散的,且为布尔类型,即true和false,或者1和0

实际应用场景

文本分类

垃圾邮件过滤

病人分类

拼写检查

25.CART:完全自动的机制,高效的处理缺失值问题(1.分裂属性的评估2.训练数据跨过节点3.测试数据跨过节点并得到最终的类别赋值)递归的划分自变量空间的想法,用验证数据进行剪枝。

CART算法由以下两步组成:

决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;

决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数最小作为剪枝的标准。

防止分类中的过分适应:

  1. 先剪枝:设置合适的临界值(如何选择(困难))
  2. 后剪枝:有“完全生长”的树剪去枝,在看正确率和错误率

预剪枝依据:

作为叶结点或作为根结点需要含的最少样本个数

决策树的层数

结点的经验熵小于某个阈值才停止

算法之间的区别:

ID3:特征划分基于信息增益

C4.5:特征划分基于信息增益比,产生的分类规则易于理解,准确率较高。缺点:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。

CART:(分类与回归树)特征划分基于基尼指数

算法要求:应该能具备以下9个指标

    1. 具有可伸缩性(能处理大量数据)
    2. 处理不同数据类型的能力
    3. 发现任意形状的能力
    4. 用于决定输入参数的领域知识最小化
    5. 处理噪声数据的能力
    6. 对于输入数据的顺序不敏感
    7. 高纬度
    8. 基于约束的聚类
    9. 可解释性和可用性

原文地址:https://www.cnblogs.com/lgx-fighting/p/9372856.html

时间: 2024-10-10 19:23:04

数据挖掘算法的相关文章

数据挖掘算法学习(三)NaiveBayes算法

算法简单介绍 NBC是应用最广的分类算法之中的一个.朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率.同一时候,NBC模型所需预计的參数非常少,对缺失数据不太敏感,算法也比較简单. 算法如果 给定目标值时属性之间互相条件独立. 算法输入 训练数据   T={(x1,y1),(x2,y2),--,(xn,yn)} 待分类数据x0=(x0(1),x0(2),--,x0(n))T 算法输出 待分类数据x0的分类结果y0∈{c1,c2,--,ck} 算法思想 weka执行 以we

数据挖掘算法学习(一)K-Means算法

博主最近实习开始接触数据挖掘,将学习笔记分享给大家.目前用的软件是weka,下篇文章会着重讲解. 算法简介: K-Means算法是输入聚类个数k,以及包含n个数据对象的数据库,输出满足方差最小标准的k个聚类.并使得所获得的聚类满足:同一聚类中的对象相似度较高:而不同聚类对象相似度较小. 算法假设: 均方误差是计算群组分散度的最佳参数. 算法输入: 聚类个数k:包含n个数据对象的数据集. 算法输出: k个聚类 算法思想: (a)绿点表示数据集在二级的欧几里德空间,初始化的中心点u1和u2用红的和蓝

数据挖掘算法之k-means算法

系列文章:数据挖掘算法之决策树算法 [QQ群: 189191838,对算法和C++感兴趣可以进来]       k-means算法可以说是数据挖掘中十大经典算法之一了,属于无监督的学习.该算法由此衍生出了很多类k-means算法,比如k中心点等等,在数据挖掘领域,很多地方都会用到该算法,他能够把相似的一类很好的聚在一起.一类指的是,他们之间的相似度较高,计算相似度的常用度量有欧氏距离.余弦定理等.本算法采用的是欧式距离度量.这个对理解k-means算法不会造成任何实质性的影响. 为了更好的说明k

微软数据挖掘算法:结果预测篇

本文原文地址:(原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(结果预测篇) 前言 本篇文章主要是继续前几篇微软数据挖掘算法:Microsoft 决策树分析算法(1).微软数据挖掘算法:Microsoft 聚类分析算法(2).微软数据挖掘算法:Microsoft Naive Bayes 算法(3),算法介绍后,经过这几种算法综合挖掘和分析之后,对一份摆在公司面前的人员信息列表进行推测,挖掘出这些人员信息中可能购买自行车的群体,把他们交个营销部,剩下的事就是他们无情的对这群团体骚扰.推荐.

十大经典数据挖掘算法

国际权威学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12本月十大评选经典的数据挖掘算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不不过选中的十大算法.事实上參加评选的18种算法,实际上随便拿出一种来都能够称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响. 1. C4.5 C4.5算

数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

在各种数据挖掘算法中,关联规则挖掘算是比较重要的一种,尤其是受购物篮分析的影响,关联规则被应用到很多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方法,它描述的是在一个事物中物品间同时出现的规律的知识模式,现实生活中,比如超市购物时,顾客购买记录常常隐含着很多关联规则,比如购买圆珠笔的顾客中有65%也购买了笔记本,利用这些规则,商场人员可以很好的规划商品摆放问题: 为叙述方便,设R= { I1,I2 ......Im} 是一组物品集,W 是一组事

18大经典数据挖掘算法小结

18大经典数据挖掘算法小结 本文所有涉及到的数据挖掘代码的都放在了我的github上了. 地址链接: https://github.com/linyiqun/DataMiningAlgorithm 大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面.也算是对数据挖掘领域的小小入门了吧.下面就做个小小的总结,后面都是我自己相应算法的博文链接,希望能够帮助大家学习. 1.C4.5算法.C4.5算法与ID3

数据挖掘算法Analysis Services-基于SQL Server的数据挖掘

数据挖掘算法(Analysis Services – 数据挖掘) data mining algorithm is a set of heuristics and calculations that creates a data mining model from data.” xml:space=”preserve”>“数据挖掘算法”是根据数据创建数据挖掘模型的一组试探法和计算. 为了创建模型,算法将首先分析您提供的数据,并查找特定类型的模式和趋势. 算法使用此分析的结果来定义用于创建挖掘模型

数据挖掘算法之深入朴素贝叶斯分类

写在前面的话: 我现在大四,毕业设计是做一个基于大数据的用户画像研究分析.所以开始学习数据挖掘的相关技术.这是我学习的一个新技术领域,学习难度比我以往学过的所有技术都难.虽然现在在一家公司实习,但是工作还是挺忙的,经常要加班,无论工作多忙,还是决定要写一个专栏,这个专栏就写一些数据挖掘算法.数据结构.算法设计和分析的相关文章.通过写博文来督促自己不断学习.以前对于数学没有多大的兴趣爱好,从小到大,学数学也是为了考试能考个好的成绩,学过的很多数学知识,并没有深刻的感受到它的用途,不用也就慢慢遗忘,

微软数据挖掘算法:Microsoft 关联规则分析算法(7)

前言 本篇继续我们的微软挖掘算法系列总结,前几篇我们分别介绍了:微软数据挖掘算法:Microsoft 决策树分析算法(1).微软数据挖掘算法:Microsoft 聚类分析算法(2).微软数据挖掘算法:Microsoft Naive Bayes 算法(3).微软数据挖掘算法:Microsoft 时序算法(5),后续还补充了二篇微软数据挖掘算法:结果预测篇(4).微软数据挖掘算法:Microsoft 时序算法之结果预测及其彩票预测(6),看样子有必要整理一篇目录了,不同的算法应用的场景也是不同的,每