2022-05-02

几种包映射算法实现

聚类中心 C={c1,...,ck}C = \{c_1,...,c_k\}C={c1​,...,ck​}, 包 Bi={bi1,...,bim}\mathbf{B}_i=\{b_{i1},...,b_{im}\}Bi​={bi1​,...,bim​}
一、最短距离映射
映射方式如下
hi=maxexpj(−∥bij−ci∥σ2)h_i=\underset{j}{\rm{max}\,\rm{exp}}(- \frac{\|b_{ij}-c_i \|}{\sigma^2}) hi​=jmaxexp​(−σ2∥bij​−ci​∥​)
Bi\mathbf{B}_iBi​最终的映射向量是H(Bi)=[h1,...,hk]H(\mathbf{B}_i) = [h_1,...,h_k]H(Bi​)=[h1​,...,hk​]

# 多样密度映射ret_vec = np.ones(self.k_m)index = 0for item in centers:ret_vec[index] = np.linalg.norm(item - self.bags[idx, 0][:, :self.dimensions-1], axis=1).min()index += 1ret_vec = [math.exp(-x) for x in ret_vec]return ret_vec / dis_euclidean(ret_vec, np.zeros_like(ret_vec))

二、去中心化映射
Bi\mathbf{B}_iBi​里面的实例根据 CCC 被分为了KKK类,K≤kK\le kK≤k, 每一类为一个集合Si={s1,...,sl}S_i=\{s_1,...,s_l\}Si​={s1​,...,sl​}, 映射方式如下
hi=∑a=1lsa−cih_i = \sum^l_{a=1}s_a-c_i hi​=a=1∑l​sa​−ci​
hih_ihi​是与实例同维的向量,最终Bi\mathbf{B}_iBi​映射为H(Bi)=[h1,...,hk]H(\mathbf{B}_i) = [h_1,...,h_k]H(Bi​)=[h1​,...,hk​],如果没有cic_ici​这一类的实例,则对应的 hih_ihi​ 缺失值补零

ret_vec = np.zeros((len(centers), self.dimensions-1))idx_ins = 0for ins in self.bags[idx, 0][:, :self.dimensions-1]:ret_vec[labels[idx_ins]] += ins - centers[labels[idx_ins]]idx_ins += 1ret_vec = np.resize(ret_vec, self.k_m * self.dimensions-1)ret_vec = np.sign(ret_vec) * np.sqrt(np.abs(ret_vec))return ret_vec / dis_euclidean(ret_vec, np.zeros_like(ret_vec))

三、均值映射
Bi\mathbf{B}_iBi​里面的实例根据 CCC 被分为了KKK类,K≤kK\le kK≤k, 每一类为一个集合Si={s1,...,sl}S_i=\{s_1,...,s_l\}Si​={s1​,...,sl​}, 映射方式如下
hi=1∣Si∣∑a=1lsah_i = \frac{1}{|S_i|}\sum^l_{a=1}s_a hi​=∣Si​∣1​a=1∑l​sa​
hih_ihi​是与实例同维的向量,最终Bi\mathbf{B}_iBi​映射为H(Bi)=[h1,...,hk]H(\mathbf{B}_i) = [h_1,...,h_k]H(Bi​)=[h1​,...,hk​],如果没有cic_ici​这一类的实例,则对应的 hih_ihi​ 缺失值补零

ret_vec = np.zeros((self.k_m, self.dimensions-1))idx_ins = 0for ins in self.bags[idx, 0][:, :self.dimensions-1]:ret_vec[labels[idx_ins]] += insidx_ins += 1unique, count = np.unique(labels, return_counts=True)data_count = dict(zip(unique, count))for key in data_count.keys():ret_vec[key] /= data_count[key]ret_vec = np.resize(ret_vec, self.k_m * self.dimensions-1)ret_vec = np.sign(ret_vec) * np.sqrt(np.abs(ret_vec))return ret_vec / dis_euclidean(ret_vec, np.zeros_like(ret_vec))

四、按比例映射
Bi\mathbf{B}_iBi​里面的实例根据 CCC 被分为了KKK类,K≤kK\le kK≤k, 每一类为一个集合Si={s1,...,sl}S_i=\{s_1,...,s_l\}Si​={s1​,...,sl​}, 映射方式如下
hi=∣Si∣∣Bi∣h_i = \frac{|S_i|}{|\mathbf{B}_i|} hi​=∣Bi​∣∣Si​∣​
最终Bi\mathbf{B}_iBi​映射为H(Bi)=[h1,...,hk]H(\mathbf{B}_i) = [h_1,...,h_k]H(Bi​)=[h1​,...,hk​],如果没有cic_ici​这一类的实例,则对应的 hih_ihi​ 缺失值补零

ret_vec = np.zeros(self.k_m)bag_size = len(self.bags_size[idx])unique, count = np.unique(labels, return_counts=True)data_count = dict(zip(unique, count))for key in data_count.keys():ret_vec[key] =  data_count[key]/bag_sizereturn ret_vec

测试效果

一、最短距离映射

bag-level classify result:
confusion:[[282   2][  2 650]]
precision: 0.9969325153374233
recall: 0.9969325153374233
f1-score: 0.9969325153374233
accuracy: 0.9957264957264957
start training single-instance model----------------
model trainig complete!
Finally instance result:
confusion:[[ 337    3][   1 9019]]
precision: 0.9996674794945688
recall: 0.9998891352549889
f1-score: 0.9997782950892363
accuracy: 0.9995726495726496
class-time 27.534499883651733

二、去中心化映射

bag-level classify result:
confusion:[[290   2][ 17 627]]
precision: 0.9968203497615262
recall: 0.9736024844720497
f1-score: 0.9850746268656716
accuracy: 0.9797008547008547
start training single-instance model----------------
model trainig complete!
Finally instance result:
confusion:[[ 342    4][   7 9007]]
precision: 0.9995560981023194
recall: 0.9992234302196583
f1-score: 0.9993897364771152
accuracy: 0.9988247863247863
class-time 31.642945766448975

三、均值映射

bag-level classify result:
confusion:[[307   4][ 10 615]]
precision: 0.9935379644588045
recall: 0.984
f1-score: 0.9887459807073955
accuracy: 0.9850427350427351
start training single-instance model----------------
model trainig complete!
Finally instance result:
confusion:[[ 368    5][   1 8986]]
precision: 0.9994438883327772
recall: 0.999888728162902
f1-score: 0.9996662587607075
accuracy: 0.9993589743589744
class-time 32.479421615600586

四、按比例映射

bag-level classify result:
confusion:[[272  25][  9 630]]
precision: 0.9618320610687023
recall: 0.9859154929577465
f1-score: 0.973724884080371
accuracy: 0.9636752136752137
start training single-instance model----------------
model trainig complete!
Finally instance result:
confusion:[[ 333   28][   1 8998]]
precision: 0.9968978506536672
recall: 0.999888876541838
f1-score: 0.9983911234396671
accuracy: 0.9969017094017094
class-time 27.800466299057007

日报2022-05-02相关推荐

  1. 人工智能 | ShowMeAI资讯日报 #2022.06.02

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

  2. 硬件大熊原创合集(2022/05更新)

    2022/05月份更新的篇章 NFC之华为AIPASS认证:测试系统简介 NFC之华为AIPASS认证:测试用例简介 智能门锁:人脸识别技术 清晰认知事物概念 传统的职业坐标体系中,个体依赖于工作本身 ...

  3. 【跃迁之路】【451天】程序员高效学习方法论探索系列(实验阶段208-2018.05.02)...

    @(跃迁之路)专栏 实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. ...

  4. 【2022.05.31】大学本科毕业总结,再见北理工

    [2022.05.31]大学本科毕业总结,再见北理工 今天顺利完成答辩,成功毕业成为无业游民(doge) 一时思绪万千,感觉前几天才刚入学,今天四年已结束就已经毕业 答辩完身上的包袱感觉少很多,但是也 ...

  5. 每日总结(2022/05/17-)

    2022/05/17- 线程配置 实验设备 实现2个矩阵(Width=2048, Height=1024)的相加,输入的矩阵A,B按照以下要求初始化,矩阵A的初始值全为本人学号的最后1位数字,矩阵B的 ...

  6. 滚动测试报告 2022年02月

    SpeechIO的所有历史文章可在语音之家网站的[声浪]-[SpeechIO专区]查看,评测结果数据可在语音之家(PC端)的[评测]页面查看. 官网地址:http://www.speechhome.c ...

  7. 人工智能 | ShowMeAI资讯日报 #2022.06.05

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

  8. 第02讲:Hadoop 发行版选型和伪分布式平台的构建 2020/05/02 高俊峰(南非蚂蚁)

    本课时主要介绍 Hadoop 发行版选型以及伪分布式平台的构建. Hadoop 发行版介绍与选择 到目前为止,你应该初步了解了大数据以及 Hadoop 相关的概念了.本课时我将介绍 Hadoop 如何 ...

  9. 人工智能 | ShowMeAI资讯日报 #2022.06.25

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

  10. 人工智能 | ShowMeAI资讯日报 #2022.06.08

    ShowMeAI日报系列全新升级!覆盖AI人工智能 工具&框架 | 项目&代码 | 博文&分享 | 数据&资源 | 研究&论文 等方向.点击查看 历史文章列表, ...

最新文章

  1. TensorRT Samples: CharRNN
  2. mysql主从配置读写分离笔记
  3. python3 装饰器_Python3 装饰器
  4. 深入理解分布式技术 - 降级和熔断
  5. 五一扣球练习2021-05-01
  6. 卡尔曼滤波器学习笔记(二)
  7. 由web程序出现乱码开始挖掘(Bom头、字符集与乱码)
  8. linux IP 命令使用举例
  9. 使用mp4v2将aac音频h264视频数据封装成mp4开发心得
  10. parallels desktop 缺少组件_德国警方扣留光伏组件盗贼
  11. 情人节,怎么同时约会女神和女朋友
  12. 如何快速上手 angular.js
  13. CMU Deep Learning 2018 by Bhiksha Raj 学习记录(8)
  14. PHP类参数_100 个最常用的 PHP 函数
  15. 图书管理系统~~学生管理测试用例
  16. 利用HTML完成登陆界面设计
  17. WEB 9.jQuery
  18. 什么叫超融合基础架构?
  19. Linux期末复习笔记(太原理工大学)
  20. python手写代码面试_常见Python面试题 — 手写代码系列

热门文章

  1. MSN无法登陆报80048820错误
  2. 一个能永久存储网页快照的网站
  3. PostgreSQL安全指南 - Postgres2015全国用户大会--重磅嘉宾佳作分享(周正中)
  4. 如何注册Docker账号
  5. Java实现一个简单的计算器,实现计算器中加、减、乘、除的运算方法
  6. PS中3D选项是灰色的,不能点击,如何处理?
  7. hitool java_hi3798cv200 android 编译
  8. 「软件」仿站小工具v9.0
  9. 论文阅读笔记--Deep Visual Saliency on Stereoscopic Images
  10. 蔡学镛在支付宝工作那段时间,最让不开心的事情揭秘