我正在制作这样的密度图如何在matplotlib中创建密度图?即时通讯将使avvlines到图上的几个点,我的问题是我需要知道最高峰的确切x值是多少。
我可以通过循环找到它:
density = gaussian_kde(data)
aa = 0
bb = 0
for i in range(max value of data):
if density(i)[0]>aa:
aa = density(i)[0]
bb = i
Run Code Online (Sandbox Code Playgroud)
此bb之后的值具有峰值的x值,但执行此循环的时间太长。此刻大约需要25秒,将来数据的大小会更大
我希望这不是重复的,但至少找不到这个问题。
核密度估计器用于估计特定的概率密度函数(请参阅mvstat.net和sckit-learn docs以获取参考)
我的困惑是关于究竟做了kde2d()什么?它是否估计了下面例子中两个随机变量f(a,b)的联合分布概率密度函数?颜色是什么意思?
这是我所指的代码示例.
b <- log10(rgamma(1000, 6, 3))
a <- log10((rweibull(1000, 8, 2)))
density <- kde2d(a, b, n=100)
colour_flow <- colorRampPalette(c('white', 'blue', 'yellow', 'red', 'darkred'))
filled.contour(density, color.palette=colour_flow)
Run Code Online (Sandbox Code Playgroud) statistics r kernel-density scikit-learn probability-density
我想用Seaborn.kdeplot创建一个Kernel-Density-Estimation,边上有一个颜色条.
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np; np.random.seed(10)
import seaborn as sns; sns.set(color_codes=True)
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
sns.kdeplot(x,y,shade=True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
在创建Kernel-Density-Estimation时,我不知道如何创建颜色条.我尝试使用plt.colorbar()但没有成功.
假设我在地图上有 X 和 Y 坐标以及“热区”的非参数分布(例如,位于 X 和 Y 坐标处的地理地图上的污染程度)。我的输入数据是热图。
我想训练一个机器学习模型来学习“热区”是什么样子,但我没有很多标记的例子。所有“热区”看起来都非常相似,但可能位于我的标准化 XY 坐标图的不同部分。
我可以计算一个多元 KDE 并相应地绘制密度图。要生成合成标记数据,我是否可以“反转”KDE 并随机生成新的图像文件,其观察值在我的 KDE 的“密集”范围内?
有没有办法在python中做到这一点?
我已经实现了以下函数来估计矩阵的 Parzen 密度,
帕尔森
function [retval] = parzen (matrix, dataPoint, variance)
[r c] = size(matrix);
A = ones(r, c)*dataPoint;
sub = matrix - A;
up = sub.^2;
dw = 2 * variance;
firstPart = 1/(sqrt(2*pi*variance));
retval = firstPart * exp((-1)*(up/dw));
Run Code Online (Sandbox Code Playgroud)
错误
>> parzen(train, test, 0.25)
error: parzen: operator *: nonconformant arguments (op1 is 1824x8, op2 is 1824x8
)
error: called from
parzen at line 3 column 4
>>
Run Code Online (Sandbox Code Playgroud)
我怎样才能摆脱这个错误?
我有一个大数据集,每行包含3个属性:A,B,C
列A:可以取值1,2和0.列B和C:可以取任何值.
我想使用直方图对P(A = 2 | B,C)进行密度估计,并使用python绘制结果.
我不需要代码来做它,我可以尝试自己想出来.我只需要知道我应该使用的程序和工具吗?
我正在使用ks包来计算和绘制二元核密度估计。它效果很好,但我想使用 ggplot 来绘制估计值。
我可以尝试创建一个自定义函数来为 ggplot 准备数据框和其他内容,但我感觉更有经验的 R 用户可以更轻松地做到这一点。
那么,我该怎么做呢?
以下是 ks::kde 的示例场景:
data <- cbind(rnorm(100), rnorm(100))
kd <- ks::kde(data)
plot(kd, display = "slice", col = viridis::viridis(20))
plot(kd, display = "image", col = viridis::viridis(20))
plot(kd, display = "persp", col.fun = viridis::viridis)
Run Code Online (Sandbox Code Playgroud)
上面的代码应该给你以下的图。如何使用 ggplot 来绘制这些图?
编辑:我需要使用ks按包计算的估计值。提供的本机函数ggplot2使用名为 的包MASS。所以这样不行。
python ×4
r ×2
statistics ×2
colorbar ×1
ggplot2 ×1
matlab ×1
matplotlib ×1
scikit-learn ×1
scipy ×1
seaborn ×1