List of usage examples for weka.classifiers.evaluation ThresholdCurve TP_RATE_NAME
String TP_RATE_NAME
To view the source code for weka.classifiers.evaluation ThresholdCurve TP_RATE_NAME.
Click Source Link
From source file:bme.mace.logicdomain.Evaluation.java
License:Open Source License
/** * Returns the area under ROC for those predictions that have been collected * in the evaluateClassifier(Classifier, Instances) method. Returns * Instance.missingValue() if the area is not available. * /* w w w .j av a2 s .c o m*/ * @param classIndex the index of the class to consider as "positive" * @return the area under the ROC curve or not a number */ public double areaUnderROC(int classIndex) { // Check if any predictions have been collected if (m_Predictions == null) { return Instance.missingValue(); } else { ThresholdCurve tc = new ThresholdCurve(); Instances result = tc.getCurve(m_Predictions, classIndex); double rocArea = ThresholdCurve.getROCArea(result); if (rocArea < 0.5) { rocArea = 1 - rocArea; } int tpIndex = result.attribute(ThresholdCurve.TP_RATE_NAME).index(); int fpIndex = result.attribute(ThresholdCurve.FP_RATE_NAME).index(); double[] tpRate = result.attributeToDoubleArray(tpIndex); double[] fpRate = result.attributeToDoubleArray(fpIndex); try { FileWriter fw; if (classIndex == 0) fw = new FileWriter("C://1.csv", true); else fw = new FileWriter("C://1.csv", true); BufferedWriter bw = new BufferedWriter(fw); int length = fpRate.length; for (int i = 255; i >= 0; i--) { int index = i * (length - 1) / 255; bw.write(fpRate[index] + ","); } bw.write("\n"); for (int i = 255; i >= 0; i--) { int index = i * (length - 1) / 255; bw.write(tpRate[index] + ","); } bw.write("\n"); bw.close(); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return rocArea; } }
From source file:meka.gui.explorer.classify.ShowROC.java
License:Open Source License
/** * Returns the name of the default Y column to display. * * @return the name of the column *///w w w.j a va 2 s . c o m protected String getDefaultYColumn() { return ThresholdCurve.TP_RATE_NAME; }
From source file:meka.gui.guichooser.ROC.java
License:Open Source License
/** * Called by the menu items action listener. *//*from w w w. java 2s. c o m*/ @Override protected void launch() { m_FileChooser = GUIHelper.newConverterFileChooser(); // choose file int retVal = m_FileChooser.showOpenDialog(null); if (retVal != JFileChooser.APPROVE_OPTION) return; File file = m_FileChooser.getSelectedFile(); // create plot Instances data; try { data = m_FileChooser.getLoader().getDataSet(); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error loading file '" + file + "':\n" + e, "Error", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); return; } data.setClassIndex(data.numAttributes() - 1); ThresholdVisualizePanel vmc = new ThresholdVisualizePanel(); vmc.setROCString("(Area under ROC = " + Utils.doubleToString(ThresholdCurve.getROCArea(data), 4) + ")"); vmc.setName(data.relationName()); PlotData2D tempd = new PlotData2D(data); tempd.setPlotName(data.relationName()); tempd.m_displayAllPoints = true; // specify which points are connected boolean[] cp = new boolean[data.numInstances()]; for (int n = 1; n < cp.length; n++) cp[n] = true; try { tempd.setConnectPoints(cp); vmc.addPlot(tempd); if (data.attribute(ThresholdCurve.FP_RATE_NAME) != null) vmc.setXIndex(data.attribute(ThresholdCurve.FP_RATE_NAME).index()); if (data.attribute(ThresholdCurve.TP_RATE_NAME) != null) vmc.setYIndex(data.attribute(ThresholdCurve.TP_RATE_NAME).index()); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Error adding plot:\n" + e, "Error", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); return; } MekaFrame frame = new MekaFrame(); frame.setTitle(getName()); frame.setDefaultCloseOperation(MekaFrame.DISPOSE_ON_CLOSE); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(vmc); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setVisible(true); }