标签: sampling

如何选择常规密度的点

如何选择常规密度的点子集?更正式的,

特定

  1. 一组的不规则隔开的点,
  2. 距离度量dist(例如欧几里德距离),
  3. 和目标密度d,

如何选择满足以下条件的最小子集B

  • 每一个点X一个,
  • 存在一个点ÿ
  • 满足 dist(x,y) <= d

我目前的最佳镜头是

  • A本身开始
  • 选出最接近(或者只是特别接近)的几个点
  • 随机排除其中一个
  • 只要条件成立,就重复

并重复整个过程,以获得最好的运气.但有更好的方法吗?

我试图用280,000个18-D点来做到这一点,但我的问题是一般策略.所以我也想知道如何用二维点做到这一点.我并不需要保证最小的子集.欢迎任何有用的方法.谢谢.


自下而上的方法

  • 选择一个随机点
  • 选择未选中ymin(d(x,y) for x in selected)最大值
  • 继续!

我会把它称为自下而上和我最初自上而下发布的那个.这在开始时要快得多,所以对于稀疏采样,这应该更好吗?

性能指标

如果不要求保证最优性,我认为这两个指标可能有用:

  • 覆盖半径: max {y in unselected} min(d(x,y) for x in selected)
  • 经济半径: min {y in selected != x} min(d(x,y) for x in selected)

RC是最小允许d,并且这两者之间没有绝对的不等式.但RC <= RE更可取. …

algorithm geometry subset selection sampling

9
推荐指数
1
解决办法
697
查看次数

如何在scikit中进行抽样学习?

我们有一个视网膜数据集,其中患病的眼睛信息占信息的70%,而非患病的眼睛构成剩余的30%.我们想要一个数据集,其中患病的和非患病的样本应该在数量上相等.是否有任何功能可以帮助我们做同样的事情?

python dataset sampling python-2.7 scikit-learn

9
推荐指数
2
解决办法
1万
查看次数

tensorflow中samples_softmax_loss和nce_loss有什么区别?

我注意到有两个函数关于张量流中的负采样来计算损失(sampled_softmax_lossnce_loss).这两个函数的参数类似,但我真的想知道这两个函数有什么区别?

sampling tensorflow

9
推荐指数
1
解决办法
2106
查看次数

如何使用 Python 进行随机分层抽样(不是训练/测试拆分)?

我正在寻找进行随机分层抽样的最佳方法,例如调查和民意调查。我不想做 sklearn.model_selection.StratifiedShuffleSplit 因为我没有做监督学习而且我没有目标。我只想从 Pandas DataFrame ( https://www.investopedia.com/terms/stratified_random_sampling.asp )创建随机分层样本。

Python是我的主要语言。

感谢您的任何帮助

python numpy sampling pandas

9
推荐指数
2
解决办法
1万
查看次数

如何等距重采样线(或曲线)?

我有一个l_1点系列给出的线p_1,...,p_n.我现在想要一个新的生产线l_2k两点:q_1,...,q_k.但对于所有i \in {1,...,k-1}: abs( q_i - q_i+1 ) = const,意味着段l_2是等距或制服.

  • k >= 2
  • 并且p_1和p_n应该在l_2.
  • abs( p_i - p_i+1 ) 不是常数

一种解决方案是使用样条近似一条线,然后再次对其进行二次采样,以获得均匀的长度段.我可以做得更好吗?那有什么C++代码吗?

啊,我错过了一个具体的细节:那些q_i应该在l_1,这意味着它们是在线段l_1或它们是样本点l_1.

algorithm geometry line sampling

8
推荐指数
1
解决办法
5261
查看次数

每秒音频样本?

我想知道样本块与其等效时间之间的关系.鉴于我目前的粗略想法:

每秒播放的样本数=总文件大小/持续时间.

所以说,我有一个1.02MB的文件,持续时间为12秒(平均),我将每秒播放大约89,300个样本.这是正确的吗?

还有其他方法可以计算这个吗?例如,我怎么知道一个字节[1024]数组与时间相当多少?

audio sampling

8
推荐指数
2
解决办法
2万
查看次数

来自Mongo的随机抽样

我有一个带文件的mongo集合.每个文档中都有一个字段为0或1.我需要从数据库中随机抽取1000条记录,并将具有该字段的文档数量计为1.我需要对此进行1000次抽样.我该怎么做 ?

database sampling mongodb

8
推荐指数
3
解决办法
1万
查看次数

为什么随机抽样与数据集一起缩放而不是样本量?(pandas .sample()示例)

当从不同大小的分布中随机抽样时,我惊讶地发现执行时间似乎主要是根据从中采样的数据集的大小而不是被采样的值的数量来缩放.例:

import pandas as pd
import numpy as np
import time as tm

#generate a small and a large dataset
testSeriesSmall = pd.Series(np.random.randn(10000))
testSeriesLarge = pd.Series(np.random.randn(10000000))

sampleSize = 10
tStart = tm.time()
currSample = testSeriesLarge.sample(n=sampleSize).values
print('sample %d from %d values: %.5f s' % (sampleSize, len(testSeriesLarge), (tm.time() - tStart)))

tStart = tm.time()
currSample = testSeriesSmall.sample(n=sampleSize).values
print('sample %d from %d values: %.5f s' % (sampleSize, len(testSeriesSmall), (tm.time() - tStart)))

sampleSize = 1000
tStart = tm.time()
currSample = testSeriesLarge.sample(n=sampleSize).values
print('sample %d from %d …
Run Code Online (Sandbox Code Playgroud)

python random sampling pandas

8
推荐指数
1
解决办法
627
查看次数

从 Pyro 的联合分布中采样

我了解如何从多维分类或多变量正态分布(每列内具有依赖性)进行采样。例如,对于多元分类,可以按如下方式完成:

import pyro as p
import pyro.distributions as d
import torch as t
p.sample("obs1", d.Categorical(logits=logit_pobs1).independent(1), obs=t.t(obs1))
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有多个发行版,我们该如何做同样的事情?例如,下面的不是我想要的obs1obs2并且obs3是相互独立的。

p.sample("obs1", d.Categorical(logits=logit_pobs1).independent(1), obs=t.t(obs1))
p.sample("obs2", d.Normal(loc=mu_obs2, scale=t.ones(mu_obs2.shape)).independent(1), obs=t.t(obs2))
p.sample("obs3", d.Bernoulli(logits=logit_pobs3).independent(1),obs3)
Run Code Online (Sandbox Code Playgroud)

我想做类似的事情

p.sample("obs", d.joint(d.Bernoulli(...), d.Normal(...), d.Bernoulli(...)).independent(1),obs)
Run Code Online (Sandbox Code Playgroud)

probability bayesian sampling pytorch pyro.ai

8
推荐指数
0
解决办法
881
查看次数

librosa.load() 加载(样本)mp3 文件的时间太长

我正在尝试使用该librosa库通过以下 Python 代码对 mp3 文件进行采样(将模拟转换为数字),但这需要太多时间(一个文件大约需要 4 秒)。我怀疑这是因为librosa不支持mp3,因此使用较慢audioread的采样mp3

代码:

import time
import librosa

s = time.time()
for i in mp3_list[:10]: # list of mp3 file paths, doing for 10 files
    y, sr = librosa.load(i)

print('time taken =', time.time() - s)
Run Code Online (Sandbox Code Playgroud)

time taken = 36.55561399459839

我也收到此警告:

UserWarning: "PySoundFile failed. Trying audioread instead."
Run Code Online (Sandbox Code Playgroud)

显然,这对于任何实际应用来说都太长了。我想知道是否有更好的替代方案?

为了进行比较,1.2对 10 个相同大小的wav转换进行采样只需要大约几秒钟的总时间

audio mp3 sampling python-3.x librosa

8
推荐指数
1
解决办法
6512
查看次数