基于密度算法的改进

本篇博客来自我的github小项目,如果对您有帮助,希望您前去点星 !

使用基于密度的聚类算法,进行高维特征的聚类分析,从高维数据中提取出类似的有用信息,从而简化了特征数量,并且去除了部分冗余信息。
在聚类算法中,有这样几种算法:

  • 划分的算法, K-Means
  • 层次的方法, CURE
  • 基于密度的算法, DBSCAN,DPCA(Desity Peaks Clusering Algorithm)
  • 基于网格的算法, CLIQUE
  • 基于模型的算法, 主要是一些概率的算法

由Alex Rodriguez和Alessandro Laio发表的《Clustering by fast search and find of density peaks》的主要思想是寻找被低密度区域分离的高密度区域。
基于这样的一种假设:
对于一个数据集,聚类中心被一些低局部密度的数据点包围,而且这些低局部密度的点距离其他有高局部密度的点的距离都比较大。

如何定义局部密度?

找到与某个数据点之间的距离小于截断距离的数据点的数量

如何寻找与高密度之间的距离?

  • 找到所有比第i个数据点局部密度都打的数据点中,与第i个数据点之间的距离最小的值;
  • 而对于有最大密度的数据点,通常取 σi=maxj(dij) \sigma_i = max_{j}(d_{ij});

如何确定聚类中心、外点?

  • DPCA中将那些具有较大距离 σi \sigma_i,且同时具有较大局部密度的 ρi \rho_i的点定义为聚类中心。
  • 同时具有较高的距离,但是密度却较小的数据点称为异常点。
  • 根据论文中的决策图和乘积曲线去寻找潜在的聚类中心
    • 一条线中,去掉为零的部分,然后取出指定的前百分之几的数据即可
    • 将数据按照层次聚类,将曲线分层,找到可能的聚类中心

Requirements

  1. g++-4.7以上版本
  2. 内存最好够大,因为至少要存储任意两个向量之间的距离
  3. 使用libopm进行算法的并行化,提高运行效率

## 程序运行的框架 算法的执行流程

程序运行展示

### 测试数据的分布 - 样本数据的展示

  • 按照论文中的方法去寻找聚类中心

References

  1. Clustering by fast search and find of density peaks
  2. Science论文”Clustering by fast search and find of density peaks”学习笔记
  3. 发表在 Science 上的一种新聚类算法
  4. 超级赞的文章,写的很好!
  5. 论文中的机器学习算法——基于密度峰值的聚类算法
  6. Clustering datasets

基于密度聚类算法的改进相关推荐

  1. DBSCAN基于密度聚类算法

    1.直接调用sklearn模块 from sklearn.cluster import DBSCAN dbsc = DBSCAN(eps=0.5, min_samples=15).fit(data) ...

  2. 【数据挖掘】基于密度的聚类方法 - DBSCAN 方法 ( K-Means 方法缺陷 | 基于密度聚类原理及概念 | ε-邻域 | 核心对象 | 直接密度可达 | 密度可达 | 密度连接 )

    文章目录 I . K-Means 算法在实际应用中的缺陷 II . K-Means 初始中心点选择不恰当 III . K-Means 优点 与 弊端 IV . 基于密度的聚类方法 V . 基于密度的聚 ...

  3. 聚类dbi指数_一种基于DBI-PD聚类算法的异常检测机制

    一种基于 DBI-PD 聚类算法的异常检测机制 丁姝郁 [期刊名称] <电脑开发与应用> [年 ( 卷 ), 期] 2015(000)002 [摘要] 分析了网络数据维数和检测准确度之间的 ...

  4. 机器学习之密度聚类算法

    基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一个区域中的样本密度大于某个阈值,就把它划入与之相近的簇中. 密度聚类从样本密度的角度 ...

  5. 机器学习实战——密度聚类算法

    机器学习实战--密度聚类算法 1 密度聚类 2 sklearn中的实现 1 密度聚类 密度聚类假设聚类结构能够通过样本分布的密集程度确定,通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接 ...

  6. K-means聚类算法及改进策略

    2019独角兽企业重金招聘Python工程师标准>>> 1.问题描述 与监督学习"对于输入数据X能预测到变量Y"不同,在无监督学习中,目标变量事先并不知道,我们的 ...

  7. 基于 CFSFDP 聚类算法的电信客户价值分析

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 电信行业是典型的数据密集型行业,只有正确地分析用户数据,发现更多商机,做出正确的决策,从而更好的向用 ...

  8. 基于密度聚类的新闻热点发现实现步骤

    由于网络新闻的复杂性.冗余性.更新和传播的快速性等,都给人们快速.准确地获取自己所需的关键信息带来了困难,也不利于网络舆情的监控,因此网络新闻热点发现已成舆情监控的重点. 基于自适应参数调整的密度聚类 ...

  9. 基于K-Means聚类算法的主颜色提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 01.简介 本期我们将一起实现基于K-Means聚类算法的主色提取 ...

最新文章

  1. OS X快捷键小技巧
  2. MVC是什么?(转载)
  3. 简述python的特性_Python的特性概要
  4. Mysql数据库及帐号的权限查询
  5. 程序竞赛中常用的C字符串函数
  6. 在sealos搭建的k8s集群中自定义kubeconfig文件
  7. 最全的PHP后台管理系统源码
  8. 微信小程序生命周期钩子函数
  9. 【杂谈】网络修复杂谈
  10. [Python从零到壹] 十六.文本挖掘之词云热点与LDA主题分布分析万字详解
  11. QImage缩放后图片更清晰处理
  12. gst-launch命令转换为C代码(gstreamer框架)
  13. [QCTF2018]Xman-RSA
  14. pcm数据编码成为aac格式文件(可以在酷狗播放)
  15. Hexo中yilia主题使用问题总结
  16. 2411681-90-6,Thalidomide-O-amido-PEG4-propargyl它结合了基于沙利度胺的cereblon配体和用于PROTAC技术的PEG4连接剂
  17. 163邮箱会员揭秘,163邮箱注册,你最想了解的几件事
  18. 基于32位版CentOS6配置符合HA模式的CDH5.7.0的Hadoop+Yarn+HBase集群
  19. arduino 与java通信_在Java应用程序与Arduino Uno之间建立串口连接
  20. Spring框架02(IOC和DI)

热门文章

  1. warnings模块
  2. 横向数据(按行)的最大值和最小值的SQL语句的编写 !
  3. python中pixels函数_Python的PIL库中getpixel方法的使用
  4. 7-1 计算职工工资
  5. 了解ZigBee以及硬件环境
  6. 使用YYLabel匹配连接
  7. 《转载》o(1), o(n), o(logn), o(nlogn) 是什么含义?
  8. 华为天才少年:武大94年博士!江山代有才人出,不拘一格降人才!
  9. 云和恩墨23届校园招聘,内推NTANNzK
  10. 2017年全国大学生电子设计竞赛 猜题了