第九章 无监督学习任务

文章目录

  • 第九章 无监督学习任务
  • 前言
  • 一、思维导图
  • 二、主要内容
    • 1、聚类
    • 2、高斯混合模型
  • 三、课后练习
  • 四、总结

前言

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


一、思维导图

二、主要内容

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

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

  1. 【机器学习实战 第九章】树回归 CART算法的原理与实现 - python3

    本文来自<机器学习实战>(Peter Harrington)第九章"树回归"部分,代码使用python3.5,并在jupyter notebook环境中测试通过,推荐c ...

  2. 【ML】第九章 无监督学习技术

  3. 认识机器学习 机器学习实战第一章

    学习目标 机器学习实战第一章 学习内容 1. 什么是机器学习? 答:简单地说,机器学习就是把无序的数据转换成有用的信息. 2. 数据来源? 从互联网上可以获取大量的人为数据,比如某用户的购物记录,刷过 ...

  4. 机器学习实践—基于Scikit-Learn、Keras和TensorFlow2第二版—第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques)

    机器学习实践-基于Scikit-Learn.Keras和TensorFlow2第二版-第9章 无监督学习技术(Chapter9_Unsupervised_Learning_Techniques) 虽然 ...

  5. 李弘毅机器学习笔记:第十六章—无监督学习

    李弘毅机器学习笔记:第十六章-无监督学习 1-of-N Encoding 词嵌入 基于计数的词嵌入 基于预测的词嵌入 具体步骤 共享参数 训练 Various Architectures 多语言嵌入 ...

  6. 复现经典:《统计学习方法》第13章 无监督学习概论

    第13章 无监督学习概论 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者" ...

  7. R语言实战-第九章 R in action-chapter9

    #第九章方差分析 #需要的packages:car gplots HH rrcov multicomp effects MASS mvotlier #单因素方差分析 #数据集来源multcomp包的c ...

  8. [完]机器学习实战 第一章 机器学习基础(Maching Learning Foundation)

    训练集:为算法输入大量已分类数据作为算法的训练集. 目标变量:是机器学习算法的预测结果,在分类算法中目标变量的类型通常是标称型.离散型的,而在回归算法中通常是连续型的. 分类(Classificati ...

  9. 机器学习实战第二章——KNN算法(源码解析)

    机器学习实战中的内容讲的都比较清楚,一般都能看懂,这里就不再讲述了,这里主要是对代码进行解析,如果你很熟悉python,这个可以不用看. #coding=utf-8 ''' Created on 20 ...

  10. 吴恩达《机器学习》第一章:监督学习和无监督学习

    目录 一.监督学习和无监督学习 1.1 监督学习: 1.2 无监督学习 一.监督学习和无监督学习 1.1 监督学习: 监督学习:给出数据集和正确答案,要求机器给出更多的正确答案(实现预测) 离散数据问 ...

最新文章

  1. AngularUI Router
  2. CList 点击表头排序 (1)SortItems函数
  3. fvdm 跟驰模型 matlab仿真_【新书推荐】【2009.01】控制系统MATLAB计算及仿真(第3版)(黄忠霖)...
  4. windows服务器的DDOS防御,
  5. easyexcel 设置标题_使用easyexcel完成复杂表头及标题的导出功能(自定义样式)
  6. 1.Kubernetes 简介
  7. MacOS Big Sur 11.5.1 (20G80) OC 0.7.1 / Cl 5138 / PE 三分区原版黑苹果镜像
  8. Excel自动插入jpg图片或png图片 VBA 工具 模块
  9. 奥斯汀计算机专业排名,德克萨斯大学奥斯汀分校
  10. html 滑动刻度尺,js实现移动端H5页面手指滑动刻度尺功能
  11. 单机 elasticsearch 7.12 索引状态yellow问题解决
  12. 客户细分是客户关系管理的重要手段
  13. 简单手机短信发送软件
  14. [附源码]Java计算机毕业设计SSM办公自动化系统
  15. 微信自定义分享的那些坑!
  16. MSP430系列单片机实用C语言程序设计 张晞pdf
  17. 在Lua中使用枚举型变量
  18. 微信小程序实现一键长图并保存图片到相册
  19. 最全ARM体系结构知识:汇编、架构、异常级别和安全状态
  20. Synopsys VCS工具介绍

热门文章

  1. 16 《万用之物:盐的故事》-豆瓣评分7.5
  2. C语言解决打鱼晒网问题
  3. UG NX二次开发(C#)-UIStyler-ListBox操作
  4. 这些百度搜索技巧,你知道吗?
  5. vs将项目发布到服务器,vs2010将项目发布到远程服务器上
  6. 我转行程序员的那一年(六)
  7. 【Oracle】ngrok 映射数据库地址为外网
  8. Redis数据倾斜与JD开源hotkey源码分析揭秘
  9. 21-22(2)第2次线上赛
  10. win7自动登录(win7自动登录不用输入密码)