Example usage for weka.core Instances numAttributes

List of usage examples for weka.core Instances numAttributes

Introduction

In this page you can find the example usage for weka.core Instances numAttributes.

Prototype


publicint numAttributes() 

Source Link

Document

Returns the number of attributes.

Usage

From source file:cezeri.utils.FactoryInstance.java

public static String[] getAttributeList(Instances data) {
    int n = data.numAttributes();
    String[] ret = new String[n];
    for (int i = 0; i < n; i++) {
        ret[i] = data.attribute(i).name();
    }/*from  ww  w  .jav a  2 s .  c o m*/
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static String[] getAttributeListExceptClassAttribute(Instances data) {
    int n = data.numAttributes();
    String[] ret = new String[n - 1];
    String classAtt = data.classAttribute().name();
    int k = 0;/*w  w w .  j  a va2 s  .  c  o  m*/
    for (int i = 0; i < n; i++) {
        if (!classAtt.equals(data.attribute(i).name())) {
            ret[k++] = data.attribute(i).name();
        }

    }
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static Instances generateInstances(String relationName, CMatrix cm) {
    FastVector att = new FastVector();
    for (int i = 0; i < cm.getColumnNumber(); i++) {
        att.addElement(new Attribute("f" + (i + 1)));
    }/*from www . java  2  s. c  om*/
    Instances ret = new Instances(relationName, att, cm.getRowNumber());
    for (int i = 0; i < cm.getRowNumber(); i++) {
        Instance ins = new Instance(cm.getColumnNumber());
        for (int j = 0; j < cm.getColumnNumber(); j++) {
            ins.setValue(j, cm.get2DArrayDouble()[i][j]);
        }
        ret.add(ins);
    }
    ret.setClassIndex(ret.numAttributes() - 1);
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static Instances generateInstances(String relationName, double[][] m) {
    FastVector att = new FastVector();
    for (int i = 0; i < m[0].length; i++) {
        att.addElement(new Attribute("f" + (i + 1)));
    }//from  w  ww.  j a v  a  2 s  .  c  om
    Instances ret = new Instances(relationName, att, m.length);
    for (int i = 0; i < m.length; i++) {
        Instance ins = new Instance(m[0].length);
        for (int j = 0; j < m[0].length; j++) {
            ins.setValue(j, m[i][j]);
        }
        ret.add(ins);
    }
    ret.setClassIndex(ret.numAttributes() - 1);
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static double[][] getData(Instances m) {
    double[][] ret = new double[m.numInstances()][m.numAttributes()];
    for (int i = 0; i < m.numInstances(); i++) {
        Instance ins = m.instance(i);//  ww w .  j  av  a  2 s . c om
        ret[i] = ins.toDoubleArray();
    }
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static CMatrix toMatrix(Instances m) {
    double[][] ret = new double[m.numInstances()][m.numAttributes()];
    for (int i = 0; i < m.numInstances(); i++) {
        Instance ins = m.instance(i);//from www.  j  ava2  s. c  om
        ret[i] = ins.toDoubleArray();
    }
    return CMatrix.getInstance(ret);
}

From source file:cezeri.utils.FactoryInstance.java

public static CMatrix fromInstances(Instances m) {
    double[][] ret = new double[m.numInstances()][m.numAttributes()];
    for (int i = 0; i < m.numInstances(); i++) {
        Instance ins = m.instance(i);//from www  . j  a  v  a  2  s . co  m
        ret[i] = ins.toDoubleArray();
    }
    return CMatrix.getInstance(ret);
}

From source file:cezeri.utils.FactoryInstance.java

/**
 *
 * @param m tm dataset//from w w  w .  j av  a2  s  . c  o  m
 * @param val class value deeri val olanlar filtrele
 * @return
 */
public static Instances[] getSpecificInstancesBasedOnClassValue(Instances m, String[] cl) {
    Instances[] ret = new Instances[cl.length];
    for (int i = 0; i < ret.length; i++) {
        ret[i] = FactoryInstance.generateInstances(m.relationName() + "_class=" + cl[i], m.numAttributes());
        //            ret[i] = m.resampleWithWeights(new Random());
        ret[i].delete();
    }
    for (int i = 0; i < m.numInstances(); i++) {
        Instance ins = m.instance(i);
        for (int j = 0; j < cl.length; j++) {
            if (("" + (int) ins.classValue()).equals(cl[j])) {
                ret[j].add(ins);
            }
        }
    }
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static Instances getSubsetData(Instances data, String[] attList) {
    Instances temp = new Instances(data);
    for (int i = 0; i < data.numAttributes(); i++) {
        if (!temp.attribute(0).equals(temp.classAttribute())) {
            temp.deleteAttributeAt(0);//from   ww  w  .  j  a v a 2 s  .  co m
        }
    }
    double[][] m = new double[attList.length + 1][data.numInstances()];
    for (int i = 0; i < attList.length; i++) {
        int n = attList.length - 1 - i;
        String str = attList[n];
        Attribute t = data.attribute(str);
        double[] d = data.attributeToDoubleArray(t.index());
        m[n] = d;
        temp.insertAttributeAt(t, 0);
    }
    m[attList.length] = data.attributeToDoubleArray(data.classIndex());
    m = CMatrix.getInstance(m).transpose().get2DArrayDouble();

    FastVector att = new FastVector();
    for (int i = 0; i < temp.numAttributes(); i++) {
        att.addElement(temp.attribute(i));
    }
    Instances ret = new Instances(temp.relationName(), att, m.length);
    for (int i = 0; i < m.length; i++) {
        Instance ins = new Instance(m[0].length);
        for (int j = 0; j < m[0].length; j++) {
            ins.setValue(j, m[i][j]);
        }
        ret.add(ins);
    }
    ret.setClassIndex(temp.classIndex());

    return ret;
}

From source file:CGLSMethod.LinearRegression.java

License:Open Source License

/**
 * Builds a regression model for the given data.
 *
 * @param data the training data to be used for generating the
 * linear regression function//from   w w w  .j  a va 2s .c o  m
 * @throws Exception if the classifier could not be built successfully
 */
public void buildClassifier(Instances data) throws Exception {

    // Preprocess instances
    if (!m_checksTurnedOff) {
        m_TransformFilter = new NominalToBinary();
        m_TransformFilter.setInputFormat(data);
        data = Filter.useFilter(data, m_TransformFilter);
        m_MissingFilter = new ReplaceMissingValues();
        m_MissingFilter.setInputFormat(data);
        data = Filter.useFilter(data, m_MissingFilter);
        data.deleteWithMissingClass();
    } else {
        m_TransformFilter = null;
        m_MissingFilter = null;
    }

    m_ClassIndex = data.classIndex();
    m_TransformedData = data;

    // Turn all attributes on for a start
    m_SelectedAttributes = new boolean[data.numAttributes()];
    for (int i = 0; i < data.numAttributes(); i++) {
        if (i != m_ClassIndex) {
            m_SelectedAttributes[i] = true;
        }
    }
    m_Coefficients = null;

    // Compute means and standard deviations
    m_Means = new double[data.numAttributes()];
    m_StdDevs = new double[data.numAttributes()];
    for (int j = 0; j < data.numAttributes(); j++) {
        if (j != data.classIndex()) {
            m_Means[j] = data.meanOrMode(j);
            m_StdDevs[j] = Math.sqrt(data.variance(j));
            if (m_StdDevs[j] == 0) {
                m_SelectedAttributes[j] = false;
            }
        }
    }

    m_ClassStdDev = Math.sqrt(data.variance(m_TransformedData.classIndex()));
    m_ClassMean = data.meanOrMode(m_TransformedData.classIndex());

    // Perform the regression
    findBestModel();

    // Save memory
    m_TransformedData = new Instances(data, 0);
}