常用DL算法
K-means算法
输入参数:c
过程:
- 适当选择c个类的初始中心;
- 在第k次迭代中,对任意一个样本,求其到c个中心的距离,将该样本归到距离最短的中心所在的类;
- 利用均等方法更新该类的中心值;
- 对于所有的c个聚类中心,如果利用 2,3 的迭代法更新后,值保持不变,则迭代结束,否则继续迭代。
该算法是无监督的聚类算法。
优点:
- 原理比较简单,实现也是很容易,收敛速度快;
- 聚类效果较优;
- 算法的可解释度比较强;
- 主要需要调参的参数仅仅是簇数k。
缺点:
- K值的选取不好把握(改进:可以通过在一开始给定一个适合的数值给k,通过一次K-means算法得到一次聚类中心。对于得到的聚类中心,根据得到的k个聚类的距离情况,合并距离最近的类,因此聚类中心数减小,当将其用于下次聚类时,相应的聚类数目也减小了,最终得到合适数目的聚类数。可以通过一个评判值E来确定聚类数得到一个合适的位置停下来,而不继续合并聚类中心。重复上述循环,直至评判函数收敛为止,最终得到较优聚类数的聚类结果);
- 对于不是凸的数据集比较难收敛(改进:基于密度的聚类算法更加适合,比如DESCAN算法);
- 如果各隐含类别的数据不平衡,比如各隐含类别的数据量严重失衡,或者各隐含类别的方差不同,则聚类效果不佳;
- 采用迭代方法,得到的结果只是局部最优;
- 对噪音和异常点比较的敏感(改进1:离群点检测的LOF算法,通过去除离群点后再聚类,可以减少离群点和孤立点对于聚类效果的影响;改进2:改成求点的中位数,这种聚类方式即K-Mediods聚类(K中值))。
胶囊网络(Capsule Network)
过程:
- 输入向量 x 权重矩阵:编码了低级特征和高级特征的空间关系;
- 加权输入向量:权重决定当前胶囊将其输出到哪个更高级的胶囊。通过动态路由实现;
- 加权后求和;
- 非线性激活,使用squash函数:将向量进行压缩使其长度在0-1之间,方向保持不变。
KNN
过程:
- 计算已知类别数据集中的点与当前点的距离
- 按距离递增次序排序
- 选取与当前点距离最小的k个点
- 统计前k个点所在类别出现的频率
- 返回前k个点出现频率最高的类别作为当前点的预测分类
KNN(K Near Neighbor): K个最近的邻居,即每个样本都可以用最近的K个邻居来代表。
一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。
在选择两个点进行距离排序的时候一般使用L1距离和L2距离,以及切比雪夫距离。
优点:
- 简单有效
- 重新训练代价低
- 算法复杂度低
- 适合类域交叉样本
- 使用大样本自动分类
缺点:
- 类别分类不标准化
- 输出可解释性不强
- 不均衡性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2018-05-15 hdu 2222(AC自动机)