我开始学习隐藏的马尔可夫模型,并且在维基页面上,以及在github上有很多例子,但大多数概率已经存在(70%的降雨变化,30%的变化机会等等). .拼写检查或句子示例,似乎是研究书籍,然后对单词的概率进行排名.
那么马尔可夫模型是否包括一种确定概率的方法,或者我们是否想到其他一些模型来预先计算它?
对不起,如果这个问题没有了.我认为隐藏的马尔可夫模型如何选择可能的序列,但概率部分对我来说有点灰色(因为它经常提供).示例或任何信息都会很棒.
对于那些不熟悉马尔可夫模型的人,这里有一个例子(来自维基百科)http://en.wikipedia.org/wiki/Viterbi_algorithm和http://en.wikipedia.org/wiki/Hidden_Markov_model
#!/usr/bin/env python
states = ('Rainy', 'Sunny')
observations = ('walk', 'shop', 'clean')
start_probability = {'Rainy': 0.6, 'Sunny': 0.4}
transition_probability = {
'Rainy' : {'Rainy': 0.7, 'Sunny': 0.3},
'Sunny' : {'Rainy': 0.4, 'Sunny': 0.6},
}
emission_probability = {
'Rainy' : {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
'Sunny' : {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
}
#application code
# Helps visualize the steps of Viterbi.
def print_dptable(V):
print " ",
for i in range(len(V)): print …Run Code Online (Sandbox Code Playgroud) 这与图算法(不是SEO或任何东西)严格相关.我有兴趣知道是否还有其他算法只使用图形结构(不像关键字等内容)来推断?
因此,例如,如果给定一个充满节点的大图,你怎么能做出推断,假设你不知道节点中的值实际意味着什么(例如,pagerank知道谁链接(边缘)给谁,什么都不知道关于内容本身)?
这不是网络搜索所独有的,任何使用图形结构进行推理的东西.
我正在尝试创建一个到队列服务器的通道/连接池,并尝试使用ObjectPool,但在他们的网站上的示例中使用它时遇到了麻烦.
到目前为止,我有线程可以工作,但我希望他们每个人从池中获取一个通道然后返回它.我理解如何使用它(borrowObject/returnObjects)但不知道如何创建初始池.
以下是如何在rabbitmq中制作频道:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
Run Code Online (Sandbox Code Playgroud)
我的代码只是使用渠道来做事情.我很困惑,因为我能找到的唯一例子(在他们的网站上)就像这样开始:
private ObjectPool<StringBuffer> pool;
public ReaderUtil(ObjectPool<StringBuffer> pool) {
this.pool = pool;
}
Run Code Online (Sandbox Code Playgroud)
这对我没有意义.我意识到这对于建立数据库连接很常见,所以我尝试使用数据库和ObjectPool查找教程,但他们似乎使用特定于数据库的DBCP(我似乎无法使用我的队列服务器的逻辑).
有关如何使用它的任何建议?或者是否有另一种方法用于java中的池?
我正在学习金字塔,似乎他们试图让人们使用变色龙而不是mako,所以我想我会给变色龙一个机会.到目前为止我喜欢它,我可以在模板中做基本的事情,比如if和for循环,但我不知道如何让消息闪烁出现.
在金字塔教程中,他们在todo列表中执行此操作,但在wiki示例中他们没有.根据有关会话的说明和使用todolist教程作为示例,我已经能够让我的应用程序创建消息,但我无法在我的模板中收到它们.简而言之,我想知道变色龙是否有相当于这个mako代码:
% if request.session.peek_flash():
<div id="flash">
<% flash = request.session.pop_flash() %>
% for message in flash:
${message}<br>
% endfor
</div>
% endif
Run Code Online (Sandbox Code Playgroud) 我有一个数据集,我将其作为各种时间框架的图形上传,并试图找出它们之间的关系.
我想删除所有没有边缘的节点,但我不确定删除或删除节点的命令.知道怎么做吗?
我正在使用networkx(用于python的库来处理图形).我基本上有各种边缘的节点,但是如果它使用连接最多的节点,想要看看路径会是什么样子.
我可以使用此命令查看连接数:
len(G.edges(CurrentNode))
Run Code Online (Sandbox Code Playgroud)
我可以获得边数,但我不知道如何将其应用于列表作为路径.例如,我可以将此数字添加为属性,但我不认为在查找路径时会考虑属性,并且因为我在连接边缘后添加此数字,所以我无法将权重添加到边缘本身.另一个问题是得分越高我想要跟随的路径越多但是我认为它遵循最低加权边缘.
我想知道其他人根据节点的某些特征采取什么方法来寻找路径?如果有人知道如何为networkx做这件事,太好了!但我认为networkx有很多功能,所以如果我能得到理论或一般方法,我相信我能找到一种方法在python中做到这一点.
更新:对不起我可能会解释错了.我知道我可以向节点添加属性,但我不确定如何根据这些属性做出路径决策.所以在我的情况下,基于某些条件,我在节点之间添加边缘.每组节点代表不同的一天(day1data ..,day2data ..,day3data ..),所以我只在某些规则匹配时才将第一天的几个节点连接到第二天的节点.一旦我连接了边缘,我希望在选择路径时考虑那些边缘.所以我在当前每个节点添加了一个属性'weight',它基本上是连接该节点的边的总数.我的问题是,权重属性不用于任何路径决策,因为它是我创建并标记自己的属性(我可以创建一个名为'abc'='hello world'的标签,它会将该属性应用于节点).如何在创建路径时考虑这个权重(边缘已经创建,所以我不认为我可以返回并重新创建它们)?
我不确定我的问题的正确术语是什么,所以我只是解释一下我想做什么.我有一个有向图,在我删除一个节点后,我想要删除所有独立相关的节点.
这是一个例子:

比如说,我删除节点'11',我也希望删除节点'2'(在我自己的例子中,它们将是2以下的节点,现在也必须删除)因为它没有连接到主图了.注意,不应删除节点"9"或"10",因为节点"8"和"3"仍然连接到它们.
我正在使用python库networkx.我搜索了文档,但我不确定术语,所以我不确定这是什么.如果可能的话,我想使用库提供的函数,而不是通过图形创建我自己的递归(因为我的图非常大).
任何有关如何做到这一点的帮助或建议都会很棒.
谢谢!
如果我没有正确解释,请提前抱歉.我想知道是否有算法可以在决策过程中对各种因素进行加权.
我正在阅读编程集体智慧,有一个章节,你建立一个搜索引擎,并使用各种因素来排名网页(页面排名,单词的频率,单词的距离,标题中的单词等).基本上在他们的示例代码中,他们将所有因素作为类中的函数,然后使用此命令对它们进行评分:
weights=[(1.0,self.locationscore(rows)),
(1.0,self.frequencyscore(rows)),
(1.0,self.distancescore(rows)),
(1.0,self.pagerankscore(rows)),
(1.0,self.linktextscore(rows, wordids))]
Run Code Online (Sandbox Code Playgroud)
每个因素排名相同(1.0),但我想知道是否有一种方法可以动态地使不同的因素权重不同,而无需手动设置权重?在本书中,他们继续使用神经网络来研究用户点击,但上述权重保持不变.
我觉得有一种非静态的方法可以做到这一点,但不确定是什么.任何关于如何处理这个问题的建议都会很棒.
提前致谢
注意:如果你想要书中的示例代码,那么它的http://examples.oreilly.com/9780596529321/和我所指的章节是第4章.另外,如果我没有正确解释任何问题,请告诉我知道,我会更新我的问题.
更新:为了帮助澄清我的要求,我已经发布了一些可以解决问题的java代码.
前段时间我问一个问题,如何得到一个算法,打破了一组数字,当时的想法是给它编号列表(1,2,3,4,5)和共(10),它会找出每个将增加数的所有倍数达到总数('1*10'或' 1*1,1*2,1*3,1*4'或' 2*5'等等).这是我做过的第一次编程练习,所以它花了我一段时间才开始工作,但现在我想试着看看我是否可以扩展它.原问题中的人说它是可扩展的,但我对如何做到这一点感到困惑.递归部分是我在缩放组合所有结果的部分时遇到的区域(它所指的表是不可扩展的但是应用缓存我能够使它快速)
我有以下算法(伪代码):
//generates table
for i = 1 to k
for z = 0 to sum:
for c = 1 to z / x_i:
if T[z - c * x_i][i - 1] is true:
set T[z][i] to true
//uses table to bring all the parts together
function RecursivelyListAllThatWork(k, sum) // Using last k variables, make sum
/* Base case: If we've assigned all the variables correctly, list …Run Code Online (Sandbox Code Playgroud) 对不起,如果这是愚蠢但我只是想我应该试一试.假设我有一个巨大的图表(例如,1000亿个节点).Neo4J支持32亿,其他支持或多或少相同,所以说我不能同时在数据库中拥有整个数据集,如果它是有向图(无循环)和每组节点连接,我可以在其上运行pagerank到下一组节点(因此不会向后创建新链接,只会为新数据集创建新链接).
有没有办法我可以以某种方式获取以前的pagerank分数并将它们应用于新的数据集(我只关心最新数据集的pagerank但需要先前的set的pagerank来导出最后的数据集)?
那有意义吗?如果是这样,有可能吗?
algorithm ×6
graph-theory ×5
networkx ×3
python ×3
java ×2
chameleon ×1
graph ×1
math ×1
neo4j ×1
pagerank ×1
probability ×1
pyramid ×1
statistics ×1
template-tal ×1