MATLAB最大均值差异(Maximum Mean Discrepancy)

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

更多内容,请看标签:MATLAB聚类

注: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)的更多相关文章

  1. MATLAB中均值、方差、均方差的计算方法

    MATLAB中均值.方差.均方差的计算方法     1. 均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均 ...

  2. 基于MATLAB的均值滤波算法实现

    在图像采集和生成中会不可避免的引入噪声,图像噪声是指存在于图像数据中的不必要的或多余的干扰信息,这对我们对图像信息的提取造成干扰,所以要进行去噪声处理,常见的去除噪声的方法有均值滤波.中值滤波.高斯滤 ...

  3. 【论文笔记】Domain Adaptation via Transfer Component Analysis

    论文题目:<Domain Adaptation via Transfer Component Analysis> 论文作者:Sinno Jialin Pan, Ivor W. Tsang, ...

  4. A Primer on Domain Adaptation Theory and Applications

    目录 概 主要内容 符号说明 Prior shift Covariate shift KMM Concept shift Subspace mapping Wasserstein distance 应 ...

  5. 基于R语言的数据分析和挖掘方法总结——均值检验

    2.1 单组样本均值t检验(One-sample t-test) 2.1.1 方法简介 t检验,又称学生t(student t)检验,是由英国统计学家戈斯特(William Sealy Gosset, ...

  6. All I know about A/B Test (1) : 均值型指标与比值(率)型指标的计算区别

    因为最近在找实习,所以打算把自己之前学过的关数据分析的知识总结(复习)一下.在总结A/B test时,我发现中文互联网中关于A/B test的总结已经很多了,但是对于均值型指标和比值(率)型指标在设计 ...

  7. 概率分布之间的距离度量以及python实现(四)

    1.f 散度(f-divergence) KL-divergence 的坏处在于它是无界的.事实上KL-divergence 属于更广泛的 f-divergence 中的一种. 如果P和Q被定义成空间 ...

  8. [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述

    Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...

  9. face recognition[翻译][深度人脸识别:综述]

    这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...

随机推荐

  1. C语言笔记 01_介绍&环境设置&编译执行

    前言 我是作为一个前端开发者入的编程世界,经过时间的推移,我发现对于编程底层的一些东西一点都不了解,只拘泥于表面,所以想尝试学习C语言然后进一步了解底层机制. 介绍 C 语言是一种通用的.面向过程式的 ...

  2. Jmeter中使用HTTP信息头管理器发送json格式请求体的接口

    Jmeter中,如果请求体的格式为x-www-form-urlencoded,则不需要添加请求头,保持默认即可,但是如果遇到接口的请求体格式为json时,就要用到HTTP信息头管理器,在线程组上右键— ...

  3. Jmeter 查看结果树之界面功能介绍 [8]

    查看结果树显示所有请求响应的树,通过它可以查看任何请求的响应.除了显示响应之外,还可以查看获取响应所花费的时间以及一些响应代码.需要通过"查看结果树"来查看服务器处理请求之后的返回 ...

  4. 流式计算(一)-Java8Stream

    大约各位看官君多少也听说了Storm/Spark/Flink,这些都是大数据流式处理框架.如果一条手机组装流水线上不同的人做不同的事,有的装电池,有的装屏幕,直到最后完成,这就是典型的流式处理.如果手 ...

  5. MySql 更新死锁问题 Deadlock found when trying to get lock; try restarting transaction

    文章导航-readme MySql 更新死锁问题 Deadlock found when trying to get lock; try restarting transaction 1.场景 //t ...

  6. Consul初探-服务注册和发现

    前言 经过上一篇的学习,现在已经来到了服务注册发现环节:Consul 的核心功能就是服务注册和发现,Consul 客户端通过将自己注册到 Consul 服务器集群,然后等待调用方去发现服务,实现代理转 ...

  7. [主动学习--查询策略] 01 Core-set

    符号定义 主动学习每一次迭代选择的样本数量为一个 budget 训练集中初始无标签数据集记为 unlabeled data,\(\bm{u}^0\) 训练集中初始有标签数据集记为 initial la ...

  8. Java之IO初识(字节流和字符流)

    IO概述 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备上的呢 ...

  9. HTTP常见响应状态码及解释、常用请求头及解释

    1.HTTP常见响应状态码及解释2XX Success(成功状态码) 200 表示从客户端发来的请求在服务器端被正常处理204 该状态码表示服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主 ...

  10. Laravel-权限系统

    总结Auth中间件用于定义未登录用户只能操作哪些权限policy授权策略定义了当前用户实例与进行授权的用户是否匹配,一致才能进一步操作,否则返回403禁止访问异常场景:用户登录 Auth步骤 找到需要 ...