Example usage for weka.filters.unsupervised.attribute Center Center

List of usage examples for weka.filters.unsupervised.attribute Center Center

Introduction

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

Prototype

Center

Source Link

Usage

From source file:PrincipalComponents.java

License:Open Source License

private void fillCovariance() throws Exception {
    // first store the means
    m_means = new double[m_trainInstances.numAttributes()];
    m_stdDevs = new double[m_trainInstances.numAttributes()];
    for (int i = 0; i < m_trainInstances.numAttributes(); i++) {
        m_means[i] = m_trainInstances.meanOrMode(i);
        m_stdDevs[i] = Math.sqrt(Utils.variance(m_trainInstances.attributeToDoubleArray(i)));
    }//from  w  w  w . j a  v  a2  s.  com

    // just center the data or standardize it?
    if (m_center) {
        m_centerFilter = new Center();
        m_centerFilter.setInputFormat(m_trainInstances);
        m_trainInstances = Filter.useFilter(m_trainInstances, m_centerFilter);
    } else {
        m_standardizeFilter = new Standardize();
        m_standardizeFilter.setInputFormat(m_trainInstances);
        m_trainInstances = Filter.useFilter(m_trainInstances, m_standardizeFilter);
    }

    // now compute the covariance matrix
    m_correlation = new UpperSymmDenseMatrix(m_numAttribs);
    for (int i = 0; i < m_numAttribs; i++) {
        for (int j = i; j < m_numAttribs; j++) {

            double cov = 0;
            for (Instance inst : m_trainInstances) {
                cov += inst.value(i) * inst.value(j);
            }

            cov /= m_trainInstances.numInstances() - 1;
            m_correlation.set(i, j, cov);
        }
    }
}

From source file:adams.data.instancesanalysis.pls.AbstractMultiClassPLS.java

License:Open Source License

/**
 * Preprocesses the data.//  w ww.  j  av a  2  s  .  co  m
 *
 * @param instances the data to process
 * @return the preprocessed data
 */
protected Instances preTransform(Instances instances, Map<String, Object> params) throws Exception {
    Map<Integer, double[]> classValues;
    int i;
    int index;

    switch (m_PredictionType) {
    case ALL:
        classValues = null;
        break;
    default:
        classValues = new HashMap<>();
        for (i = 0; i < m_ClassAttributeIndices.size(); i++) {
            index = m_ClassAttributeIndices.get(i);
            classValues.put(index, instances.attributeToDoubleArray(index));
        }
    }

    if (classValues != null)
        params.put(PARAM_CLASSVALUES, classValues);

    if (!isInitialized()) {
        if (m_ReplaceMissing) {
            m_Missing = new ReplaceMissingValues();
            m_Missing.setInputFormat(instances);
        } else {
            m_Missing = null;
        }

        m_ClassMean = new HashMap<>();
        m_ClassStdDev = new HashMap<>();
        for (i = 0; i < m_ClassAttributeIndices.size(); i++) {
            index = m_ClassAttributeIndices.get(i);
            switch (m_PreprocessingType) {
            case CENTER:
                m_ClassMean.put(index, instances.meanOrMode(index));
                m_ClassStdDev.put(index, 1.0);
                m_Filter = new Center();
                ((Center) m_Filter).setIgnoreClass(true);
                break;
            case STANDARDIZE:
                m_ClassMean.put(index, instances.meanOrMode(index));
                m_ClassStdDev.put(index, StrictMath.sqrt(instances.variance(index)));
                m_Filter = new Standardize();
                ((Standardize) m_Filter).setIgnoreClass(true);
                break;
            case NONE:
                m_ClassMean.put(index, 0.0);
                m_ClassStdDev.put(index, 1.0);
                m_Filter = null;
                break;
            default:
                throw new IllegalStateException("Unhandled preprocessing type; " + m_PreprocessingType);
            }
        }
        if (m_Filter != null)
            m_Filter.setInputFormat(instances);
    }

    // filter data
    if (m_Missing != null)
        instances = Filter.useFilter(instances, m_Missing);
    if (m_Filter != null)
        instances = Filter.useFilter(instances, m_Filter);

    return instances;
}

From source file:adams.data.instancesanalysis.pls.AbstractSingleClassPLS.java

License:Open Source License

/**
 * Preprocesses the data./*  w ww .ja  v a 2  s . c o  m*/
 *
 * @param instances the data to process
 * @return the preprocessed data
 */
protected Instances preTransform(Instances instances, Map<String, Object> params) throws Exception {
    double[] classValues;

    switch (m_PredictionType) {
    case ALL:
        classValues = null;
        break;
    default:
        classValues = instances.attributeToDoubleArray(instances.classIndex());
    }

    if (classValues != null)
        params.put(PARAM_CLASSVALUES, classValues);

    if (!isInitialized()) {
        if (m_ReplaceMissing) {
            m_Missing = new ReplaceMissingValues();
            m_Missing.setInputFormat(instances);
        } else {
            m_Missing = null;
        }

        switch (m_PreprocessingType) {
        case CENTER:
            m_ClassMean = instances.meanOrMode(instances.classIndex());
            m_ClassStdDev = 1;
            m_Filter = new Center();
            ((Center) m_Filter).setIgnoreClass(true);
            break;
        case STANDARDIZE:
            m_ClassMean = instances.meanOrMode(instances.classIndex());
            m_ClassStdDev = StrictMath.sqrt(instances.variance(instances.classIndex()));
            m_Filter = new Standardize();
            ((Standardize) m_Filter).setIgnoreClass(true);
            break;
        case NONE:
            m_ClassMean = 0;
            m_ClassStdDev = 1;
            m_Filter = null;
            break;
        default:
            throw new IllegalStateException("Unhandled preprocessing type; " + m_PreprocessingType);
        }
        if (m_Filter != null)
            m_Filter.setInputFormat(instances);
    }

    // filter data
    if (m_Missing != null)
        instances = Filter.useFilter(instances, m_Missing);
    if (m_Filter != null)
        instances = Filter.useFilter(instances, m_Filter);

    return instances;
}

From source file:com.deafgoat.ml.prognosticator.InstancesFilter.java

License:Apache License

/**
 * Makes numeric attributes have zero mean
 * /*from   w ww.jav  a 2  s.  c o  m*/
 * @throws Exception
 *             If filter could not be applied
 */
public void centerFilter() throws Exception {
    if (_logger.isDebugEnabled()) {
        _logger.debug("Applying centering filter");
    }
    // Might employ filtered classifier for production
    Center ct = new Center();
    ct.setInputFormat(_instances);
    _instances = Filter.useFilter(_instances, ct);
}

From source file:data.generation.target.utils.PrincipalComponents.java

License:Open Source License

private void fillCovariance() throws Exception {
    // first store the means
    m_means = new double[m_trainInstances.numAttributes()];
    m_stdDevs = new double[m_trainInstances.numAttributes()];
    for (int i = 0; i < m_trainInstances.numAttributes(); i++) {
        m_means[i] = m_trainInstances.meanOrMode(i);
    }/* w w w.  j ava2 s  . c o m*/

    if (!m_center) {
        fillCorrelation();
        return;
    }

    double[] att = new double[m_trainInstances.numInstances()];

    // now center the data by subtracting the mean
    m_centerFilter = new Center();
    m_centerFilter.setInputFormat(m_trainInstances);
    m_trainInstances = Filter.useFilter(m_trainInstances, m_centerFilter);

    // now compute the covariance matrix
    m_correlation = new double[m_numAttribs][m_numAttribs];

    for (int i = 0; i < m_numAttribs; i++) {
        for (int j = 0; j < m_numAttribs; j++) {

            double cov = 0;
            for (int k = 0; k < m_numInstances; k++) {

                if (i == j) {
                    cov += (m_trainInstances.instance(k).value(i) * m_trainInstances.instance(k).value(i));
                } else {
                    cov += (m_trainInstances.instance(k).value(i) * m_trainInstances.instance(k).value(j));
                }
            }

            cov /= (double) (m_trainInstances.numInstances() - 1);
            m_correlation[i][j] = cov;
            m_correlation[j][i] = cov;
        }
    }
}