第五章 非监督学习

0 写在前面

前两天多看了两章一直都没更新,今天写的时候发现有些忘了,刚好捡起来回顾一下,近来也没什么事,兴趣来了就在图书馆泡一天看看自己喜欢的。再次重复下,这是第一遍,加之基础不好,明年才有可能出去实习,现在主要看看大概的知识框架,后续还会回头细看。扯远啦,步入正题。

相比于监督学习,非监督学习的输入数据没有标签信息,需要通过算法模型来挖掘数据内在的结构和模式。非监督学习主要包括两大类学习方法:数据聚类和特征变量关联。

1 K均值聚类

分类问题属于监督学习范畴,而聚类则是非监督学习。K-mean算法属于最基础和最常用的聚类算法。基本思想是,通过迭代方式寻找K个簇的一种划分方案,使得聚类结果对应的代价函数最小。

Q1:简述K-means算法的具体步骤

A1:详见P93

Q2:K-means算法的优缺点是什么?如何对其进行调优?

A2:K-means算法有一些缺点,例如受初值和离群点的影响每次的结果不稳定、结果通常不是全局最优而是局部最优解、无法很好地解决数据簇分布差别比较大的情况,不太适用于离散分类等。

K-means算法的调优一般可以从以下几个角度出发。

(1)数据归一化处理和离群点处理

(2)合理选择K值

(3)采用核函数

详见P95-97

Q3:针对K-means算法的缺点,有哪些改进的模型?

A3:K-means主要的缺点如下:

(1)需要人工宇轩确定初始K值,且该值和真实的数据分布未必吻合。

(2)K-means只能收敛到局部最优,效果收到初始值很大

(3)易受到噪点的影响

(4)样本点只能被划分到单一的类中。

改进的模型有:

K-means++:主要是对K-means的初始值的改进

ISODATA算法:ISODATA的全称是迭代自组织数据分析法。对高纬度、海量的数据集问题,进行改进。详见P98

Q4:证明K-means算法的收敛性(较难)

A4:证明过程需要用到EM算法,详见P99-101

2 高斯混合模型

高斯混合模型也是一种常见的聚类算法,与K-means算法类似。高斯混合模型假设每个簇的数据都是符合高斯分布的,当前数据呈现的分布就是各个簇的高斯分布叠在一起的结果。

Q1:高斯混合模型的核心思想是什么?它是如何迭代计算的?

A1:高斯混合模型的核心思想是,假设数据可以看作从多个高斯分布中生成出来的。

  高斯混合模型与K-means算法的相同点是,它们都是可用于聚类的算法;都需要指定K值;都是使用EM算法来求解;都往往只能收敛于局部最优。而它相比于K-means算法的优点是,可以给出一个样本属于某类的概率是多少;不仅仅可以用于聚类,还可以用于概率密度的估计;并且可=可以用于生成新的样本点。

3 自组织映射神经网络

自组织映射神经网络(SOM)是无监督学习方法中的一类重要方法,可以用作聚类、高维可视化、数据压缩、特征提取等多种用途。

Q1:自组织映射神经网络是如何工作的?它与K-means均值算法有何区别?

A1:自组织神经网络本质上是一两层的神经网络,包含输入层和输出层(竞争层),详细介绍见P106-108

  自组织映射神经网络与K-means算法的区别如下:

  (1)K-means算法需要实现定下类的个数,也就是K的值。而自组织映射神经网络则不用,隐藏层中的某些解点可以没有任何输入数据属于它,因此聚类结果的实际簇数可能会小于神经元的个数。而K-means算法受K值设定的影响更大一些

  (2)K-means算法为每个输入数据找到一个最相似的类别后,只更新这个类别的参数;自组织映射神经网络则会更新临近的节点。所以,K-means受噪声数据的影响较大,而自组织映射神经网络的准确性可能比K-means低(因为页更新了临近节点)

  (3)相比较而言,自组织神经网络的可视化比较好,而且具有优雅的拓扑关系图。

Q2:怎样设计自组织映射神经网络并设定网络训练参数?

A2:设定输出层神经元的数量、设计输出层节点的排列、初始化权值、设计拓扑领域、设计学习率

4 聚类算法的评估

Q1:以聚类问题为例,假设没有外部标签数据,如何评估两个聚类算法的优劣?

A1:以中心定义的数据簇、以密度定义的数据簇、以联通定义的数据簇、以概念定义的数据簇   (太多了  详见P111-115)

小结:

这一章整体来说比较难,涉及到概念较多,数学推导也比较复杂,暂时不做过多探究,后续可做深入研究。

原文地址:https://www.cnblogs.com/guohaoblog/p/11219855.html

时间: 2024-11-06 09:38:28

第五章 非监督学习的相关文章

《Java并发编程实战》第十五章 原子变量与非阻塞同步机制 读书笔记

一.锁的劣势 锁定后如果未释放,再次请求锁时会造成阻塞,多线程调度通常遇到阻塞会进行上下文切换,造成更多的开销. 在挂起与恢复线程等过程中存在着很大的开销,并且通常存在着较长时间的中断. 锁可能导致优先级反转,即使较高优先级的线程可以抢先执行,但仍然需要等待锁被释放,从而导致它的优先级会降至低优先级线程的级别. 二.硬件对并发的支持 处理器填写了一些特殊指令,例如:比较并交换.关联加载/条件存储. 1 比较并交换 CAS的含义是:"我认为V的值应该为A,如果是,那么将V的值更新为B,否则不需要修

第五章 电子星球

                   第五章         电子星球   山高高兮.路长长,岁月悠悠兮.转眼空.   镇楼竹: 1. 秀竹一枝自宛然, 莫愁风雨损华年. 几番颠扑呈贞骨, 露重霜寒节更坚. 2. 纤纤凤竹长漓边, 不共山花斗野妍. 时对清流摇倩影, 溪流常伴乐怡然. 3. 坚节何愁风雨多, 晴天朗日更婆娑. 生凉不荫趋炎客, 惹得骚人为咏歌.   咏经典物理.戏现代理论物理: 在山泉水洁如冰, 溅玉飞珠迸有声. 流入大江清浊混, 滔滔何日见澄明.     一.   批驳现代理论

JavaScript高级程序设计(第3版)第五章读书笔记

第五章 引用类型 创建Object实例的方式有两种,第一种是使用new操作符后跟Object构造函数,例如: var person = new Object( ); person.name = “Nicholas”; person.age=29; 第二种是使用对象字面量表示法.如: var person = { name : “Nicholas”, age : 29 }; 在最后一个属性后面添加逗号,会在IE7及更早版本和Opera中导致错误. 两种访问对象属性的方法,一是方括号语法,例如per

第十五章 文件属性类的实现

                  第十五章    文件属性类的实现        根用户的权限也不能是无限大.必须考虑到保护用户的隐私!用户的文件内容.程序代码可设置为根用户也不能观看,只能是文件拥有者可以查看.修改.但根用户可以删除一切非根用户的文件.也可以查看用户的目录.所以,i_mode字符更改如下:      BU16 i_mode; // 描述文件的访问权限:文件的读.写.执行权限  // i_mode.15-13  ftype; 文件类型: 0-符号软连接文件, // 1-硬连接文

C和指针 (pointers on C)——第十五章:输入输出函数

第十五章 输入输出函数 这一章读完的第一感觉就是"呵呵". 如果说上过C语言课,基本上scanf()/printf()算是用的比较熟练了.尤其是那些抽象的格式说明.还有scanf()为什么要加括号. 读过本书前面的内容的话,getchar(),putchar(),gets(),puts()这些应该也问题不大. 再如果的话,你学过计算机图形学,你玩过OpenGL,听说过双缓存机制,那么fflush()也肯定弄明白了. 再加上FILE的操作,输入输出定位刷新删除改名,流的概念. 这一章就会

Java Persistence with MyBatis 3(中文版) 第五章 与Spring集成

MyBatis-Spring是MyBatis框架的子模块,用来提供与当前流行的依赖注入框架Spring的无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向切面编程(Aspect Oriented Programming,AOP)的Java框架,鼓励使用基于POJO的编程模型.另外,Spring提供了声明式和编程式的事务管理能力,可以很大程度上简化应用程序的数据访问层(data access layer)的实现.在本章中,我们将看到在基于Spring的

6.12白书第五章图论总结——司雨寒

之前我的图论一直都是DFS一下,BFS一下,求个欧拉回路,拓扑排个序这种渣渣水平. 终于鼓起勇气拾起白书第五章的东西. 学(bei)习(song)了一下求双连通分量,二分图的判定,强连通分量,2-SAT. DFS加上时间戳这个东西,很强大. 最后刷了白书上的例题: BCC: LA3523 可以参加会议的是双联通分量上的奇圈 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include

第五章 循环和关系表达式

第五章  循环和关系表达式 5.1  for循环 5.1.1  for循环的使用 For循环的组成部分完成下面4个步骤: 1)        设置初始值: 2)        执行测试,看看循环是否应当继续运行: 3)        执行循环体: 4)        更新用于测试的值. For循环的形式如下: for (init-expresstion; test-expresstion; update-expresstion) body-statement 说明: 1)        C++将

第五章简易笔记

第五章-继承 1. 继承已存在的类就是复用(继承)这些类的方法和域.在此基础上,还可以添加一些新的方法和域,以满足新的需求. 2.反射是指在程序运行期间发现更多的类及其属性的能力. 3.在java中所有继承都是公有继承. 4. 在子类中可以增加域.增加方法或覆盖超类的方法,然而绝对不能删除继承的任何域和方法. 5.this与super关键字用途总结: this用途: (1)引用隐式参数: (2)调用该类其他的构造器. super用途: (1)调用超类方法: (2)调用超类构造器. 6.调用构造器