Example usage for weka.core.stats ArffSummaryNumericMetric MIN

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

Introduction

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

Prototype

ArffSummaryNumericMetric MIN

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

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   w  w w  . j a  va  2  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  w w  w  .  j  av 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;
}