Example usage for weka.core.stats ArffSummaryNumericMetric COUNT

List of usage examples for weka.core.stats ArffSummaryNumericMetric COUNT

Introduction

In this page you can find the example usage for weka.core.stats ArffSummaryNumericMetric COUNT.

Prototype

ArffSummaryNumericMetric COUNT

To view the source code for weka.core.stats ArffSummaryNumericMetric COUNT.

Click Source Link

Usage

From source file:distributed.core.DistributedUtils.java

License:Open Source License

public static NumericStats getNumericAttributeStatsSparse(Instances denormalized, int attIndex) {
    NumericStats ns = new NumericStats(denormalized.attribute(attIndex).name());

    for (int j = 0; j < denormalized.numInstances(); j++) {
        double value = denormalized.instance(j).value(attIndex);

        if (Utils.isMissingValue(value) || value == 0) {
            ns.getStats()[ArffSummaryNumericMetric.MISSING.ordinal()]++;
        } else {/*from ww  w. java2  s  .c  o m*/
            ns.getStats()[ArffSummaryNumericMetric.COUNT.ordinal()]++;
            ns.getStats()[ArffSummaryNumericMetric.SUM.ordinal()] += value;
            ns.getStats()[ArffSummaryNumericMetric.SUMSQ.ordinal()] += value * value;
            if (Double.isNaN(ns.getStats()[ArffSummaryNumericMetric.MIN.ordinal()])) {
                ns.getStats()[ArffSummaryNumericMetric.MIN
                        .ordinal()] = ns.getStats()[ArffSummaryNumericMetric.MAX.ordinal()] = value;
            } else if (value < ns.getStats()[ArffSummaryNumericMetric.MIN.ordinal()]) {
                ns.getStats()[ArffSummaryNumericMetric.MIN.ordinal()] = value;
            } else if (value > ns.getStats()[ArffSummaryNumericMetric.MAX.ordinal()]) {
                ns.getStats()[ArffSummaryNumericMetric.MAX.ordinal()] = value;
            }
        }
    }

    ns.computeDerived();

    return ns;
}

From source file:distributed.core.DistributedUtils.java

License:Open Source License

public static Instances makeHeaderWithSummaryAtts(Instances denormalized, boolean treatZerosAsMissing) {
    Instances header = new Instances(denormalized, 0);

    for (int i = 0; i < denormalized.numAttributes(); i++) {
        AttributeStats stats = denormalized.attributeStats(i);
        if (denormalized.attribute(i).isNumeric()) {
            NumericStats ns = new NumericStats(denormalized.attribute(i).name());
            if (!treatZerosAsMissing) {
                ns.getStats()[ArffSummaryNumericMetric.MIN.ordinal()] = stats.numericStats.min;
                ns.getStats()[ArffSummaryNumericMetric.MAX.ordinal()] = stats.numericStats.max;
                ns.getStats()[ArffSummaryNumericMetric.COUNT.ordinal()] = stats.numericStats.count;
                ns.getStats()[ArffSummaryNumericMetric.SUM.ordinal()] = stats.numericStats.sum;
                ns.getStats()[ArffSummaryNumericMetric.SUMSQ.ordinal()] = stats.numericStats.sumSq;
                ns.getStats()[ArffSummaryNumericMetric.MISSING.ordinal()] = stats.missingCount;

                ns.computeDerived();//from   www  .j a v a 2s  .co  m
            } else {
                ns = getNumericAttributeStatsSparse(denormalized, i);
            }

            Attribute newAtt = ns.makeAttribute();
            header.insertAttributeAt(newAtt, header.numAttributes());
        } else if (denormalized.attribute(i).isNominal()) {
            NominalStats nom = new NominalStats(denormalized.attribute(i).name());
            nom.setNumMissing(stats.missingCount);

            double[] labelFreqs = stats.nominalWeights;
            for (int j = 0; j < denormalized.attribute(i).numValues(); j++) {
                nom.add(denormalized.attribute(i).value(j), labelFreqs[j]);
            }

            Attribute newAtt = nom.makeAttribute();
            header.insertAttributeAt(newAtt, header.numAttributes());
        }
    }

    return header;
}