protected void fillCovariance() throws Exception { // 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); } } }
protected void fillCovariance() throws Exception { // 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); } } }
} else { m_standardizeFilter = new Standardize(); m_standardizeFilter.setInputFormat(m_trainInstances); m_trainInstances = Filter.useFilter(m_trainInstances, m_standardizeFilter);
} else { m_standardizeFilter = new Standardize(); m_standardizeFilter.setInputFormat(m_trainInstances); m_trainInstances = Filter.useFilter(m_trainInstances, m_standardizeFilter);