对齐边际分布和条件分布

  1. 边际分布(Marginal Distribution):指的是在联合分布中对某些变量进行统计总结得到的分布。在多维随机变量中,我们可能对其中的一个或几个变量感兴趣,而忽略其他变量,此时对这些感兴趣的变量进行概率分布统计,得到的就是边际分布。边际分布将一个多维随机变量的分布转化为单个变量的分布,有助于我们更容易地理解和分析特定变量的行为。

  2. 条件分布(Conditional Distribution):是在给定另一个或多个随机变量的取值情况下,某个随机变量的分布。在给定条件下,条件分布描述了随机变量之间的关系和依赖性。条件分布可以帮助我们对在特定条件下随机变量的行为进行预测和分析,提供了对于不同条件下事件发生概率的认识。

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt

# 生成两个不同分布的随机数据
np.random.seed(0)
data1 = np.random.normal(loc=0, scale=1, size=1000)
data2 = np.random.normal(loc=2, scale=1.5, size=1000)

# 绘制两个分布的直方图
plt.hist(data1, bins=30, alpha=0.5, label='Data 1')
plt.hist(data2, bins=30, alpha=0.5, label='Data 2')
plt.legend()
plt.show()

# 对齐边际分布:将data2调整为与data1的均值和方差相同
data2_aligned = (data2 - np.mean(data2)) / np.std(data2) * np.std(data1) + np.mean(data1)

# 绘制对齐后的分布
plt.hist(data1, bins=30, alpha=0.5, label='Data 1')
plt.hist(data2_aligned, bins=30, alpha=0.5, label='Aligned Data 2')
plt.legend()
plt.show()

# 对齐条件分布:使用核密度估计(Kernel Density Estimation, KDE)来拟合两个数据集的条件分布
kde1 = stats.gaussian_kde(data1)
kde2 = stats.gaussian_kde(data2_aligned)

x = np.linspace(-3, 6, 100)
plt.plot(x, kde1(x), label='Data 1')
plt.plot(x, kde2(x), label='Aligned Data 2')
plt.legend()
plt.show()

这段代码可以使不同数据集近似同分布,可以用来做迁移学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值