User Tools

Site Tools


cs401r_w2016:lab3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
cs401r_w2016:lab3 [2015/12/23 21:05]
admin
cs401r_w2016:lab3 [2015/12/23 21:16]
admin
Line 24: Line 24:
 ====Description:​==== ====Description:​====
  
-You must implement seven random variable objects.  ​These should ​all inherit from a base random variable object that supports the following methods:+You must implement seven random variable objects.  ​For each type, you should be able to sample from that distribution,​ and compute the log-likelihood of a particular value. ​ All of your classes ​should inherit from a base random variable object that supports the following methods:
  
 <code python> <code python>
Line 47: Line 47:
 </​code>​ </​code>​
  
-For example, your univariate Gaussian class might look like this:+You don't need to implement the ''​get''​ or ''​propose''​ methods yet.  ​For example, your univariate Gaussian class might look like this:
  
 <code python> <code python>
Line 67: Line 67:
 **Given that framework, you should implement:​** **Given that framework, you should implement:​**
  
-* The following one dimensional,​ continuous valued distributions.  ​For +* The following one dimensional,​ continuous valued distributions.  ​To visualize 
-these, you should also plot the PDF of the random variable on the  +these, you should ​plot a histogram of sampled values, and also plot the PDF of the random variable on the  
-same plotthe curves ​should match. //Note: it is **not** sufficient to let seaborn estimate the PDF using its built-in KDE estimator; you need to plot the true PDF.  In other words, you can't just use seaborn.kdeplot!//​+same axisthey should ​(roughly) ​match. //Note: it is **not** sufficient to let seaborn estimate the PDF using its built-in KDE estimator; you need to plot the true PDF.  In other words, you can't just use seaborn.kdeplot!//​
  
-  * ''​Beta (alpha=1, beta=3)''​+  * ''​Beta (a=1, b=3)''​
   * ''​Poisson (lambda=7)''​   * ''​Poisson (lambda=7)''​
   * ''​Univariate Gaussian (mean=2, variance=3)''​   * ''​Univariate Gaussian (mean=2, variance=3)''​
Line 77: Line 77:
 * The following discrete distributions. ​ For these, plot predicted and * The following discrete distributions. ​ For these, plot predicted and
 empirical histograms side-by-side:​ empirical histograms side-by-side:​
-  * ''​Bernoulli (p=0.7)''​ +  * ''​Bernoulli (p=0.7)'' ​(hint: you may need a uniform random number) 
-  * ''​Multinomial (theta=[0.1, 0.2, 0.7])''​+  * ''​Multinomial (pvals=[0.1, 0.2, 0.7])''​
  
-* The following multidimensional distributions. For these,  +* The following multidimensional distributions. For these, ​use a contour or surface plot to visualize the empirical distribution of samples vs. the PDF: 
-  * Two-dimensional ​Gaussian +  * ''​Multivariate ​Gaussian ​( mean=[2.0,​3.0],​ cov=[[1.0,​0.9],​[0.9,​1.0]] )''​ 
-  * 3-dimensional ​Dirichlet+  * ''​Dirichlet ​( alpha=[ 0.1, 0.2, 0.7 ] )''​
  
 **Important notes:** **Important notes:**
Line 88: Line 88:
 **You //may// use [[http://​docs.scipy.org/​doc/​numpy-1.10.0/​reference/​routines.random.html|numpy.random]] to sample from the appropriate distributions.** **You //may// use [[http://​docs.scipy.org/​doc/​numpy-1.10.0/​reference/​routines.random.html|numpy.random]] to sample from the appropriate distributions.**
  
-**You may //not// use any existing code to calculate the log-likelihoods.**+**You may //not// use any existing code to calculate the log-likelihoods.** ​ But you can, of course, use any online resources or the book to find the appropriate definition of each PDF.
  
 ====Hints:​==== ====Hints:​====
cs401r_w2016/lab3.txt · Last modified: 2021/06/30 23:42 (external edit)