[jboss-svn-commits] JBL Code SVN: r19331 - labs/jbossrules/contrib/machinelearning/decisiontree/src/dt/tools.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Mar 31 00:11:22 EDT 2008
Author: gizil
Date: 2008-03-31 00:11:22 -0400 (Mon, 31 Mar 2008)
New Revision: 19331
Added:
labs/jbossrules/contrib/machinelearning/decisiontree/src/dt/tools/FactProcessor.java
Log:
hackish working discretization
Added: labs/jbossrules/contrib/machinelearning/decisiontree/src/dt/tools/FactProcessor.java
===================================================================
--- labs/jbossrules/contrib/machinelearning/decisiontree/src/dt/tools/FactProcessor.java (rev 0)
+++ labs/jbossrules/contrib/machinelearning/decisiontree/src/dt/tools/FactProcessor.java 2008-03-31 04:11:22 UTC (rev 19331)
@@ -0,0 +1,62 @@
+package dt.tools;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.ListIterator;
+
+import dt.memory.Domain;
+import dt.memory.Fact;
+import dt.memory.NumericDomain;
+
+public class FactProcessor {
+
+
+ public static Hashtable<Object, List<Fact>> splitFacts_disc(
+ List<Fact> facts, String attributeName, List<?> attributeValues) {
+ Hashtable<Object, List<Fact>> factLists = new Hashtable<Object, List<Fact>>(attributeValues.size());
+ for (Object v : attributeValues) {
+ factLists.put(v, new ArrayList<Fact>());
+ }
+ for (Fact f : facts) {
+ factLists.get(f.getFieldValue(attributeName)).add(f);
+ }
+ return factLists;
+ }
+
+ /* it must work */
+ public static Hashtable<Object, List<Fact>> splitFacts_cont(
+ List<Fact> facts, Domain<?> attributeDomain) {
+ String attributeName = attributeDomain.getName();
+
+ System.out.println("FactProcessor.splitFacts_cont() kimi diziyoruz: "+ attributeName);
+
+ List<Fact> categorization = ((NumericDomain)attributeDomain).getRepresentatives();
+ System.out.println("FactProcessor.splitFacts_cont() haniymis benim repsentativelerim: "+ categorization.size());
+
+ for (Fact f: categorization)
+ System.out.println("FactProcessor.splitFacts_cont() haniymis benim factim: "+ f.getFieldValue(attributeName));
+ Hashtable<Object, List<Fact>> factLists = new Hashtable<Object, List<Fact>>(
+ categorization.size());
+ for (Fact v : categorization) {
+ factLists.put(v, new ArrayList<Fact>());
+ }
+ for (Fact f : facts) {
+ Comparator<Fact> cont_comp = attributeDomain.factComparator();
+ ListIterator<Fact> category_it = categorization
+ .listIterator(categorization.size() - 1);
+ while (category_it.hasPrevious()) {
+ Fact category_fact = category_it.previous();
+
+ if (cont_comp.compare(f, category_fact) < 0) {
+ factLists.get(category_fact.getFieldValue(attributeName))
+ .add(f);
+ }
+ }
+
+ }
+ return factLists;
+ }
+
+}
More information about the jboss-svn-commits
mailing list