📄 resultspanel.java
字号:
}
} else {
m_FromLab.setText("Can't get results from experiment");
}
}
/**
* Queries a database to load results from the specified table name. The
* database connection must have already made by m_InstanceQuery.
*
* @param tableName the name of the table containing results to retrieve.
*/
protected void setInstancesFromDatabaseTable(String tableName) {
try {
m_FromLab.setText("Reading from database, please wait...");
final Instances i = m_InstanceQuery.retrieveInstances("SELECT * FROM "
+ tableName);
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
setInstances(i);
}
});
m_InstanceQuery.disconnectFromDatabase();
} catch (Exception ex) {
m_FromLab.setText(ex.getMessage());
}
}
/**
* Loads results from a set of instances contained in the supplied
* file.
*
* @param f a value of type 'File'
*/
protected void setInstancesFromFile(File f) {
try {
m_FromLab.setText("Reading from file...");
Reader r = new BufferedReader(new FileReader(f));
setInstances(new Instances(r));
} catch (Exception ex) {
ex.printStackTrace();
m_FromLab.setText(ex.getMessage());
}
}
/**
* 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");
// Temporarily remove the configuration listener
m_RunCombo.removeActionListener(m_ConfigureListener);
// Do other stuff
m_DatasetKeyModel.removeAllElements();
m_RunModel.removeAllElements();
m_ResultKeyModel.removeAllElements();
m_CompareModel.removeAllElements();
int datasetCol = -1;
int runCol = -1;
String selectedList = "";
String selectedListDataset = "";
for (int i = 0; i < m_Instances.numAttributes(); i++) {
String name = m_Instances.attribute(i).name();
m_DatasetKeyModel.addElement(name);
m_RunModel.addElement(name);
m_ResultKeyModel.addElement(name);
m_CompareModel.addElement(name);
if (name.toLowerCase().equals("key_dataset")) {
m_DatasetKeyList.addSelectionInterval(i, i);
selectedListDataset += "," + (i + 1);
} else if ((runCol == -1)
&& (name.toLowerCase().equals("key_run"))) {
m_RunCombo.setSelectedIndex(i);
runCol = i;
} else if (name.toLowerCase().equals("key_fold")) {
m_TTester.setFoldColumn(i);
} else if (name.toLowerCase().equals("key_scheme") ||
name.toLowerCase().equals("key_scheme_options") ||
name.toLowerCase().equals("key_scheme_version_id")) {
m_ResultKeyList.addSelectionInterval(i, i);
selectedList += "," + (i + 1);
} else if (name.toLowerCase().indexOf("percent_correct") != -1) {
m_CompareCombo.setSelectedIndex(i);
// break;
} else if ((name.toLowerCase().indexOf("root_relative_squared_error") != -1) &&
(m_CompareCombo.getSelectedIndex() < 0)) {
m_CompareCombo.setSelectedIndex(i);
}
}
if (runCol == -1) {
runCol = 0;
}
m_DatasetKeyBut.setEnabled(true);
m_RunCombo.setEnabled(true);
m_ResultKeyBut.setEnabled(true);
m_CompareCombo.setEnabled(true);
// Reconnect the configuration listener
m_RunCombo.addActionListener(m_ConfigureListener);
// Set up the TTester with the new data
m_TTester.setRunColumn(runCol);
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();
}
/**
* Updates the test chooser with possible tests
*/
protected void setTTester() {
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_TestsModel.addElement("Summary");
m_TestsModel.addElement("Ranking");
m_TestsList.setSelectedIndex(0);
m_TestsButton.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(0.05);
}
// Carry out the test chosen and biff the results to the output area
m_TTester.setShowStdDevs(m_ShowStdDevs.isSelected());
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);
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();
}
/**
* 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);
}
}
/**
* 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 + -