"e" 出现在概率后缀树序列的哪个位置?
Where in the sequence of a Probabilistic Suffix Tree does "e" occur?
在我的数据中,序列右侧只有缺失数据 (*
)。这意味着没有序列以 *
开头,也没有序列在 *
之后有任何其他标记。尽管如此,PST(概率后缀树)似乎预测有 90% 的机会以 *
开头。这是我的代码:
# Load libraries
library(RCurl)
library(TraMineR)
library(PST)
# Get data
x <- getURL("https://gist.githubusercontent.com/aronlindberg/08228977353bf6dc2edb3ec121f54a29/raw/c2539d06771317c5f4c8d3a2052a73fc485a09c6/challenge_level.csv")
data <- read.csv(text = x)
# Load and transform data
data <- read.table("thread_level.csv", sep = ",", header = F, stringsAsFactors = F)
# Create sequence object
data.seq <- seqdef(data[2:nrow(data),2:ncol(data)], missing = NA, right= NA, nr = "*")
# Make a tree
S1 <- pstree(data.seq, ymin = 0.05, L = 6, lik = TRUE, with.missing = TRUE)
# Look at first state
cmine(S1, pmin = 0, state = "N3", l = 1)
这会生成:
[>] context: e
EX FA I1 I2 I3 N1 N2 N3 NR
S1 0.006821066 0.01107234 0.01218274 0.01208756 0.006821066 0.002569797 0.003299492 0.001554569 0.0161802
QU TR *
S1 0.01126269 0.006440355 0.9097081
*
的概率怎么可能在序列的最开头是 0.9097081
,意思是在上下文 e
之后?
这是否意味着上下文可以出现在序列中的任何位置,并且 e
表示序列中某处的任意起点?
PST 是可变长度马尔可夫模型 (VLMC) 的表示。作为经典马尔可夫模型,假设 VLMC 是同质的(或平稳的),这意味着给定上下文的结果的条件概率在序列中的每个位置都是相同的。换句话说,上下文可以出现在序列中的任何地方。实际上,上下文的搜索是通过探索应该应用于序列中任何地方的树来完成的。
在您的示例中,对于 l=1
(l
是 1 + 上下文的长度),您只查找长度为 0 的上下文,即唯一可能的上下文是空序列e
。您的条件 pmin=0, state=N3
(N3
的概率大于 0)相当于根本没有条件。所以你得到了观察每个状态的总体概率。因为您的序列(带有缺失状态)的长度都相同,所以使用 TraMineR
和
会得到相同的结果
seqmeant(data.seq, with.missing=TRUE)/max(seqlength(data.seq))
要获得第一个位置的分布,您可以使用 TraMineR
并在 [= 返回的连续位置处查看 cross-sectional 个分布的 table 的第一列19=]
seqstatd(data.seq, with.missing=TRUE)
希望对您有所帮助。
在我的数据中,序列右侧只有缺失数据 (*
)。这意味着没有序列以 *
开头,也没有序列在 *
之后有任何其他标记。尽管如此,PST(概率后缀树)似乎预测有 90% 的机会以 *
开头。这是我的代码:
# Load libraries
library(RCurl)
library(TraMineR)
library(PST)
# Get data
x <- getURL("https://gist.githubusercontent.com/aronlindberg/08228977353bf6dc2edb3ec121f54a29/raw/c2539d06771317c5f4c8d3a2052a73fc485a09c6/challenge_level.csv")
data <- read.csv(text = x)
# Load and transform data
data <- read.table("thread_level.csv", sep = ",", header = F, stringsAsFactors = F)
# Create sequence object
data.seq <- seqdef(data[2:nrow(data),2:ncol(data)], missing = NA, right= NA, nr = "*")
# Make a tree
S1 <- pstree(data.seq, ymin = 0.05, L = 6, lik = TRUE, with.missing = TRUE)
# Look at first state
cmine(S1, pmin = 0, state = "N3", l = 1)
这会生成:
[>] context: e
EX FA I1 I2 I3 N1 N2 N3 NR
S1 0.006821066 0.01107234 0.01218274 0.01208756 0.006821066 0.002569797 0.003299492 0.001554569 0.0161802
QU TR *
S1 0.01126269 0.006440355 0.9097081
*
的概率怎么可能在序列的最开头是 0.9097081
,意思是在上下文 e
之后?
这是否意味着上下文可以出现在序列中的任何位置,并且 e
表示序列中某处的任意起点?
PST 是可变长度马尔可夫模型 (VLMC) 的表示。作为经典马尔可夫模型,假设 VLMC 是同质的(或平稳的),这意味着给定上下文的结果的条件概率在序列中的每个位置都是相同的。换句话说,上下文可以出现在序列中的任何地方。实际上,上下文的搜索是通过探索应该应用于序列中任何地方的树来完成的。
在您的示例中,对于 l=1
(l
是 1 + 上下文的长度),您只查找长度为 0 的上下文,即唯一可能的上下文是空序列e
。您的条件 pmin=0, state=N3
(N3
的概率大于 0)相当于根本没有条件。所以你得到了观察每个状态的总体概率。因为您的序列(带有缺失状态)的长度都相同,所以使用 TraMineR
和
seqmeant(data.seq, with.missing=TRUE)/max(seqlength(data.seq))
要获得第一个位置的分布,您可以使用 TraMineR
并在 [= 返回的连续位置处查看 cross-sectional 个分布的 table 的第一列19=]
seqstatd(data.seq, with.missing=TRUE)
希望对您有所帮助。