- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试生成下面的图。具体来说,混合标签非常好地显示这是高斯的混合。
我用下面的代码得到了第二张图片,如果有人可以帮助我知道如何标准化两个组成法线(所以它们低于混合物),那就太好了:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
n = 10000
mu = [0, 10]
sigma = [1, 1]
samples = []
samples0 = []
samples1 = []
for i in range(n): # iteratively draw samples
Z = np.random.choice([0, 1]) # latent variable
if Z == 0:
samples0.append(np.random.normal(mu[Z], sigma[Z], 1))
else:
samples1.append(np.random.normal(mu[Z], sigma[Z], 1))
samples.append(np.random.normal(mu[Z], sigma[Z], 1))
sns.distplot(samples, hist=False, kde_kws={"shade": False})
sns.distplot(samples0, hist=False, kde_kws={"shade": True})
sns.distplot(samples1, hist=False, kde_kws={"shade": True})
plt.show()
最佳答案
据我所知,如果你想使用seaborn.distplot
,你只能通过添加图像范围之外的点来实现这一点。然而,您可以使用 scipy 和 matplotlib 轻松复制 seaborn 行为。请注意,分布并不完全填充相同的空间,这可能是核密度估计的产物。您可以手动调整带宽来解决此问题。
或者,如果您已经知道分布的参数,则可以只绘制函数值而不是核密度估计,这似乎是在上图中完成的。
import numpy as np
import scipy.stats
import matplotlib.pyplot as plt
n = 10000
mu = [0, 10]
sigma = [1, 1]
samples = []
samples0 = []
samples1 = []
for i in range(n): # iteratively draw samples
Z = np.random.choice([0, 1]) # latent variable
if Z == 0:
samples0.append(np.random.normal(mu[Z], sigma[Z]))
samples.append(samples0[-1])
else:
samples1.append(np.random.normal(mu[Z], sigma[Z]))
samples.append(samples1[-1])
grid = np.linspace(min(samples)-0.5, max(samples)+0.5,1000)
y = scipy.stats.gaussian_kde(samples).evaluate(grid)
# Double the number of points to make sure the bandwidth in the KDE will be the same
y0 = scipy.stats.gaussian_kde(samples0*2).evaluate(grid)
y1 = scipy.stats.gaussian_kde(samples1*2).evaluate(grid)
# Multiply by maximum height to scale
y /= max(y)
y0 /= max(y0)
y1 /= max(y1)
plt.plot(grid, y0, label='Component 1')
plt.fill_between(grid, 0, y0, alpha=0.5)
plt.plot(grid, y1, label='Component 2')
plt.fill_between(grid, 0, y1, alpha=0.5)
plt.plot(grid, y, '--', label='Mixture')
plt.legend()
plt.show()
关于python - 使用 matplotlib 和 seaborn 生成并绘制高斯混合图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59281038/
编写求解线性代数方程组的高斯-乔丹方法的任务是我选择用来推进学习 J 的一项练习。系统为 Ax=b,其中 A 是 n-by-n 矩阵,b 和未知的 x 是 n-向量。首先,我从带有控制结构的最简单形式
祝大家新年快乐! :) 我正在 Matlab 中编写 Gauss-Seidel 函数,但遇到了一些问题。 当精度达到 6 位小数时,迭代必须停止。这意味着x-xprevious的无限范数(要求使用它)
我正在尝试使用 scipy 和曲线拟合对我的数据进行高斯拟合,这是我的代码: import csv import numpy as np import matplotlib.pyplot as plt
[已解决,谢谢] 我在 C++ 中开发了下面的代码来使用高斯-塞德尔方法求解线性方程,但我似乎在填充数组时在运行时遇到了一个我无法弄清楚的问题。这是我的代码... #include int main(
我必须设计一种算法作为正向消元法的扩展,在矩阵上进行高斯约旦消元法。我的程序正在执行并创建数字的对角线,但它们并不都是 1。它也不会访问第一行和第一列以将它们更改为 0。最后一列,也就是答案所在的那一
我已经按照 Nixon Aguado 的算法实现了一个高斯滤波器。算法(找到此处描述的模板后 gaussian template )如下。 我相信伪代码是 MATLAB 风格的。 function c
在平滑图像时,我应该应用高斯和双边滤波器等哪种颜色空间版本(灰度、RGB、HSV 等)以获得最佳的去噪效果?是有一个总体趋势,还是在不同情况下会发生变化? 此外,您建议在图像处理中使用什么滤镜和色彩空
我需要根据 Java 中的正态分布对网格(MXN 矩阵)的单元格进行采样。 我知道the Apache Math library具有对一维(1D)值进行采样的函数,因此对于 vector 来说很好,但
我可以使用 random.gauss(mu, sigma) 函数生成高斯数据,但是如何生成二维高斯数据?有这样的功能吗? 最佳答案 如果你可以使用numpy,有numpy.random.multiva
为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作。信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没。因此一个能降低高频成分幅度的
我正在执行高斯混合模型分类,并基于此,在 MATLAB 中使用“mvnpdf”函数。 据我所知,该函数返回传递给它的数据点或元素的多变量概率密度。 但是我试图在 C 上重新创建它,并且我假设 mvnp
I am using rbf,Support Vector machine for large training set=1135x9 matrix and test set{95x9}. I am
我现在多次偶然发现使用 scipy.curve_fit 在 python 中进行拟合比使用其他工具(例如根 ( https://root.cern.ch/ ) 例如,在拟合高斯分布时,使用 scipy
我想在 MATLAB 中绘制高斯波函数的二维表示。我希望 2D 图为一种颜色(绿色),远离高斯中心变得透明。 当我使用 imagesc 时(就像在下一个代码中一样),我在黑色方 block 上得到了一
如果我有数据(每日股票图表是一个很好的例子,但它可以是任何东西),其中我只知道 X 单位销售的范围(高 - 低)但我不知道确切的价格出售的任何给定元素。为简单起见,假设价格范围包含足够的桶(例如,40
这个问题在这里已经有了答案: Impulse, gaussian and salt and pepper noise with OpenCV (10 个回答) 关闭6年前。 我想知道 Python 中
我是一名优秀的程序员,十分优秀!