List of usage examples for weka.filters.unsupervised.attribute Center Center
Center
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; } } }