精华内容
下载资源
问答
  • 针对复杂光照背景下彩色圆形标签的检测问题 ,提出了一种基于色彩信息和 Hough变换的彩色圆形标签检测算法。该算法采用对比度拉伸来增强图像 ,然后采用自适应 Hough变换来定位场景中可能的圆形物体,目的是降低复杂...
  • 重叠社区检测的加权标签传播算法
  • 基于标签传播和相似度的步进社区检测算法
  • 一种基于水印的改进的低成本EPC C1G2 RFID标签篡改检测算法
  • 本文提出了一种结合标签传播的拓扑势社区检测算法(TPCDLP).首先,结合标签传播思想将属性信息转换为节点间的链接权值.其次,把链接权值加入到拓扑势中构造拓扑势域.再利用核心节点进行子群社区的划分.最后,利用子...
  • 大规模网络中社区结构的近线性时间检测算法标签传播算法(LPA)) 一、引言 各种各样的复杂系统可以表示为网络。例如社交网络用节点表示人,用边表示人与人之间的关系;而生物网络通常用生物化学分子表示为节点...

    大规模网络中社区结构的近线性时间检测算法 (标签传播算法(LPA))

    一、引言
    各种各样的复杂系统可以表示为网络。例如社交网络用节点表示人,用边表示人与人之间的关系;而生物网络通常用生物化学分子表示为节点,用边缘表示它们之间的反应。近年来的研究大多集中在了解网络的演化和组织,以及网络拓扑对系统动力学和行为的影响。在网络中寻找社区结构是理解它们所代表的复杂系统的另一步。现在对于社区结构没有明确的定义,暂且理解为一个团体。
    二、标签传播算法介绍
    每个节点都初始化一个唯一的标签,在算法的每次迭代中,每个节点都采用其最大邻居数的标签,且节点间的关系均匀随机断开。随着标签以这种方式在网络中传播,密集相连的节点群对其标签形成共识。在算法的最后,具有相同标签的节点被分组在一起作为社区。正如我们将展示的,这种算法的优点是它的简单和时间效率的其他方法。该算法使用网络结构来指导其进程,并没有优化任何特定的选择的社区力量的措施。此外,社区的数量和大小是不预先知道的,并在算法结束时确定。
    标签传播算法背后的主要思想如下。假设一个节点x有邻居x1,x2,…每个邻居都有一个标签,表示他们所属的社区。然后x根据其邻居的标签来确定其社区。假设网络中的每个节点都选择加入其最大邻居数量所在的社区,并均匀随机断开连接。我们用唯一的标签初始化每个节点,并让这些标签在网络中传播。随着标签的传播,密集连接的节点群很快就会对唯一的标签达成一致意见,如图2所示。
    在这里插入图片描述
    这个图很形象的描述了标签传播算法的思想,注意在第二个图右下角的节点变成a,是因为当节点的邻居标签数量都相同时,便随机选一个邻居节点的标签作为他的标签。在最后,拥有相同标签的节点组分成一个社区。

    LPA标签传播分为两种传播方式,同步更新,异步更新。注意,同步更新会出现一种问题,就是当网络中结构为二分图或近二分图的子图会导致标签震荡,就是下面这种情况:
    在这里插入图片描述
    你会发现在t+1次迭代时,与第t次相比较,左边节点组的标签和右边节点组的标签交换了,这就是标签震荡现象。解决的办法是设置迭代次数,提前结束迭代。而我们目前大多是用异步传播。
    理想情况下,迭代过程应该一直持续到网络中没有节点改变其标签为止。然而,网络中可能存在在两个或更多社区中拥有相同最大邻居数量的节点。由于我们在可能的候选节点中随机断开连接,因此即使相邻节点的标签保持不变,这些节点上的标签也会随着迭代而改变。因此,我们进行迭代过程,直到网络中的每个节点都有一个其最大邻居数所属的标签。通过这样做,我们将网络划分为互不相连的社区,其中每个节点在其社区中拥有的邻居至少与它在其他社区中的邻居一样多。如果C1,…Cp为网络中当前活跃的标签,在这里插入图片描述
    为节点i与标签为Cj的节点的邻居数,则对于每个节点i,在这里插入图片描述
    这其实就是上方加粗语句的公式化描述。

    以下是标签传播算法步骤的具体描述:

    在这里插入图片描述
    标签传播算法的优缺点很明确,优点是算法逻辑简单,时间效率高,不需要预先知道社区的大小以及社区信息,缺点是随机性强,容易产生多个社区。因此我们需要引入一个检测机制来判断划分社区的好坏。本文用的是Jaccard index(杰卡德系数)、模块度Q,这两个部分对于社区挖掘非常重要。大家可以看一下。
    在这里插入图片描述
    对于获得的多个社区结构,将他们聚合可以提供包含最有用信息的社区结构。当我们聚合两个解决方案时,如果一个解决方案中的社区T在另一个解决方案中分成两个不同的社区s1和s2,然后通过定义如上所述的新标签,我们更倾向于较小的社区s1和s2而不是T。这只是聚合不同解决方案的多种方式之一。
    在这里插入图片描述
    三、社区结构的检测
    因为目前我们已经知道空手道俱乐部和美国橄榄球网络中的社区结构,因此,我们将根据标签传播算法获得的社区结构与这两个已知的社区结构比较,发现可以有效地挖掘出各自的基本社区结构网络。

    四、时间复杂度
    算法运行到完成需要一段近似线性的时间。用唯一的标签初始化每个节点需要O(n)时间。标签传播算法的每一次迭代都需要以[O(m)]为单位的线性时间。在每个节点x,我们首先根据相邻节点的标签[O(dx)]对其进行分组。然后我们选择最大的组并将其标签分配给x,这需要最坏情况下的时间O(dx),该过程在所有节点上重复,因此每次迭代的总时间为O(m)。

    展开全文
  • 为了提高显著性检测的鲁棒性, 增加全局信息和局部信息的联系, 提出一种基于稀疏表示和标签传播的显 著性检测算法. 首先将复杂数据集进行简洁的表达, 获得数据间更深层次的全局联系, 并利用稀疏表示理论定义邻 接矩阵...
  • 主要算法流程:首先为每个节点设置唯一标签,接着迭代依次更新各个节点,针对每个节点,通过统计节点邻居的标签,选择标签数最多的标签更新该节点,如果最多便签数大于一,则从中随机选择一个标签更新该节点,直到...

    转载自:http://blog.csdn.net/DreamHome_S/article/details/78662197

    主要优点:时间复杂度近似线性,不需要事先知道社区数量。

    主要算法流程:首先为每个节点设置唯一标签,接着迭代依次更新各个节点,针对每个节点,通过统计节点邻居的标签,选择标签数最多的标签更新该节点,如果最多便签数大于一,则从中随机选择一个标签更新该节点,直到收敛为止。

    标签传播算法的节点标签更新策略主要分成两种:一种是同步更新,另一种是异步更新。 
    同步更新:在执行第t次迭代更新时,仅依赖第t-1次更新后的标签集。 
    异步更新:在执行第t次迭代更新时,同时依赖t次迭代已经更新的标签集以及在t-1更新但t次迭代 中未来的及更新的标签集,异步更新策略更关心节点更新顺序,所以在异步更新过程中,节点的更新顺序采用随机选取的方式。

    LPA算法适用于非重叠社区发现,针对重叠社区的发现问题,学者提出了COPRA(Community Overlapping Propagation Algorithm)算法。该算法提出所有节点可以同时属于V个社区,V是个人为设定的全局变量,很显然 V 的选择直接影响算法的效果,针对V的选择需要足够的先验知识,在真实的社区网络中,V的选择不能很好的被控制。

    Python实现过程

    # -*- coding: UTF-8 -*-
    
    """
    Created on 17-11-28
    
    @summary: 实现传统标签传播算法LPA
    
    @author: dreamhome
    """
    
    import random
    import networkx as nx
    import matplotlib.pyplot as plt
    
    
    def read_graph_from_file(path):
        """
        :param path: 从文件中读取图结构
        :return: Graph graph
        """
        # 定义图
        graph = nx.Graph()
        # 获取边列表edges_list
        edges_list = []
        # 开始获取边
        fp = open(path)
        edge = fp.readline().split()
        while edge:
            if edge[0].isdigit() and edge[1].isdigit():
                edges_list.append((int(edge[0]), int(edge[1])))
            edge = fp.readline().split()
        fp.close()
        # 为图增加边
        graph.add_edges_from(edges_list)
    
        # 给每个节点增加标签
        for node, data in graph.nodes_iter(True):
            data['label'] = node
    
        return graph
    
    
    def lpa(graph):
        """
        标签传播算法 使用异步更新方式
        :param graph:
        :return:
        """
        def estimate_stop_condition():
            """
            算法终止条件:所有节点的标签与大部分邻居节点标签相同或者迭代次数超过指定值则停止
            :return:
            """
            for node in graph.nodes_iter():
                count = {}
                for neighbor in graph.neighbors_iter(node):
                    neighbor_label = graph.node[neighbor]['label']
                    count[neighbor_label] = count.setdefault(
                        neighbor_label, 0) + 1
    
                # 找到计数值最大的label
                count_items = count.items()
                count_items.sort(key=lambda x: x[1], reverse=True)
                labels = [k for k, v in count_items if v == count_items[0][1]]
                # 当节点标签与大部分邻居节点标签相同时则达到停止条件
                if graph.node[node]['label'] not in labels:
                    return False
    
            return True
    
        loop_count = 0
    
        # 迭代标签传播过程
        while True:
            loop_count += 1
            print '迭代次数', loop_count
    
            for node in graph.nodes_iter():
                count = {}
                for neighbor in graph.neighbors_iter(node):
                    neighbor_label = graph.node[neighbor]['label']
                    count[neighbor_label] = count.setdefault(
                        neighbor_label, 0) + 1
    
                # 找到计数值最大的标签
                count_items = count.items()
                # print count_items
                count_items.sort(key=lambda x: x[1], reverse=True)
                labels = [(k, v) for k, v in count_items if v == count_items[0][1]]
                # 当多个标签最大计数值相同时随机选取一个标签
                label = random.sample(labels, 1)[0][0]
                graph.node[node]['label'] = label
    
            if estimate_stop_condition() is True or loop_count >= 10:
                print 'complete'
                return
    
    
    if __name__ == "__main__":
    
        path = "/home/dreamhome/network-datasets/dolphins/out.dolphins"
        graph = read_graph_from_file(path)
        lpa(graph)
    
        # 根据算法结果画图
        node_color = [float(graph.node[v]['label']) for v in graph]
        nx.draw_networkx(graph, node_color=node_color)
        plt.show()
    展开全文
  • 针对上述问题,提出一种基于少量类标签的概念漂移检测算法。它根据快速KNNModel算法利用模型簇分类的特点,在未知分类数据类标的情况下,根据当前数据块不被任一模型簇覆盖的实例数目较之前数据块在一定的显著水平下...
  • 社团检测标签传播算法Python实现

    千次阅读 热门讨论 2017-11-29 10:15:58
    Don’t you wonder sometimes, what might have happened if...主要算法流程:首先为每个节点设置唯一标签,接着迭代依次更新各个节点,针对每个节点,通过统计节点邻居的标签,选择标签数最多的标签更新该节点,如果最

    Don’t you wonder sometimes, what might have happened if you tried?

    有时别想那么多,试一试看看结果会怎么样?

    LPA标签传播算法

    主要优点:时间复杂度近似线性,不需要事先知道社区数量。

    主要算法流程:首先为每个节点设置唯一标签,接着迭代依次更新各个节点,针对每个节点,通过统计节点邻居的标签,选择标签数最多的标签更新该节点,如果最多便签数大于一,则从中随机选择一个标签更新该节点,直到收敛为止。

    标签传播算法的节点标签更新策略主要分成两种:一种是同步更新,另一种是异步更新。
    同步更新:在执行第t次迭代更新时,仅依赖第t-1次更新后的标签集。
    异步更新:在执行第t次迭代更新时,同时依赖t次迭代已经更新的标签集以及在t-1更新但t次迭代 中未来的及更新的标签集,异步更新策略更关心节点更新顺序,所以在异步更新过程中,节点的更新顺序采用随机选取的方式。

    LPA算法适用于非重叠社区发现,针对重叠社区的发现问题,学者提出了COPRA(Community Overlapping Propagation Algorithm)算法。该算法提出所有节点可以同时属于V个社区,V是个人为设定的全局变量,很显然 V 的选择直接影响算法的效果,针对V的选择需要足够的先验知识,在真实的社区网络中,V的选择不能很好的被控制。

    Python实现过程

    # -*- coding: UTF-8 -*-
    
    """
    Created on 17-11-28
    
    @summary: 实现传统标签传播算法LPA
    
    @author: dreamhome
    """
    
    import random
    import networkx as nx
    import matplotlib.pyplot as plt
    
    
    def read_graph_from_file(path):
        """
        :param path: 从文件中读取图结构
        :return: Graph graph
        """
        # 定义图
        graph = nx.Graph()
        # 获取边列表edges_list
        edges_list = []
        # 开始获取边
        fp = open(path)
        edge = fp.readline().split()
        while edge:
            if edge[0].isdigit() and edge[1].isdigit():
                edges_list.append((int(edge[0]), int(edge[1])))
            edge = fp.readline().split()
        fp.close()
        # 为图增加边
        graph.add_edges_from(edges_list)
    
        # 给每个节点增加标签
        for node, data in graph.nodes_iter(True):
            data['label'] = node
    
        return graph
    
    
    def lpa(graph):
        """
        标签传播算法 使用异步更新方式
        :param graph:
        :return:
        """
        def estimate_stop_condition():
            """
            算法终止条件:所有节点的标签与大部分邻居节点标签相同或者迭代次数超过指定值则停止
            :return:
            """
            for node in graph.nodes_iter():
                count = {}
                for neighbor in graph.neighbors_iter(node):
                    neighbor_label = graph.node[neighbor]['label']
                    count[neighbor_label] = count.setdefault(
                        neighbor_label, 0) + 1
    
                # 找到计数值最大的label
                count_items = count.items()
                count_items.sort(key=lambda x: x[1], reverse=True)
                labels = [k for k, v in count_items if v == count_items[0][1]]
                # 当节点标签与大部分邻居节点标签相同时则达到停止条件
                if graph.node[node]['label'] not in labels:
                    return False
    
            return True
    
        loop_count = 0
    
        # 迭代标签传播过程
        while True:
            loop_count += 1
            print '迭代次数', loop_count
    
            for node in graph.nodes_iter():
                count = {}
                for neighbor in graph.neighbors_iter(node):
                    neighbor_label = graph.node[neighbor]['label']
                    count[neighbor_label] = count.setdefault(
                        neighbor_label, 0) + 1
    
                # 找到计数值最大的标签
                count_items = count.items()
                # print count_items
                count_items.sort(key=lambda x: x[1], reverse=True)
                labels = [(k, v) for k, v in count_items if v == count_items[0][1]]
                # 当多个标签最大计数值相同时随机选取一个标签
                label = random.sample(labels, 1)[0][0]
                graph.node[node]['label'] = label
    
            if estimate_stop_condition() is True or loop_count >= 10:
                print 'complete'
                return
    
    
    if __name__ == "__main__":
    
        path = "/home/dreamhome/network-datasets/dolphins/out.dolphins"
        graph = read_graph_from_file(path)
        lpa(graph)
    
        # 根据算法结果画图
        node_color = [float(graph.node[v]['label']) for v in graph]
        nx.draw_networkx(graph, node_color=node_color)
        plt.show()
    
    展开全文
  • 一种二进制树位检测标签防碰撞算法
  • 针对大型的RFID系统中使用标签ID无法识别具体复制标签的问题,提出了一种快速检测复制标签的CTDA算法。首先,标签内存储[k]个哈希函数,标签在接收到阅读器的查询帧后多次回复阅读器构造虚拟克鲁姆过滤器,找到阅读...
  • 使用标签传播的社区检测算法(Java多线程) 我已经实现了Usha Nandini Raghavan,Reka Albert,Soundar Kumara的论文“近线性时间算法来检测大型网络中的社区结构”中提到的算法。 我还添加了Kishore Kothapalli,...
  • 为了提高多标签分类器对数据故障的检测性能,提出了一种基于多标签ReliefF和遗传算法的特征选择算法。该方法将ReliefF扩展成可以对特征子集进行评估的多标签ReliefF,特征选择过程首先使用遗传算法搜索特征子集,...
  • 为了提高多标签分类器对数据故障的检测性能,提出了一种基于多标签ReliefF和遗传算法的特征选择算法。该方法将ReliefF扩展成可以对特征子集进行评估的多标签ReliefF,特征选择过程首先使用遗传算法搜索特征子集,...
  • 用SMO算法优化垃圾标签检测模型 生物医学工程论文 摘要:针对垃圾标签检测数据集特征维数高,规模大的问题,提出利用序列最小最优化算法大幅度约减庞大的垃圾标签特征数据集,同时保持原有分类精度,...

     生物医学工程论文 摘要:针对垃圾标签检测数据集特征维数高,规模大的问题,提出利用序列最小最优化算法大幅度约减庞大的垃圾标签特征数据集,同时保持原有分类精度,降低训练时间。为Folksonomy的垃圾标签检测研究拓宽道路
      关键词:垃圾标签;序列最小最优化算法;约减
      
      0. 引言
      随着Web2.0技术架构的推广,社会化标签系统越来越受到人们的欢迎,但它容易受到社会垃圾(SocialSpam)或垃圾标签的干扰。目前检测垃圾标签的主流途径是从用户中检测出垃圾投放人,通过控制垃圾投放人的行为,达到减少垃圾标签的效果。现行检测方法有朴素贝叶斯法[2]、神经网络[3]、支持向量机[3]等。然而,社会化标签系统的数据量极为庞大。现有方法几乎都是直接采用分类算法进行分类检测,虽然都有不同程度的效果,但检测速度慢。少数方法通过采用设计统计量描述特征、随机抽取样本点等方法压缩数据集。这些方法虽然能把数据集控制在一定小规模内,但具有一定局限性,容易造成特征丢失,影响检测精度。本篇将采用序列最小最优化算法约减大规模的垃圾标签数据集,实现对检测模型的优化,在保证检测精度的同时,大幅度提高分类检测的速度。
      
      1. 垃圾标签检测模型
      1.1 Folksonomy用户的向量空间模型
      在Folksonomy中,整个系统体现了用户、标签和资源三者的关系。其用户的形式化定义为[4]:
      定义(Folksonomy用户定义)对于给定的用户uU,Pu是F对u的约束,即Pu:=(Tu,Ru,Iu,﹤u),其中Iu:={(t,r)T×R|(u,t,r)Y},Tu:=1(Iu),Ru:=2(Iu),﹤u:={(t1,t2)T×T|(u,t1,t2)﹤}。这里表示投影,i表示第i元的投影。
      根据以上定义可知,用户可以由其标识过的标签和对应的资源一起联合描述。本篇的垃圾标签检测模型将利用这一定义,采用字符串连接的方式将标签、资源结合,即用户使用过的标签词汇和对应资源连接成字符串文本。经此转化可得到新的用户文本形式。在此基础上借鉴文本特征的处理方法,对其进行词条切分,构建词典,然后利用文本的向量空间模型[5]表征,最后得到如下新的用户特征模型:
      Uk=(Wk1,Wk2,…,Wkg,Wkg+1,Wkg+2,…,Wkh),
      其中,用户特征向量维数由构建的词典大小决定。Wki为第k个用户文本中使用了词典第i个分词的权重。利用TF/IDF函数计算权重。函数中的N表示用户模型总数,n(i)表示训练集中使用标签分词i的用户数。
      1.2 SVM二次规划模型
      支持向量机(SupportVectorMachines,SVM)理论是Vapnik[6][7]等人提出用来具体实现统计学习理论核心思想的一种通用的学习方法。支持向量机的训练算法主要在于求解一个凸二次规划问题,考虑其原始问题的对偶问题,引入Lagrange乘子,其公式如下:
      (1)
      可得该问题的最优解为其决策函数为
      (2)
      其中。事实上,最优解的每一个分量都对应一个训练点。因此,构造的分化超平面仅仅依赖于那些对应于不为零的训练点,这些训练点就称为支持向量,而其他对应于为零的训练点则称为非支持向量。  发表论文网
      

    posted on 2011-01-15 10:03 名求求 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/mingwang/archive/2011/01/15/1936118.html

    展开全文
  • 基于多标签传播聚类算法的疾病相关基因模块检测
  • 标签传播算法

    千次阅读 2017-10-24 10:55:53
    标签传播算法(Label Propagation ...2007年,Raghavan等人首次提出将LPA算法应用于社团检测。 LPA算法思路简单清晰,其基本过程如下: (1)为每个节点随机的指定一个自己特有的标签; (2)逐轮刷新所有
  • 目标检测算法YOLO算法介绍

    千次阅读 2019-05-24 15:19:15
    YOLO算法(You Only Look Once) 比如你输入图像是100x100,然后在...更具体一点,你需要这样定义训练标签,对于9个格子中的每一个都指定一个标签y,其中y是一个8维向量(与前面讲述的一样,分别为Pc,bx,by,bh,...
  • yolo对象检测算法

    2020-06-04 18:04:14
    基于滑动窗口的目标检测算法 该方法有明显的缺点:计算成本 在卷积层上应用滑动窗口 将神经网络的全连接层转为卷积层 原来的实现方法:在图片中剪切出一块区域,然后输入到卷积网络中,然后是下一块区域 现在:对...
  • 目标检测算法资源总结

    千次阅读 2019-02-14 19:22:37
    但是现实世界的很多图片通常包含不只一个物体,此时如果使用图像分类模型为图像分配一个单一标签其实是非常粗糙的,并不准确。对于这样的情况,就需要目标检测模型 目标检测模型可以识别一张图片的多个物体,并可以...
  • 为了解决传统特征分类软件缺陷检测方法存在检测开销大的问题,提出了基于K-means算法的电网用户标签特征分类缺陷检测方法。应用权值分配算法和对应方差的评估值,以权值定位标签的特征,然后基于数据标签值进行数据...
  • ENPM673:自主机器人项目的感知1 运行项目1程序的说明 档案名称:AR_Tag_Tracker.py ... 为Tag0输入1,为Tag1输入2,为Tag2输入3,或为多个标签输入4。 视频播放完毕后,该程序将销毁所有窗口。 我们导入了以
  • 基于滑动窗口的目标检测算法。 假如你想构建一个汽车检测算法,步骤是(以上图为例), 首先创建一个标签训练集,也就是x和y表示适当剪切的汽车图片样本,这张图片(编号1)x是一个正样本,因为它是一辆汽车图片,这...
  • 文章目录文字检测算法--Differentiable BinarizationDifferentiable Binarization架构SB vs DB标签生成Loss 函数推理阶段后处理实现细节参考 Differentiable Binarization 近年来,基于分割的方法在文本检测中备受...
  • YOLOv1:目标检测算法——YOLOv1 YOLOv2:目标检测算法——YOLOv2 本文结合了几个博主的笔记,加上自己的一些理解归纳而成。其中比较多的参考了博主「太阳花的小绿豆」对yolov3的结构分析,详情见参考资料的2,3。 1....
  • 1. 摘要     确定药物-靶标相互作用(DTIs)是药物发现和药物重新定位的...本篇文章引入DTIs预测的社区检测方法DTI-MLCD来促进多标签分类。此外本文更新了2008年提出并至今仍在使用的黄金标准数据集。本文提出的DTI-
  • 抛物(如手雷与炸弹等)一般是快速运动的小目标,信噪比极低,通常的目标检测算法失效.针对周界视频监 控的特殊应用需求,提出抛物检测与识别算法.首先使用相隔8帧做差法,检测每帧图像中的抛物目标;然后利用改进型Hough...
  • :在剖析EAS标签信号特性的基础上,建立了标签信号的模型;根据从标签信号提取出的 形状特征、运动特征和实时信噪比特征,...法有效地提高了EAS系统在强干扰环境下的检测率,降低了误报率,而且能够检测标签运动速度。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 870
精华内容 348
关键字:

标签检测算法