<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.research.microsoft.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Infer.NET</title><link>http://community.research.microsoft.com/forums/116.aspx</link><description>Infer.NET is a .NET framework for machine learning. It provides state-of-the-art algorithms for probabilistic inference from data.  Various Bayesian models such as Bayes Point Machine classifiers, TrueSkill matchmaking, hidden Markov models, and Bayesian networks can be implemented using Infer.NET.</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>How to use posterior for testing in the LDA model</title><link>http://community.research.microsoft.com/forums/thread/7401.aspx</link><pubDate>Sat, 21 Nov 2009 13:42:13 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7401</guid><dc:creator>shakey</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7401.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7401</wfw:commentRss><description>&lt;p&gt;I want to test the lda model on new documents, I take the method on the baysian point machine example: &lt;/p&gt;
&lt;p&gt;setting the phi in the test model&amp;nbsp;&amp;nbsp; to the posterior phi from the training model.&amp;nbsp; However, I always get errors indicating violation of type constrain. Can anyone give me some help on this ?&amp;nbsp; It seems SharedVariable is another kind of solution, but I cannot get it right either.&lt;/p&gt;
&lt;p&gt;part of the code:&lt;/p&gt;
&lt;p&gt;post_phi=engine.Infer[DistributionRefArray[Dirichlet,Vector]](phi)&lt;br /&gt;test_post_phi=Variable[Vector].Random[DistributionRefArray[Dirichlet,Vector]](post_phi )&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;with (Variable.ForEach(test_CorpusSize)) as forBlock :&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; with (Variable.ForEach(test_DocSize)) as forBlock :&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test_Z[test_CorpusSize][test_DocSize] = Variable.Discrete(test_theta[test_CorpusSize]).Attrib( ValueRange(TopicsNum))&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with (Variable.Switch(test_Z[test_CorpusSize][test_DocSize])) as swBlock :&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test_W[test_CorpusSize][test_DocSize] = Variable.Discrete(test_post_phi[ test_Z[test_CorpusSize][ test_DocSize] ])&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>error occurs when constructing a lda model with simple corpus</title><link>http://community.research.microsoft.com/forums/thread/4620.aspx</link><pubDate>Sat, 21 Feb 2009 10:16:06 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:4620</guid><dc:creator>xgear</dc:creator><slash:comments>22</slash:comments><comments>http://community.research.microsoft.com/forums/thread/4620.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=4620</wfw:commentRss><description>&lt;p&gt;





&lt;/p&gt;

 
  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
 

 
 

&lt;p&gt;

&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;setting of the model:&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;number of documents in corpus:12&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;number of topics:3&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;number of words(terms) in corpus:12&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;for simplicity,suppose that each document is composed of 2
words&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;






 
  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
 

 
 





&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;The whole corpus is show in the table below ,with each line representing
a document.&lt;/span&gt;&lt;/p&gt;
&lt;table class="MsoTableGrid" style="border:medium none;border-collapse:collapse;" border="1" cellpadding="0" cellspacing="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border:1pt solid windowtext;padding:0cm 5.4pt;width:213.05pt;" valign="top" width="284"&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;Original corpus&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0cm 5.4pt;width:213.05pt;border:1pt 1pt 1pt medium solid solid solid none windowtext windowtext windowtext -moz-use-text-color;" valign="top" width="284"&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span lang="EN-US"&gt;After indexing ,the whole corpus
  is denoted as&lt;/span&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="padding:0cm 5.4pt;width:213.05pt;border:medium 1pt 1pt none solid solid -moz-use-text-color windowtext windowtext;" valign="top" width="284"&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;university test&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;teacher student &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;teacher university &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;university student &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;economy bank &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;economy money &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;stock economy &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;money stock &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;goverment policy &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;goverment president &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;goverment military &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;president policy &lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding:0cm 5.4pt;width:213.05pt;border:medium 1pt 1pt medium none solid solid none -moz-use-text-color windowtext windowtext -moz-use-text-color;" valign="top" width="284"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;0, 3 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;0, 1 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;0, 2 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;1, 2 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;4, 7 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;4, 5 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;4, 6 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;5, 6 &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;8, 11&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;8, 9&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;8, 10&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;9, 10&lt;span style="color:green;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;a href="http://community.research.microsoft.com/cfs-file.ashx/__key/CommunityServer.Discussions.Components.Files/116/3323.lda.gif"&gt;&lt;img src="http://community.research.microsoft.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Discussions.Components.Files/116/3323.lda.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;after runing the program,the consle window show:&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;Compile model.....complilation failed.&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;then a &amp;quot;transform chain&amp;quot; window shows information &amp;quot;can only indexed by loop variables,not index0&amp;quot;,it seems the position where the error occurs is near(in) &amp;quot;two using nest&amp;quot; of source code&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;By the way,can jagged array provide a array of a array,where the length of last array is not fixed,so I can remove the limit that each docoment is &lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;composed of 2
words.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;Your help is appreciated!&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;






 
  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
 

 
 









&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;static&lt;/span&gt;
&lt;span style="color:blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;M = 12;&lt;span style="color:green;"&gt;//number of
documents in corpus&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;K = 3;&lt;span style="color:green;"&gt;//number of
topics&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;
V = 12; &lt;span style="color:green;"&gt;//number of words(terms) in corpus &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;
Nm = 2;&lt;span style="color:green;"&gt;//suppose that each document is composed of 2
words&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;color:green;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;Range&lt;/span&gt;
CorpusSize = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Range&lt;/span&gt;(M);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;Range&lt;/span&gt;
TopicsNum = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Range&lt;/span&gt;(K);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;Range&lt;/span&gt;
WordsNum = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Range&lt;/span&gt;(V);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:teal;"&gt;Range&lt;/span&gt; DocSize
= &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Range&lt;/span&gt;(Nm);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;double&lt;/span&gt;[]
alpha={ 0.5, 0.5, 0.5 };&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;double&lt;/span&gt;[]
beta = { 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 };&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;VariableArray&lt;/span&gt;&amp;lt;&lt;span style="color:teal;"&gt;Vector&lt;/span&gt;&amp;gt; theta = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Array&amp;lt;&lt;span style="color:teal;"&gt;Vector&lt;/span&gt;&amp;gt;(CorpusSize);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:teal;"&gt;VariableArray&lt;/span&gt;&amp;lt;&lt;span style="color:teal;"&gt;Vector&lt;/span&gt;&amp;gt; phi = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Array&amp;lt;&lt;span style="color:teal;"&gt;Vector&lt;/span&gt;&amp;gt;(TopicsNum); &lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;theta[CorpusSize] = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Dirichlet(alpha).ForEach(CorpusSize);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;phi[TopicsNum] = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Dirichlet(beta).ForEach(TopicsNum);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;VariableArray2D&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt; W = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Array&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;(CorpusSize, DocSize);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;VariableArray2D&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt; Z = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Array&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;(CorpusSize, DocSize);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt;
(&lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.ForEach(CorpusSize))&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;using&lt;/span&gt; (&lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.ForEach(DocSize))&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Z[CorpusSize,
DocSize] = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Discrete(theta[CorpusSize]);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;W[CorpusSize,
DocSize] = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Discrete(phi[Z[CorpusSize,
DocSize]]);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;W = &lt;span style="color:teal;"&gt;Variable&lt;/span&gt;.Observed(&lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span style="color:blue;"&gt;int&lt;/span&gt;[,] { { 0, 3 }, { 0, 1 }, { 0, 2 }, { 1, 2
}, { 4, 7 }, { 4, 5 }, { 4, 6 }, { 5, 6 }, { 8, 11 }, { 8, 9 }, { 8, 10 }, { 9,
10 } }, CorpusSize, DocSize);&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;InferenceEngine&lt;/span&gt;
engine = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;InferenceEngine&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:teal;"&gt;Console&lt;/span&gt;.WriteLine(engine.Infer(Z));&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-align:left;" align="left"&gt;&lt;span style="font-size:9pt;" lang="EN-US"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>A Question about  "ConstrainEqualRandom"</title><link>http://community.research.microsoft.com/forums/thread/7208.aspx</link><pubDate>Sat, 24 Oct 2009 02:09:44 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7208</guid><dc:creator>Keri</dc:creator><slash:comments>7</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7208.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7208</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am new to Infer.net, and I am trying to play with it.&lt;br /&gt;As documented, there is a great way to attach constraint between &lt;br /&gt;random variables using &amp;quot;ConstrainEqualRandom&amp;quot;...I made&lt;br /&gt;a simple test showing below, but I cannot explain why Infer.net &lt;br /&gt;gives me that result...&lt;/p&gt;
&lt;p&gt;Could anyone explain how Infer.net generates such result? or I &lt;br /&gt;used this function in a wrong way?.. &lt;/p&gt;
&lt;p&gt;What I want to test is suppose I have a prio distribution on A, and B.&lt;br /&gt;I also know C = A &amp;amp; B... My intuition is if I have some constraint on&lt;br /&gt;C, can I infer something about A,B,and C...&lt;/p&gt;
&lt;p&gt;---------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  Variable&amp;lt;bool&amp;gt; PA = Variable.Bernoulli(0.3).Named(&amp;quot;PA&amp;quot;);&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable&amp;lt;bool&amp;gt; PB = Variable.Bernoulli(0.8).Named(&amp;quot;PB&amp;quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable&amp;lt;bool&amp;gt; PC = (PA &amp;amp; PB).Named(&amp;quot;PC&amp;quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable.ConstrainEqualRandom&amp;lt;bool, Bernoulli&amp;gt;(PC, new Bernoulli(0.6));&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InferenceEngine ie = new InferenceEngine();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ie.ShowFactorGraph = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;PA: &amp;quot; + ie.Infer(PA));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;PB: &amp;quot; + ie.Infer(PB));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(&amp;quot;PC: &amp;quot; + ie.Infer(PC));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;----------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;Compiling model...done.&lt;br /&gt;Initialising...done.&lt;br /&gt;Iterating:&lt;br /&gt;.........|.........|.........|.........|.........| 50&lt;br /&gt;PA: Bernoulli(0.375)&lt;br /&gt;PB: Bernoulli(0.8214)&lt;br /&gt;PC: Bernoulli(0.3214)&lt;br /&gt;.&lt;/p&gt;
&lt;p&gt;when I change Variable.ConstrainEqualRandom&amp;lt;bool, Bernoulli&amp;gt;(PC, new Bernoulli(0.6));&lt;br /&gt;to some others like Variable.ConstrainEqualRandom&amp;lt;bool, Bernoulli&amp;gt;(PC, new Bernoulli(0.7));&lt;br /&gt;Infer.net will give me different result as well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Factor Graphs control</title><link>http://community.research.microsoft.com/forums/thread/7326.aspx</link><pubDate>Tue, 10 Nov 2009 19:24:15 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7326</guid><dc:creator>Valmir Meneses</dc:creator><slash:comments>0</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7326.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7326</wfw:commentRss><description>&lt;p&gt;Greetings,&lt;/p&gt;
&lt;p&gt;I am using INFER.NET on my research (Bayesian Networks) and wish to control when/where to display the factor graph related to the inference engine currently used. Is there a method to save the factor graph without/instead of&amp;nbsp;displaying it?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>A question about LDA extention</title><link>http://community.research.microsoft.com/forums/thread/7153.aspx</link><pubDate>Sat, 17 Oct 2009 05:23:12 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7153</guid><dc:creator>msdy</dc:creator><slash:comments>10</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7153.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7153</wfw:commentRss><description>&lt;p&gt;Referring &lt;a target="_self" href="http://community.research.microsoft.com/forums/p/2853/4630.aspx#4630"&gt;John&amp;#39;s post for the LDA model&lt;/a&gt;, I am wonderring how to extend it to different data sets, similar to correspond LDA.&lt;/p&gt;
&lt;p&gt;Suppose two data sets, both are discrete. Then we can use two LDAs to construct this model, as the figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://community.research.microsoft.com/cfs-file.ashx/__key/CommunityServer.Discussions.Components.Files/116/5367.corrLDA.jpg"&gt;&lt;img src="http://community.research.microsoft.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Discussions.Components.Files/116/5367.corrLDA.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I think most of the code are similar to John&amp;#39;s post, but how I can index Z with X for G in infer .net? &amp;nbsp;part of the our my code is as following, but I got errors. Can anyone help? Thank you.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;p&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt;&amp;nbsp;Z =&amp;nbsp;&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Array(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Array&amp;lt;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;gt;(DocSize1), CorpusSize);&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt;&amp;nbsp;W =&amp;nbsp;&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Array(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Array&amp;lt;&lt;/span&gt;&lt;span&gt;int&lt;/span&gt;&lt;span&gt;&amp;gt;(DocSize1), CorpusSize);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;var G &amp;nbsp;= variable.Array(Variable.Array&amp;lt;int&amp;gt;(DocSIze2), CorpusSize);&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;W.ObservedValue = docs1;&lt;/p&gt;
&lt;p&gt;G.ObservedValue = docs2&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.ForEach(CorpusSize))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.ForEach(DocSize1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z[CorpusSize][DocSize1] =&amp;nbsp;&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Discrete(theta[CorpusSize]).Attrib(&lt;/span&gt;&lt;span&gt;new&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ValueRange&lt;/span&gt;&lt;span&gt;(TopicsNum));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Switch(Z[CorpusSize][DocSize1]))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; W[CorpusSize][DocSize1] =&amp;nbsp;&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Discrete(phi[Z[CorpusSize][DocSize1]]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.ForEach(DocSize2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;X[CorpusSize][DocSize2] = Variable.DiscreteUniform(docSizeVar[DocSize1]).Attrib(new ValueRange(DocSize1));&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span&gt;using&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Switch(&amp;nbsp;X[CorpusSize][DocSize2]))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G[CorpusSize][DocSize1] =&amp;nbsp;&lt;/span&gt;&lt;span&gt;Variable&lt;/span&gt;&lt;span&gt;.Discrete(phi[Z[CorpusSize][X[CorpusSize][DocSize2]]]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Binary Logistic Regression</title><link>http://community.research.microsoft.com/forums/thread/7209.aspx</link><pubDate>Sat, 24 Oct 2009 18:06:07 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7209</guid><dc:creator>rhasnani</dc:creator><slash:comments>1</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7209.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7209</wfw:commentRss><description>&lt;p&gt;Hello:&lt;/p&gt;
&lt;p&gt;I am new to both logistic regression as well as Infer.NET.&amp;nbsp; I am trying to build a binary logistic model and would appreciate feedback/comments/corrections on the below code.&amp;nbsp; The model has two independent variables (and a third one is added to the vectors for constant coefficient).&amp;nbsp; Based on the single observation example provided in the post &amp;#39;Bayesian logistic regression&amp;#39; and some code posted in another post (I think it was multiple linear regression), this is what I have come up with and have serious doubts about whether it is done correctly:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[] data = &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[] { &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(1.0, -3, 1), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(2.0, -2.1, 1), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(1.0, -1.3, 1), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(2.0, 0.5, 1), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(1.0, 1.2, 1 ), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(1.0, 3.3, 1), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(1.0, 4.4, 1), &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(1.0, 5.5,1 ) };&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Range&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; rows = &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Range&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(data.Length);&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;VariableArray&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;x = &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.Constant(data, rows).Named(&lt;/span&gt;&lt;span style="color:#a31515;font-size:x-small;"&gt;&lt;span style="color:#a31515;font-size:x-small;"&gt;&amp;quot;x&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt; w = &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.VectorGaussianFromMeanAndPrecision(&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Vector&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;double&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[] { 0, 0, 0 }), &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;PositiveDefiniteMatrix&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.Identity(3)).Named(&lt;/span&gt;&lt;span style="color:#a31515;font-size:x-small;"&gt;&lt;span style="color:#a31515;font-size:x-small;"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;VariableArray&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt; y = &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.Array&amp;lt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt;(rows);&lt;br /&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;y[rows] = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.BernoulliFromLogOdds(&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.GaussianFromMeanAndVariance(&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;Variable&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;.InnerProduct(x[rows], w), 1.0));&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;InferenceEngine&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; engine = &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;InferenceEngine&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;(&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;VariationalMessagePassing&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;());&lt;br /&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;y.ObservedValue = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;bool&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;[] { &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;, &lt;/span&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;&lt;span style="color:#0000ff;font-size:x-small;"&gt;true&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; };&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;VectorGaussian&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; postW = engine.Infer&amp;lt;&lt;/span&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;&lt;span style="color:#2b91af;font-size:x-small;"&gt;VectorGaussian&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt;&amp;gt;(w);&lt;br /&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;&lt;span style="font-size:x-small;"&gt;txtResult.Text = &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#a31515;font-size:x-small;"&gt;&lt;span style="color:#a31515;font-size:x-small;"&gt;&amp;quot;W = \n&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:x-small;"&gt; + postW;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;The output is:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;W = &lt;br /&gt;VectorGaussian(-0.3729 0.01771 0.2636, 0.2634&amp;nbsp;&amp;nbsp; 0.009538 -0.3017 )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.009538 0.01458&amp;nbsp; -0.02437 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -0.3017&amp;nbsp; -0.02437 0.4693&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Please advise on whether the model is built correctly and how to read the output.&amp;nbsp; I am assuming that b0 = 0.4693, b1 = -0.3017 and b2 = -0.02437.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;All help is greatly appreciated.&lt;/p&gt;
&lt;p&gt;Many thanks!&lt;/p&gt;
&lt;p&gt;R Hasnani&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>A question about gaussian mixture models</title><link>http://community.research.microsoft.com/forums/thread/7076.aspx</link><pubDate>Wed, 07 Oct 2009 11:37:55 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7076</guid><dc:creator>euclid</dc:creator><slash:comments>6</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7076.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7076</wfw:commentRss><description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;I am completely new to both Infer and Gaussian Mixture Models (GMM). Infer.Net looks extensive, thanks for the effort on it.&amp;nbsp;I am going to use it in a novel application.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At a glance, I thought that a GMM for a set of (random) observations could be obtained within the Infer.Net. I obtained these random observations from a system; but when I started going through the API, I felt quite lost.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is there an easy starting point to obtain a GMM for random observations with unknown distribution?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Belief propagation with Infer.net</title><link>http://community.research.microsoft.com/forums/thread/7156.aspx</link><pubDate>Sun, 18 Oct 2009 04:33:15 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7156</guid><dc:creator>amchiclet</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7156.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7156</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m new to both belief propagation and Infer.net, so if my questions don&amp;#39;t make sense, please point me in a good direction to understand the matter better which leads to asking better questions.&lt;/p&gt;
&lt;p&gt;I have this algorithm on paper.&lt;/p&gt;
&lt;p&gt;There are&lt;br /&gt;1) a probability distribution function&lt;br /&gt;2) a psi function&lt;br /&gt;3) a phi function&lt;br /&gt;4) a set of nodes structured as a tree&lt;br /&gt;5) messages between the nodes all initialized to 1&lt;/p&gt;
&lt;p&gt;From what I understand, we update the messages until they &amp;quot;saturate&amp;quot;. This is called belief propagation, right?&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t really know where to start modeling this structure in Infer.net because it seems like&lt;br /&gt;1) the probability distribution function doesn&amp;#39;t look like a standard one like beta, gaussian, etc. It uses products of phi&amp;#39;s and psi&amp;#39;s to some extent&lt;br /&gt;2) I don&amp;#39;t know how I would go about implementing the psi and phi functions&lt;br /&gt;3) I&amp;#39;m not quite sure what variable I want to infer&lt;br /&gt;4) the inference engine will use the belief propagation algorithm, and infer() will be called once. What if I need to see the message updates between each loop?&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve seen http://community.research.microsoft.com/forums/p/2434/3726.aspx#3726 and I think that an easy example like that will help me understand the best.&lt;/p&gt;
&lt;p&gt;Thank you for your help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>MRF and Infer.NET</title><link>http://community.research.microsoft.com/forums/thread/7154.aspx</link><pubDate>Sat, 17 Oct 2009 15:27:40 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7154</guid><dc:creator>hr0nix</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7154.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7154</wfw:commentRss><description>&lt;p&gt;Can you please advice how one can model Markov random field in Infer.NET? I&amp;#39;d like to implement a simple image segmentation algorithm, but I&amp;#39;m really unsure about the way of specifying&amp;nbsp;clique potentials in the model.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SharedVariableArray</title><link>http://community.research.microsoft.com/forums/thread/7055.aspx</link><pubDate>Sun, 04 Oct 2009 04:50:50 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:7055</guid><dc:creator>freddycct</dc:creator><slash:comments>1</slash:comments><comments>http://community.research.microsoft.com/forums/thread/7055.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=7055</wfw:commentRss><description>&lt;p&gt;Hi John,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for your reply&lt;/p&gt;
&lt;p&gt;how do I convert this array here to a SharedVariableArray?&lt;/p&gt;
&lt;p&gt;VariableArray&amp;lt;Vector&amp;gt; phi = Variable.Array&amp;lt;Vector&amp;gt;(topicsNumRange);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>infer.net error on mono</title><link>http://community.research.microsoft.com/forums/thread/6870.aspx</link><pubDate>Mon, 14 Sep 2009 10:37:54 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6870</guid><dc:creator>hrotsos</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6870.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6870</wfw:commentRss><description>&lt;p&gt;I am currently trying to develop a simple bayesian classifier. I run approximately (generally I have a couple of function that break the inference process in small steps- db object is a simple interface to the database that return int[] on all functions mentioned here ) the following code:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Variable&amp;lt;Vector&amp;gt; modelClassDistribution; &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VariableArray&amp;lt;Vector&amp;gt;[] modelParams; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int tmp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Infer.NET range for classes. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Range modelClassRange = new Range(this.db.getClassCount());&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Put a Dirichlet prior on the class distribution. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arrClassDist = this.db.getClassDistribution(this.trainDataset); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (tmp = 0; tmp &amp;lt; arrClassDist.Length; tmp++) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arrClassDist[tmp] += 1.0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; modelClassDistribution = Variable.Dirichlet(modelClassRange, arrClassDist); &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; this.INT_FIELDS.Length; i++) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.modelParams[ i ] = Variable.Array&amp;lt;Vector&amp;gt;(modelClassRange); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arrFeatDist = this.db.getScalarFeatureDistribution(this.trainDataset, i); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dir = new Dirichlet[arrFeatDist.Length]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (tmp = 0; tmp &amp;lt; arrFeatDist.Length; tmp++) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (j = 0; j &amp;lt; arrFeatDist[tmp].Length; j++) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arrFeatDist[tmp][j] += 1.0; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dir[tmp] = new Dirichlet(arrFeatDist[tmp]); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prior = Variable.Constant(dir, modelClassRange); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.ForEach(modelClassRange)) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.modelParams[ i ][modelClassRange] = Variable.Random&amp;lt;Vector, Dirichlet&amp;gt;(prior[modelClassRange]); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int numTestpoints =&amp;nbsp; 10;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Infer.NET range for the datapoints. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Range testDataRange = new Range(numTestpoints); &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VariableArray&amp;lt;int&amp;gt; testClasses = Variable.Array&amp;lt;int&amp;gt;(testDataRange); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VariableArray&amp;lt;int&amp;gt;[] testFeat = new VariableArray&amp;lt;int&amp;gt;[this.INT_FIELDS.Length]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; this.INT_FIELDS.Length; i++) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; testFeat[ i ] = Variable.Array&amp;lt;int&amp;gt;(testDataRange); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Infer.NET variable array for the labels. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.ForEach(testDataRange)) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; testClasses[testDataRange] = Variable.Discrete(modelClassDistribution); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; this.INT_FIELDS.Length; i++) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.ForEach(testDataRange)) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.Switch(testClasses[testDataRange])) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; testFeat[ i ][testDataRange] = Variable.Discrete(this.modelParams[ i ][testClasses[testDataRange]]); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; this.field_count; i++) { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; testFeat[ i ].ObservedValue = this.db.getFeatureData(i); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dist = ie.Infer&amp;lt;Discrete[]&amp;gt;(testClasses);&lt;/p&gt;
&lt;p&gt;And I get the following error:&lt;/p&gt;
&lt;p&gt;Compiling model...&lt;br /&gt;** (simpleBayes/bin/Debug/simpleBayes.exe:28682): WARNING **: Missing method System.Collections.Generic.ICollection`1.Contains in assembly /auto/homes/cr409/workspace/FlowClassifier/simpleBayes/simpleBayes/bin/Debug/Infer.Compiler.dll token a00007e&lt;br /&gt;&lt;br /&gt;Unhandled Exception: System.TypeLoadException: A type load exception has occurred.&lt;br /&gt;&amp;nbsp; at #Bd.#QS.ConvertExpressionStatement (IBlockStatement bs, IExpressionStatement ies) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.DoConvertStatement (IBlockStatement bs, IStatement ist) [0x00000] &lt;br /&gt;&amp;nbsp; at #Bd.#QS.DoConvertStatement (IBlockStatement bs, IStatement ist) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.ConvertStatement (IBlockStatement bs, IStatement ist, System.Object key) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.ConvertBlock (IBlockStatement outputBlock, IBlockStatement inputBlock, System.Object key) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.ConvertMethodBody (IMethodDeclaration md, IMethodDeclaration imd) [0x00000] &lt;br /&gt;&amp;nbsp; at #Bd.#QS.ConvertMethodBody (IMethodDeclaration md, IMethodDeclaration imd) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.ConvertMethod (IMethodDeclaration md, IMethodDeclaration imd) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.DoConvertMethod (IMethodDeclaration imd, System.Object key) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.ConvertMethods (ITypeDeclaration td, ITypeDeclaration itd) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.ConvertType (System.Object owner, ITypeDeclaration td, ITypeDeclaration itd) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CopyTransform.Transform (ITypeDeclaration itd) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.CodeTransformer.TransformToDeclaration (ITypeDeclaration typeDecl) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Transforms.TransformerChain.TransformToDeclaration (ITypeDeclaration itd, MicrosoftResearch.Transforms.AttributeRegistry`2 inputAttributes) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Infer.ModelCompiler.CompileWithoutParams (ITypeDeclaration itd, System.Reflection.MethodBase method, MicrosoftResearch.Transforms.AttributeRegistry`2 inputAttributes) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Infer.Models.ModelBuilder.Compile (MicrosoftResearch.Infer.InferenceEngine engine, Boolean checkParamsAreSet) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Infer.InferenceEngine.GetCompiledInferenceAlgorithm (IEnumerable`1 vars, Boolean checkParamsAreSet, Boolean inferOnlySpecifiedVars) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Infer.InferenceEngine.InferAll (Boolean inferOnlySpecifiedVars, IEnumerable`1 vars) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Infer.InferenceEngine.Infer (IVariable var) [0x00000] &lt;br /&gt;&amp;nbsp; at MicrosoftResearch.Infer.InferenceEngine.Infer[Object] (IVariable var) [0x00000] &lt;br /&gt;&amp;nbsp; at simpleBayes.Program.testModel () [0x00000] &lt;br /&gt;&amp;nbsp; at simpleBayes.Program.run () [0x00000] &lt;br /&gt;&amp;nbsp; at simpleBayes.Program.Main (System.String[] args) [0x00000] &lt;/p&gt;
&lt;p&gt;Does this error comes from my code or is it an error on mono? The same code ruyns perfectly on Visual Studio, but I need to run this program on a linux platform.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>dirichlet with non uniform prior</title><link>http://community.research.microsoft.com/forums/thread/6719.aspx</link><pubDate>Thu, 20 Aug 2009 09:39:49 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6719</guid><dc:creator>freddycct</dc:creator><slash:comments>1</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6719.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6719</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hi, I try to create an array of dirichlet distribution with non uniform priors but it wouldn&amp;#39;t compile at all with these errors. Please help me. Thanks all.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Error&lt;span&gt;	&lt;/span&gt;1&lt;span&gt;	&lt;/span&gt;The best overloaded method match for &amp;#39;MicrosoftResearch.Infer.Models.Variable.Dirichlet(double[])&amp;#39; has some invalid arguments&lt;span&gt;	&lt;/span&gt;C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\CPT\CPT\Program.cs&lt;span&gt;	&lt;/span&gt;38&lt;span&gt;	&lt;/span&gt;44&lt;span&gt;	&lt;/span&gt;CPT&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;Error&lt;span&gt;	&lt;/span&gt;2&lt;span&gt;	&lt;/span&gt;Argument &amp;#39;1&amp;#39;: cannot convert from &amp;#39;MicrosoftResearch.Infer.Models.Variable&amp;lt;double[]&amp;gt;&amp;#39; to &amp;#39;double[]&amp;#39;&lt;span&gt;	&lt;/span&gt;C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects\CPT\CPT\Program.cs&lt;span&gt;	&lt;/span&gt;38&lt;span&gt;	&lt;/span&gt;64&lt;span&gt;	&lt;/span&gt;CPT&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;static void Main(string[] args)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Range two = new Range(2).Named(&amp;quot;two&amp;quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Range five = new Range(5).Named(&amp;quot;five&amp;quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VariableArray2D&amp;lt;Vector&amp;gt; behaviour = Variable.Array&amp;lt;Vector&amp;gt;(two, five);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double[,][] alpha = new double[,][] { {&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 1, 0, 0, 0, 0 },&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 2, 1, 0, 0, 0 },&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 3, 2, 1, 0, 0 },&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 4, 3, 2, 1, 0 },&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 5, 4, 3, 2, 1 }&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; },&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 1, 2, 3, 4, 5 },&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 0, 1, 2, 3, 4 },&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 0, 0, 1, 2, 3 },&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 0, 0, 0, 1, 2 },&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new double[]{ 0, 0, 0, 0, 1 }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VariableArray2D&amp;lt;double[]&amp;gt; alph = Variable.Constant&amp;lt;double[]&amp;gt;(alpha, two, five).Named(&amp;quot;alph&amp;quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.ForEach(two))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.ForEach(five))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;behaviour[two, five] = Variable.Dirichlet( alph[two, five] );&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(&amp;quot;Press any key to exit.&amp;quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.Console.ReadKey();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Need help for a Bayesian Network Code</title><link>http://community.research.microsoft.com/forums/thread/6675.aspx</link><pubDate>Fri, 14 Aug 2009 06:25:16 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6675</guid><dc:creator>freddycct</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6675.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6675</wfw:commentRss><description>&lt;p&gt;
&lt;div&gt;
&lt;p&gt;&lt;a href="http://community.research.microsoft.com/cfs-file.ashx/__key/CommunityServer.Discussions.Components.Files/116/0361.WOT.png"&gt;&lt;img src="http://community.research.microsoft.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Discussions.Components.Files/116/0361.WOT.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hi, I have the above Bayesian Network and I need some help for my code.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;s has 5 discrete states, and follows the distribution defined by alpha&lt;/p&gt;
&lt;p&gt;t has 2 discrete states, with beta prior&lt;/p&gt;
&lt;p&gt;q has 5 discrete states with theta as dirichlet prior&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;static void Main(string[] args)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Range two = new Range(2);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Range five = new Range(5);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Variable&amp;lt;double&amp;gt; beta = Variable.Beta(1, 1);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Variable&amp;lt;bool&amp;gt; t = Variable.Bernoulli(beta);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;double[] prior = { 1, 1, 1, 1, 1 };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;VariableArray2D&amp;lt;Vector&amp;gt; alpha = Variable.Array&amp;lt;Vector&amp;gt;(two, five);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Variable&amp;lt;Vector&amp;gt; theta = Variable.Dirichlet(prior);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Variable&amp;lt;int&amp;gt; q = Variable.Discrete(five, theta);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.ForEach(two))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.ForEach(five))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;alpha[two, five] = Variable.Dirichlet(prior);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Breaking Symmetry&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Vector denseBeta = new Vector(5, 10.0);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dirichlet dirich = new Dirichlet(denseBeta);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Dirichlet[,] initAlpha = new Dirichlet[2,5];&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 0; i &amp;lt; 2; i++) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(int j=0;j&amp;lt;5;j++)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;initAlpha[i,j] = new Dirichlet(dirich.Sample());&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;alpha.InitialiseTo(Distribution&amp;lt;Vector&amp;gt;.Array(initAlpha));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Variable&amp;lt;int&amp;gt; s;// = Variable.New&amp;lt;int&amp;gt;();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.If(t))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.Switch(q))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//s.SetTo(Variable.Discrete( alpha[Variable.Constant&amp;lt;int&amp;gt;(1),q] ));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s = Variable.Discrete(alpha[Variable.Constant&amp;lt;int&amp;gt;(1), q]);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.IfNot(t))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;using (Variable.Switch(q))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//s.SetTo(Variable.Discrete(alpha[Variable.Constant&amp;lt;int&amp;gt;(0), q]));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s = Variable.Discrete(alpha[Variable.Constant&amp;lt;int&amp;gt;(0), q]);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;s.ObservedValue = 4;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;InferenceEngine engine = new InferenceEngine();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//Console.WriteLine(engine.Infer(beta));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(engine.Infer(alpha));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(engine.Infer(theta));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(engine.Infer(t));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(engine.Infer(q));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(&amp;quot;Press any key to exit.&amp;quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.Console.ReadKey();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Are my codes correct? The parameters don&amp;#39;t seem to change at all after inference&lt;/p&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Adding a new factor</title><link>http://community.research.microsoft.com/forums/thread/6666.aspx</link><pubDate>Thu, 13 Aug 2009 11:29:23 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6666</guid><dc:creator>julia</dc:creator><slash:comments>0</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6666.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6666</wfw:commentRss><description>&lt;p&gt;Sorry, I just got it. I was hoping to do it directly in the Factor class, but a new class has to be created. I had tried, but an invisible typo had made it bug. It all works now. My apology.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Adding a factor</title><link>http://community.research.microsoft.com/forums/thread/6665.aspx</link><pubDate>Thu, 13 Aug 2009 10:13:53 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6665</guid><dc:creator>julia</dc:creator><slash:comments>0</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6665.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6665</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I am trying to add a factor to infer.net but it seems that I am missing something.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1) In Factor.cs I have added&lt;/p&gt;
&lt;p&gt;public static double MyFactor (double a, double b, double c) { return (a-b)*(a+b-c) ; }&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2) I created a file MyFactorVmpOp.cs containing&lt;/p&gt;
&lt;p&gt;namespace MicrosoftResearch.Infer.Factors {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [ FactorMethod ( typeof(Factor), &amp;quot;MyFactor&amp;quot;, typeof(double), typeof(double), typeof(double) ) ]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static class MyFactorVmpOp {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Gaussian MyFactorAverageLogarithm( Gaussian A, Gaussian B, Gaussian C ){ };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Gaussian AAverageLogarithm( Gaussian MyFactor, Gaussian B, Gaussian C ){ };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Gaussian BAverageLogarithm( Gaussian MyFactor, Gaussian A, Gaussian C ){ };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static Gaussian CAverageLogarithm( Gaussian MyFactor, Gaussian A, Gaussian B ){ };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3) In the file containing the main script, I have added the line&lt;/p&gt;
&lt;p&gt;[assembly: MicrosoftResearch.Infer.Factors.HasMessageFunctions]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4) I call the factor using&lt;/p&gt;
&lt;p&gt;Variable&amp;lt;double&amp;gt; x = Variable&amp;lt;double&amp;gt;.Factor(Factor.MyFactor, x,y,w);&lt;/p&gt;
&lt;p&gt;but at compilation it says &amp;#39;MicrosoftResearch.Factors.Factor&amp;#39; does not contain a definition for &amp;#39;MyFactor&amp;#39;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It seems that it doesn&amp;#39;t take into account the change in Factor.cs. I have read the help on that subject but there doesn&amp;#39;t seem to be anything else to do... any idea?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks, Julia&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>New release: Infer.NET 2.3 beta 1</title><link>http://community.research.microsoft.com/forums/thread/6664.aspx</link><pubDate>Wed, 12 Aug 2009 23:07:42 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6664</guid><dc:creator>jwinn</dc:creator><slash:comments>0</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6664.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6664</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/infernet/download.aspx"&gt;The latest beta release&lt;/a&gt; includes new factors (Logistic, Binomial)&lt;strong&gt;, &lt;/strong&gt;more efficient inference, improved support for F#, IronPython and Mono, partial support for parallel inference and Gibbs sampling and &lt;a href="http://community.research.microsoft.com/forums/docs/Release%20change%20history.aspx"&gt;more&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;See &lt;a href="http://community.research.microsoft.com/blogs/infernet_team_blog/archive/2009/08/11/infer-net-2-3-beta-1-released.aspx"&gt;this blog post&lt;/a&gt; for details and, as ever,&amp;nbsp;post any questions you have&amp;nbsp;here on the forum!&lt;/p&gt;
&lt;p&gt;The Infer.NET team&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>problem with Variable.Array&lt;VectorGaussian&gt;</title><link>http://community.research.microsoft.com/forums/thread/6529.aspx</link><pubDate>Wed, 29 Jul 2009 21:06:31 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6529</guid><dc:creator>julia</dc:creator><slash:comments>1</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6529.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6529</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;I am struggling with these&amp;nbsp;four lines of code, I don&amp;#39;t understand why I am getting an error. &lt;/p&gt;
&lt;p&gt;******************************************************&lt;/p&gt;
&lt;p&gt;VariableArray&amp;lt;VectorGaussian&amp;gt; D = Variable.Array&amp;lt;VectorGaussian&amp;gt;(classRange);&lt;br /&gt;D[classRange] = Variable.New&amp;lt;VectorGaussian&amp;gt;().ForEach(classRange);&lt;/p&gt;
&lt;p&gt;VariableArray&amp;lt;Vector&amp;gt; x = Variable.Array&amp;lt;Vector&amp;gt;(classRange).Named(&amp;quot;x&amp;quot;);&lt;br /&gt;x[classRange] = Variable.Random&amp;lt;Vector, VectorGaussian&amp;gt;(D[classRange]);&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;gives me an error at the execution of line 2:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unhandled Exception: System.InvalidOperationException: vVectorGaussian[ ]1[classRange] was not defined in this condition block.&lt;/p&gt;
&lt;p&gt;******************************************************&lt;/p&gt;
&lt;p&gt;I&amp;#39;m guessing the problem comes from the fact that D is not properly initialized... but how can I define it other than what I have done?&lt;/p&gt;
&lt;p&gt;Is there another way to store an array of distributions? My intention was to update the &amp;quot;observed value&amp;quot; of the distribution array D with the results of the inference, using&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D.ObservedValue = Distribution.ToArray&amp;lt;VectorGaussian[ ]&amp;gt;( (IDistribution&amp;lt;Vector[ ]&amp;gt;) inferred[0])&lt;/p&gt;
&lt;p&gt;If I store D as an array of VectorGaussian instead of a VariableArray, then I am in trouble for the indexing, as x&amp;nbsp;must be&amp;nbsp;indexed by a range and D by an integer...&lt;/p&gt;
&lt;p&gt;Any help welcome! Many thanks,&lt;/p&gt;
&lt;p&gt;Julia&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Infer.NET: Bayesian logistic regression</title><link>http://community.research.microsoft.com/forums/thread/5325.aspx</link><pubDate>Thu, 14 May 2009 14:23:54 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:5325</guid><dc:creator>Ferrum</dc:creator><slash:comments>23</slash:comments><comments>http://community.research.microsoft.com/forums/thread/5325.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=5325</wfw:commentRss><description>&lt;p&gt;Does Infer.NET have factors for Bayesian logistic regression? If&amp;nbsp;there are some in-house factors for VMP,&amp;nbsp;do&amp;nbsp;they use Tommi Jaakkola&amp;#39;s bound with auxiliary variational parameters?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Specifying large Conditional Probability Tables of discrete events</title><link>http://community.research.microsoft.com/forums/thread/6643.aspx</link><pubDate>Tue, 11 Aug 2009 14:41:42 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6643</guid><dc:creator>freddycct</dc:creator><slash:comments>3</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6643.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6643</wfw:commentRss><description>&lt;p&gt;Suppose I have 3 random variables x, y and z. Each random variable can take 10 possible states. and let&lt;/p&gt;
&lt;p&gt;x depend on y and z, hence, I need to specify the conditional probability table of P(x | y, z )&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If I specify the conditional probabilities using the &amp;quot;using Variable.if(case) .... &amp;quot; statements, then I need to type alot of statements.&lt;/p&gt;
&lt;p&gt;I understand there is a ifblock to use but there&amp;#39;s no simple example to illustrate how to use it.&lt;/p&gt;
&lt;p&gt;Is there any help on this or a simple work around?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Probability Density Function, Integration, Area under Curve, Continuous Random Variable</title><link>http://community.research.microsoft.com/forums/thread/6641.aspx</link><pubDate>Tue, 11 Aug 2009 05:44:53 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6641</guid><dc:creator>freddycct</dc:creator><slash:comments>1</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6641.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6641</wfw:commentRss><description>&lt;p&gt;Hi,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So I define a Beta Distribution in this way.&lt;/p&gt;
&lt;p&gt;Variable&amp;lt;double&amp;gt; f = Variable.Beta(a, b);&lt;/p&gt;
&lt;p&gt;which mathematically means&lt;/p&gt;
&lt;p&gt;p(f) = ((a+b - 1) ! / (a-1)!) * (b-1)! * f ^(a-1) * (1-f)^(b-1)&lt;/p&gt;
&lt;p&gt;My question is, how do i obtain the value for P( c &amp;lt; f &amp;lt; d ) ?&lt;/p&gt;
&lt;p&gt;What I really need is an integration function of the beta density function.&lt;/p&gt;
&lt;p&gt;Thanks for reading.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How do I create SharedVariable Arrays for Dirichlet distributed r.v.s?</title><link>http://community.research.microsoft.com/forums/thread/4971.aspx</link><pubDate>Tue, 17 Mar 2009 16:15:00 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:4971</guid><dc:creator>laura</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/4971.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=4971</wfw:commentRss><description>&lt;p&gt;I am trying to do inference in batches using probabilistic submodels with shared variables.&lt;/p&gt;
&lt;p&gt;I implemented an LDA style topic model. Now I want to process batches of documents to learn topic-characteristic word-distributions (p(word | topic) a.k.a. phi) that explain the whole document collection well. phi is a multinomial parameter drawn from a symmetric Dirichlet distribution we assume as given.&lt;/p&gt;
&lt;p&gt;Since the number of topics is unknown during model compilation, I tried to create an array of shared variables (to be precise a &lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/infernet/codedoc/html/T_MicrosoftResearch_Infer_Models_SharedVariableArray_1.htm"&gt;SharedVariableArray&lt;/a&gt;) for maintaining the messages of phi.&lt;/p&gt;
&lt;p&gt;I am stuck in constructing this SharedVariable array...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The documentation says&lt;/p&gt;
&lt;pre&gt;&lt;span class="keyword"&gt;public&lt;/span&gt; &lt;span class="keyword"&gt;static&lt;/span&gt; &lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/infernet/codedoc/html/T_MicrosoftResearch_Infer_Models_SharedVariableArray_1.htm"&gt;SharedVariableArray&lt;/a&gt;&amp;lt;DomainType&amp;gt; &lt;span class="identifier"&gt;Random&lt;/span&gt;&amp;lt;DistributionArrayType&amp;gt;(&lt;br /&gt;	&lt;a href="http://research.microsoft.com/en-us/um/cambridge/projects/infernet/codedoc/html/T_MicrosoftResearch_Infer_Models_Range.htm"&gt;Range&lt;/a&gt; &lt;span class="parameter"&gt;range&lt;/span&gt;,&lt;br /&gt;	DistributionArrayType &lt;span class="parameter"&gt;prior&lt;/span&gt;&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;I assume that in my case the DomainType is Vector, and the DistributionType is probably a DistributionRefArray with T Dirichlet. &lt;br /&gt;The following code compiles&lt;br /&gt;&lt;br /&gt;    let prior = new DistributionRefArray&amp;lt;Dirichlet,Vector&amp;gt;((RandomDirichletArray cRange.SizeAsInt vNum):Dirichlet[])&lt;br /&gt;    let phiShared = SharedVariable&amp;lt;Vector&amp;gt;.Random&amp;lt;DistributionRefArray&amp;lt;Dirichlet,Vector&amp;gt;&amp;gt;(cRange,prior )&lt;br /&gt;    let phi = phiShared.GetCopyFor(model)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But I get an error message complaining&lt;br /&gt;&lt;br /&gt;MessageTransform failed with 4 error(s) and 0 warning(s):&lt;br /&gt;System.Double is not an array type.&lt;br /&gt;  System.Double is not an array type. in&lt;br /&gt;Vector sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_cRange_cond_f_uRange__sRange__marginal&lt;br /&gt;System.Double is not an array type.&lt;br /&gt;  System.Double is not an array type. in&lt;br /&gt;Vector sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_cRange_cond_f_uRange__sRange_&lt;br /&gt;  Argument type could not be found for argument &amp;#39;Def&amp;#39; in&lt;br /&gt;sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_cRange_cond_f_uRange__sRange__uses = Factor.ReplicateWithMarginal&amp;lt;Vector&amp;gt;(sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_cRange_cond_f_uRange__sRange_, sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_cRange_cond_f_uRange__sRange__marginal)&lt;br /&gt;  Argument type could not be found for argument &amp;#39;enterOne&amp;#39; in&lt;br /&gt;sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_cRange_cond_f_uRange__sRange_ = Gate.EnterOne&amp;lt;Vector&amp;gt;(f_cases_rep0_uses[0][cRange], sharedVector__DistributionRefArrayLtDirichlet_VectorGt0_rep0_rep0[sRange][cRange], cRange)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Any ideas?&lt;br /&gt;&lt;br /&gt;Laura&lt;br /&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>multinomial distribution?</title><link>http://community.research.microsoft.com/forums/thread/4771.aspx</link><pubDate>Tue, 03 Mar 2009 10:13:29 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:4771</guid><dc:creator>Junming Huang</dc:creator><slash:comments>5</slash:comments><comments>http://community.research.microsoft.com/forums/thread/4771.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=4771</wfw:commentRss><description>&lt;p&gt;Hi, I&amp;#39;m a beginner of Infer.NET. I&amp;#39;ve got a problem when trying to model a multinomial distribution with Infer.NET: I cannot find multinomial distribution neither in Infer.Distributions nor in any documents. Is multinomial distribution&amp;nbsp;not a built-in one? If not, it seems I have to manully realize it in code.&lt;/p&gt;
&lt;p&gt;Thanks very much.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Discrete point masses with point 4 and 3 dimensions</title><link>http://community.research.microsoft.com/forums/thread/4795.aspx</link><pubDate>Tue, 03 Mar 2009 18:58:17 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:4795</guid><dc:creator>laura</dc:creator><slash:comments>1</slash:comments><comments>http://community.research.microsoft.com/forums/thread/4795.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=4795</wfw:commentRss><description>&lt;p&gt;In case you add some checks for ISO/OSI layer 8 errors (aka user-error):&lt;/p&gt;
&lt;p&gt;I just figured (by accident) that I can create dirichlet point masses with three dimensions, where the point is set to 4.&lt;/p&gt;
&lt;p&gt;Laura&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Stuck with "Replace Expression: #i.#Qb"  or  "Can only index by loop variables"</title><link>http://community.research.microsoft.com/forums/thread/4454.aspx</link><pubDate>Fri, 06 Feb 2009 14:30:32 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:4454</guid><dc:creator>laura</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/4454.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=4454</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 class="ForumPostTitle"&gt;Trying to follow Tom&amp;#39;s hints in the thread on &amp;quot;Work around plates by manual variable synchronization&amp;quot;, I got stuck in a &amp;quot;Not Implemented Exception: Unhandled expression type in ReplaceExpression ( ): #i.#Qb&amp;quot;. If factor graph and transformbrowser is enabled, this error message occurs between the two, but I have no idea what it is trying to tell me... &lt;/h4&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The model maintains one array of edgeLabel variables, indexed by eRange. Each edgeLabel is drawn from a Discrete distribution.&lt;/p&gt;&lt;p&gt;Each user has an array over his friends.&amp;nbsp; From this I creates a Constant Array called edgeIndexData which points to the edgeIndex of that friendship. I.e. if the edge between user 0 and his second friend has index 5, then edgeIndexData.[0].[2]=5. &lt;/p&gt;&lt;p&gt;For each user u do&lt;/p&gt;&lt;p&gt;- draw a currentFriend&amp;nbsp; ~ some distribution&lt;/p&gt;&lt;p&gt;-&amp;nbsp; currentEdge = edgeIndex.[ u].[f]&amp;nbsp;&amp;nbsp; // deterministic, given f&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-&amp;nbsp; currentLabel = edgeLabel2.[currentEdge]&lt;/p&gt;&lt;p&gt;- do something with the label&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I assume that the problem is related to using the right switches. The following code wraps currentFriend, currentEdge and currentLabel in a switch, and gets the exception.&lt;/p&gt;&lt;p&gt;&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.[uRange].[sRange] &amp;lt;- Variable.Discrete(psi.[uRange]).Attrib(new ValueRange(fVaryRange))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let currentFriend = f.[uRange].[sRange]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.Switch(currentFriend)) (fun _ -&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let currentEdge = (edgeIndexData.[uRange].[currentFriend]).Attrib(new ValueRange(eRange))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.Switch(currentEdge)) (fun _ -&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let currentLabel = ((edgeLabel2.[currentEdge])).Attrib(new ValueRange(cRange))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Variable.Switch(currentLabel)) (fun _ -&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // do something with currentLabel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Then I was thinking that the Switch around currentEdge is sort of unnecessary, since the relation between currentFriend and currentEdge is deterministic. Omitting this switch I get the following error.&lt;/p&gt;&lt;p&gt;ChannelTransform failed with 2 error(s) and 0 warning(s):&lt;br /&gt;&amp;nbsp; Can only index by loop variables, not &amp;#39;uRange&amp;#39;. in&lt;br /&gt;vint____5[uRange] = Factor.GetItems&amp;lt;int&amp;gt;(edgeLabel2_rep0[uRange], edgeIndexData[uRange])&lt;br /&gt;&amp;nbsp; Can only index by loop variables, not &amp;#39;uRange&amp;#39;. in&lt;br /&gt;vint____5_cases = Gate.CasesInt(vint____5[uRange][fVaryRange]) &lt;br /&gt;&lt;/p&gt;&lt;p&gt;I checked that uRange and fVaryRange are outer loops of these statements. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;vint____5 could not be named, but it containes the edgelabels of a user&amp;#39;s friends.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for(int uRange = 0; uRange&amp;lt;vint0; uRange++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; vint____5[uRange] = Factor.GetItems&amp;lt;int&amp;gt;(edgeLabel2, edgeIndexData[uRange]);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Any ideas?&lt;/p&gt;&lt;p&gt;Laura &lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Bayesian statistic theory question</title><link>http://community.research.microsoft.com/forums/thread/6543.aspx</link><pubDate>Fri, 31 Jul 2009 06:59:31 GMT</pubDate><guid isPermaLink="false">eaca9afb-5ccf-4c08-b3f3-369c7e6f1a06:6543</guid><dc:creator>freddycct</dc:creator><slash:comments>2</slash:comments><comments>http://community.research.microsoft.com/forums/thread/6543.aspx</comments><wfw:commentRss>http://community.research.microsoft.com/forums/commentrss.aspx?SectionID=116&amp;PostID=6543</wfw:commentRss><description>&lt;p&gt;Hi, I am a beginner in the Bayesian approach of machine learning. I have read some literature on Bayesian Inference and parameter learning. I have a few queries that I hope to find an answer to.&lt;/p&gt;
&lt;p&gt;In the case of coin toss, we often use a Beta Distribution as a conjugate prior for inferring the probability of the next coin toss landing on heads assuming that we have observed a series of coin tosses. I understand that Beta Distribution has a convenient property where the posterior is also a Beta Distribution.&lt;/p&gt;
&lt;p&gt;1) My question is how did the Beta Distribution come about?&amp;nbsp;How do we derive the Beta Distribution? I know that wikipedia has a derivation of Dirichlet Distribution using Gamma Distribution. But that is not intuitive and fundamental enough.&lt;/p&gt;
&lt;p&gt;2) Can we use a Binomial Distribution as a prior for bayesian inference and prediction?&lt;/p&gt;
&lt;p&gt;3) Finally, I read that discrete random variables should not have continuous random variables as parents. But why do we use Beta Distribution which is a continuous function as parent of a discrete event?&lt;/p&gt;
&lt;p&gt;Pardon me if these questions sound silly. But I really hope to find an answer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>