You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by td...@apache.org on 2012/11/15 09:21:42 UTC
svn commit: r1409688 - in /mahout/trunk/math/src:
main/java/org/apache/mahout/math/stats/LogLikelihood.java
test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java
Author: tdunning
Date: Thu Nov 15 08:21:41 2012
New Revision: 1409688
URL: http://svn.apache.org/viewvc?rev=1409688&view=rev
Log:
Improved names for arguments of Multi-normal. No functional changes.
Modified:
mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java
mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java
Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java?rev=1409688&r1=1409687&r2=1409688&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java (original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java Thu Nov 15 08:21:41 2012
@@ -121,8 +121,11 @@ public final class LogLikelihood {
* @return The root log-likelihood ratio
*
* <p/>
- * See discussion of raw vs. root LLR at
- * http://www.lucidimagination.com/search/document/6dc8709e65a7ced1/llr_scoring_question
+ * There is some more discussion here:
+ * http://mail-archives.apache.org/mod_mbox/mahout-user/201001.mbox/%3Cc7d45fc71001121120r6b0482aat345014770ed32744@mail.gmail.com%3E
+ *
+ * And see the response to Wataru's comment here:
+ * http://tdunning.blogspot.com/2008/03/surprise-and-coincidence.html
*/
public static double rootLogLikelihoodRatio(long k11, long k12, long k21, long k22) {
double llr = logLikelihoodRatio(k11, k12, k21, k22);
Modified: mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java?rev=1409688&r1=1409687&r2=1409688&view=diff
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java (original)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/stats/LogLikelihoodTest.java Thu Nov 15 08:21:41 2012
@@ -58,12 +58,25 @@ public final class LogLikelihoodTest ext
}
@Test
- public void testRootLogLikelihood() throws Exception {
+ public void testRootLogLikelihood() {
// positive where k11 is bigger than expected.
assertTrue(LogLikelihood.rootLogLikelihoodRatio(904, 21060, 1144, 283012) > 0.0);
// negative because k11 is lower than expected
assertTrue(LogLikelihood.rootLogLikelihoodRatio(36, 21928, 60280, 623876) < 0.0);
+
+ assertEquals(Math.sqrt(2.772589), LogLikelihood.rootLogLikelihoodRatio(1, 0, 0, 1), 0.000001);
+ assertEquals(-Math.sqrt(2.772589), LogLikelihood.rootLogLikelihoodRatio(0, 1, 1, 0), 0.000001);
+ assertEquals(Math.sqrt(27.72589), LogLikelihood.rootLogLikelihoodRatio(10, 0, 0, 10), 0.00001);
+
+ assertEquals(Math.sqrt(39.33052), LogLikelihood.rootLogLikelihoodRatio(5, 1995, 0, 100000), 0.00001);
+ assertEquals(-Math.sqrt(39.33052), LogLikelihood.rootLogLikelihoodRatio(0, 100000, 5, 1995), 0.00001);
+
+ assertEquals(Math.sqrt(4730.737), LogLikelihood.rootLogLikelihoodRatio(1000, 1995, 1000, 100000), 0.001);
+ assertEquals(-Math.sqrt(4730.737), LogLikelihood.rootLogLikelihoodRatio(1000, 100000, 1000, 1995), 0.001);
+
+ assertEquals(Math.sqrt(5734.343), LogLikelihood.rootLogLikelihoodRatio(1000, 1000, 1000, 100000), 0.001);
+ assertEquals(Math.sqrt(5714.932), LogLikelihood.rootLogLikelihoodRatio(1000, 1000, 1000, 99000), 0.001);
}
@Test