当前位置: 首页 > 后端技术 > Python

sklearn中的两种半监督标签传播算法LabelPropagation和LabelSpreading

时间:2023-03-26 17:27:15 Python

标签传播算法是一种半监督机器学习算法,它为之前未标记的数据点分配标签。要在机器学习中使用这种算法,只有一小部分示例具有标签或分类。这些标签在算法的建模、拟合和预测过程中传播到未标记的数据点。LabelPropagationLabelPropagation是一种用于在图中查找社区的快速算法。它仅使用网络结构作为指导来检测这些连接,不需要预定义的目标函数或有关人口的先验信息。标签传播是通过在网络中传播标签并根据标签传播过程形成连接来实现的。接近的标签通常会被赋予相同的标签。单个标签可以支配密集连接的节点组,但在稀疏连接的区域中会遇到麻烦。标签将被限制在一组紧密连接的节点上,当算法完成时,那些以相同标签结束的节点可以被认为是同一连接的一部分。该算法使用图论如下:-LabelPropagation算法按以下方式工作:-每个节点都使用唯一标签进行初始化。这些标签通过网络传播。在每次传播迭代中,每个节点将其标签更新为最大数量的邻居所属的标签。当每个节点都拥有其邻居的多数标签时,标签传播算法达到收敛。如果达到收敛或达到用户定义的最大迭代次数,标签传播算法将停止。为了演示LabelPropagation算法的工作原理,我们使用PimaIndians数据集。创建程序时,我导入了运行它所需的库。复制一份数据,并使用lable列作为训练目标。使用matplotlib可视化:使用随机数生成器随机生成标准化数据集中70%的标签。然后分配随机标签-1:-预处理数据后,分别定义因变量和自变量,y和X。y变量是最后一列,X变量是其余所有:-使用sklearn的LabelPropagation数字标记所有未标记的数据点:-找到它的准确率为76.9%。让我们来看看另一种算法,LabelSpreading。LabelSpreadingLabelSpreading也是一种流行的半监督学习方法。创建连接训练数据集中样本的图形,并通过图形的边缘传播已知标签以标记未标记的示例。LabelSpreading是由DengyongZhou等人提出的。在他们2003年题为“LearningwithLocalandGlobalConsistency”的论文中。半监督学习的关键是一致性先验假设,即:附近的点很可能有相同的标签,同一结构(通常称为聚类流形)上的点很可能有相同的标签。LabelSpreading可以被认为是LabelPropagation的正则化形式。在图论中,拉普拉斯矩阵是图的矩阵表示,拉普拉斯矩阵的公式为:L为拉普拉斯矩阵,D为度矩阵,A为邻接矩阵。下面是一个简单的无向图标签及其拉普拉斯矩阵结果的示例。本文将使用sonar数据集来演示如何使用sklearn的LabelSpreading函数。这里的库比上面多了,所以简单说明一下:Numpy进行数值计算,创建Numpy数组Pandas处理数据Sklearn进行机器学习操作Matplotlib和seaborn对数据进行可视化,为可视化数据提供统计信息警告,用于程序执行时忽略后警告出现,使用pandas读取数据集:我使用seaborn创建了一个热图:-先做一个简单的预处理,删除高度相关的列,并将列数从61减少到58:然后数据被洗牌所以在打乱的数据集中,预测通常更准确。复制数据集并将y_orig定义为训练目标:使用matplotlib绘制数据点的二维散点图:-使用随机数生成器随机化数据集中60%的标签。然后分配随机标签-1:-预处理数据后,分别定义因变量和自变量,y和X。y变量是最后一列,X变量是其余所有列:-然后使用sklearn的LabelSpreading算法训练和预测未标记的行。使用这种方法,可以达到87.98%的准确率:-简单比较1,labelspreading中包含alpha=0.2,alpha称为clampingcoefficient,指的是使用其邻居的信息代替其初始信息的相对量label,如果为0,表示保留初始标签信息。如果为1,表示替换所有初始信息;设置alpha=0.2表示始终保留原始标签信息的80%;2.labelpropagation使用数据构建的原始相似度矩阵,并没有进行修改;labelspreading最小化具有正则化属性的损失函数,对噪声更稳健,迭代原始图的修改版本,并通过计算归一化拉普拉斯矩阵对边权重进行归一化。3、同时LabelSpreading占用CPU较多,但物理内存占用较好;LabelPropagation的CPU占用率不错,但占用物理内存较多,高纬度数据可能会有些问题。https://avoid.overfit.cn/post/928d67bc5c9146ee8b8b149301bbf8eb作者:Tracyrenee