边境的悍匪—机器学习实战:第九章 无监督学习任务

第九章 无监督学习任务


前言

我们在解决实际问题的时候会遇到很多没有标签的数据,但是给实例打上标签又是一个费时费力的过程,这个时候我们就可以使用无监督学习来解决这个问题。这只是无监督学习的一个应用,他还能解决包括异常检测,图片分割,推荐系统在内的多个实际问题,并且无监督学习还有针对解决不同问题时使用的不同算法,下面就让我们来一起学习一下。


一、思维导图

在这里插入图片描述

二、主要内容

1、聚类

  1. 概念
    我们在面对一个没有标签的数据集的时候只能使用无监督学习在训练集上训练使用聚类算法把相似或者有相似密度的实例聚集在一起,然后泛化到新的实例。
  2. 应用
    聚类可以用于客户细分、数据分析、图片分割、推荐引擎,降维、异常检测、新颖性检测、半监督学习。
  3. K-Means
    K-Means算法
    K-Means算法是通过找到集群中心点然后通过计算实例到中心的距离来对实例分类。在训练模型的时候时候由于没有标签也没有中心点,就需要设置随机中心点,然后计算实例到中心点的位置,迭代多次直到找到合理的中心点为止。
    中心点初始化方法
    除了随机设置中心点的方法,我们可以对中心点初始化。原始的初始化方法是在执行聚类执行先通过计算惯性(实例到中心点的均方距离)来初始化中心点, 还有一种优化后的方法K-Means++是在原始的初始化方法上添加了一步计算。
    加速K-Means与小批量K-Means
    这两种算法是在K-Means++的基础上再一次优化,加速K-Means是在初始化的过程中删除掉了一些不必要的计算来提高速度。小批量K-Means通所有的小批量算法的初衷一样都是为了解决内存无法一次容纳所有数据的问题,分多个批次进行计算。
    寻找最佳聚类数
    我们找到了所有的中心的之后,需要再次寻找一个最佳的聚类数量。我们有两种方式可以寻找,第一种是拐点法。通过画出聚类数与惯性函数关系找到一个惯性停止快速的点,这个拐点代表的数就是最佳聚类数。第二种是比较精密的,通过计算每个聚类的轮廓指数比平均轮廓指数进行比较,当所有的轮廓指示都大于平均轮廓指数这是的聚类数就是最佳聚类数。
    K-Means的局限性
    K-Means需要多次迭代才能防止算法收敛到次优解,并且K-Means在面对集群的大小不同,密度不同或者是不是圆形的时候都没有一个很好的表现。
  4. 使用聚类进行图像分割
    聚类可以使得属于同一对象的像素点分配到同一个集群来实现图像的分割。
  5. 使用聚类进行预处理
    聚类可以对数据集预处理,通过降维删除掉一些无用的特征。
  6. 使用聚类进行半监督学习
    我们在面对只有一部分数据有标签的数据集,我们就可以使用聚类把数据分为多个集群,再把已经有标签的实例标签传播到所有该集群的实例,这种方式称之为半监督学习。
  7. DBSCAN
    DBSCAN是一种局部密度估计的算法。它异于K-Means的是他支持任何形状的集群,但是他无法预测新示例是属于哪一个集群。
  8. 其他聚类方法
    聚集聚类,BIRCH,均值漂移,相似性传播,谱聚类

2、高斯混合模型

  1. 高斯混合
    高斯混个概率模型,它假定实例是由多个参数未知高斯分布混合生成。每个高斯分布生成的实例聚集成一个集群,每个集群有不同的大小、密度和形状,我们不知道每个实例属于哪一个集群。
    sklearn中提供了GaussianMixture类来实现高斯混合模型,我们可以通过修改不同的超参数得到不同的模型。
  2. 使用高斯混合进行异常检测
    我们可以把密度较低的区域称为异常区域,处于这个区域的实例为异常实例。我们可以通过控制密度的阀值来权衡精度和召回率。
  3. 选择聚类数
    高斯混合模型同样需要寻找最佳的聚类数,但是它不像K-Means一样可以通过比较惯性来选择聚类数,而是通过最小化贝叶斯信息准则(BIC)或者赤池信息准则(AIC)的方式来完成聚类数的选择,一般情况下bic选择出来的模型会比较简单,但是不太拟合数据。
  4. 贝叶斯高斯混合模型
    贝叶斯高斯混合模型不需要我们手动去寻找聚类数。
  5. 高斯混合的局限
    高斯混合模型会尽可能的在训练集上行拟合椭圆形在遇到集群形状不是椭圆形的时候,结果会很糟糕。
  6. 其他用于异常检测和新颖检测的算法
    PCA,Fast-MCD,隔断森林,单类SVM

三、课后练习

1.如何定义聚类?你能列举几种聚类算法吗?
聚类是指将相似的实例聚集在一起的做无监督学习。相似的概念取决于你手头的任务,在某些情况下,距离相近的两个实例称之为相似,还有另外的情况他们属于同一密度下也称为相似,尽管两个实例相隔很远。常用的聚类算法有:K-Means,DBSCAN,聚集聚类,BIRCH,均值平移,亲和度传播和光谱聚类。

2.聚类算法的主要应用有哪些?
聚类算法的主要应用有:数据分析,客户分析,推荐系统,异常检测,新颖性检测,图像分割,降维,搜索引擎,半监督学习。

3.描述两种使用K-Means时选择正确数目的集群的技术。
第一种是肘部法,通过绘制惯性和集群数量的函数管系统来找到一个停止快速下降的点这个点就是集群数。第二种是使用轮廓分数,找到一个集群数使得所有集群的轮廓分数都大于平均的轮廓分数。

4.什么是标签传播?为什么要实施它,如何实现?
标记数据集既昂贵又费时。标签传播就是解决这一问题的,把已标记的标签从已标记的实例复制到相似的实例,这样可以大大的增加标记实例的数量从而提升监督学习的性能。另外一种方法是,在所有实例上使用K-means把实例分为多个集群,再为集群中找到最常见的标签或者是最具有代表性的标签。

5.你能否说出两种可以扩展到大型数据集的聚类算法?两个寻找高密度区域的算法?
K均值和BIRCH可以拓展到大型的数据集中,DBSCAN和Mean-shift寻找高密度的区域。

6.你能想到一个主动学习有用的示例吗?你将如何实施它?
当你有大量未标记的数据,但是标记数据的代价有特别昂贵时,这个时候主动学习是一个不错的选择。与其随机标记实例,不如使用主动学习,人类专家可以与算法互动,在必要的时候为算法提供特定实例的标签。常见的算法是不确定性采样。

7.异常检测和新颖性检测有什么区别?
异常检测是算法在包含有异常值的训练集中训练,目的是为了识别这些异常值以及新实例中的异常值,隔离森林适合做异常检测。新颖检测是算法在假定干净没有异常值的数据集中训练,目的是为了检测新实例的新颖性,单类SVM适合做新颖性检测。

8.什么是高斯混合模型?你可以将其用于哪些任务?
高斯混合是概率模型,它假定实例是由多个参数未知的高斯分布混合生成。换句话说,我们假设数据可以分为有限数量的集聚,每个集群具有椭圆的形状,而我们不知道每个实例属于哪一个集群。该模型可以用于密度估计,异常检测,聚类。

9.使用高斯混合模型时,你能否列举两种技术来找到正确数量的集群?
使用高斯混合是我们可以通过最小化BIC或者AIC来计算集群的数量,还可以使用贝叶斯高斯混合模型,该模型会自动计算集群的数量。

四、总结

至此我们机器学习实战中机器学习的部分已经全部讲解完了。从一开始的了解,到了解模型再到应用最后了解原理。我相信我们已经收获了很多的知识并熟练的应用到实际情况中。下面还是简单的对这一章对一个总结。

  1. 处理没有标签的数据的算法称之无监督学习
  2. 聚类是无监督学习的一种,把相似的实例聚集在一起,泛化到新的实例实现对实例的分类。典型的算法有:K-Means,DBSCAN。
  3. 混合高斯模型是一个概率模型,他假定每个实例是由多个参数未知的高斯分布混合生成的,每个高斯分布生成的实例形成一个集群,但是我们不知道某个实例是由哪个高斯分布生成。
  4. K-Means和高斯混合分布都需要找到一个最佳的聚类数,K-Means是计算聚类数与惯性之间的函数关系或者画出每个聚类数的轮廓指数找到最佳的值。高斯混合是使用最小化贝叶斯信息准则(BIC)或者赤池信息准则(AIC)的方式来完成聚类数的选择

对文章有任何疑惑或者想要和博主一起学机器学习一起进步的朋友们可以添加 群号:666980220。需要机器学习实战电子版或是思维导图的也可以联系我。祝你好运!

项目地址: github

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值