evaluationbase.java

来自「Multi-label classification 和weka集成」· Java 代码 · 共 56 行

JAVA
56
字号
package mulan.evaluation;
import weka.core.Utils;

/**
 * Common base class for concrete Evaluation classes.  
 *
 */
abstract class EvaluationBase
{
	/**
	 * This is all the information needed to derive
	 * the measures and curves.
	 */
	protected BinaryPrediction[][] predictions;
		
	/**
	 * Constructor
	 * @param predictions The predictions to used to calculate measures
	 */
	protected EvaluationBase(BinaryPrediction[][] predictions)
	{
		this.predictions = predictions;
	}

	/**
	 * @return size of the testset. (total number of predictions)
	 */
	public int numInstances()
	{
		return predictions.length;
	}

	/**
	 * 
	 * @return total number of possible labels
	 */
	public int numLabels()
	{
		return predictions[0].length;
	}
	
	protected double computeFMeasure(double precision, double recall)
	{
	    if (Utils.eq(precision + recall, 0)) return 0;
	    else return 2 * precision * recall / (precision + recall);
	}


	public abstract double accuracy();
	public abstract double recall();
	public abstract double precision();
	public abstract double fmeasure();
	protected abstract void computeMeasures();

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?