泛运筹理论初探——HANP和BMLPA以及DCLP简介
图论-图论算法之HANP和BMLPA以及DCLP
图论经典算法简介之HANP算法与BMLPA算法以及DCLP算法
在图论介绍的文章里,关于标签传播的算法我们在上一次的文章里已经介绍过了,在本次文章里我们将会介绍效果更好的社区发现类算法,也就是HANP算法、BMLPA算法,以及借鉴了HANP算法的DCLP算法。
HANP算法是在2009年被提出的,它的核心思想是在标签传播算法LPA算法的基础上,考虑了各个标签其他的特征,比如度的信息,距离信息等。因为标签传播本质上就是看当前点的周围neighbor邻居点谁的标签更多,本质上没有考虑附近点的结构特征信息,所以在实际场景的效果经常会无法稳定或是得到过大的社区。而HANP则考虑了各种图上的结构信息和边信息,在传播的时候,引入了衰减因子,防止两个距离较远的社团互相影响,而通过综合考虑度信息、距离信息、权重信息(有权图)来构造一个综合得分score进行传播,周围点的score值最大的那个标签是设定为当前点的标签,当分数衰减小于等于0的时候停止传播,这样可以防止过度传播导致的不平衡问题发生。
而BMLPA算法则是在2012年被提出的,该算法的核心在于balance平衡,它将各个点的标签进行概率化处理,而不是直接设定为某个标签,可以认为这个算法是广义的标签传播,但是它更注重周围点的标签的概率组合,是一种更为合理的投票思路。BMLPA算法的步骤是先设置一个过滤阈值,防止概率较低的标签影响最终结果,在这个基础上,对于周围的直接相连的点进行概率加和,取最大的概率值作为第一次归一化的分母,进行归一化后使用阈值进行过滤,然后再进行一次归一化操作即可,按照这个步骤进行迭代,直到最终所有的点都有自己的标签和对应的概率,可以取最大的概率对应的标签作为整个BMLPA算法传播的结果。而这个算法的步骤如下:
1)初始化设置阈值是0.7,假设当前点X周围有三个点,分别是U点、V点和W点,它们内部的标签分别是U(A,1/2;B,1/2)、V(A,1/2;B,1/6;C;1/3)、V(C,1) ,也就是点的标签和对应的概率。
2)进行第一次计算,得到A=1/2+1/2=1 ,B=1/2+1/6=4/6 ,C=1+1/3=4/3 ,显然C的值最大,将其作为分母进行归一化,得到PF(A)=3/4 ,PF(B)=1/2,PF©=1 ,由于阈值是0.7,所以过滤掉B,因为它的组合概率值小于阈值0.7,然后保留结果A和C
3)再一次把A和C进行直接归一化,得到P(A)=3/7,而P©=4/7,所以当前点X的标签是X(A,3/7;C,4/7)
下面再介绍DCLP和SDCLP算法,这两种算法其实都是HANP算法的简化,因为它们不考虑点位其他的特征信息(度信息、权值等),而是只考虑了距离的衰减,通过一个衰减系数去控制,防止最终的社团巨大,可以更好地得到一些互相独立的社团,在实际问题中较为实用。而SDCLP算法是DCLP的一种优化或者说是一种策略技巧,因为SDCLP算法通过picked_bound来进行过滤,在每一次迭代的时候,都会使用这个参数进行检测,如果超过这个界线,将会停止这个社区过大,这个思路的好处是可以防止过大的社团产生,同时又让小社团进行充分传播。
总的来说,本文提及的HANP算法、DCLP算法、SDCLP算法、BMLPA算法都是比较经典和实用的社区发现算法,它们比传统的LPA标签传播算法更为合理,并且在实际场景是比较实用的,能够解决一些问题,希望初学者能掌握这些方法的原理和思路,为后续解决此类问题打好基础。
泛运筹理论初探——HANP和BMLPA以及DCLP简介相关推荐
- 泛统计理论初探——初探Gibbs采样
统计学习-Gibbs采样简介 初探Gibbs采样方法 在上一篇文章中,我们介绍了MCMC抽样和MH抽样的方法,在本次文章中将会介绍Gibbs抽样方法,这种方法其实是基于MCMC抽样的一种优化方 ...
- 泛统计理论初探——初探MCMC采样和MH采样
统计学习-MCMC采样与MH采样简介 初探MCMC采样方法和MH采样方法 在之前介绍的文章中,我们介绍了基本的采样方法.在了解简单的采样方法后,本次文章将会介绍MCMC采样方法与优化的MH采样 ...
- 泛统计理论初探——孤立森林简介
数据挖掘-孤立森林方法 孤立森林算法简介 孤立森林是一种用于异常检测的算法,本文将对该算法进行简介,包括算法的理念.步骤.以及使用场景.常见的异常检测方法主要是统计学课本上学到一些方法,比如六西格玛方 ...
- 泛统计理论初探——余弦距离简介
统计学习-余弦距离简介 介绍余弦距离 在衡量变量之间距离的时候,我们发现可以用欧式距离.绝对值距离,本文我们将来介绍另一种距离,即余弦距离.余弦距离在实际问题中经常用到,由于它的计算方法是把各个维度的 ...
- 泛统计理论初探——KNN
数据挖掘-knn KNN算法 KNN算法是机器学习里较为简单和初级的算法,也称为最近邻算法.可以算的上是学习数据挖掘的入门算法,在大赛中,该算法一般用来作为插值来用,一般不会直接使用该算法来进行预测. ...
- 初探HazelCast IMDG内存数据网格-简介
初探HazelCast IMDG内存数据网格-简介 文章目录 初探HazelCast IMDG内存数据网格-简介 一.内存数据网格(In Memory Data Grid) 1.1 IMDG特点 1. ...
- 性能测试 理论初探(四),性能测试的指标是什么?web性能测试指标包括哪些?http性能测试指标关注 响应时间、吞吐量、服务器资源占用等
文章目录 前言 性能测试 考虑点 1.时间特性 2.资源利用率 3.服务器可靠性 4.可配置优化性 性能指标简介 1.响应时间 2.吞吐量 3.服务器资源占用 Web服务器 性能指标 b/s Web服 ...
- 性能测试 理论初探(一),什么是性能测试?性能测试的目的是?
文章目录 前言 性能测试 目的 1.评估系统的能力 2.识别体系中的弱点 3.系统调优 4.验证稳定性(resilience)可靠性(reliability) 负载测试(Load Testing) 压 ...
- 性能测试 理论初探(三),什么是性能测试分类?性能测试有哪些?性能测试分类 性能测试场景分析 负载测试、压力测试、容量测试等
文章目录 前言 负载测试(Load Testing) 压力测试(Stress Testing) 容量测试(Volume Testing) 性能测试类型 1.基准测试 2.争用测试 3.性能配置 4.负 ...
- 性能测试 理论初探(七) 性能测试工具 介绍 目前知道哪些性能工具?分别用在什么软件或平台的性能测试?服务端、web前端、移动端等 性能测试工具有哪些?
文章目录 一.前言 二.常见性能测试工具 1.服务端性能测试工具 1.1 Jmeter 1.2 Locust 1.3 LoadRunner 1.4 LoadNinja 1.5 Jmeter + Pro ...
最新文章
- 数据结构(队列实现篇)
- 数据结构与算法:02 C#语言基本语法结构
- SQL SERVER占用服务器内存过高的解决方案
- 二十年后的回眸(5)——一部单车闯天下
- 四层交换机是什么?有什么用?与二层/三层交换机有何区别?
- Java中的Scanner类和String类
- 《数据结构与抽象:Java语言描述(原书第4版)》一P.4.1 标识类
- 深入OKHttp源码分析(二)----OkHttp任务调度核心类Dispatcher解析
- 缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别
- 趣图:产品还没测试直接投入生产时
- 计算机的组成 —— 主板
- 排列:计算1!+2*2!+3*3!+...+n*n!
- yii php 弹窗,Yii框架弹出框功能示例
- 通过cmd命令行开启计算机xx服务
- matlab设置图片背景透明_Matlab保存透明图片程序
- 如何使用python insert插入数据
- Linux模板机以及搭建集群操作
- TMC429 - 三轴2相步进电机控制芯片
- TP-LINK WR740N V5.7刷OpenWrt的一些经验
- 【教3妹学算法-每日3题(3)】 和至少为 K 的最短子数组
热门文章
- 【Spring笔记09】Spring中事务传播机制(注解方式)
- php开发h5游戏教程,HTML5游戏框架cnGameJS开发实录-实现动画原理
- 20套数据可视化大屏模板,附源码下载
- 智能交通运输(包括TOCC)精华主题汇总
- mate10 android系统,华为Mate10官方固件rom刷机包_华为Mate10完整系统升级包
- python100以内奇数累加和_用python脚本来计算100以内奇数或者偶数之和
- 淘宝商品数据爬取并分析数据
- 简单的反编译class文件并重新编译的方法
- 基于matlab仿真实例,基于MATLAB的新能源汽车仿真实例
- Wind对接pytho总结