You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by ro...@apache.org on 2010/03/11 11:22:35 UTC
svn commit: r921777 - in /lucene/mahout/trunk/core/src:
main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java
main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java
test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java
Author: robinanil
Date: Thu Mar 11 10:22:34 2010
New Revision: 921777
URL: http://svn.apache.org/viewvc?rev=921777&view=rev
Log:
Bug created in the last commit. the id wasn't incrementing in the ParallelFPGrowthReducer
Modified:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java?rev=921777&r1=921776&r2=921777&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/ParallelFPGrowthReducer.java Thu Mar 11 10:22:34 2010
@@ -51,14 +51,10 @@ import org.apache.mahout.math.map.OpenOb
public class ParallelFPGrowthReducer extends Reducer<LongWritable,TransactionTree,Text,TopKStringPatterns> {
- //private final List<Pair<Integer,Long>> fList = new ArrayList<Pair<Integer,Long>>();
-
private final List<String> featureReverseMap = new ArrayList<String>();
private final OpenObjectIntHashMap<String> fMap = new OpenObjectIntHashMap<String>();
- //private final List<String> fRMap = new ArrayList<String>();
-
private final OpenLongObjectHashMap<IntArrayList> groupFeatures = new OpenLongObjectHashMap<IntArrayList>();
private int maxHeapSize = 50;
@@ -113,9 +109,7 @@ public class ParallelFPGrowthReducer ext
int i = 0;
for (Pair<String,Long> e : PFPGrowth.deserializeList(params, "fList", context.getConfiguration())) {
featureReverseMap.add(e.getFirst());
- fMap.put(e.getFirst(), i);
- //fRMap.add(e.getFirst()); // TODO never read?
- //fList.add(new Pair<Integer,Long>(i++, e.getSecond()));
+ fMap.put(e.getFirst(), i++);
}
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java?rev=921777&r1=921776&r2=921777&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/fpm/pfpgrowth/fpgrowth/Pattern.java Thu Mar 11 10:22:34 2010
@@ -129,7 +129,11 @@ public class Pattern implements Comparab
return false;
}
Pattern other = (Pattern) obj;
- return length == other.length && support == other.support && Arrays.equals(pattern, other.pattern);
+ if (length == other.length && support == other.support) {
+ // expensive check done only if length and support matches
+ return Arrays.equals(pattern, other.pattern);
+ }
+ return false;
}
@Override
Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java?rev=921777&r1=921776&r2=921777&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/fpm/pfpgrowth/PFPGrowthTest.java Thu Mar 11 10:22:34 2010
@@ -36,11 +36,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PFPGrowthTest extends MahoutTestCase {
-
+
private static final Logger log = LoggerFactory.getLogger(PFPGrowthTest.class);
-
+
private final Parameters params = new Parameters();
-
+
@Override
protected void setUp() throws Exception {
super.setUp();
@@ -81,26 +81,26 @@ public class PFPGrowthTest extends Mahou
} finally {
writer.close();
}
-
+
}
-
+
public void testStartParallelCounting() throws IOException, InterruptedException, ClassNotFoundException {
log.info("Starting Parallel Counting Test: {}", params.get("maxHeapSize"));
PFPGrowth.startParallelCounting(params);
log.info("Reading fList Test: {}", params.get("maxHeapSize"));
- List<Pair<String, Long>> fList = PFPGrowth.readFList(params);
+ List<Pair<String,Long>> fList = PFPGrowth.readFList(params);
log.info("{}", fList);
assertEquals("[(B,6), (D,6), (A,5), (E,4), (C,3)]", fList.toString());
}
-
+
public void testStartGroupingItems() throws IOException {
log.info("Starting Grouping Test: {}", params.get("maxHeapSize"));
PFPGrowth.startGroupingItems(params);
- Map<String, Long> gList = PFPGrowth.deserializeMap(params, "gList", new Configuration());
+ Map<String,Long> gList = PFPGrowth.deserializeMap(params, "gList", new Configuration());
log.info("{}", gList);
assertEquals("{D=0, E=1, A=0, B=0, C=1}", gList.toString());
}
-
+
public void testStartParallelFPGrowth() throws IOException, InterruptedException, ClassNotFoundException {
log.info("Starting Parallel FPGrowth Test: {}", params.get("maxHeapSize"));
PFPGrowth.startGroupingItems(params);
@@ -108,11 +108,13 @@ public class PFPGrowthTest extends Mahou
PFPGrowth.startParallelFPGrowth(params);
log.info("Starting Pattern Aggregation Test: {}", params.get("maxHeapSize"));
PFPGrowth.startAggregating(params);
- List<Pair<String, TopKStringPatterns>> frequentPatterns = PFPGrowth.readFrequentPattern(params);
- assertEquals("[(A,([B, A],4), ([B, D, A],3), ([B, A, E],3)), (B,([B],6), ([B, D],4), " +
- "([B, A],4), ([B],4)), (C,([B, C],3)), (D,([B, D],4), ([B, D, A],3)), " +
- "(E,([B, A, E],3))]", frequentPatterns.toString());
-
+ List<Pair<String,TopKStringPatterns>> frequentPatterns = PFPGrowth.readFrequentPattern(params);
+ assertEquals("[(A,([A],5), ([D, A],4), ([B, A],4), ([A, E],4)), "
+ + "(B,([B],6), ([B, D],4), ([B, A],4), ([B, D, A],3)), "
+ + "(C,([B, C],3)), "
+ + "(D,([D],6), ([D, A],4), ([B, D],4), ([D, A, E],3)), "
+ + "(E,([A, E],4), ([D, A, E],3), ([B, A, E],3))]", frequentPatterns.toString());
+
}
-
+
}