📄 learnerinterface.java
字号:
*/
private JButton getJButton1() {
if (exitbutton == null) {
exitbutton = new JButton();
exitbutton.setBounds(new java.awt.Rectangle(402, 370, 109, 41));
exitbutton.setText("Exit");
exitbutton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
doExit();
}
});
}
return exitbutton;
}
/**
* This method initializes validateT
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (validateT == null) {
validateT = new JTextField();
validateT.setBounds(new java.awt.Rectangle(135, 31, 45, 20));
validateT.setText("15");
}
return validateT;
}
/**
* This method initializes parameterT
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField1() {
if (parameterT == null) {
parameterT = new JTextField();
parameterT.setBounds(new java.awt.Rectangle(462, 5, 54, 20));
parameterT.setText("10");
}
return parameterT;
}
/**
* This method initializes datafileT
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField2() {
if (datafileT == null) {
datafileT = new JTextField();
datafileT.setBounds(new java.awt.Rectangle(79, 370, 77, 20));
datafileT.setEnabled(false);
datafileT.setText("crx.data");
}
return datafileT;
}
/**
* This method initializes dataT
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField3() {
if (dataT == null) {
dataT = new JTextField();
dataT.setBounds(new java.awt.Rectangle(245, 370, 26, 20));
dataT.setText("10");
}
return dataT;
}
/**
* This method initializes labelT
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField4() {
if (labelT == null) {
labelT = new JTextField();
labelT.setBounds(new java.awt.Rectangle(368, 370, 26, 20));
labelT.setEnabled(false);
labelT.setText("15");
}
return labelT;
}
private void reinitClassifier() {
try {
if (datasetcheckbox.isSelected()
&& !(dataT.getText().equals("1")
|| dataT.getText().equals("2")
|| dataT.getText().equals("7")
|| dataT.getText().equals("10")
|| dataT.getText().equals("13") || dataT.getText()
.equals("14"))) {
JOptionPane
.showMessageDialog(
this,
"The specified data column in not allowed on the default dataset. \nAllowed values: 1,2,7,10,13,14\nLast correct setting will be used",
"Error", JOptionPane.ERROR_MESSAGE);
return;
}
Data data = new Data(datafileT.getText(), Integer.parseInt(dataT
.getText()), Integer.parseInt(labelT.getText()));
if (jCheckBox.isSelected())
data.shuffle();
switch (selector.getSelectedIndex()) {
case 0:
learner = new Adaboost(data, Integer.parseInt(parameterT
.getText()));
break;
case 1:
if (data.fulldata.length < Integer.parseInt(parameterT
.getText()))
JOptionPane
.showMessageDialog(
this,
"The indicated neighbors are bigger than the dataset itself. Please select a lower value for this field");
else
learner = new Knn(data, new Integer(parameterT.getText())
.intValue());
break;
case 2:
if (data.fulldata.length < Integer.parseInt(parameterT
.getText()))
JOptionPane
.showMessageDialog(
this,
"The indicated distance is bigger than the dataset itself. Please select a lower value for this field");
else
learner = new DistanceMajority(data, Integer
.parseInt(parameterT.getText()));
break;
case 3:
learner = new Parzen(data, Double.parseDouble(parameterT
.getText()));
break;
case 4:
learner = new Linear(data, false);
break;
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Error",
JOptionPane.ERROR_MESSAGE);
return;
}
}
private void doExit() {
int state = JOptionPane.showConfirmDialog(this,
"Are you sure you want to quit?", "Quit",
JOptionPane.YES_OPTION & JOptionPane.NO_OPTION);
if (state == JOptionPane.YES_OPTION)
System.exit(0);
}
/**
* This method initializes toclassifyT
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField5() {
if (toclassifyT == null) {
toclassifyT = new JTextField();
toclassifyT.setBounds(new java.awt.Rectangle(135, 56, 45, 20));
}
return toclassifyT;
}
/**
* This method initializes scrollbars
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (scrollbars == null) {
scrollbars = new JScrollPane(getJTextArea());
scrollbars.setBounds(new java.awt.Rectangle(6, 88, 509, 277));
scrollbars.setViewportView(getJTextArea());
}
return scrollbars;
}
/**
* This method initializes datasetcheckbox
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getJCheckBox() {
if (datasetcheckbox == null) {
datasetcheckbox = new JCheckBox();
datasetcheckbox.setBounds(new java.awt.Rectangle(2, 392, 156, 20));
datasetcheckbox.setSelected(true);
datasetcheckbox.setBackground(java.awt.SystemColor.control);
datasetcheckbox.setText("Use Default dataset file");
datasetcheckbox
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if (!datasetcheckbox.isSelected()) {
JOptionPane
.showMessageDialog(
null,
"Warning: Using this option incorrectly may introduce strange application behaviours");
datafileT.setEnabled(true);
labelT.setEnabled(true);
} else {
datafileT.setText("crx.data");
labelT.setText("15");
datafileT.setEnabled(false);
labelT.setEnabled(false);
}
}
});
}
return datasetcheckbox;
}
/**
* This method initializes performancebutton
*
* @return javax.swing.JButton
*/
private JButton getJButton3() {
if (performancebutton == null) {
performancebutton = new JButton();
performancebutton
.setBounds(new java.awt.Rectangle(340, 56, 175, 20));
performancebutton.setText("Training Error");
performancebutton
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
reinitClassifier();
double performance = learner
.test(learner.getdata().training);
console
.setText(console.getText()
+ "========================= Training Error ============================\n"
+ "Algorithm = "
+ selector.getSelectedItem()
+ " ("
+ parameterT.getText()
+ ")\n"
+ "Performance: "
+ performance
+ "\nTraining Error: "
+ (100 - performance)
+ "\n"
+ "=====================================================================\n\n");
}
});
}
return performancebutton;
}
/**
* This method initializes findbestbutton
*
* @return javax.swing.JButton
*/
private JButton getJButton4() {
if (findbestbutton == null) {
findbestbutton = new JButton();
findbestbutton.setBounds(new java.awt.Rectangle(340, 30, 175, 20));
findbestbutton.setVisible(false);
findbestbutton
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
int state = JOptionPane
.showConfirmDialog(
null,
"This operation is computationally expansive and may require few minutes. Continue?",
"Warning", JOptionPane.YES_OPTION
& JOptionPane.NO_OPTION);
if (state != JOptionPane.YES_OPTION)
return;
reinitClassifier();
console
.setText(console.getText()
+ "============================ Find Best Parameter ====================\n"
+ " Best Parameter found : "
+ learner.findparameter()
+ "\n"
+ "=====================================================================\n\n");
}
});
}
return findbestbutton;
}
/**
* This method initializes printdatabutton
*
* @return javax.swing.JButton
*/
private JButton getPrintdatabutton() {
if (printdatabutton == null) {
printdatabutton = new JButton();
printdatabutton
.setBounds(new java.awt.Rectangle(277, 392, 116, 20));
printdatabutton.setText("Print Dataset");
printdatabutton
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
reinitClassifier();
console
.setText(console.getText()
+ "=============================== Dataset =============================\n"
+ "Data\tLabel\tWeight\n"
+ learner.getdata().print(
learner.getdata().fulldata,
-1)
+ "\n"
+ "=====================================================================\n\n");
}
});
}
return printdatabutton;
}
/**
* This method initializes jCheckBox
*
* @return javax.swing.JCheckBox
*/
private JCheckBox getJCheckBox2() {
if (jCheckBox == null) {
jCheckBox = new JCheckBox();
jCheckBox.setBounds(new java.awt.Rectangle(165, 392, 105, 20));
jCheckBox.setSelected(false);
jCheckBox.setText("Shuffle data");
jCheckBox.setBackground(SystemColor.control);
}
return jCheckBox;
}
} // @jve:decl-index=0:visual-constraint="173,145"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -