WHU Bruisefree分享 http://blog.sciencenet.cn/u/bruisefree Link together

博文

Scaled sampling

已有 4694 次阅读 2014-12-27 23:39 |系统分类:科研笔记

最近看Gibbs sampling的LDA源代码,发现有如下一段:

   

// cumulate multinomial parameters

for (int k = 1; k < trnModel.K; k++){

trnModel.p[k] += trnModel.p[k - 1];

}


// scaled sample because of unnormalized p[]

double u = Math.random() * trnModel.p[trnModel.K - 1];

for (topic = 0; topic < trnModel.K; topic++){

if (trnModel.p[topic] > u) //sample topic w.r.t distribution p

break;

}


初看不明白是什么意思。后来仔细体会了一下scaled sample,大致想想可能意思是根据元素的值,来做随机选择(主题)。一般情况下,随机选择是一个完全随机的,例如从1-10中随机选择一个数,那么,其中每一个数被选中的概率是均等的。假设有这样一种随机抽样,1-10中每个数字被选中的概率比这个数字的值成正比,那么应当怎么选择呢? 这个过程即可使用scaled sample计算。

   可以简单操作如下:

   (1)加总所有的值;

   (2)在总值内做均等随机(Java中的Math.random()),取出一个值;

   (3)查找这个值在原始序列中的位置,即取出原始值。




https://blog.sciencenet.cn/blog-563898-854390.html

上一篇:MetaMap 本地安装
下一篇:常见分布的拟合方法
收藏 IP: 59.172.176.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-27 19:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部