Example usage for weka.filters.unsupervised.attribute Add TAGS_TYPE

List of usage examples for weka.filters.unsupervised.attribute Add TAGS_TYPE

Introduction

In this page you can find the example usage for weka.filters.unsupervised.attribute Add TAGS_TYPE.

Prototype

Tag[] TAGS_TYPE

To view the source code for weka.filters.unsupervised.attribute Add TAGS_TYPE.

Click Source Link

Document

the attribute type.

Usage

From source file:adams.data.instances.AbstractInstanceGenerator.java

License:Open Source License

/**
 * Adds IDs, notes, additional fields to header.
 *
 * @param data   the input data/*w  ww .jav a 2s.c  o  m*/
 */
protected void postProcessHeader(T data) {
    Add add;

    // add the database ID to the output?
    if (m_AddDatabaseID) {
        try {
            add = new Add();
            add.setAttributeIndex("1");
            add.setAttributeName(ArffUtils.getDBIDName());
            add.setAttributeType(new SelectedTag(Attribute.NUMERIC, Add.TAGS_TYPE));
            add.setInputFormat(m_OutputHeader);
            m_OutputHeader = Filter.useFilter(m_OutputHeader, add);
        } catch (Exception e) {
            getLogger().log(Level.SEVERE, "Error initializing the Add filter for database ID!", e);
        }
    }
}

From source file:adams.flow.transformer.WekaInstanceEvaluator.java

License:Open Source License

/**
 * Generates the new header for the data.
 *
 * @param inst   the instance to get the original data format from
 * @return      null if everything is fine, otherwise error message
 * @see      #m_Header/* w ww. ja v a 2  s .c  o  m*/
 * @see      #m_Filter
 */
protected String generateHeader(Instance inst) {
    String result;

    result = null;

    m_Filter = new Add();
    m_Filter.setAttributeName(determineAttributeName(inst.dataset()));
    m_Filter.setAttributeType(new SelectedTag(Attribute.NUMERIC, Add.TAGS_TYPE));
    if (inst.dataset().classIndex() == inst.dataset().numAttributes() - 1)
        m_Filter.setAttributeIndex("" + inst.dataset().numAttributes());
    else
        m_Filter.setAttributeIndex("" + (inst.dataset().numAttributes() + 1));
    try {
        m_Filter.setInputFormat(inst.dataset());
        m_Header = weka.filters.Filter.useFilter(inst.dataset(), m_Filter);
    } catch (Exception e) {
        result = handleException("Failed to generate header:", e);
    }

    return result;
}

From source file:adams.flow.transformer.WekaReorderAttributesToReference.java

License:Open Source License

/**
 * Executes the flow item./*from   ww w. java 2 s  .c  om*/
 *
 * @return      null if everything is fine, otherwise error message
 */
@Override
protected String doExecute() {
    String result;
    Instances dataOld;
    Instance instOld;
    Instances dataNew;
    Instance instNew;
    Attribute att;
    int i;
    StringBuilder order;
    List<Add> adds;
    Add add;
    int index;
    StringBuilder labels;
    int n;
    List<Filter> filters;
    Reorder reorder;

    result = null;

    if (m_OnTheFly && (m_Reference == null)) {
        result = setUpReference();
        if (result != null)
            return result;
    }

    dataNew = null;
    instNew = null;

    // get input data
    if (m_InputToken.getPayload() instanceof Instance) {
        instOld = (Instance) m_InputToken.getPayload();
        dataOld = instOld.dataset();
    } else {
        instOld = null;
        dataOld = (Instances) m_InputToken.getPayload();
    }

    // do we need to initialize filter?
    if (m_InitializeOnce || (m_Reorder == null)) {
        // check incoming data
        if (!m_Lenient) {
            for (i = 0; i < m_Reference.numAttributes(); i++) {
                att = m_Reference.attribute(i);
                if (dataOld.attribute(att.name()) == null) {
                    if (result == null)
                        result = "Missing attribute(s) in incoming data: " + att.name();
                    else
                        result += ", " + att.name();
                }
            }
            if (result != null)
                getLogger().severe(result);
        }

        if (result == null) {
            try {
                // determine indices
                order = new StringBuilder();
                adds = new ArrayList<Add>();
                for (i = 0; i < m_Reference.numAttributes(); i++) {
                    att = m_Reference.attribute(i);
                    if (dataOld.attribute(att.name()) == null) {
                        index = dataOld.numAttributes() + adds.size();
                        add = new Add();
                        add.setAttributeIndex("last");
                        add.setAttributeName(att.name());
                        add.setAttributeType(new SelectedTag(att.type(), Add.TAGS_TYPE));
                        if (att.isNominal()) {
                            labels = new StringBuilder();
                            for (n = 0; n < att.numValues(); n++) {
                                if (labels.length() > 0)
                                    labels.append(",");
                                labels.append(att.value(n));
                            }
                            add.setNominalLabels(labels.toString());
                        }
                        adds.add(add);
                    } else {
                        index = dataOld.attribute(att.name()).index();
                    }
                    if (order.length() > 0)
                        order.append(",");
                    order.append((index + 1));
                }

                // build reorder filter
                reorder = new Reorder();
                reorder.setAttributeIndices(order.toString());

                // build multifilter
                filters = new ArrayList<Filter>();
                filters.addAll(adds);
                filters.add(reorder);
                m_Reorder = new MultiFilter();
                m_Reorder.setFilters(filters.toArray(new Filter[filters.size()]));

                // initialize filter
                m_Reorder.setInputFormat(dataOld);
            } catch (Exception e) {
                result = handleException("Failed to initialize reorder filter!", e);
            }
        }
    }

    // reorder data
    if (result == null) {
        try {
            if (instOld != null) {
                m_Reorder.input(instOld);
                m_Reorder.batchFinished();
                instNew = m_Reorder.output();
                if (m_KeepRelationName)
                    instNew.dataset().setRelationName(dataOld.relationName());
            } else {
                dataNew = Filter.useFilter(dataOld, m_Reorder);
                if (m_KeepRelationName)
                    dataNew.setRelationName(dataOld.relationName());
            }
        } catch (Exception e) {
            result = handleException("Failed to reorder data!", e);
            instNew = null;
            dataNew = null;
        }
    }

    if (instNew != null)
        m_OutputToken = new Token(instNew);
    else if (dataNew != null)
        m_OutputToken = new Token(dataNew);

    return result;
}