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
cs401r_w2016:lab3 [2015/12/23 21:05]
admin
cs401r_w2016:lab3 [2021/06/30 23:42] (current)
Line 6: Line 6:
 a small library of random variable types. a small library of random variable types.
  
 +----
 ====Deliverable:​==== ====Deliverable:​====
  
Line 22: Line 23:
 {{:​cs401r_w2016:​lab3_2d.png?​nolink|}} {{:​cs401r_w2016:​lab3_2d.png?​nolink|}}
  
 +----
 ====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 49:
 </​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 69:
 **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 79:
 * 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 90:
 **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.1450904703.txt.gz · Last modified: 2021/06/30 23:40 (external edit)