1 简介

代价敏感多标签主动学习目前是闵老师小组正在进行的一个开发项目,目的是将代价敏感和主动学习思想应用到多标签学习中。整个Java代码涵盖了很多技术:并行计算、batch处理。本文就是在学习这个代码后的一些总结。学习方法采用的至顶向下。

2 Cmale类

该类为测试的主类。

2.1 数据

  • dataset:保存整个多标签数据集
  • numInstances:样本的个数
  • numConditions:条件属性的个数
  • numLabels:标签的个数
  • outputFile:输出的文件
  • multiLabelAnn:用于分类的多标签神经网络
  • representativenessArray:保存所有实例的代表性
  • representativenessRankArray:所有实例代表性的排名

2.2 方法

  • (1)Cmale:构造方法
    step 1. 读数据文件构建dataset
    step 2. 计算实例的代表性
    step 3. 准备输出文件

  • (2)initializeMultiLabelAnn:初始化多标签神经网络
    利用dataset,全连接层节点,并行层节点构建多标签神经网络

  • (3)boundedTrain:给定轮数的上界、下界进行训练

  • (4)boundedEmphasizedTrain:给定训练轮数的上界, 进行针对性 (增量) 训练

  • (5)computeInstanceRepresentativeness:基于密度峰值来计算实例的代表性

  • (6)twoStageLearn:两阶段学习: 冷启动 (仅考虑对象代表性与标签稀少性) 与 正常训练 (考虑标签不确定性) 注意: 这里是算法的核心, 需要改策略

  • (7)randomSelectionLearn: 随机选择标签的学习, 作为对比算法. 如果我们的策略不比随机策略好, 就没有意义

3 MultiLabelData类:数据管理

本类读入 arff 文件, 存储成一个数据矩阵和标签矩阵

3.1 数据

  • dataMatrix: 数据矩阵
  • labelMatrix: 标签矩阵
  • predictedLabelMatrix: 预测的标签矩阵
  • labelQueriedMatrix: 记录哪些标签被查询
  • 查询代价、误分类代价等

3.2 方法

  • reset: 重置以支持多次训练
  • randomQuery: 随机查询给定数量的标签, 支持随机查询方案
  • getScareLabels: 找出哪些标签是稀少的
  • queryLabels: 查询某个对象的一组标签. 需要在内部保持数据的一致性, 出错影响大
  • computeAccuracy: 根据预测的标签矩阵计算准确率. 需要预先给出预测值
  • computeTrainingAccuracy: 计算在训练集中的准确率, 以支持训练结束的终止条件
  • computeTotalCost: 计算总代价, 包括查询代价与误分类代价
  • distance: 计算两个实例之间的距离 (Manhattan 或 Euclidean)

4. 分类器构建 MultiLabelAnn.java

本类的神经网络支持全连接层和并行连接层. 输入端口数为条件属性数, 输出端口数为标签数的 2 倍.

4.1 变量

dataset: 数据集

4.2 方法

  • train: 训练一轮, 仅使用被查询过的对象
  • emphasizedTrain: 训练一轮, 被强调的数据多次训练, 支持增量学习. 这是因为主动学习过程是增量学习
  • test: 使用所有数据测试
  • computeLabelUncertaintyMatrix: 计算标签不确定性矩阵 注意: 这是核心方法, 以后可能要修改策略
  • getMostUncertainLabelIndices: 获得不确定性最高的几个标签, 包括对象下标 (一个) 与标签下标 (多个) 注意: 以后可能修改, 以支持多个对象的批量选取, 缩短程序运行时间
  • getUncertainLabelBatch: 大家好, 我就是上一条说的 “以后”
  • forward: 神经网络标准的前向操作
  • backPropagation: 神经网络标准的回馈操作

代价敏感多标签主动学习的代码开发跟踪相关推荐

  1. 学术讲座: 多标签主动学习之 MASP

    摘要: 本贴解读我们的刚录用的论文 Xue-Yang Min, Kun Qian, Ben-Wen Zhang, Guojie Song, and Fan Min, Multi-label activ ...

  2. 论文阅读笔记(9):加权稀疏子空间表示——子空间聚类、约束聚类和主动学习的统一框架

    论文阅读笔记(9):WEIGHTED SPARSE SUBSPACE REPRESENTATION--A UNIFIED FRAMEWORK FOR SUBSPACE CLUSTERING, CONS ...

  3. active learning主动学习

    active learning 是半监督式的机器学习的一种,这种机器学习算法能够交互式地查询用户或者信息源,从而对于一个新的数据样例得到可人的输出.在统计学文献中,它有时也被称为最佳实验设计. 在这样 ...

  4. 你中奖了吗?低代码开发师(高级)认证中奖名单揭晓啦

    2021年7月以来,钉钉宜搭相继推出了"低代码开发师"初级.中级和高级认证.目前,已有数万人通过了"低代码开发师"认证. 钉钉宜搭"低代码开发师&qu ...

  5. 开放原子训练营(第三季)inBuilder低代码开发实验室:货运单的开发

    开放原子开源基金会(OpenAtom Foundation),是一个非盈利组织,致力于推广开源技术和开放创新.其宗旨是倡导合作伙伴间的信息共享和资源共享,鼓励开源社区的创造性和互助精神.该基金会提供资 ...

  6. 深入学习“主动学习”:如何显著地减少标注代价

    写在前面 这篇博文很早之前就整理好啦,一直想继续完善再发布.但接下来一年的时间,估计会忙于各种事情,毕竟下半年就研三了.再者,最近在阿里实习,因某个业务场景需人工标注数据,借此机会尝试着做了主动学习的 ...

  7. 主动学习简单教程及代码示例

    本文是这篇文章的(翻译)简化版. 本文代码地址 已经不止一次有人说代码地址打不开,但是每次我都打得开..这里放个阿里云的地址吧Active_Learning_Tutorial.ipynb.需要的去阿里 ...

  8. 数据不平衡、不平衡采样、调整分类阈值、过采样、欠采样、SMOTE、EasyEnsemble、加入数据平衡的流程、代价敏感学习BalanceCascade、

    数据不平衡.不平衡采样.调整分类阈值.过采样.欠采样.SMOTE.EasyEnsemble.加入数据平衡的流程.BalanceCascade.代价敏感学习 目录

  9. 主动学习python中的标签

    Hi folks, 嗨伙计, Today we are going to understand how active learning can be used in data labeling. 今天 ...

最新文章

  1. php中连接两个值,php - 如何从两个表的连接中选择一个值? - SO中文参考 - www.soinside.com...
  2. 面试官:说说操作系统微内核和Dubbo微内核?
  3. 'utf-8' codec can't decode byte 0xb6 in position 34: invalid start byte
  4. 阿里研发支出连续三年登顶; 《MIT科技评论》为阿里AI语音技术点赞;达摩院引入以色列著名计算机视觉科学家 | 周博通...
  5. 泛型方法的定义和使用_泛型( Generic )
  6. SpringMVC的请求参数,类型转换器(日期格式),请求映射
  7. java 什么时候进行垃圾回收_java什么时候进行垃圾回收,垃圾回收的执行流程
  8. VSCode的Teams插件
  9. 为何Windows版QuickTime突然寿终正寝?
  10. finebi跳转到本地html文件,组件跳转- FineReport帮助文档|报表开发|报表使用|学习教程...
  11. 串口IEC103协议
  12. Java:三角函数计算器!
  13. 雷神笔记本关闭跳出垃圾游戏广告
  14. 相册视频制作APP有什么推荐?看这里!轻松把照片做成视频
  15. python不是5的倍数_查找所有低于1000的数字之和,这是Python中3或5的倍数
  16. 华为网络设备CPU和内存占用率检查命令方法
  17. linux mbr转gpt分区,linux将GPT分区转换为MBR、RHEL GPT报错
  18. android 格式化sd咔_如何在Android中格式化SD卡 | MOS86
  19. VC++通过查看ReactOS开源代码,解决完整路径dll加载失败问题(附源码)
  20. bzoj 2075: [POI2004]KAG

热门文章

  1. 找不到r低版本_R的多进程使用与改进
  2. Sqlite3中replace语句用法详解
  3. jdk中java_怎样使用JavaJDK中Java?
  4. 多元线性回归分析matlab实验报告,利用MATLAB进行多元线性回归.ppt
  5. erp系统原理和实施第五版pdf_【图片】生产制造企业ERP系统选型及实施“避坑”指南!【企业管理软件吧】...
  6. java map 多个值_java 一个函数EnumMap返回多个值
  7. Java程序员最值得学习的10大技术
  8. oracle执行sql痕迹,Oracle 查询刚执行的SQL
  9. java数组 arraylist_JAVA 用数组实现 ArrayList
  10. r720支持多少频率的内存吗_电脑基础知识:内存条知识大全,看完小学生都了解...