引言

本文主要探讨无监督学习的线性方法(Linear Methods)。

聚类

把很多不同的图像,根据它们的相似度分成不同的组(类别),问题是要分成多少个组。

最常用的方法有:

K-means

  • 聚类NNN个数据X={x1,⋯,xn,xN}X=\{x^1,\cdots,x^n,x^N\}X={x1,⋯,xn,xN} 到KKK个组
  • 初始化KKK个分组中心点:ci,i=1,2,⋯,Kc^i,i=1,2,\cdots,Kci,i=1,2,⋯,K,可以从XXX中随机KKK个点出来
  • 重复
    • 对XXX中的所有数据xnx^nxn:如果xnx^nxn最接近cic^ici ,那么xnx^nxn就属于cic^ici,同时令bin=1b^n_i=1bin​=1;否则令bin=0b^n_i=0bin​=0
    • 更新所有的中心点ci=∑xnbinxn/∑xnbinc^i = \sum_{x^n}b^n_ix^n/\sum_{x^n}b^n_ici=∑xn​bin​xn/∑xn​bin​

层次凝聚聚类算法(Hierarchical Agglomerative Clustering,HAC)

  • 步骤一:建一个树


假设有5个样本,这种方法怎么聚类呢,首先把这5个样本相互之间计算相似度,然后选择最相似的两个合并成一个新的样本6。现在只剩下4个样本了,再计算之间的相似度,把最相似的两个数据合并起来,这里假设是4,5合并成了7。同理,最后只剩2个样本8和7。它们之间有共同的父节点root。

  • 步骤二:选取一条分割线(threshold)


假设像上面这样切一刀,那么就得到三个分组。

降维(Dimension Reduction)

假设你的数据从三维空间看是长这样的,但是用三维来描述它是不必要的。可以通过二维的图像来描述它。

比如在MNIST的手写数字识别中,一个图像有28*28的。实际上其中大多数像素点代表的东西并不是数字,可能是空白啥的。
一个极端的例子是把数字三按不同的角度进行旋转。

只要知道其中一幅图像和它的角度,就可以知道其他图像。

那怎么做降维呢。

还是要找到一个函数,它的输入是向量xxx,输出是向量zzz,其中zzz的维度必须必xxx小。

其中最简单的方法是特征选择(Feature selection)


最简单的情况是,x1x_1x1​这个维度的特征完全没用,我们就可以直接只选择x2x_2x2​这个维度。但是这种情况比较罕见。通常每个维度或多或少都有一定的作用。

有一种常见的方法叫主成分分析(Principle component analysis,PCA)

这个z=Wxz=Wxz=Wx是个很简单的线性函数,输入xxx和输出zzz之间的关系,就是一个线性的转换。
现在要做的事情就是根据很多输入,找出这个WWW。

假设我们要降到1维的情况。此时zzz就是一个标量,WWW是行向量:
z1=w1⋅xz_1=w^1 \cdot xz1​=w1⋅x ,w1w^1w1表示WWW的第一行,我们把xxx与w1w^1w1做内积,得到z1z_1z1​
假设w1w^1w1的长度是1,∣∣w1∣∣2=1||w^1||_2=1∣∣w1∣∣2​=1

意味着z1z_1z1​是xxx在w1w^1w1上的投影。

现在问题是应该选哪个w1w^1w1

假设上图中的每个点代表一只宝可梦,横坐标是攻击力,纵坐标是防御力。把二维投影到一维,应该要选什么样的w1w^1w1呢

上图的两个带箭头的直线代表两个不同的w1w^1w1,我们希望经过投影后得到的z1z_1z1​分布越大越好。即经过投影后还能保持数据点之间的区别。

在上面的例子中,可以看出如果选择红线,点的分布会大一点。


选择的w1w^1w1可能是具有具体意义的,比如这里这个w1w^1w1代表宝可梦的强度。

如果用式子来表示的话,就是需要最大化z1z_1z1​的方差:

Var(z1)=∑z1(z1−z1‾)2Var(z_1) = \sum_{z_1} (z_1 - \overline{z_1})^2 Var(z1​)=z1​∑​(z1​−z1​​)2

如果想投影到二维的平面上,这是把xxx和另外的w2w^2w2做内积可以得到z2z_2z2​。

首先w2w^2w2的长度也是1。

Var(z2)=∑z2(z2−z2‾)2Var(z_2) = \sum_{z_2} (z_2 - \overline{z_2})^2 Var(z2​)=z2​∑​(z2​−z2​​)2

同时也要最大化z2z_2z2​。但是如果仅仅是这样那不就和找w1w^1w1的做法是一样的,因此这里需要增加一点东西,我们限制w1⋅w2=0w^1\cdot w^2 = 0w1⋅w2=0,即它们之间的内积是0。

参考

  1. 李宏毅机器学习

李宏毅机器学习——无监督学习(一)相关推荐

  1. 机器学习-无监督学习-聚类:聚类方法(一)--- k-Means(k-均值)算法,k-Means++算法【使用最大期望值算法(EM算法)来求解】

    一.聚类算法 1.聚类算法概述 聚类算法:一种典型的无监督学习算法(没有目标值),主要用于将相似的样本自动归到一个类别中.在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计 ...

  2. apriori算法_机器学习(无监督学习)关联规则Apriori算法原理与python实现

    关联规则Apriori算法 1.关联规则概述 关联规则算法是在一堆数据集中寻找数据之间的某种关联,通过该算法我们可以对数据集做关联分析--在大规模的数据中寻找有趣关系的任务.这些关系可以有两种形式:频 ...

  3. 算法——机器学习——无监督学习—— K均值(K-means)图解动画

    快速排序 简介 算法过程 算法过程详解 一:聚类 二:聚类中心移动 算法结束 简介 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预 ...

  4. 机器学习-无监督学习-聚类:聚类方法(二)--- 基于密度的聚类算法【DBSCAN文本聚类算法,密度最大值文本聚类算法】

    密度聚类方法的指导思想是,只要样本点的密度大于某阀值,则将该样本添加到最近的簇中. 基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一 ...

  5. 吴恩达机器学习笔记-无监督学习

    机器学习-无监督学习 一.什么是无监督学习 二.聚类算法(无监督学习) 1.聚类算法的应用 2.K-Means算法 算法流程--图例 算法流程--文字描述 K-means分离不佳簇问题 K-means ...

  6. 【李宏毅机器学习】Unsupervised Learning - Word Embedding 无监督学习 - 词嵌入(p22) 学习笔记

    文章目录 Unsupervised Learning Word Embedding 用一个vector来表示一个word的几种方法 1-of-N Encoding Word Class Word Em ...

  7. 李宏毅(2020)作业9:无监督学习降维、聚类、自编码

    文章目录 数据集 作业 任务1 任务2 任务3 数据 下载数据集 准备训练数据 一些工具函数 模型 训练 降维和聚类 问题1(作图) 问题2 问题3 数据集 valX.npy valY.npy tra ...

  8. 机器学习概念 — 监督学习、无监督学习、半监督学习、强化学习、欠拟合、过拟合、后向传播、损失和优化函数、计算图、正向传播、反向传播

    1. 监督学习和无监督学习 监督学习 ( Supervised Learning ) 和无监督学习 ( Unsupervised Learning ) 是在机器学习中经常被提及的两个重要的学习方法. ...

  9. 机器学习系列 1:监督学习和无监督学习

    https://www.toutiao.com/a6690813539747103246/ 2019-05-15 09:31:00 机器学习系列 1:监督学习和无监督学习 机器学习就是通过一大堆数据集 ...

  10. 【机器学习】无监督学习

    [机器学习]无监督学习 https://mp.weixin.qq.com/s/NV84o6Jd_z8evjq05n2jzA 作者:水奈樾  人工智能爱好者 博客专栏:http://www.cnblog ...

最新文章

  1. 【组队学习】【34期】零基础学python编程思维
  2. 【转载】Windwos CE 跨进程内存注入
  3. HTML期末作业-旅游网页作业Html+css+Bootstarp
  4. Android JNI入门第六篇——C调用Java
  5. python机器学习:线性回归_房价和房屋尺寸关系的线性拟合
  6. html换浏览器div的位置固定不变,浏览器窗口更改时,HTML div不在适当的位置
  7. Fishc_密码验证程序
  8. 如何更改xp计算机用户名和密码错误,XP更改开机密码提示“Windows不能更改密码”如何解决...
  9. aws saa aws sap认证助理专业架构师sap考试经验
  10. 2018上C语言程序设计(高级)作业- 第0次作业
  11. 【Java】:基础入门知识
  12. vue项目中金额小写转换为汉字大写的功能封装
  13. C# webbrowser文本框的键盘和鼠标模拟输入和模拟鼠标点击
  14. 筋斗云案例 - animate、transition都能实现
  15. nacos access log日志占用磁盘
  16. python与分形0000 - 分形世界
  17. Ubuntu20.04台式机网线连接Win10笔记本上网(亲测)
  18. 2023-2029年中国动漫产业园行业市场行情监测及战略咨询研究报告
  19. Ruby入门教程和技巧
  20. 新春贺礼:云和恩墨大讲堂期刊第二期

热门文章

  1. 表格制作模块xlwt
  2. jquery 初步(四)内容过滤器
  3. STM32CubeMX 配置STM32F407 实现HAL库延时微妙方案
  4. Linux的巡检命令
  5. IOCP 下行为投递的关键点
  6. 小巧玲珑的开源调度框架Azkaban3.0下载、编译、安装及使用详细文档
  7. 面向对象程序的设计模式
  8. 关于equals和hashCode
  9. adb devices出现no permissions
  10. Android异步批量下载图片并缓存