【域适应】基于迁移成分分析(TCA) 的典型二分类问题(python)

关于

传统迁移成分分析,区别于深度迁移学习,是一种常规的对特征数据进行对齐的一种技术。

广泛应用于,两个域(源域,目标域)数据特征分布不一致,需要实现目标域数据分析任务中。

文章参考:https://home.cse.ust.hk/~jamesk/papers/ijcai09.pdf

工具

Python

方法实现

通过循环遍历TCA隐藏空间维度和超参数,来获得基于TCA方法的源域到目标域的迁移技术。

主要函数和流程: 

import pandas as pd
import numpy as np
from sklearn.svm import SVC
from TCA import TCA# source domain training data
Xs_y = pd.read_csv('Xs_y.csv')
Xs = np.array(Xs_y.iloc[:,:-1])
ys = np.array(Xs_y.iloc[:,-1])
# target domain training data
Xt_y = pd.read_csv('Xt_y.csv')
Xt = np.array(Xt_y.iloc[:,:-1])
yt = np.array(Xt_y.iloc[:,-1])
# test data
test = pd.read_csv('Xtest.csv')
Xtest = np.array(test.iloc[:,:-1])
ytest = np.array(test.iloc[:,-1])reg = SVC()def acc(y_pre, y):right = abs(y_pre - y).sum()/2return (len(y_pre) - right)/len(y_pre)
################################################################
# case one 
# training on target domina data (Xt_y.csv) and test on testing dataset (Xtest.csv)
pre_label = reg.fit(Xt, yt,).predict(Xtest)
rate = acc(pre_label,ytest)
print('Without transfer, we have acc rate %f' % rate )# case two
# training on mapped space (4-d) with source (Xs_y.csv) and target domina data (Xt_y.csv), test on testing dataset (Xtest.csv)
acc_list = [rate]
numbers = np.linspace(0.01, 1, 10)
for j in range(len(numbers)):model = TCA(dim=1, lamda=numbers[j], gamma=0.5)Train_X = np.vstack((Xs,Xt))Xs_new, Xt_new = model.fit(Train_X,Xtest)Train_y = np.hstack((ys,yt))transfer_pre_label = reg.fit(Xs_new, Train_y).predict(Xt_new)transfer_rate = acc(transfer_pre_label,ytest)acc_list.append(transfer_rate)print('lamda = {}'.format(numbers[j]))print('With transfer, we have acc rate %f' % transfer_rate ,'\n')# plot the result
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocatorfig, ax = plt.subplots()
x = numbersplt.plot(x,  acc_list[1:],marker='o',linestyle='-', color='blue',label='TCA transfer with different lamda')
ax.axhline(y=acc_list[0], color='green', linestyle='--', label='without TCA transfer')
#ax.xaxis.set_major_locator(MaxNLocator(integer=True))plt.xlabel('lamda')
plt.ylabel('classification accuracy on test data')ax.legend()
plt.savefig('iteration number.png',bbox_inches = 'tight',dpi=600)
plt.savefig('iteration number.svg',bbox_inches = 'tight',dpi=600)
plt.show()

 

 使用TCA技术前后,两个域特征的分布情况比较

 通过循环遍历,可以发现在TCA超参数lambda为0.17时候,迁移的目标域分类准确率最高。

代码获取

私信后台;

相关域适应问题,欢迎讨论交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大话设计模式——21.中介者模式(Mediator Pattern)

简介 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 UML图 应用场景 大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的…

C++:重载函数

目录 重载函数的概念 重载函数展现 重载函数的分类 1.参数个数不同 2.参数的类型不同 3. 类型的顺序不同 函数的返回值类型与函数的重载无关 重载函数的概念 函数重载:是函数的一种特殊情况,C允许在同一作用域中声明几个功能类似的同名函数,这些同…

c++之旅第九弹——模版

大家好啊,这里是c之旅第九弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一.模版的概念…

Spark面试整理-解释Spark Streaming是什么

Spark Streaming是Apache Spark的一个组件,它用于构建可扩展、高吞吐量、容错的实时数据流处理应用。Spark Streaming使得可以使用Spark的简单编程模型来处理实时数据。以下是Spark Streaming的一些主要特点: 1. 微批处理架构 微批处理:Spark Streaming的核心是微批处理模型…

3D开发工具HOOPS:推动汽车行业CAD可视化发展

在最近的行业对话中,Tech Soft 3D(HOOPS厂商)的Jonathan Girroir和Actify的Peter West探讨了CAD可视化在当代企业中的重要性和挑战。作为CAD可视化领域的佼佼者,Actify通过其广受欢迎的Spinfire应用,赋能了全球40多个国…

【上海大学计算机组成原理实验报告】三、微指令系统实验

一、实验目的 了解译码器、微指令结构的基本工作原理。学习设计微指令的方法。 二、实验原理 根据实验指导书的相关内容,本实验所用的实验箱的微指令系统控制总线宽度为24位,每个地址单元宽度也为24位,其中微指令存储器由3片8位存储器按照…

4.Spring IoCDI

文章目录 1.Ioc - 控制反转(解耦)1.1传统开发1.2批量生产车轮(修改代码) - 传统方式,繁琐1.3解耦1.3.1使用Ioc方法后1.3.2添加变量颜色 只需要修改Tire即可 1.4Bean的存储1.4.1Controller(控制器存储)1.4.2Service(服务存储)1.4.2.1根据context来获取bean1.4.2.2根据…

UI自动化测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们…

实时计算平台设计方案:911-基于6U VPX的光纤图像DSP实时计算平台

基于6U VPX的光纤图像DSP实时计算平台 一、系统组成 该平台基于风冷式的 6U 6槽VPX图像处理平台,包括:计算机主板、计算机主板后板、存储板、图像信号处理板、图像信号处理板后板、图像光纤转接板、机箱背板及机箱组成。图1为系统背板结构示意图&…

vue实现从本地上传头像功能

上传头像&#xff1a; <template><div><el-card class"box-card"><div slot"header" class"clearfix"><span>更换头像</span></div><div><!-- 图片、用来展示用户选择的头像 --><img…

四信大中型水库数字孪生调度运营解决方案,开拓管理新模式

今年来&#xff0c;水利部先后印发《关于大力推进智慧水利建设的指导意见》《智慧水利建设顶层设计》《“十四五”智慧水利建设规划》《“十四五”期间推进智慧水利建设实施方案》等系列文件&#xff0c;明确了推进智慧水利建设的主要任务。 《2024年水利工程运行管理工作要点》…

【比赛】FAIR1M数据转换为yolov8obb格式

只需要将xml转成txt格式即可。 import xml.etree.ElementTree as ET import os category_set set() category_dict {}def xml2txt(xml_path):# 解析XML文件tree ET.parse(xml_path)root tree.getroot()# 获取width和heightwidth int(root.find(size/width).text)height …

4.11总结

IO流和网络编程 IO流 IO流根据流的类型分为两种&#xff1a; 一种是输入流&#xff0c;另一种是输出流 输入流只能用来读取数据&#xff0c;输出流只能用来写入数据。 IO流存在两种操作文件类型&#xff1a; 字节流和字符流 字符流只能用于纯文本操作&#xff0c;而字节…

机器学习入门项目一(简单线性回归)

使用numpy写一个线性回归算法&#xff0c; 方程&#xff08;模型&#xff09;为 y a x b yaxb yaxb。要求自己设计训练部分并且收敛到满意效果。 以下是数据产生代码&#xff1a; import matplotlib.pyplot as plt import numpy as npclass DataGenerator:""&quo…

SOLIDWORKS特色功能介绍

SOLIDWORKS是一款功能强大的三维CAD设计软件&#xff0c;广泛应用于机械设计、工程分析、产品数据管理和仿真等多个领域。该软件以其用户友好的界面、丰富的功能和性能&#xff0c;赢得了全球数百万工程师和设计人员的青睐。接下来&#xff0c;我们将详细介绍SOLIDWORKS的一些特…

Vue前端框架

1.vue基本使用1 1.vue环境搭建 一般创建vue项目是在cmd命令中用&#xff1a;vue ui 命令&#xff0c;采用ui图形界面的方式直观创建项目。 2.vue基本使用方式&#xff1a;vue组件 3.文本插值 4.属性绑定 5.事件绑定 6.双向绑定 7.条件渲染 2.vue基本使用2 1.axios 安装axios命令…

引领车载影像革命,全链路解决方案助力座舱创新升级

影像技术的创新与突破正在引领各行各业的飞速发展&#xff0c;尤其对于汽车行业来说&#xff0c;车载影像系统已成为衡量车辆智能化水平的重要指标。为了满足这一日益增长的需求&#xff0c;美摄科技凭借深厚的研发实力与创新精神&#xff0c;推出了全链路的车载影像解决方案&a…

uniapp开发小程序,实现堆叠卡片轮播图

一、实现堆叠卡片轮播图: 需求: 实现堆叠轮播图效果堆叠到后面的图片有虚化效果可以在堆叠图片上写文字或叠加图片等效果可以手动滑动&#xff0c;也可以定时自动轮播 二、代码实现&#xff1a; 1.封装一个组件myswiper.vue <!-- 折叠轮播图 组件--> <template>…

如何在SFTP工具中使用固定公网地址远程访问内网Termux系统

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP&#xff08;SSH File Transfer Protocol&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;安全协议的文件传输协议。与FTP协议相比&#xff0c;SFTP使用了…

AD23原理图导入pcb是元器件位置错乱

1、原因是原理图和PCB没有进行连接导致的&#xff0c;可通过以下方法解决&#xff1a; 1>PCB返回到初始的形态&#xff0c;不可出现报错等问题&#xff0c;选择器件连结&#xff1b; 执行快捷键C --> K&#xff0c;将所有匹配组件进行回退&#xff0c;如下图&#xff1…