⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resultspanel.java

📁 Java 编写的多种数据挖掘算法 包括聚类、分类、预处理等
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
				       + "Reason:\n" + ex.getMessage(),				       "Load Instances",				       0,				       JOptionPane.ERROR_MESSAGE,				       null,				       new String[] {"OK"},				       null) == 1) {	      }    }    }    /**   * Returns a vector with column names of the dataset, listed in "list". If   * a column cannot be found or the list is empty the ones from the default    * list are returned.    *    * @param list           comma-separated list of attribute names   * @param defaultList    the default list of attribute names   * @param inst           the instances to get the attribute names from   * @return               a vector containing attribute names   */  protected Vector determineColumnNames(String list, String defaultList, Instances inst) {    Vector              result;    Vector              atts;    StringTokenizer     tok;    int                 i;    String              item;        // get attribute names    atts = new Vector();    for (i = 0; i < inst.numAttributes(); i++)      atts.add(inst.attribute(i).name().toLowerCase());    // process list    result = new Vector();    tok = new StringTokenizer(list, ",");    while (tok.hasMoreTokens()) {      item = tok.nextToken().toLowerCase();      if (atts.contains(item)) {        result.add(item);      }      else {        result.clear();        break;      }    }        // do we have to return defaults?    if (result.size() == 0) {      tok = new StringTokenizer(defaultList, ",");      while (tok.hasMoreTokens())        result.add(tok.nextToken().toLowerCase());    }        return result;  }  /**   * Sets up the panel with a new set of instances, attempting   * to guess the correct settings for various columns.   *   * @param newInstances the new set of results.   */  public void setInstances(Instances newInstances) {    m_Instances = newInstances;    m_TTester.setInstances(m_Instances);    m_FromLab.setText("Got " + m_Instances.numInstances() + " results");        // setup row and column names    Vector rows = determineColumnNames(        ExperimenterDefaults.getRow(), "Key_Dataset", m_Instances);    Vector cols = determineColumnNames(        ExperimenterDefaults.getColumn(), "Key_Scheme,Key_Scheme_options,Key_Scheme_version_ID", m_Instances);        // Do other stuff    m_DatasetKeyModel.removeAllElements();    m_ResultKeyModel.removeAllElements();    m_CompareModel.removeAllElements();    m_SortModel.removeAllElements();    m_SortModel.addElement("<default>");    m_TTester.setSortColumn(-1);    String selectedList = "";    String selectedListDataset = "";    boolean comparisonFieldSet = false;     for (int i = 0; i < m_Instances.numAttributes(); i++) {      String name = m_Instances.attribute(i).name();      if (name.toLowerCase().startsWith("key_", 0)) {	m_DatasetKeyModel.addElement(name.substring(4));	m_ResultKeyModel.addElement(name.substring(4));	m_CompareModel.addElement(name.substring(4));      } else {	m_DatasetKeyModel.addElement(name);	m_ResultKeyModel.addElement(name);	m_CompareModel.addElement(name);        if (m_Instances.attribute(i).isNumeric())	  m_SortModel.addElement(name);      }      if (rows.contains(name.toLowerCase())) {	m_DatasetKeyList.addSelectionInterval(i, i);	selectedListDataset += "," + (i + 1);      } else if (name.toLowerCase().equals("key_run")) {	m_TTester.setRunColumn(i);      } else if (name.toLowerCase().equals("key_fold")) {	m_TTester.setFoldColumn(i);      } else if (cols.contains(name.toLowerCase())) {	m_ResultKeyList.addSelectionInterval(i, i);	selectedList += "," + (i + 1);      } else if (name.toLowerCase().indexOf(ExperimenterDefaults.getComparisonField()) != -1) {	m_CompareCombo.setSelectedIndex(i);	comparisonFieldSet = true;	//	break;      } else if ((name.toLowerCase().indexOf("root_relative_squared_error") != -1) &&          (!comparisonFieldSet)) {	m_CompareCombo.setSelectedIndex(i);	comparisonFieldSet = true;      }    }    m_TesterClasses.setEnabled(true);    m_DatasetKeyBut.setEnabled(true);    m_ResultKeyBut.setEnabled(true);    m_CompareCombo.setEnabled(true);    m_SortCombo.setEnabled(true);    if (ExperimenterDefaults.getSorting().length() != 0)      setSelectedItem(m_SortCombo, ExperimenterDefaults.getSorting());    Range generatorRange = new Range();    if (selectedList.length() != 0) {      try {	generatorRange.setRanges(selectedList);      } catch (Exception ex) {	ex.printStackTrace();	System.err.println(ex.getMessage());      }    }    m_TTester.setResultsetKeyColumns(generatorRange);    generatorRange = new Range();    if (selectedListDataset.length() != 0) {      try {	generatorRange.setRanges(selectedListDataset);      } catch (Exception ex) {	ex.printStackTrace();	System.err.println(ex.getMessage());      }    }    m_TTester.setDatasetKeyColumns(generatorRange);    m_SigTex.setEnabled(true);    setTTester();  }  /**   * Sets the selected item of an combobox, since using setSelectedItem(...)   * doesn't work, if one checks object references!   *   * @param cb      the combobox to set the item for   * @param item    the item to set active   */  protected void setSelectedItem(JComboBox cb, String item) {    int       i;    for (i = 0; i < cb.getItemCount(); i++) {      if (cb.getItemAt(i).toString().equals(item)) {        cb.setSelectedIndex(i);        break;      }    }  }  /**   * Updates the test chooser with possible tests   */  protected void setTTester() {        // default is to display all columns    m_TTester.setDisplayedResultsets(null);           String name = (new SimpleDateFormat("HH:mm:ss - "))      .format(new Date())      + "Available resultsets";    StringBuffer outBuff = new StringBuffer();    outBuff.append("Available resultsets\n"		   + m_TTester.resultsetKey() + "\n\n");    m_History.addResult(name, outBuff);    m_History.setSingle(name);    m_TestsModel.removeAllElements();    for (int i = 0; i < m_TTester.getNumResultsets(); i++) {      String tname = m_TTester.getResultsetName(i);      /*      if (tname.length() > 20) {	tname = tname.substring(0, 20);	} */      m_TestsModel.addElement(tname);    }        m_DisplayedModel.removeAllElements();    for (int i = 0; i < m_TestsModel.size(); i++)      m_DisplayedModel.addElement(m_TestsModel.elementAt(i));        m_TestsModel.addElement("Summary");    m_TestsModel.addElement("Ranking");    m_TestsList.setSelectedIndex(0);    m_DisplayedList.setSelectionInterval(0, m_DisplayedModel.size() - 1);        m_TestsButton.setEnabled(true);    m_DisplayedButton.setEnabled(true);    m_ShowStdDevs.setEnabled(true);    m_OutputFormatButton.setEnabled(true);    m_PerformBut.setEnabled(true);      }    /**   * Carries out a t-test using the current configuration.   */  protected void performTest() {    String sigStr = m_SigTex.getText();    if (sigStr.length() != 0) {      m_TTester.setSignificanceLevel((new Double(sigStr)).doubleValue());    } else {      m_TTester.setSignificanceLevel(ExperimenterDefaults.getSignificance());    }    // Carry out the test chosen and biff the results to the output area    m_TTester.setShowStdDevs(m_ShowStdDevs.isSelected());    if (m_Instances.attribute(m_SortCombo.getSelectedItem().toString()) != null)      m_TTester.setSortColumn(          m_Instances.attribute(            m_SortCombo.getSelectedItem().toString()).index());    else      m_TTester.setSortColumn(-1);    int compareCol = m_CompareCombo.getSelectedIndex();    int tType = m_TestsList.getSelectedIndex();    String name = (new SimpleDateFormat("HH:mm:ss - "))      .format(new Date())      + (String) m_CompareCombo.getSelectedItem() + " - "      + (String) m_TestsList.getSelectedValue();    StringBuffer outBuff = new StringBuffer();    outBuff.append(m_TTester.header(compareCol));    outBuff.append("\n");    m_History.addResult(name, outBuff);    m_History.setSingle(name);    m_TTester.setDisplayedResultsets(m_DisplayedList.getSelectedIndices());    m_TTester.setResultMatrix(m_ResultMatrix);    try {      if (tType < m_TTester.getNumResultsets()) {	outBuff.append(m_TTester.multiResultsetFull(tType, compareCol));      } else if (tType == m_TTester.getNumResultsets()) {	outBuff.append(m_TTester.multiResultsetSummary(compareCol));      } else {	outBuff.append(m_TTester.multiResultsetRanking(compareCol));      }      outBuff.append("\n");    } catch (Exception ex) {      outBuff.append(ex.getMessage() + "\n");    }    m_History.updateResult(name);  }    public void setResultKeyFromDialog() {    ListSelectorDialog jd = new ListSelectorDialog(null, m_ResultKeyList);    // Open the dialog    int result = jd.showDialog();      // If accepted, update the ttester    if (result == ListSelectorDialog.APPROVE_OPTION) {      int [] selected = m_ResultKeyList.getSelectedIndices();      String selectedList = "";      for (int i = 0; i < selected.length; i++) {	selectedList += "," + (selected[i] + 1);      }      Range generatorRange = new Range();      if (selectedList.length() != 0) {	try {	  generatorRange.setRanges(selectedList);	} catch (Exception ex) {	  ex.printStackTrace();	  System.err.println(ex.getMessage());	}      }      m_TTester.setResultsetKeyColumns(generatorRange);      setTTester();    }  }    public void setDatasetKeyFromDialog() {    ListSelectorDialog jd = new ListSelectorDialog(null, m_DatasetKeyList);    // Open the dialog    int result = jd.showDialog();        // If accepted, update the ttester    if (result == ListSelectorDialog.APPROVE_OPTION) {      int [] selected = m_DatasetKeyList.getSelectedIndices();      String selectedList = "";      for (int i = 0; i < selected.length; i++) {	selectedList += "," + (selected[i] + 1);      }      Range generatorRange = new Range();      if (selectedList.length() != 0) {	try {	  generatorRange.setRanges(selectedList);	} catch (Exception ex) {	  ex.printStackTrace();	  System.err.println(ex.getMessage());	}      }      m_TTester.setDatasetKeyColumns(generatorRange);      setTTester();    }  }  public void setTestBaseFromDialog() {    ListSelectorDialog jd = new ListSelectorDialog(null, m_TestsList);    // Open the dialog    jd.showDialog();  }  public void setDisplayedFromDialog() {    ListSelectorDialog jd = new ListSelectorDialog(null, m_DisplayedList);    // Open the dialog    jd.showDialog();  }    /**   * displays the Dialog for the output format and sets the chosen settings,    * if the user approves   */  public void setOutputFormatFromDialog() {    OutputFormatDialog dialog = new OutputFormatDialog(null);        dialog.setResultMatrix(m_ResultMatrix.getClass());    dialog.setMeanPrec(m_ResultMatrix.getMeanPrec());    dialog.setStdDevPrec(m_ResultMatrix.getStdDevPrec());    dialog.setRemoveFilterName(m_ResultMatrix.getRemoveFilterName());    dialog.setShowAverage(m_ResultMatrix.getShowAverage());        if (dialog.showDialog() == OutputFormatDialog.APPROVE_OPTION) {      try {        m_ResultMatrix = (ResultMatrix) dialog.getResultMatrix().newInstance();      }      catch (Exception e) {        e.printStackTrace();        m_ResultMatrix = new ResultMatrixPlainText();      }      m_ResultMatrix.setMeanPrec(dialog.getMeanPrec());      m_ResultMatrix.setStdDevPrec(dialog.getStdDevPrec());      m_ResultMatrix.setRemoveFilterName(dialog.getRemoveFilterName());      m_ResultMatrix.setShowAverage(dialog.getShowAverage());    }  }  /**   * Save the currently selected result buffer to a file.   */  protected void saveBuffer() {    StringBuffer sb = m_History.getSelectedBuffer();    if (sb != null) {      if (m_SaveOut.save(sb)) {	JOptionPane.showMessageDialog(this,				      "File saved",				      "Results",				      JOptionPane.INFORMATION_MESSAGE);      }    } else {      m_SaveOutBut.setEnabled(false);    }  }  /**   * sets the currently selected Tester-Class   */  protected void setTester() {    Tester        tester;    Tester        t;    int           i;        if (m_TesterClasses.getSelectedItem() == null)      return;    tester = null;        // find display name    try {      for (i = 0; i < m_Testers.size(); i++) {        t = (Tester) ((Class) m_Testers.get(i)).newInstance();        if (t.getDisplayName().equals(m_TesterClasses.getSelectedItem())) {          tester = t;          break;        }      }    }    catch (Exception e) {      e.printStackTrace();    }    if (tester == null) {      tester  = new PairedCorrectedTTester();  // default      m_TesterClasses.setSelectedItem(tester.getDisplayName());    }    tester.assign(m_TTester);    m_TTester = tester;    m_PerformBut.setToolTipText(m_TTester.getToolTipText());    System.out.println("Tester set to: " + m_TTester.getClass().getName());  }    /**   * Tests out the results panel from the command line.   *   * @param args ignored   */  public static void main(String [] args) {    try {      final JFrame jf = new JFrame("Weka Experiment: Results Analysis");      jf.getContentPane().setLayout(new BorderLayout());      final ResultsPanel sp = new ResultsPanel();      //sp.setBorder(BorderFactory.createTitledBorder("Setup"));      jf.getContentPane().add(sp, BorderLayout.CENTER);      jf.addWindowListener(new WindowAdapter() {	public void windowClosing(WindowEvent e) {	  jf.dispose();	  System.exit(0);	}      });      jf.pack();      jf.setSize(700, 550);      jf.setVisible(true);    } catch (Exception ex) {      ex.printStackTrace();      System.err.println(ex.getMessage());    }  }}

⌨️ 快捷键说明

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