今天簡單列舉兩個常用的取樣方法:softmax取樣和gamble取樣。
在我們已知資料的概率分布後,想要根據已有的概率值,抽取出適合的資料。此時,就需要特定的取樣函式拿資料。
簡要**如下:
"""返回結果:取樣方法
"""import
numpy as np
np.random.seed(1111) #
隨機種植,固定每次生成相同的資料
logits = (np.random.random(10) - 0.5 ) * 2 #
拉到-1到1
def inv_gumble_cdf(y, mu=0, beta=1, eps=1e-20):
return mu - beta * np.log(-np.log(y+eps))
defsample_gamble(shape):
p =np.random.random(shape)
return
inv_gumble_cdf(p)
defsoftmax(logits):
max_value =np.max(logits)
exp = np.exp(logits -max_value)
exp_sum =np.sum(exp)
dist = exp /exp_sum
return
dist
defsample_with_softmax(logits, size):
pros =softmax(logits)
(pros)
return np.random.choice(len(logits), size, p=pros)
defsample_with_gumbel_noise(logits, size):
noise =sample_gamble((size, len(logits)))
return np.argmax(logits + noise, axis=1)
print('
logits:{}
'.format(logits))
pop = 1softmax_samples =sample_with_softmax(logits, pop)
print('
softmax_samples:{}
'.format(softmax_samples))
gamble_samples =sample_with_gumbel_noise(logits, pop)
print('
gamble_sample:{}
'.format(gamble_samples))
常見的取樣方法
場景描述 對於乙個隨機變數,通常用概率密度函式來刻畫該變數的概率分布特性。具體來說,給定隨機變數的乙個取值,可以根據概率密度函式來計算該值對應的概率 密度 反過來,也可以根據概率密度函式提供的概率分布資訊來生成隨機變數的乙個取值,這就是取樣。因此,從某種意義上來說,取樣是概率密度函式的逆向應用。與根...
下取樣方法
x data.loc data.columns class loc 通過行標籤索引資料,print x y data.loc data.columns class 取label print y number records fraud len data data.class 1 class 1的數量...
取樣方法 Sampling Methods
1.基本取樣演算法 basic sampling algorithms 1.1.標準概率分布 standard distributions 1.2.拒絕取樣 rejection sampling 1.3.可調節的拒絕取樣 adaptive rejection sampling 1.4.重要取樣 im...