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

📄 smooperatorproperty.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
字号:

//// @author XiaoguangXu HITSZ-ICE
package eti.bi.alphaminer.patch.standard.operation.property;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import eti.bi.alphaminer.core.handler.ICaseHandler;
import eti.bi.alphaminer.operation.operator.INodeInfo;
import eti.bi.alphaminer.operation.property.OperatorProperty;
import eti.bi.alphaminer.patch.standard.operation.operator.SMOOperator;
import eti.bi.common.Locale.Resource;
import eti.bi.exception.SysException;

public class SMOOperatorProperty extends OperatorProperty {
	private static final long serialVersionUID = -285656442630953L;
	/* UI controls */
	private JButton m_ButtonReset = new JButton();
	private JButton m_ButtonSave = new JButton();
	private JButton m_ButtonCancel = new JButton();
	
	private String[] v_buildLogisticModels = { "True", "False" };
	private String[] v_debug = { "True", "False" };
	private String[] v_featureSpaceNormalization = { "True", "False" };
	private String[] v_filterType = { "Normalize training data", "Standardize training data", "Neither" };
	private String[] v_lowerOrderTerms = { "True", "False" };
	private String[] v_useRBF = { "True", "False" };

	private JComboBox m_buildLogModels = new JComboBox(v_buildLogisticModels);
	private JTextField m_c = new JTextField();
	private JTextField m_cacheSize = new JTextField();
	private JComboBox m_debug = new JComboBox(v_debug);
	private JTextField m_epsilon = new JTextField();
	private JTextField m_exponent = new JTextField();
	private JComboBox m_featureSpaceNormalization = new JComboBox(v_featureSpaceNormalization);
	private JComboBox m_filterType = new JComboBox(v_filterType);
	private JTextField m_gamma = new JTextField();
	private JComboBox m_lowerOrderTerms = new JComboBox(v_lowerOrderTerms);
	private JTextField m_numFolds = new JTextField();
	private JTextField m_randomSeed = new JTextField();
	private JTextField m_toleranceParameters = new JTextField();
	private JComboBox m_useRBF = new JComboBox(v_useRBF);

	
	public SMOOperatorProperty(String a_CaseID, String a_NodeID, String a_Name, INodeInfo a_NodeInfo,
			ICaseHandler a_CaseHandler) throws SysException {
		super(a_CaseID, a_NodeID, "SMO [" + a_NodeID + "]", a_NodeInfo, a_CaseHandler);
		createSMOOperatorProperty();
		this.setTitle(Resource.srcStr("SMO") + " [" + a_NodeID + "]");
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == m_ButtonSave) {
			if (applyContent()) {
				m_ParameterChanged = true;
			}
		} else if (e.getSource() == m_ButtonReset) {
			getContent();
		} else if (e.getSource() == m_ButtonCancel)
			close();
	}

	private boolean applyContent() {
		if (validateProperty()) {
			return setContent();
		} else {
			return false;
		}
	}

	private void createSMOOperatorProperty() {
		JPanel propertyPanel = new JPanel();
		JPanel buttonPanel = new JPanel();
		/* propertyPanel */
		propertyPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(Resource
				.srcStr("SMO")), BorderFactory.createEmptyBorder(2, 40, 0, 6)));
		JLabel buildLogisticModels = new JLabel(Resource.srcStr("buildLogisticModels"));
		JLabel c = new JLabel(Resource.srcStr("c"));
		JLabel cacheSize = new JLabel(Resource.srcStr("cacheSize"));
		JLabel debug = new JLabel(Resource.srcStr("debug"));
		JLabel epsilon = new JLabel(Resource.srcStr("epsilon"));
		JLabel exponent = new JLabel(Resource.srcStr("exponent"));
		JLabel featureSpaceNormalization = new JLabel(Resource.srcStr("featureSpaceNormalization"));
		JLabel filterType = new JLabel(Resource.srcStr("filterType"));
		JLabel gamma = new JLabel(Resource.srcStr("gamma"));
		JLabel lowerOrderTerms = new JLabel(Resource.srcStr("LowerOrderTerms"));
		JLabel numFolds = new JLabel(Resource.srcStr("numFolds"));
		JLabel randomSeed = new JLabel(Resource.srcStr("randomSeed"));
		JLabel toleranceParameters = new JLabel(Resource.srcStr("toleranceParameter"));
		JLabel useRBF = new JLabel(Resource.srcStr("useRBF"));
		int leftMargin = 4;
		buildLogisticModels.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		c.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		cacheSize.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		debug.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		epsilon.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		exponent.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		featureSpaceNormalization.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		filterType.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		gamma.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		lowerOrderTerms.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		numFolds.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		randomSeed.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		toleranceParameters.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		useRBF.setBorder(BorderFactory.createEmptyBorder(0, leftMargin, 0, 0));
		propertyPanel.setLayout(new GridLayout(14, 2, 0, 5));
		propertyPanel.add(buildLogisticModels);
		propertyPanel.add(m_buildLogModels);
		propertyPanel.add(c);
		//propertyPanel.a
		propertyPanel.add(m_c);
		propertyPanel.add(cacheSize);
		propertyPanel.add(m_cacheSize);
		propertyPanel.add(debug);
		propertyPanel.add(m_debug);
		propertyPanel.add(epsilon);
		propertyPanel.add(m_epsilon);
		propertyPanel.add(exponent);
		propertyPanel.add(m_exponent);
		propertyPanel.add(featureSpaceNormalization);
		propertyPanel.add(m_featureSpaceNormalization);
		propertyPanel.add(filterType);
		propertyPanel.add(m_filterType);
		propertyPanel.add(gamma);
		propertyPanel.add(m_gamma);
		propertyPanel.add(lowerOrderTerms);
		propertyPanel.add(m_lowerOrderTerms);
		propertyPanel.add(numFolds);
		propertyPanel.add(m_numFolds);
		propertyPanel.add(randomSeed);
		propertyPanel.add(m_randomSeed);
		propertyPanel.add(toleranceParameters);
		propertyPanel.add(m_toleranceParameters);
		propertyPanel.add(useRBF);
		propertyPanel.add(m_useRBF);
		/* button panel */
		m_ButtonReset.setText(Resource.srcStr("m_ButtonReset"));
		m_ButtonSave.setText(Resource.srcStr("m_ButtonApply"));
		m_ButtonCancel.setSelected(false);
		m_ButtonCancel.setText(Resource.srcStr("m_ButtonClose"));
		buttonPanel.add(m_ButtonSave);
		buttonPanel.add(m_ButtonReset);
		buttonPanel.add(m_ButtonCancel);
		m_ButtonReset.addActionListener(this);
		m_ButtonSave.addActionListener(this);
		m_ButtonCancel.addActionListener(this);
		this.getContentPane().add(propertyPanel, BorderLayout.CENTER);
		this.getContentPane().add(buttonPanel, BorderLayout.SOUTH);
		this.setSize(300, 560);
		getContent();
	}

	
	/**
	 * Set values input in this NavieBayesOperatorProperty to the Operator Node.
	 */
	public boolean setContent() {
		if (m_Node == null) {
			return false;
		}
		
		String mm_buildLogModels = null;
		if (m_buildLogModels.getSelectedIndex() == 0) {
			mm_buildLogModels = "-M ";
		} else if (m_buildLogModels.getSelectedIndex() == 1) {
			mm_buildLogModels = " ";
		}
		m_Node.setParameterValue(SMOOperator.BUILD_LOG_MODELS, mm_buildLogModels);
		m_Node.setParameterValue(SMOOperator.C, String.valueOf(m_c.getText().trim()));
		m_Node.setParameterValue(SMOOperator.CACHE_SIZE, String.valueOf(m_cacheSize.getText()));
		
		m_Node.setParameterValue(SMOOperator.EPSILON, String.valueOf(m_epsilon.getText()));
		m_Node.setParameterValue(SMOOperator.EXPONENT, String.valueOf(m_exponent.getText()));
		String mm_featureSpaceNormalization = null;
		if (m_featureSpaceNormalization.getSelectedIndex() == 0) {
			mm_featureSpaceNormalization = "-F ";
		} else if (m_featureSpaceNormalization.getSelectedIndex() == 1) {
			mm_featureSpaceNormalization = " ";
		}
		m_Node.setParameterValue(SMOOperator.FEATRUE_SPACE_NORMOLIZATION, mm_featureSpaceNormalization);
		m_Node.setParameterValue(SMOOperator.FILTER_TYPE, String.valueOf(m_filterType.getSelectedIndex()));
		m_Node.setParameterValue(SMOOperator.GAMMA, String.valueOf(m_gamma.getText()));
		String mm_lower_order_terms = null;
		if (m_lowerOrderTerms.getSelectedIndex() == 0) {
			mm_lower_order_terms = "-O ";
		} else if (m_lowerOrderTerms.getSelectedIndex() == 1) {
			mm_lower_order_terms = " ";
		}
		m_Node.setParameterValue(SMOOperator.LOWER_ORDER_TERMS, mm_lower_order_terms);
		m_Node.setParameterValue(SMOOperator.NUM_FOLDERS, String.valueOf(m_numFolds.getText()));
		m_Node.setParameterValue(SMOOperator.RANDOM_SEED, String.valueOf(m_randomSeed.getText()));
		m_Node.setParameterValue(SMOOperator.TOLERANCE_PARAMETER, String.valueOf(m_toleranceParameters.getText()));
		String mm_use_RBF = null;
		if (m_useRBF.getSelectedIndex() == 0) {
			mm_use_RBF = "-R ";
		} else if (m_useRBF.getSelectedIndex() == 1) {
			mm_use_RBF = " ";
			
		}
		m_Node.setParameterValue(SMOOperator.USE_RBF, mm_use_RBF);
		clearOperatorTempResult();
		setPropertiesModified();
		return true;
	}

	/**
	 * Retrieve information from Operator Node and display those values in this
	 * NavieBayesOperatorProperty.
	 */
	private void getContent() {
		if (m_Node == null)
			return;
		String blm = (String) m_Node.getParameterValue(SMOOperator.BUILD_LOG_MODELS);
		if (blm == null) {
			blm = SMOOperator.DEFAULT_BUILD_LOG_MODELS;
		}
		if (blm == "-M")
			m_buildLogModels.setSelectedIndex(0);
		else
			m_buildLogModels.setSelectedIndex(1);
		String cParameter = (String) m_Node.getParameterValue(SMOOperator.C);
		if (cParameter == null) {
			cParameter = SMOOperator.DEFAULT_C;
		}
		m_c.setText(cParameter);
		String cs = (String) m_Node.getParameterValue(SMOOperator.CACHE_SIZE);
		if (cs == null) {
			cs = SMOOperator.DEFAULT_CACHE_SIZE;
		}
		m_cacheSize.setText(cs);
		String db = (String) m_Node.getParameterValue(SMOOperator.DEBUG);
		if (db == null) {
			db = SMOOperator.DEFAULT_DEBUG;
		}
		if (db == "-D")
			m_debug.setSelectedIndex(0);
		else
			m_debug.setSelectedIndex(1);
		String ep = (String) m_Node.getParameterValue(SMOOperator.EPSILON);
		if (ep == null) {
			ep = SMOOperator.DEFAULT_EPSILON;
		}
		m_epsilon.setText(ep);
		String exp = (String) m_Node.getParameterValue(SMOOperator.EXPONENT);
		if (exp == null) {
			exp = SMOOperator.DEFAULT_EXPONENT;
		}
		m_exponent.setText(exp);
		String fsn = (String) m_Node.getParameterValue(SMOOperator.FEATRUE_SPACE_NORMOLIZATION);
		if (fsn == null) {
			fsn = SMOOperator.DEFAULT_FEATRUE_SPACE_NORMOLIZATION;
		}
		if (fsn == "-F") {
			m_featureSpaceNormalization.setSelectedIndex(0);
		} else {
			m_featureSpaceNormalization.setSelectedIndex(1);
		}
		String ft = (String) m_Node.getParameterValue(SMOOperator.FILTER_TYPE);
		if (ft == null) {
			ft = SMOOperator.DEFAULT_FILTER_TYPE;
		} else if (ft == "0") {
			m_filterType.setSelectedIndex(0);
		} else if (ft == "1") {
			m_filterType.setSelectedIndex(1);
		} else if (ft == "2") {
			m_filterType.setSelectedIndex(2);
		}
		String ga = (String) m_Node.getParameterValue(SMOOperator.GAMMA);
		if (ga == null) {
			ga = SMOOperator.DEFAULT_GAMMA;
		}
		m_gamma.setText(ga);
		String lot = (String) m_Node.getParameterValue(SMOOperator.LOWER_ORDER_TERMS);
		if (lot == null) {
			lot = SMOOperator.DEFAULT_LOWER_ORDER_TERMS;
		}
		if (lot == "-O")
			m_lowerOrderTerms.setSelectedIndex(0);
		else
			m_lowerOrderTerms.setSelectedIndex(1);
		String nf = (String) m_Node.getParameterValue(SMOOperator.NUM_FOLDERS);
		if (nf == null) {
			nf = SMOOperator.DEFAULT_NUM_FOLDERS;
		}
		m_numFolds.setText(nf);
		String rs = (String) m_Node.getParameterValue(SMOOperator.RANDOM_SEED);
		if (rs == null) {
			rs = SMOOperator.DEFAULT_RANDOM_SEED;
		}
		m_randomSeed.setText(rs);
		String tp = (String) m_Node.getParameterValue(SMOOperator.TOLERANCE_PARAMETER);
		if (tp == null) {
			tp = SMOOperator.DEFAULT_TOLERANCE_PARAMETER;
		}
		m_toleranceParameters.setText(tp);
		String ur = (String) m_Node.getParameterValue(SMOOperator.USE_RBF);
		if (ur == null) {
			ur = SMOOperator.DEFAULT_USE_RBF;
		}
		if (ur == "-R") {
			m_useRBF.setSelectedIndex(0);
		} else {
			m_useRBF.setSelectedIndex(1);
		}
	}

	/**
	 * Validate input values.
	 * 
	 * @return true if all values are valid; false otherwise.
	 */
	private boolean validateProperty() {
		return true;
	}
	
	/**
	 * Retrieve information from Operator Node and display those values in this
	 * ClusteringOperatorProperty.
	 */
	
}

⌨️ 快捷键说明

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