MATLAB最大均值差异(Maximum Mean Discrepancy)
MATLAB最大均值差异(Maximum Mean Discrepancy)
作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
注:X与Y数据维度必须一致!
1. MMD介绍

2. MATLAB程序
数据
注:数据集仅供参考,并不能真正用于研究中。
源域:
2.1789 1.7811 5.079 4.9312
0.8621 2.1287 4.9825 2.3388
2.6347 1.9563 4.5392 4.8442
2.7179 2.9001 4.9027 4.8582
2.6686 1.6799 4.3792 4.6411
1.6736 2.3081 4.8384 3.2979
1.5666 2.6467 5.0504 4.459
-0.5611 2.2365 4.3925 5.1316
5.6693 1.7355 4.5335 4.6407
3.2032 2.103 4.1948 5.2605
3.3525 2.8301 4.6383 5.6972
-1.0407 3.5198 4.7106 4.9243
3.9229 2.1161 4.5666 1.772
2.5607 3.802 4.2681 4.6322
3.3072 2.5083 4.6095 2.2236
2.7121 2.4338 4.136 2.2348
5.3547 2.1088 4.402 4.9884
1.8302 1.4921 4.6216 3.5862
2.8891 2.1286 4.6419 3.8606
-0.0896 2.6894 3.6843 6.6392
3.1404 1.9461 4.2604 5.9859
2.3406 3.1988 5.0872 4.7518
2.5067 2.9704 4.2749 4.3441
8.2153 1.7592 5.2409 3.8201
0.3027 2.7589 3.9826 4.8484
4.0223 1.7566 4.6219 4.92
6.1367 2.1098 4.7832 5.4567
4.9795 2.418 4.7726 3.1959
-1.0746 2.4311 4.7683 4.5599
5.4939 2.6046 4.4663 5.1159
4.5709 1.9838 4.9596 4.9317
1.3746 2.6845 5.1921 3.2068
1.7178 0.7976 4.6948 3.7012
目标域:
1.9584 2.0242 4.7594 2.587
-2.8342 3.4594 4.4371 5.2375
1.6251 2.7737 5.0145 6.3262
0.7016 2.5265 4.8881 3.2105
3.5579 2.5773 4.856 4.283
4.3282 2.7581 4.7095 6.715
3.1619 2.5427 4.1323 5.5883
4.9933 2.2985 3.8455 3.8381
3.2214 2.6478 4.3276 2.5246
-0.2848 2.5853 4.6481 3.4857
2.876 1.5096 3.9921 2.4505
0.8559 2.5633 5.483 3.0589
4.2149 2.6618 4.2017 3.3713
MMD
function mmd_XY=my_mmd(X, Y, sigma)
%Author:kailugaji
%Maximum Mean Discrepancy 最大均值差异 越小说明X与Y越相似
%X与Y数据维度必须一致, X, Y为无标签数据,源域数据,目标域数据
%mmd_XY=my_mmd(X, Y, 4)
%sigma is kernel size, 高斯核的sigma
[N_X, ~]=size(X);
[N_Y, ~]=size(Y);
K = rbf_dot(X,X,sigma); %N_X*N_X
L = rbf_dot(Y,Y,sigma); %N_Y*N_Y
KL = rbf_dot(X,Y,sigma); %N_X*N_Y
c_K=1/(N_X^2);
c_L=1/(N_Y^2);
c_KL=2/(N_X*N_Y);
mmd_XY=sum(sum(c_K.*K))+sum(sum(c_L.*L))-sum(sum(c_KL.*KL));
mmd_XY=sqrt(mmd_XY);
Guassian Kernel
function H=rbf_dot(X,Y,deg)
%Author:kailugaji
%高斯核函数/径向基函数 K(x, y)=exp(-d^2/sigma), d=(x-y)^2, 假设X与Y维度一样
%Deg is kernel size,高斯核的sigma
[N_X,~]=size(X);
[N_Y,~]=size(Y);
G = sum((X.*X),2);
H = sum((Y.*Y),2);
Q = repmat(G,1,N_Y(1));
R = repmat(H',N_X(1),1);
H = Q + R - 2*X*Y';
H=exp(-H/2/deg^2); %N_X*N_Y
结果
>> mmd_XY=my_mmd(x, y, 4)
mmd_XY =
0.1230
3. 参考文献
Gretton, A., K. Borgwardt, M. Rasch, B. Schoelkopf and A. Smola: A Kernel Two-Sample Test. JMLR 2012.
Gretton, A., B. Sriperumbudur, D. Sejdinovic, H, Strathmann, S. Balakrishnan, M. Pontil, K. Fukumizu: Optimal kernel choice for large-scale two-sample tests. NIPS 2012.
MATLAB最大均值差异(Maximum Mean Discrepancy)的更多相关文章
- MATLAB中均值、方差、均方差的计算方法
MATLAB中均值.方差.均方差的计算方法 1. 均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均 ...
- 基于MATLAB的均值滤波算法实现
在图像采集和生成中会不可避免的引入噪声,图像噪声是指存在于图像数据中的不必要的或多余的干扰信息,这对我们对图像信息的提取造成干扰,所以要进行去噪声处理,常见的去除噪声的方法有均值滤波.中值滤波.高斯滤 ...
- 【论文笔记】Domain Adaptation via Transfer Component Analysis
论文题目:<Domain Adaptation via Transfer Component Analysis> 论文作者:Sinno Jialin Pan, Ivor W. Tsang, ...
- A Primer on Domain Adaptation Theory and Applications
目录 概 主要内容 符号说明 Prior shift Covariate shift KMM Concept shift Subspace mapping Wasserstein distance 应 ...
- 基于R语言的数据分析和挖掘方法总结——均值检验
2.1 单组样本均值t检验(One-sample t-test) 2.1.1 方法简介 t检验,又称学生t(student t)检验,是由英国统计学家戈斯特(William Sealy Gosset, ...
- All I know about A/B Test (1) : 均值型指标与比值(率)型指标的计算区别
因为最近在找实习,所以打算把自己之前学过的关数据分析的知识总结(复习)一下.在总结A/B test时,我发现中文互联网中关于A/B test的总结已经很多了,但是对于均值型指标和比值(率)型指标在设计 ...
- 概率分布之间的距离度量以及python实现(四)
1.f 散度(f-divergence) KL-divergence 的坏处在于它是无界的.事实上KL-divergence 属于更广泛的 f-divergence 中的一种. 如果P和Q被定义成空间 ...
- [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述
Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...
- face recognition[翻译][深度人脸识别:综述]
这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...
随机推荐
- Openshift 自建DDNS动态域名
某种情况下如openstack或者openshift/kubernetes软件部署过程由于需要标准的 域名系统(DNS UPDATE)RFC 2136中的动态更新功能, 但是现有的阿里云/华为云均不提 ...
- Python活力练习Day1
Day1:输入年月日,判断这一天是这一年的第几天 eg: input : 2019-02-01 output : 32 data = list(input('please input ...
- 精通awk系列(5):BEGIN和END语句块
回到: Linux系列文章 Shell系列文章 Awk系列文章 BEGIN和END语句块 awk的所有代码(目前这么认为)都是写在语句块中的. 例如: awk '{print $0}' a.txt a ...
- 操作系统——输入输出(I/O)管理
目录 一.I/O 管理概述 1.1 I/O 控制方式 1.2 I/O 软件层次结构 二.I/O 核心子系统 2.1 I/O 调度概念 2.2高速缓存与缓冲区 2.3设备分配与回收 2.4假脱机技术(S ...
- windows 下使用批处理执行 postgresql 命令行操作
1.准备好命令文件 loraserver.sql create role loraserver_as with login password 'dbpassword'; create role lor ...
- zhy2_rehat6_mysql04 - MHA_故障演示与切换.txt
export LANG=en_US 环境:------------------------------------------ 机器 VPN ip linux 账号/密码manager1 172.28 ...
- 安装oracle11g服务端
1.将oracle11g压缩包 解压到D盘根目录下 2.打开解压出来的文件夹,以管理员身份运行setup 3.警告弹框点击“是(Y)” 4.在此步骤中,可以提供您的电子邮件,以获取有关Oracle安全 ...
- java基础 - 泛型的使用
泛型的使用方式有泛型类,泛型接口,泛型方法. 泛型的意思是把参数类型也当成参数传入,也就是在使用时(类实例化或调用方法时)传入类型. 泛型类 在实例化时传入参数类型,不能对泛型类使用instancec ...
- RTP通用头部扩展
概览 本文为阅读RFC5285时对RTP头部扩展的记录笔记,介绍了one-byte-header和two-byte-header情况下的rtp头部扩展 rtp头部扩充 在RFC3550中, 一个通用的 ...
- typescript与nodejs(二)基于装饰器实现路由表
之前实现了一个简单的WebServer 但是这离实际使用还有一点距离 webserver 首先面对第一个问题是路由表 啥是路由表 路由表别看听起来神秘,但是其实就是 if else onhttp- { ...