Rで新しく、RでJS発散を計算する関数を見つけようとしていました。 RにKL発散を計算するためのKLdivがありますが、JS発散のために利用できるものはありますか?Jensen Shannon divergence in R
5
A
答えて
0
ウィキペディアによると、Jensen-Shannonの発散は、KL発散の変換である。定義から式を適用すると、あなたにJSの発散を与える必要があります
参照してください。そして...:http://en.wikipedia.org/wiki/Jensen%E2%80%93Shannon_divergence
4
誰でもまだ(私がいた)答えを探している場合は、でこれを計算する機能がありますRパッケージphyloseq:http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0061217
私はまた、このチュートリアルが有用であることが判明:http://enterotype.embl.de/enterotypes.html
7
私はJS divergenceの単純な実装ではなく、Rライブラリーを探していました。私はいずれの回答でも1つも見なかったので、私は下の方を思いついた。
我々は次の入力分布を持っていると仮定すると:
# p & q are distributions so their elements should sum up to 1
p <- c(0.00029421, 0.42837957, 0.1371827, 0.00029419, 0.00029419,
0.40526004, 0.02741252, 0.00029422, 0.00029417, 0.00029418)
q <- c(0.00476199, 0.004762, 0.004762, 0.00476202, 0.95714168,
0.00476213, 0.00476212, 0.00476202, 0.00476202, 0.00476202)
ジェンセン・シャノン発散は次のようになります。
私たちが必要とする(すでに hereを議論してきた)2つの以上のディストリビューションについてはm <- 0.5 * (p + q)
JS <- 0.5 * (sum(p * log(p/m)) + sum(q * log(q/m)))
> JS
[1] 0.6457538
Entropyを計算する関数:
H <- function(v) {
v <- v[v > 0]
return(sum(-v * log(v)))
}
そしてJS発散は次のようになります。w
1及びm
にまとめるべき重みのベクトルである
JSD <- function(w, m) {
return(H(m %*% w) - apply(m, 2, H) %*% w)
}
> JSD(w = c(1/3, 1/3, 1/3), m = cbind(p, q, m))
[,1]
[1,] 0.4305025
列として入力された分布を有する行列です。
関連する問題
- 1. Kullback-Leibler divergence
- 2. Shannon-Fano画像でのエンコーディング
- 3. Sankey diagram in R
- 4. preallocate list in R
- 5. TikZ in R Markdown
- 6. color2D.matplot Legend in R
- 7. ニューラルネットパッケージin R
- 8. R in SharePoint
- 9. Sliding window in R
- 10. ets()error in R
- 11. カスタムヒートマップin R
- 12. モンテカルロダイスシミュレーションin R
- 13. Cartogram + choropleth map in R
- 14. Convert Twitter Timestamp in R
- 15. 真のヒートマップin R
- 16. hist2d subrange selection in R
- 17. マルチコアとdata.table in R
- 18. do-while loop in R
- 19. Marble&Urn in language R
- 20. Oaxaca分解in R
- 21. big.matrix as data.frame in R
- 22. FOR r in(SELECT ... INTO ...)
- 23. Recenter heatmap.2 in R
- 24. ジェネレータ関数in R
- 25. スタブとモックin R
- 26. ファンクション、ベクター、ループin R
- 27. npregiv in R:寸法誤差
- 28. 反復効果LMM in R
- 29. 二変量ラスタプロットin R
- 30. プロットロジスティック回帰曲線in R
非常に良い仕事! –