Java 类weka.core.AttributeExpression 实例源码

项目:autoweka    文件:CostMatrix.java   
private boolean replaceStrings() throws Exception {
  boolean nonDouble = false;

  for (int i = 0; i < m_size; i++) {
    for (int j = 0; j < m_size; j++) {
      if (getCell(i, j) instanceof String) {
        AttributeExpression temp = new AttributeExpression();
        temp.convertInfixToPostfix((String) getCell(i, j));
        setCell(i, j, temp);
        nonDouble = true;
      } else if (getCell(i, j) instanceof AttributeExpression) {
        nonDouble = true;
      }
    }
  }

  return nonDouble;
}
项目:autoweka    文件:CostMatrix.java   
/**
 * Gets the maximum cost for a particular class value.
 * 
 * @param classVal the class value.
 * @return the maximum cost.
 * @exception Exception if cost matrix contains non-fixed costs
 */
public double getMaxCost(int classVal, Instance inst) throws Exception {

  if (!replaceStrings()) {
    return getMaxCost(classVal);
  }

  double maxCost = Double.NEGATIVE_INFINITY;
  double cost;
  for (int i = 0; i < m_size; i++) {
    Object element = getCell(classVal, i);
    if (!(element instanceof Double)) {
      cost = ((AttributeExpression) element).evaluateExpression(inst);
    } else {
      cost = ((Double) element).doubleValue();
    }
    if (cost > maxCost)
      maxCost = cost;
  }

  return maxCost;
}
项目:autoweka    文件:AddExpression.java   
/**
 * Sets the format of the input instances.
 *
 * @param instanceInfo an Instances object containing the input instance
 * structure (any instances contained in the object are ignored - only the
 * structure is required).
 * @return true if the outputFormat may be collected immediately
 * @throws Exception if the format couldn't be set successfully
 */
public boolean setInputFormat(Instances instanceInfo) throws Exception {

  m_attributeExpression = new AttributeExpression();
  m_attributeExpression.
    convertInfixToPostfix(new String(m_infixExpression));

  super.setInputFormat(instanceInfo);

  Instances outputFormat = new Instances(instanceInfo, 0);
  Attribute newAttribute;
  if (m_Debug) {
    newAttribute = 
      new Attribute(m_attributeExpression.getPostFixExpression());
  } else if (m_attributeName.compareTo("expression") != 0) {
    newAttribute = new Attribute(m_attributeName);
  } else {
    newAttribute = new Attribute(m_infixExpression);
  }
  outputFormat.insertAttributeAt(newAttribute, 
           instanceInfo.numAttributes());
  setOutputFormat(outputFormat);
  return true;
}
项目:umple    文件:CostMatrix.java   
private boolean replaceStrings() throws Exception {
  boolean nonDouble = false;

  for (int i = 0; i < m_size; i++) {
    for (int j = 0; j < m_size; j++) {
      if (getCell(i, j) instanceof String) {
        AttributeExpression temp = new AttributeExpression();
        temp.convertInfixToPostfix((String) getCell(i, j));
        setCell(i, j, temp);
        nonDouble = true;
      } else if (getCell(i, j) instanceof AttributeExpression) {
        nonDouble = true;
      }
    }
  }

  return nonDouble;
}
项目:umple    文件:CostMatrix.java   
/**
 * Gets the maximum cost for a particular class value.
 * 
 * @param classVal the class value.
 * @return the maximum cost.
 * @exception Exception if cost matrix contains non-fixed costs
 */
public double getMaxCost(int classVal, Instance inst) throws Exception {

  if (!replaceStrings()) {
    return getMaxCost(classVal);
  }

  double maxCost = Double.NEGATIVE_INFINITY;
  double cost;
  for (int i = 0; i < m_size; i++) {
    Object element = getCell(classVal, i);
    if (!(element instanceof Double)) {
      cost = ((AttributeExpression) element).evaluateExpression(inst);
    } else {
      cost = ((Double) element).doubleValue();
    }
    if (cost > maxCost)
      maxCost = cost;
  }

  return maxCost;
}
项目:umple    文件:AddExpression.java   
/**
 * Sets the format of the input instances.
 * 
 * @param instanceInfo an Instances object containing the input instance
 *          structure (any instances contained in the object are ignored -
 *          only the structure is required).
 * @return true if the outputFormat may be collected immediately
 * @throws Exception if the format couldn't be set successfully
 */
@Override
public boolean setInputFormat(Instances instanceInfo) throws Exception {

  m_attributeExpression = new AttributeExpression();
  m_attributeExpression.convertInfixToPostfix(new String(m_infixExpression));

  super.setInputFormat(instanceInfo);

  Instances outputFormat = new Instances(instanceInfo, 0);
  Attribute newAttribute;
  if (m_Debug) {
    newAttribute = new Attribute(m_attributeExpression.getPostFixExpression());
  } else if (m_attributeName.compareTo("expression") != 0) {
    newAttribute = new Attribute(m_attributeName);
  } else {
    newAttribute = new Attribute(m_infixExpression);
  }
  outputFormat.insertAttributeAt(newAttribute, instanceInfo.numAttributes());
  setOutputFormat(outputFormat);
  return true;
}
项目:jbossBA    文件:CostMatrix.java   
private boolean replaceStrings() throws Exception {
  boolean nonDouble = false;

  for (int i = 0; i < m_size; i++) {
    for (int j = 0; j < m_size; j++) {
      if (getCell(i, j) instanceof String) {
        AttributeExpression temp = new AttributeExpression();
        temp.convertInfixToPostfix((String) getCell(i, j));
        setCell(i, j, temp);
        nonDouble = true;
      } else if (getCell(i, j) instanceof AttributeExpression) {
        nonDouble = true;
      }
    }
  }

  return nonDouble;
}
项目:jbossBA    文件:CostMatrix.java   
/**
 * Gets the maximum cost for a particular class value.
 * 
 * @param classVal the class value.
 * @return the maximum cost.
 * @exception Exception if cost matrix contains non-fixed costs
 */
public double getMaxCost(int classVal, Instance inst) throws Exception {

  if (!replaceStrings()) {
    return getMaxCost(classVal);
  }

  double maxCost = Double.NEGATIVE_INFINITY;
  double cost;
  for (int i = 0; i < m_size; i++) {
    Object element = getCell(classVal, i);
    if (!(element instanceof Double)) {
      cost = ((AttributeExpression) element).evaluateExpression(inst);
    } else {
      cost = ((Double) element).doubleValue();
    }
    if (cost > maxCost)
      maxCost = cost;
  }

  return maxCost;
}
项目:jbossBA    文件:AddExpression.java   
/**
 * Sets the format of the input instances.
 *
 * @param instanceInfo an Instances object containing the input instance
 * structure (any instances contained in the object are ignored - only the
 * structure is required).
 * @return true if the outputFormat may be collected immediately
 * @throws Exception if the format couldn't be set successfully
 */
public boolean setInputFormat(Instances instanceInfo) throws Exception {

  m_attributeExpression = new AttributeExpression();
  m_attributeExpression.
    convertInfixToPostfix(new String(m_infixExpression));

  super.setInputFormat(instanceInfo);

  Instances outputFormat = new Instances(instanceInfo, 0);
  Attribute newAttribute;
  if (m_Debug) {
    newAttribute = 
      new Attribute(m_attributeExpression.getPostFixExpression());
  } else if (m_attributeName.compareTo("expression") != 0) {
    newAttribute = new Attribute(m_attributeName);
  } else {
    newAttribute = new Attribute(m_infixExpression);
  }
  outputFormat.insertAttributeAt(newAttribute, 
           instanceInfo.numAttributes());
  setOutputFormat(outputFormat);
  return true;
}
项目:autoweka    文件:CostMatrix.java   
/**
 * Calculates the expected misclassification cost for each possible class
 * value, given class probability estimates.
 * 
 * @param classProbs the class probability estimates.
 * @param inst the current instance for which the class probabilites apply. Is
 *          used for computing any non-fixed cost values.
 * @return the expected costs.
 * @exception Exception if something goes wrong
 */
public double[] expectedCosts(double[] classProbs, Instance inst)
    throws Exception {

  if (classProbs.length != m_size) {
    throw new Exception("Length of probability estimates don't "
        + "match cost matrix");
  }

  if (!replaceStrings()) {
    return expectedCosts(classProbs);
  }

  double[] costs = new double[m_size];

  for (int x = 0; x < m_size; x++) {
    for (int y = 0; y < m_size; y++) {
      Object element = getCell(y, x);
      double costVal;
      if (!(element instanceof Double)) {
        costVal = ((AttributeExpression) element).evaluateExpression(inst);
      } else {
        costVal = ((Double) element).doubleValue();
      }
      costs[x] += classProbs[y] * costVal;
    }
  }

  return costs;
}
项目:autoweka    文件:CostMatrix.java   
/**
 * Return the value of a cell as a double. Computes the value for non-fixed
 * costs using the supplied Instance
 * 
 * @param rowIndex the row
 * @param columnIndex the column
 * @return the value from a particular cell
 * @exception Exception if something goes wrong
 */
public final double getElement(int rowIndex, int columnIndex, Instance inst)
    throws Exception {

  if (m_matrix[rowIndex][columnIndex] instanceof Double) {
    return ((Double) m_matrix[rowIndex][columnIndex]).doubleValue();
  } else if (m_matrix[rowIndex][columnIndex] instanceof String) {
    replaceStrings();
  }

  return ((AttributeExpression) m_matrix[rowIndex][columnIndex])
      .evaluateExpression(inst);
}
项目:umple    文件:CostMatrix.java   
/**
 * Calculates the expected misclassification cost for each possible class
 * value, given class probability estimates.
 * 
 * @param classProbs the class probability estimates.
 * @param inst the current instance for which the class probabilites apply. Is
 *          used for computing any non-fixed cost values.
 * @return the expected costs.
 * @exception Exception if something goes wrong
 */
public double[] expectedCosts(double[] classProbs, Instance inst)
    throws Exception {

  if (classProbs.length != m_size) {
    throw new Exception("Length of probability estimates don't "
        + "match cost matrix");
  }

  if (!replaceStrings()) {
    return expectedCosts(classProbs);
  }

  double[] costs = new double[m_size];

  for (int x = 0; x < m_size; x++) {
    for (int y = 0; y < m_size; y++) {
      Object element = getCell(y, x);
      double costVal;
      if (!(element instanceof Double)) {
        costVal = ((AttributeExpression) element).evaluateExpression(inst);
      } else {
        costVal = ((Double) element).doubleValue();
      }
      costs[x] += classProbs[y] * costVal;
    }
  }

  return costs;
}
项目:umple    文件:CostMatrix.java   
/**
 * Return the value of a cell as a double. Computes the value for non-fixed
 * costs using the supplied Instance
 * 
 * @param rowIndex the row
 * @param columnIndex the column
 * @return the value from a particular cell
 * @exception Exception if something goes wrong
 */
public final double getElement(int rowIndex, int columnIndex, Instance inst)
    throws Exception {

  if (m_matrix[rowIndex][columnIndex] instanceof Double) {
    return ((Double) m_matrix[rowIndex][columnIndex]).doubleValue();
  } else if (m_matrix[rowIndex][columnIndex] instanceof String) {
    replaceStrings();
  }

  return ((AttributeExpression) m_matrix[rowIndex][columnIndex])
      .evaluateExpression(inst);
}
项目:jbossBA    文件:CostMatrix.java   
/**
 * Calculates the expected misclassification cost for each possible class
 * value, given class probability estimates.
 * 
 * @param classProbs the class probability estimates.
 * @param inst the current instance for which the class probabilites apply. Is
 *          used for computing any non-fixed cost values.
 * @return the expected costs.
 * @exception Exception if something goes wrong
 */
public double[] expectedCosts(double[] classProbs, Instance inst)
    throws Exception {

  if (classProbs.length != m_size) {
    throw new Exception("Length of probability estimates don't "
        + "match cost matrix");
  }

  if (!replaceStrings()) {
    return expectedCosts(classProbs);
  }

  double[] costs = new double[m_size];

  for (int x = 0; x < m_size; x++) {
    for (int y = 0; y < m_size; y++) {
      Object element = getCell(y, x);
      double costVal;
      if (!(element instanceof Double)) {
        costVal = ((AttributeExpression) element).evaluateExpression(inst);
      } else {
        costVal = ((Double) element).doubleValue();
      }
      costs[x] += classProbs[y] * costVal;
    }
  }

  return costs;
}
项目:jbossBA    文件:CostMatrix.java   
/**
 * Return the value of a cell as a double. Computes the value for non-fixed
 * costs using the supplied Instance
 * 
 * @param rowIndex the row
 * @param columnIndex the column
 * @return the value from a particular cell
 * @exception Exception if something goes wrong
 */
public final double getElement(int rowIndex, int columnIndex, Instance inst)
    throws Exception {

  if (m_matrix[rowIndex][columnIndex] instanceof Double) {
    return ((Double) m_matrix[rowIndex][columnIndex]).doubleValue();
  } else if (m_matrix[rowIndex][columnIndex] instanceof String) {
    replaceStrings();
  }

  return ((AttributeExpression) m_matrix[rowIndex][columnIndex])
      .evaluateExpression(inst);
}