gaclust.java

来自「clustering data for the different techni」· Java 代码 · 共 1,955 行 · 第 1/5 页

JAVA
1,955
字号
    FitnessMeasureLabelPanel.add(FitnessMeasureLabel);    GACenterPanel.add(FitnessMeasureLabelPanel);    FitnessMeasureComboBox.setPreferredSize(prefDim);    FitnessMeasureComboBox.addItem(Strings.FM_PA_P);    FitnessMeasureComboBox.addItem(Strings.FM_P_PA);    FitnessMeasureComboBox.addItem(Strings.FM_BOTH);    FitnessMeasureComboBox.addItem(Strings.FM_BOTH_SCALED);    FitnessMeasureComboBox.addItem(Strings.FM_NORM_W);    FitnessMeasureComboBox.addItem(Strings.FM_WE);    FitnessMeasureComboBox.addItem(Strings.FM_ALTERNATE_HAVG);    FitnessMeasureComboBox.addItem(Strings.FM_ALTERNATE);    FitnessMeasureComboBox.addItem(Strings.FM_MOD);    FitnessMeasureComboBox.addItem(Strings.FM_Q);    FitnessMeasureComboBox.addItem(Strings.FM_L);    FitnessMeasureComboBox.addItem(Strings.FM_QR);    FitnessMeasureComboBox.addItem(Strings.FM_LR);    FitnessMeasureComboBox.addItem(Strings.FM_Q_QR);    FitnessMeasureComboBox.addItemListener(this);    FitnessMeasureComboBox.setToolTipText(Strings.FM_TIP);    FitnessMeasurePanel.add(FitnessMeasureComboBox);    GACenterPanel.add(FitnessMeasurePanel);        RandomSeedGALabel.setPreferredSize(prefDim);    RandomSeedGALabel.setHorizontalAlignment(SwingConstants.RIGHT);    RandomSeedGALabel.setText("Random seed :");    RandomSeedGALabelPanel.add(RandomSeedGALabel);    GACenterPanel.add(RandomSeedGALabelPanel);    RandomSeedGATextField.setPreferredSize(prefDim);    RandomSeedGATextField.setText("1");    RandomSeedGATextField.setToolTipText(Strings.RANDSEED_TIP);    RandomSeedGAPanel.add(RandomSeedGATextField);    GACenterPanel.add(RandomSeedGAPanel);        MinimizationLabel.setPreferredSize(prefDim);    MinimizationLabel.setHorizontalAlignment(SwingConstants.RIGHT);    MinimizationLabel.setText("Optimization type :");    MinimizationLabelPanel.add(MinimizationLabel);    GACenterPanel.add(MinimizationLabelPanel);    MinimizationComboBox.setPreferredSize(prefDim);    MinimizationComboBox.addItem(Strings.FO_MIN);    MinimizationComboBox.addItem(Strings.FO_MAX);    MinimizationComboBox.setToolTipText(Strings.OPT_TIP);    MinimizationPanel.add(MinimizationComboBox);    GACenterPanel.add(MinimizationPanel);    UseTargetCheckBox.setHorizontalAlignment(SwingConstants.RIGHT);    UseTargetCheckBox.setPreferredSize(prefDim);    UseTargetCheckBox.setText("Use target");    UseTargetCheckBox.addItemListener(this);    UseTargetCheckBox.setToolTipText(Strings.USETARGET_TIP);    UseTargetPanel.add(UseTargetCheckBox);    GACenterPanel.add(UseTargetPanel);    TargetIDLabel.setPreferredSize(prefDim);    TargetIDLabel.setHorizontalAlignment(SwingConstants.RIGHT);    TargetIDLabel.setText("Target id :");    TargetIDLabel.setEnabled(false);    TargetIDLabelPanel.add(TargetIDLabel);    GACenterPanel.add(TargetIDLabelPanel);    TargetIDTextField.setPreferredSize(prefDim);    TargetIDTextField.setEnabled(false);    TargetIDTextField.setToolTipText(Strings.TARGETID_TIP);    TargetIDPanel.add(TargetIDTextField);    GACenterPanel.add(TargetIDPanel);    GACenterPanel.add(BogusLabel3);    UseWeightsCheckBox.setHorizontalAlignment(SwingConstants.RIGHT);    UseWeightsCheckBox.setPreferredSize(prefDim);    UseWeightsCheckBox.setText("Use weights");    UseWeightsCheckBox.setEnabled(false);    UseWeightsCheckBox.addItemListener(this);    UseWeightsCheckBox.setToolTipText(Strings.USEWEIGHTS_TIP);    UseWeightsPanel.add(UseWeightsCheckBox);    GACenterPanel.add(UseWeightsPanel);    SampleDBPctLabel.setPreferredSize(prefDim);    SampleDBPctLabel.setHorizontalAlignment(SwingConstants.RIGHT);    SampleDBPctLabel.setText("Sampling percent:");    SampleDBPctLabel.setEnabled(false);    SampleDBPctLabelPanel.add(SampleDBPctLabel);    GACenterPanel.add(SampleDBPctLabelPanel);    SampleDBPctTextField.setPreferredSize(prefDim);    SampleDBPctTextField.setEnabled(false);    SampleDBPctTextField.setToolTipText(Strings.SAMPLEDBPCT_TIP);    SampleDBPctPanel.add(SampleDBPctTextField);    GACenterPanel.add(SampleDBPctPanel);          GACenterPanel.add(BogusLabel4);    ExcludeAttrCheckBox.setHorizontalAlignment(SwingConstants.RIGHT);    ExcludeAttrCheckBox.setPreferredSize(prefDim);    ExcludeAttrCheckBox.setText("Exclude attributes");    ExcludeAttrCheckBox.setEnabled(false);    ExcludeAttrCheckBox.addItemListener(this);    ExcludeAttrCheckBox.setToolTipText(Strings.EXCLUDEATTR_TIP);    ExcludeAttrPanel.add(ExcludeAttrCheckBox);    GACenterPanel.add(ExcludeAttrPanel);    NRemAttrLabel.setPreferredSize(prefDim);    NRemAttrLabel.setHorizontalAlignment(SwingConstants.RIGHT);    NRemAttrLabel.setText("No. remaining attributes :");    NRemAttrLabel.setEnabled(false);    NRemAttrLabelPanel.add(NRemAttrLabel);    GACenterPanel.add(NRemAttrLabelPanel);    NRemAttrTextField.setPreferredSize(prefDim);    NRemAttrTextField.setEnabled(false);    NRemAttrTextField.setToolTipText(Strings.NREMATTR_TIP);    NRemAttrPanel.add(NRemAttrTextField);    GACenterPanel.add(NRemAttrPanel);          GACenterPanel.add(BogusLabel5);    GAPanel.add(GACenterPanel, BorderLayout.CENTER);    ClusterButton.setText("Cluster !");    ClusterButton.addActionListener(this);    ClusterButton.setMnemonic(KeyEvent.VK_C);    ClusterButton.setToolTipText(Strings.CLUSTER_TIP);    ClusterPanel.add(ClusterButton);    ClusterAbortButton.setText("Abort");    ClusterAbortButton.setEnabled(false);    ClusterAbortButton.addActionListener(this);    ClusterAbortButton.setMnemonic(KeyEvent.VK_A);    ClusterAbortButton.setToolTipText(Strings.CLUSTERABORT_TIP);    ClusterPanel.add(ClusterAbortButton);    GASouthPanel.add(ClusterPanel);        GAPanel.add(GASouthPanel, BorderLayout.SOUTH);    GASplitPane.setLeftComponent(GAPanel);    GAResultsPanel.setLayout(new BorderLayout());    // display cardinalities in the database text area by    // double-clicking a row    GAResultsTable.addMouseListener(new MouseAdapter()       {	public void mouseClicked(MouseEvent event)	{	  if (event.getClickCount() < 2)	    return;	  int rowNo = GAResultsTable.rowAtPoint(event.getPoint());	  ResultsTableModel tableModel = 	    (ResultsTableModel)GAResultsTable.getModel();	  if (tableModel instanceof GAResultsModel)	    {	      if (rowNo == 4)		{		  GALogTextArea.append(Strings.CLUSTCLASSCARD + Strings.endl);		  String classInfo = (String)tableModel.getValueAt(rowNo, 0);		  GALogTextArea.append(classInfo + Strings.endl);		}	    }	  else if (tableModel instanceof GAResultsReferenceModel)	    {	      if (rowNo == 3)		{		  GALogTextArea.append(Strings.REFCLASSCARD + Strings.endl);		  String classInfo = (String)tableModel.getValueAt(rowNo, 0);		  GALogTextArea.append(classInfo + Strings.endl);		  GALogTextArea.append(Strings.CLUSTCLASSCARD + Strings.endl);		  classInfo = (String)tableModel.getValueAt(rowNo, 1);		  GALogTextArea.append(classInfo + Strings.endl);		}	      else if (rowNo >= 8 && rowNo < 8 + refPart.getNoClasses())		{		  // get the target class from this row		  String refClassInfo = 		    (String)tableModel.getValueAt(rowNo, 0);		  String intersections = 		    (String)tableModel.getValueAt(rowNo, 1);		  GALogTextArea.append("Reference class (cardinality): " 				       + refClassInfo + Strings.endl);		  GALogTextArea.append("Intersections with clustering"				       + " classes:" + Strings.endl);		  GALogTextArea.append(intersections + Strings.endl);		}	    }	}      });        GAResultsScrollPane.setViewportView(GAResultsTable);    GAResultsNorthPanel.setLayout(new GridLayout(0, 1));    GAResultsNorthPanel.add(GAResultsScrollPane);    GAResultsNorthPanel.setPreferredSize(new Dimension(600, 200));    GAResultsPanel.add(GAResultsNorthPanel, BorderLayout.NORTH);    GASplitPane.setRightComponent(GAResultsPanel);    GASplitPane.setPreferredSize(new Dimension(600, 500));    GAHorizontalSplitPane.setLeftComponent(GASplitPane);    GALogTextArea.setLineWrap(true);     GALogTextArea.setText("Select clustering parameters" + Strings.endl);    GALogTextArea.setEditable(false);    GAScrollPane.setViewportView(GALogTextArea);    GAScrollPane.setPreferredSize(new Dimension(350, 500));    GALogPanel.setLayout(new GridLayout(0, 1));    GALogPanel.add(GAScrollPane);    GAHorizontalSplitPane.setRightComponent(GALogPanel);          MainTabbedPane.addTab("GA", GAHorizontalSplitPane);    MainTabbedPane.setEnabledAt(2, false);      getContentPane().add(MainTabbedPane);          pack();  }  // listeners  public void itemStateChanged(ItemEvent event)   {    if (event.getSource() == UseTargetCheckBox)       {	boolean state = UseTargetCheckBox.isSelected();	TargetIDLabel.setEnabled(state);	TargetIDTextField.setEnabled(state);      }    else if (event.getSource() == UseWeightsCheckBox)       {	boolean state = UseWeightsCheckBox.isSelected();	SampleDBPctLabel.setEnabled(state);	SampleDBPctTextField.setEnabled(state);      }    else if (event.getSource() == ExcludeAttrCheckBox)       {	boolean state = ExcludeAttrCheckBox.isSelected();	NRemAttrLabel.setEnabled(state);	NRemAttrTextField.setEnabled(state);      }    else if (event.getSource() == FitnessMeasureComboBox)      {	String selection = (String)FitnessMeasureComboBox.getSelectedItem();	if (selection.equals(Strings.FM_NORM_W))	  {	    UseWeightsCheckBox.setEnabled(true);	    UseWeightsCheckBox.setSelected(false);	    ExcludeAttrCheckBox.setEnabled(false);	    ExcludeAttrCheckBox.setSelected(false);	  }	else if (selection.equals(Strings.FM_WE))	  {	    UseWeightsCheckBox.setEnabled(true);	    UseWeightsCheckBox.setSelected(false);	    ExcludeAttrCheckBox.setEnabled(true);	    ExcludeAttrCheckBox.setSelected(false);	  }	else	  {	    UseWeightsCheckBox.setEnabled(false);	    UseWeightsCheckBox.setSelected(false);	    SampleDBPctLabel.setEnabled(false);	    SampleDBPctTextField.setEnabled(false);	    	    ExcludeAttrCheckBox.setEnabled(false);	    ExcludeAttrCheckBox.setSelected(false);	    NRemAttrLabel.setEnabled(false);	    NRemAttrTextField.setEnabled(false);	  }      }    else if (event.getSource() == CrossTypeComboBox)      {	// ignore the DESELECTED event	if (event.getStateChange() == ItemEvent.SELECTED)	  {	    String selection = (String)CrossTypeComboBox.getSelectedItem();	    if (selection.equals(Strings.CROSS_RAND) == false		&& selection.equals(Strings.CROSS_X_2RAND_CLASS) == false)	      {		GALogTextArea.append(Strings.DISTRNEEDED + Strings.endl);		DistrTypeComboBox.setSelectedIndex(1);	      }	  }      }  }    public void actionPerformed(ActionEvent event)  {    if (event.getSource() == OpenButton)      {	DBName = DBNameTextField.getText();	try	  {	    FileReader f = new FileReader(DBName);   	  }	catch(FileNotFoundException e)	  {	    DBLogTextArea.append(Strings.ERROR + e + Strings.endl);	    DBNameTextField.setText("");	    DBNameTextField.requestFocus();	    return;	  }	try	  {	    // get parameters	    nRows = JTextTools.getInt(NRowsTextField, DBLogTextArea, 				      Strings.NROWSERRMSG);	    if (nRows <= 0)	      {		DBLogTextArea.append(Strings.NROWSPOSITIVE + Strings.endl);		JTextTools.dealWithInvalidValue(NRowsTextField);	      }            	    nCols = JTextTools.getInt(NAttrTextField, DBLogTextArea,				      Strings.NATTRERRMSG);	    if (nCols <= 0)	      {		DBLogTextArea.append(Strings.NATTRPOSITIVE + Strings.endl);		JTextTools.dealWithInvalidValue(NAttrTextField);	      }	  }	catch (IllegalArgumentException invalid_input)	  {	    // wait for user to input something reasonable	    return;	  }	output = new StringBuffer();	Vector v;	try	  {	    v = DBTransform.transform(DBName, nRows, nCols, output);	  }	catch(IOException e)	  {	    DBLogTextArea.append(Strings.ERROR + e + Strings.endl);	    return;	  }	// database transformation was successful	if (output.length() > 0)	  DBLogTextArea.append(output.toString());	nRows = ((Integer)v.elementAt(0)).intValue();	nCols = ((Integer)v.elementAt(1)).intValue();	db = new Partition[nCols];	db_copy = new Partition[nCols];	for (int i = 0; i < nCols; i++)	  {	    db[i] = (Partition)v.elementAt(i+2);	    db_copy[i] = db[i];	  }	DBLogTextArea.append("Currently selected database: " + DBName);	DBLogTextArea.append("(" + nRows + " rows " + nCols 			     + " attributes)" + Strings.endl);		DBTable.setModel(new DBTableModel());	MainTabbedPane.setEnabledAt(2, true);	flipTarget = true; // we get a new database we can flip the	// target if required      }    else if (event.getSource() == BrowseButton)      {	DBNameTextField.setText("");	NRowsTextField.setText("");	NAttrTextField.setText("");		int returnVal = jfc.showOpenDialog(this);		if (returnVal == JFileChooser.APPROVE_OPTION)	  {	    File file = jfc.getSelectedFile();	    DBName = file.getPath();	    DBNameTextField.setText(file.getName());	  }      }    else if (event.getSource() == ClusterButton)      {	// get parameters	try	  {	    popSize = JTextTools.getInt(PopSizeTextField, GALogTextArea,					Strings.POPSIZEERRMSG);	    if (popSize <= 0)	      {		GALogTextArea.append(Strings.POPSIZEPOSITIVE + Strings.endl);		JTextTools.dealWithInvalidValue(PopSizeTextField);	      }            	    K = JTextTools.getInt(NClassesClustTextField, GALogTextArea,				  Strings.KERRMSG);

⌨️ 快捷键说明

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