UCI标签传播算法

半监督学习

  顾名思义是介于分类(监督学习)与聚类(无监督学习)之间的一种学习范式。给定很少一部分样本的类标签,怎么样利用少部分具有类标签的数据来提高聚类的准确率是其研究主题。其中基于图的标签传播(Label Propagation)算法是有影响的算法之一。

UCI机器学习数据库:http://archive.ics.uci.edu/ml/

原理:某个测试用例的对象的标签(类别)和它附近的对象的标签相同,我们可以根据距离或者相似性来为两个对象设定一个权重。如果a和b的距离越小或者相似性越大的,则a的标签就越可能与b相同。

标签传播算法流程:

1. 构造相似性矩阵W

构造图G=(V, E):节点集V表示数据点集合|V|=n,边集E顶点对的集合,边上的权重w表示二者的相似性,可以如下设置:

这里,α是一个参数,可适当设定1~10,也可通过实验设置一个合适的值。若不使用完全图,则可以构造k-NN图(即一个点只与其k个最近的邻居有边),但这可能导致得到的图不是连通的,要进行处理使之连通。

2. 构造转移概率矩阵图,可以如下设置:

3.构造数据矩阵

  • 假设有C个类和L个labeled样本,我们定义一个L′C的label矩阵YL,第i行表示第i个样本的标签指示向量,即如果第i个样本的类别是j,那么该行的第j个元素为1,其它为0。
  • 对于给定的U个unlabeled样本,构造一个U ′ C的label矩阵YU(值随便设置)。
  • YL和YU合并,得到一个nC (L+U=n)的矩阵F=[YL;YU]。

4. 传播算法

  • (1) 执行传播:F(i+1) = PF(i);
  • (2) 重置F中labeled样本的标签:FL= YL;
  • (3) 重复步骤(1)和(2)直到F收敛;
  • (4) 对于U的每条数据,设置它的类为F中对应行中最大概率值对应的类;
时间: 2024-12-28 19:58:59

UCI标签传播算法的相关文章

标签传播算法

参考文献:http://blog.csdn.net/cleverlzc/article/details/39494957Gephi 是一款网络分析领域的可视化处理软件,可以用于数据分析,链接分析,社交网络分析等.标签传播算法LPA(Label Propagation Algorithm)最早是针对社区发现问题提出时的一种解决方案.主要优点有:时间复杂度(近似线性),不需要事先知道社区数量.主要算法流程:首先为每个节点设置唯一标签,接着迭代依次更新各个节点,针对每个节点,通过统计节点邻居的标签,选

标签传播算法(llgc 或 lgc)

动手实践标签传播算法 初始化算法 载入一些必备的库: from IPython.display import set_matplotlib_formats %matplotlib inline #set_matplotlib_formats('svg', 'pdf') import numpy as np import matplotlib.pyplot as plt from scipy.spatial.distance import cdist from sklearn.datasets i

Label Propagation Algorithm LPA 标签传播算法解析及matlab代码实现

LPA算法的思路: 首先每个节点有一个自己特有的标签,节点会选择自己邻居中出现次数最多的标签,如果每个标签出现次数一样多,那么就随机选择一个标签替换自己原始的标签,如此往复,直到每个节点标签不再发生变化,那么持有相同标签的节点就归为一个社区. 算法优点:思路简单,时间复杂度低,适合大型复杂网络. 算法缺点:众所周知,划分结果不稳定,随机性强是这个算法致命的缺点. 体现在:(1)更新顺序.节点标签更新顺序随机,但是很明显,越重要的节点越早更新会加速收敛过程 (2)随机选择.如果一个节点的出现次数最

lpa标签传播算法讲解及代码实现

package lpa; import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class LPA { public static float sigma = 1; public static int tag_num = 2; public static void main(String[] args) { float[][] data = { {1,1}, {1,2}, {2,1}, {2

lpa标签传播算法解说及代码实现

package lpa; import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class LPA { public static float sigma = 1; public static int tag_num = 2; public static void main(String[] args) { float[][] data = { {1,1}, {1,2}, {2,1}, {2

神经网络训练中的Tricks之高效BP(反向传播算法)

神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) [email protected] http://blog.csdn.net/zouxy09 Tricks!这是一个让人听了充满神秘和好奇的词.对于我们这些所谓的尝试应用机器学习技术解决某些问题的人,更是如此.曾记得,我们绞尽脑汁,搓手顿足,大喊“为什么我跑的模型不work?”,“为什么我实现的效果那么差?”,“为什么我复现的结果没有他论文里面说的那么好?”.有人会和你说“你不懂调参!

神经网络的正反向传播算法推导

1 正向传播 1.1 浅层神经网络 为简单起见,先给出如下所示的简单神经网络: 该网络只有一个隐藏层,隐藏层里有四个单元,并且只输入一个样本,该样本表示成一个三维向量,分别为为\(x_1\),\(x_2\)和\(x_3\).网络的输出为一个标量,用\(\hat{y}\)表示.考虑该神经网络解决的问题是一个二分类的问题,把网络的输出解释为正样本的概率.比方说输入的是一张图片(当然图片不可能只用三维向量就可以表示,这里只是举个例子),该神经网络去判断图片里面是否有猫,则\(\hat{y}\)代表该图

[2] TensorFlow 向前传播算法(forward-propagation)与反向传播算法(back-propagation)

TensorFlow Playground http://playground.tensorflow.org 帮助更好的理解,游乐场Playground可以实现可视化训练过程的工具 TensorFlow Playground的左侧提供了不同的数据集来测试神经网络.默认的数据为左上角被框出来的那个.被选中的数据也会显示在最右边的 “OUTPUT”栏下.在这个数据中,可以看到一个二维平面上有红色或者蓝色的点,每一个小点代表了一个样例,而点的颜色代表了样例的标签.因为点的颜色只有两种,所以这是 一个二

反向传播算法简介

<!doctype html> 反向传播算法html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospac