《机器学习实战》笔记(第三部分 无监督学习)

采用书籍《机器学习实战》,人民邮电出版社,2013年6月第1版。在线资料:英文资料,中文资料,后者中可以找到源代码和勘误。关于机器学习实战的博客已经有很多,所以本博文仅将书中的知识点进行整理和扩展。

第三部分 无监督学习

第10章 利用K-均值聚类算法对未标注数据分组

  1. 聚类是一种无监督学习,不知道数据的类标签,它将相似的对象归到同一个簇中,将不相似的对象归到不同簇。簇内的对象相似度越高,聚类的效果越好。(计算相似度,需要选择相似度计算方法,取决于具体应用)
  2. K-均值是最早的一种聚类算法,它可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。优点:容易实现;缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢;适用数据类型:数值型数据。
  3. K-均值的工作流程:首先,随机确定k个初始点作为质心(k有用户给定,唯一的参数);然后将数据集中的每个点分配到一个簇中,就是把数据点分配给距离最近的之心;这一步完成之后,每个簇的之心更新为该簇所有点的平均值。循环运行这两步,直到质心不再变化,结束循环。(计算质心-分配-计算质心-分配-…)
  4. 可以使用后处理来提高聚类性能:将具有最大误差平方和(Sum of Squared Error, SSE)的簇划分为两个簇,也可以将某两个簇合并;量化方法为合并最近的质心或者合并两个使得SSE增幅最小的质心。
  5. 二分K-均值算法:该算法首先将左右点作为一个簇,然后将该簇一分为二,之后选择一个簇再进行划分。选择哪一个簇进行划分的方法?选择可以最大程度降低SSE的值的簇进行划分,也可以直接选择SSE最大的簇进行划分。
  6. 小结:聚类的算法有好几种类别,本书只介绍了K-均值。K-均值算法有很多变形,另外层次聚类和密度聚类的方法也被广泛使用,读者可以自行了解。

第11章 使用Apriori算法进行关联分析

  1. 从大规模数据集中寻找物品间的隐含关系被称作关联分析或关联规则学习(association rule learning)。关联分析的目标包括:发现频繁项集和发现关联规则。
  2. 频繁项集(frequent item sets)是经常出现在一块的物品集合,关联规则(association rules)暗示两种物品之间可能存在很强的关系。(例如:{面包、牛奶}是一个频繁项集,{啤酒}->{尿布}是一个关联规则)
  3. 支持度:数据集中包含该项集的记录的比例。置信度:类似条件概率,置信度({啤酒}->{尿布})= 支持度({啤酒,尿布})/ 支持度({尿布})。
  4. Apriori原理:如果一个项集是频繁的,那么它的所有子集也是频繁的。反过来说,如果一个项集是非频繁的,那么他的所有超集也是非频繁的。这意味着一旦发现非频繁集,那么它的超集都可以直接略过。
  5. Apriori算法是发现频繁项集的一种方法,它需要两个输入参数:数据集和最小支持度。该算法首先会生成所有单个物品的项集列表,接着扫描数据集来查看那些项集满足最小支持度要求,那些不满足最小支持度的项集会被去掉,然后对剩下来的项集进行组合以生成包含两个元素的项集。扫描数据集,求项集支持度,去掉不满足最小支持度的项集,该过程重复进行直到没有项集为止。
  6. 从频繁项集中挖掘关联规则:前件->后件,挖掘关联规则需要提高最小可信度参数!如果某条规则并不满足最小可信度要求,那么任何左部为该规则前件子集的规则也不会满足最小可信度要求。
  7. 小结:关联分析是用于发现大数据集中元素间有趣关系的一个工具集。两个主要任务:发现频繁项集和发现关联规则。Apriori算法从单元素项集开始,通过组合满足最小支持度要求的项集来形成更大的集合。每次计算支持度时都需要扫描整个数据集,当数据集很大时,这会显著降低频繁项集发现的速度。下一章的FP-Growth算法只需要对数据集进行两次遍历,能够显著加快速度。

第12章 使用FP-growth算法来高效发现频繁项集

  1. FP-growth是一个非常好的频繁项集发现算法。它基于Apriori构建,但在完成相同任务时采用了不同的技术。它将数据集存储在一个特定的称作FP树的结构之后,用该树来寻找频繁项集。虽然该算法能够高效第发现频繁项集,但不能用于发现关联规则。
  2. FP-growth算法只需要对数据库进行两次扫描,而Apriori算法对于每个潜在的频繁项集都会扫描数据集判定给定模式是否频繁,因此FP-growth算法的速度要比Apriori算法快。两次扫描:第一次用来统计项集的频率,第二次只考虑那些频繁项集。
  3. 发现频繁项集的基本过程:(1)构建FP数(2)从FP树中挖掘频繁项集
  4. FP树的结构,如何构建FP树,如何挖掘FP树请参考其他博客。FP-growth算法
    FP-growth算法发现频繁项集-构建FP树
  5. 小结:FP-growth算法是一种用于发现数据集中频繁模式的有效方法。FP-growth算法利用Apriori原则,但由于它只对数据集扫描两次,因此FP-growth算法执行更快。在FP-growth算法中,数据集存储在FP树中。FP树构建完成后,可以通过查找元素项的条件基,及构建条件FP树来发现频繁项集。该过程不断以更多元素作为条件重复进行,直到FP树只包含一个元素为止。

参考资料:

  1. 《机器学习实战》完整读书笔记
  2. FP-growth算法
  3. FP-growth算法发现频繁项集-构建FP树
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值