常用DL算法

K-means算法

输入参数:c

过程:

  1. 适当选择c个类的初始中心;
  2. 在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类;
  3. 利用均等方法更新该类的中心值;
  4. 对于所有的c个聚类中心,如果利用 2,3 的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。

该算法是无监督的聚类算法。

优点:

  • 原理比较简单,实现也是很容易,收敛速度快;
  • 聚类效果较优;
  • 算法的可解释度比较强;
  • 主要需要调参的参数仅仅是簇数k。

缺点:

  • K值的选取不好把握(改进:可以通过在一开始给定一个适合的数值给k,通过一次K-means算法得到一次聚类中心。对于得到的聚类中心,根据得到的k个聚类的距离情况,合并距离最近的类,因此聚类中心数减小,当将其用于下次聚类时,相应的聚类数目也减小了,最终得到合适数目的聚类数。可以通过一个评判值E来确定聚类数得到一个合适的位置停下来,而不继续合并聚类中心。重复上述循环,直至评判函数收敛为止,最终得到较优聚类数的聚类结果);
  • 对于不是凸的数据集比较难收敛(改进:基于密度的聚类算法更加适合,比如DESCAN算法);
  • 如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳;
  • 采用迭代方法,得到的结果只是局部最优;
  •  对噪音和异常点比较的敏感(改进1:离群点检测的LOF算法,通过去除离群点后再聚类,可以减少离群点和孤立点对于聚类效果的影响;改进2:改成求点的中位数,这种聚类方式即K-Mediods聚类(K中值))。

胶囊网络(Capsule Network)

过程:

  1. 输入向量 x 权重矩阵:编码了低级特征和高级特征的空间关系;
  2. 加权输入向量:权重决定当前胶囊将其输出到哪个更高级的胶囊。通过动态路由实现;
  3. 加权后求和;
  4. 非线性激活,使用squash函数:将向量进行压缩使其长度在0-1之间,方向保持不变。

KNN

过程:

  1. 计算已知类别数据集中的点与当前点的距离
  2. 按距离递增次序排序
  3. 选取与当前点距离最小的k个点
  4. 统计前k个点所在类别出现的频率
  5. 返回前k个点出现频率最高的类别作为当前点的预测分类

KNN(K Near Neighbor): K个最近的邻居,即每个样本都可以用最近的K个邻居来代表。

 一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。

在选择两个点进行距离排序的时候一般使用L1距离和L2距离,以及切比雪夫距离。

优点:

  • 简单有效
  • 重新训练代价低
  • 算法复杂度低
  • 适合类域交叉样本
  • 使用大样本自动分类

缺点:

  • 类别分类不标准化
  • 输出可解释性不强
  • 不均衡性
posted @ 2022-05-15 19:09  ouyang_wsgwz  阅读(304)  评论(0编辑  收藏  举报