Ejemplo n.º 1
0
  private void writeToFile(String outName)
      throws FileNotFoundException, UnsupportedEncodingException {
    String minSupport = itemsetsSupport.get(findSmallerValue(itemsetsSupport));
    String minConfidence = findMinConfidence();
    PrintWriter writer = new PrintWriter(outName, "UTF-8");
    // Writting Info
    writer.println(
        "<PMML xmlns=\"http://www.dmg.org/PMML-4_1\" version=\"4.1\">\n"
            + "  <Header copyright=\"www.dmg.org\" description=\"Undefined\"/>\n"
            + "  <AssociationModel functionName=\"associationRules\" numberOfTransactions=\"Undefined\" numberOfItems=\""
            + items.size()
            + "\" minimumSupport=\""
            + minSupport
            + "\" minimumConfidence=\""
            + minConfidence
            + "\" numberOfItemsets=\""
            + itemsets.size()
            + "\" numberOfRules=\""
            + rules.size()
            + "\">\n"
            + "");

    writer.println("\n\n<!-- Items -->");
    // Write items
    for (Map.Entry<String, Integer> entry : items.entrySet()) {
      String key = entry.getKey();
      Integer id = entry.getValue();
      writer.println("<Item id=\"" + id + "\" value=\"" + key + "\"/>");
    }

    writer.println("\n\n<!-- Itemsets -->");
    // Write itemsets
    for (Map.Entry<String, ArrayList<Integer>> entry : itemsets.entrySet()) {
      String key = entry.getKey();
      ArrayList<Integer> ids = entry.getValue();
      String support = itemsetsSupport.get(key);
      int n = ids.size() - 1;
      // First element is the itemset id
      writer.println(
          "<Itemset id=\""
              + ids.get(0)
              + "\" support=\""
              + support
              + "\" numberOfItems=\""
              + n
              + "\">");
      for (int i = 1; i < ids.size(); i++) {
        Integer id = ids.get(i);
        writer.println("<ItemRef itemRef=\"" + id + "\"/>");
      }
      writer.println("</Itemset>");
    }

    writer.println("\n\n<!-- Assotiation Rules -->");
    // Write rules
    for (int i = 0; i < rules.size(); i++) {
      String measures = "";
      for (StringPair measure : rulesMeasures.get(i)) {
        measures += measure.getKey() + "=" + '"' + measure.getValue() + "\" ";
      }

      writer.println(
          "<AssociationRule id=\""
              + i
              + "\" "
              + measures
              + " antecedent=\""
              + rules.get(i).get(0)
              + "\" consequent=\""
              + rules.get(i).get(1)
              + "\"/>");
    }

    // Finish file
    writer.println("</AssociationModel>\n" + "</PMML>");

    writer.flush();
    writer.close();
  }
Ejemplo n.º 2
0
 @Override
 public int compare(StringPair first, StringPair second) {
   return first.getKey().compareTo(second.getKey());
 }
Ejemplo n.º 3
0
 @Override
 public void setReference(StringPair toCompare) {
   this.reference = toCompare.getKey();
 }
Ejemplo n.º 4
0
 @Override
 public boolean equalToReference(StringPair candidate) {
   return this.reference.equals(candidate.getKey());
 }
Ejemplo n.º 5
0
 @Override
 public int hash(StringPair record) {
   return record.getKey().hashCode();
 }