半监督

2023-11-06

半监督学习

transductive learning:unlabeled data is the testing data
inductive learning:unlabeled data is not the testing data

一、生成方法:self-training

  • 将初始的有标签数据集作为初始的训练集
    (X_train, y_train)=(X_l, y_l)
    根据训练集训练得到一个初始分类器C_int。
  • 利用C_int对无标签数据集X_u中的样本进行分类,选出最有把握的样本(X_conf, y_conf) (可以使用SVM方法和逻辑回归方法同时yu)
    这里可以使用K近邻算法
    在这里插入图片描述
  • 如果K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
  • 如果K=5,绿色圆点的最近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。
  1. 从X_u中去掉(X_conf, y_conf)

  2. 将(X_conf, y_conf)加入到有标签数据集中
    (X_train, y_train) ← (X_l, y_l) ∪ (X_conf, y_conf)

  3. 根据新的训练集训练新的分类器,重复步骤2到5直到满足停止条件(例如所有无标签样本都被标记完了或者该模型找不到“有把握”的预测结果)
    最后得到的分类器就是最终的分类器。

二、graph-based method 基于图的半监督方法

在存储开销上,若样本数为O(m),则算法中所涉及的矩阵规模为O(m^2);算法很难处理大规模数据。
构图过程中仅能考虑训练样本集,难以判别新样本在图中的位置;在接收新样本时,将其加入原数据集对图进行重构并重新进行标记传播,或是需要引入额外的预测机制。

假设多有的样本点(包括已标记和未标记)以及之间的关系可以映射为一张图;数据集中的每个样本对应于图中的一个结点,若两个样本相似度很高,则对应的结点之间存在一条边,边的“强度”正比于样本之间的相似度;
将有标记样本对应的结点想象为染过色,未标记样本的结点未染色;
基于D_l和D_u构建一个图G=(V,E)
结点集V = {x1,…,x_l,x_l+1,…,x_l+u}
边集E表示为一个亲和矩阵;

基于图的算法使用图的拉普拉斯矩阵;图的节点之间的边的全职矩阵为W;W_ij表示两个结点之前边的权值;当两个结点无边时,w_ij = 0;边的权值有多种定义方式;定义为k近邻或者高斯核矩阵的形式。

k 近邻定义:如果结点x_i是结点x_j 的 k 个最邻近结点中的一个,那么w_ij = 1,否则w_ij = 0;

在这里插入图片描述

第二项迫使学得结果在有标记样本的预测与真实的标记尽可能相同;第一项迫使相近样本具有相似的标记(离散的类别标记);

三、co-training协同训练(基于分歧的方法)
需要生成具有显著分歧、性能尚可的多个学习器;当数据不具备多视图时,不容易设计
将每个数据从不同的角度进行分类;不同的角度可以训练出不同的分类器;

  1. 初始化数据,将有标签数据L分为两个集合L1(包括k个属性)和L2(包括m个属性);
  2. 分别用L1和L2训练出一个模型分类器F1和F2
  3. 分别用模型F1和F2去预测,选出最有把握的一些结果;
  4. 把F1预测的结果放入L2,把F2预测的结果放入L1(交叉放置)
  5. 更新L和U
  6. 反复迭代k次,得到两个最终的分类器C1,C2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

半监督 的相关文章

  • Google Guava

    转载自并发编程网 ifeve com 本文链接地址 Google Guava官方教程 中文版 中文文档 http ifeve com google guava 开源地址 https github com google guava 今天偶然发

随机推荐

  • swagger3或者swagger报nullpointexception

    很简单这个问题就是版本不匹配 就是2 6 0以上版本的springbootmvc扫描方法和老版本不同 在springboot配置 application yml 里面加上如果是properties则是加上 spring mvc pathma
  • 配置Spark on YARN集群内存

    在这里插入代码片 运行文件有几个G大 默认的spark的内存设置就不行了 需要重新设置 还没有看Spark源码 只能先搜搜相关的博客解决问题 按照Spark应用程序中的driver分布方式不同 Spark on YARN有两种模式 yarn
  • 利用CNN进行人脸年龄预测

    很久之前做的东西了 最近做了一个人脸相似度检测 里面用到了这里的一个模型 所以抽个空把人脸年龄检测的思路总结一下 与其他CNN分类问题类似 人脸年龄预测无非就是将人脸分为多个类别 然后训练卷积神经网络 最后利用训练好的卷积神经网络进行分类即
  • 数据结构: 线性表(无哨兵位单链表实现)

    文章目录 1 线性表的链式表示 链表 1 1 顺序表的优缺点 1 2 链表的概念 1 3 链表的优缺点 1 4 链表的结构 2 单链表的定义 2 1 单链表的结构体 2 2 接口函数 3 接口函数的实现 3 1 动态申请一个结点 BuySL
  • SparkStreaming与Kafka010之05之02 Consumer的offset 自定义设置offset

    package Kafka010 import Kafka010 Utils MyKafkaUtils import org apache kafka clients consumer ConsumerRecord import org a
  • IDEA创建Springboot项目提示`Initialization failed for ‘https://start.spring.io‘ Please check URL`

    1 1 settings gt http proxy 2 check connection 在其中输入 https start spring io 3 开始创建 4 导入springweb的一个依赖 5 创建成功 选中的3个为maven环境
  • CSS样式——旋转工具箱

    目录 基础模板 工具箱样式 加号按钮样式 工具按钮样式 旋转效果 CSS样式 旋转工具箱 效果如下所示 基础模板 首先我们准备基础模板 模板代码如下图所示
  • 盘点12个Python数据可视化库

    大家好 我是小z 这篇文章是关于一本很奈斯的可视化书籍的介绍 老规矩 文末小z简单粗暴的抽奖送出1本 在数据可视化的研究热潮中 如何让数据生动呈现 成了一个具有挑战性的任务 随之也出现了大量的可视化软件 相对于其他商业可视化软件 Pytho
  • C#多线程之BackgroundWorker

    一 BackgroundWorker介绍 我们有时要执行耗时的操作 在该操作未完成之前操作用户界面 会导致用户界面停止响应 解决的方法就是新开一个线程 把耗时的操作放到线程中执行 这样就可以在用户界面上进行其它操作 新建线程可以用 Thre
  • jvm垃圾回收机制

    如何判定一个对象是不是垃圾对象 1 引用计数法 2 根可达性算法 引用计数法 2 可达性分析算法 垃圾回收算法 1 标记清除算法 位置不连续 会产生磁盘碎片 2 复制算法 没有碎片 浪费空间 3 标记整理 没有碎片 效率偏低
  • 算法训练营第十七天(7.29)

    目录 LeeCode513 Find Bottom Left Tree Value LeeCode112 Path Sum LeeCode113 Path Sum ll LeeCode106 Construct Binary Tree fr
  • [C语言]---操作符

    1 算术操作符 的两个操作数必须为整数 3 2 1 3 0 2 1 5 2 移位操作符 左移 lt lt num lt lt 1 num值不变 右移 gt gt 分两种 逻辑移位 左边用0填充 右边丢弃 算术移位 左边用原该值的符号位填充
  • VMware下Ubuntu与宿主Windows共享文件夹

    概述 1 安装VMware Tool 2 设置共享 步骤 开始安装VMware Tool 显示如下画面 如果宿主无法访问外网 可能会出现一个更新失败 可以无视之 通过下列命令解压 执行 分别是下面的tar和sudo的两行 下面是已有vmwa
  • AcWing 372. 棋盘覆盖(二分图&&匈牙利算法)

    输入样例 8 0 输出样例 32 解析 n为100 状压肯定爆 将每个骨牌看成二分图的一个匹配 即查找二分图的一个最大匹配 匈牙利算法 include
  • C# 数据类型_摘自菜鸟教程

    数据类型 值类型 Value types 引用类型 Reference types 对象 Object 类型 动态 Dynamic 类型 字符串 String 类型 指针类型 Pointer types 值类型 Value types 值类
  • CAP的分区容错性

    一直没有理解CAP 中P的分区容错性是什么意思 系统部分节点出现故障后 连接正常节点还可以使用系统提供的服务
  • VS项目中引入dll的方法

    引入dll的方法 方法1 配置属性 gt 调试 gt 环境 输入path 包含dll文件的文件夹路径 方法2 1 将dll文件拷贝到生成的 exe所在的文件夹中 2 项目右键 添加引用 选择dll文件 我用的第二种
  • 【华为OD机试真题】字符串通配符(200分)

    目录 题目 输入描述 输出描述 示例1 示例2 示例3 个人解法 总结 系列文章目录 题目 时间限制 C C 1秒 其他语言2秒 空间限制 C C 32M 其他语言64M 在计算机中 通配符是一种特殊语法 广泛应用于文件搜索 数据库 正则表
  • 挖槽,Sharding-JDBC强制走主库,一不留神就报错了

    点击关注强哥 查看更多精彩文章呀 今天项目中突然告警报错 打出了多条相似的错误日志 查看了下 具体报错内容如下 HintManagerHolder has previous value please clear first 从错误日志我们可
  • 半监督

    半监督学习 transductive learning unlabeled data is the testing data inductive learning unlabeled data is not the testing data