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

📄 outliertreatmentoperatorproperty.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		m_RadioMissingVal.setSelected(true);
		EnabledNumericAttribute(true);
		value = (String) m_Node.getParameterValue("outlier");
		if (value != null) {
			if (value.equalsIgnoreCase(TreatOutlierAttributeValue.OUTLIER_TREATMENT_METHOD_asMissingValues))
				m_RadioMissingVal.setSelected(true);
			else
				m_RadioExtremeVal.setSelected(true);
		}
		value = (String) m_Node.getParameterValue("lowerBound");
		if (value != null)
			m_LowerBoundText.setText(value);
		else
			m_LowerBoundText.setText("-10.0");
		value = (String) m_Node.getParameterValue("upperBound");
		if (value != null)
			m_UpperBoundText.setText(value);
		else
			m_UpperBoundText.setText("10.0");
		// value = m_Node.getParameterValue("min");
		// if (value != null)
		// m_MinText.setText(value);
		// else
		// m_MinText.setText("");
		// // m_MinText.setText(Double.toString(m_MinValues[attrIndex-1]));
		//
		// value = m_Node.getParameterValue("max");
		// if (value != null)
		// m_MaxText.setText(value);
		// else
		// m_MaxText.setText("");
		// // m_MaxText.setText(Double.toString(m_MaxValues[attrIndex-1]));
		/*
		 * set values dependent of parent
		 */
		if (m_MetaData == null || m_Node == null)
			return;
		int m_Column = m_MetaData.getAttributesNumber();
		if (m_Column == 0)
			return;
		MiningAttribute[] miningAttributes = m_MetaData.getAttributesArray();
		MiningAttribute attribute = null;
		String name = null;
		int index = 0;
		int attrIndex = 0;
		MiningAttribute mAtt = null;
		m_AttributeCombo.removeAllItems();
		m_AttributeCombo.addItem(DEFAULT);
		for (int i = 0; i < m_Column; i++) {
			value = (String) m_Node.getParameterValue("target");
			attribute = miningAttributes[i];
			name = attribute.getName();
			m_AttributeCombo.addItem(name);
			index++;
			if (value != null && value.equalsIgnoreCase(name)) {
				attrIndex = index;
				mAtt = attribute;
			}
		}
		m_AttributeCombo.setSelectedIndex(attrIndex);
		value = (String) m_Node.getParameterValue("targetType");
		if (mAtt != null) {
			if (mAtt instanceof CategoricalAttribute) {
				if (value != null && value.equals(CATEG)) {
					EnabledCategoricalAttribute();
				} else {
					m_AttributeCombo.setSelectedIndex(0);
					EnabledNumericAttribute(true);
				}
			} else {
				if (value != null && value.equals(NUM)) {
					EnabledNumericAttribute(true);
				} else {
					m_AttributeCombo.setSelectedIndex(0);
					EnabledNumericAttribute(true);
				}
			}
			return;
		}
		m_AttributeCombo.setSelectedIndex(0);
		// m_RadioMissingVal.setSelected(true);
		EnabledNumericAttribute(true);
		// m_LowerBoundText.setText("-10.0");
		// m_UpperBoundText.setText("-10.0");
		// m_MinText.setText("");
		// m_MaxText.setText("");
	}

	private boolean setContent() {
		if (!validateProperty())
			return false;
		// << added by Joyce 2005/03/17 to clear result
		// Operator op = m_ParentPanel.getOperator(m_NodeID);
		// ((OutlierTreatmentOperator) op).clearResult();
		clearOperatorTempResult();
		// >>
		String attrName = null;
		String targetType = null;
		MiningAttribute mAtt = null;
		// String outlier = null;
		double lowerBound = -1;
		double upperBound = -1;
		// double min = -1;
		// double max = -1;
		attrName = (String) m_AttributeCombo.getSelectedItem();
		mAtt = m_MetaData.getMiningAttribute(attrName);
		if (mAtt instanceof CategoricalAttribute) {
			// outlier =
			// TreatOutlierAttributeValue.OUTLIER_TREATMENT_METHOD_asMissingValues;
			targetType = CATEG;
		} else if (mAtt instanceof NumericAttribute) {
			targetType = NUM;
			lowerBound = Double.valueOf(m_LowerBoundText.getText().trim()).doubleValue();
			upperBound = Double.valueOf(m_UpperBoundText.getText().trim()).doubleValue();
		}
		m_Node.getParameters().remove("target");
		// m_Node.getParameters().remove("outlier");
		// m_Node.getParameters().remove("min");
		// m_Node.getParameters().remove("max");
		m_Node.getParameters().remove("lowerBound");
		m_Node.getParameters().remove("upperBound");
		m_Node.getParameters().remove("targetType");
		m_Node.setParameterValue("target", attrName);
		m_Node.setParameterValue("taregtType", targetType);
		// m_Node.setParameterValue("outlier", outlier);
		if (mAtt instanceof NumericAttribute) {
			m_Node.setParameterValue("targetType", NUM);
			// if (outlier
			// .equals(TreatOutlierAttributeValue.OUTLIER_TREATMENT_METHOD_asExtremeValues))
			// {
			// m_Node.setParameterValue("min", Double.toString(min));
			// m_Node.setParameterValue("max", Double.toString(max));
			// }
			m_Node.setParameterValue("lowerBound", Double.toString(lowerBound));
			m_Node.setParameterValue("upperBound", Double.toString(upperBound));
		} else {
			m_Node.setParameterValue("targetType", CATEG);
		}
		// << added by Joyce 2005/02/23
		// if (m_MinText.getText().trim().length() > 0)
		// {
		// min = Double.valueOf(m_MinText.getText().trim()).doubleValue();
		// m_Node.setParameterValue("min", Double.toString(min));
		// } else
		// {
		// m_Node.setParameterValue("min", "");
		// }
		//
		// if (m_MaxText.getText().trim().length() > 0)
		// {
		// max = Double.valueOf(m_MaxText.getText()).doubleValue();
		// m_Node.setParameterValue("max", Double.toString(max));
		// } else
		// {
		// m_Node.setParameterValue("min", "");
		// }
		if (m_LowerBoundText.getText().trim().length() > 0) {
			lowerBound = Double.valueOf(m_LowerBoundText.getText()).doubleValue();
			m_Node.setParameterValue("lowerBound", Double.toString(lowerBound));
		} else {
			m_Node.setParameterValue("lowerBound", "");
		}
		if (m_UpperBoundText.getText().trim().length() > 0) {
			upperBound = Double.valueOf(m_UpperBoundText.getText()).doubleValue();
			m_Node.setParameterValue("upperBound", Double.toString(upperBound));
		} else {
			m_Node.setParameterValue("upperBound", "");
		}
		// >>
		return true;
	}

	private void calcMinMaxValues(MiningInputStream a_InputStream) throws MiningException {
		// Calculate simple statistics:
		SimpleStats sist = new SimpleStats();
		sist.setInputStream(a_InputStream);
		sist.runCalculation(true);
		// Fill arrays of mean and deviation values:
		MiningDataSpecification metaData = a_InputStream.getMetaData();
		int nAtt = metaData.getAttributesNumber();
		m_MinValues = new double[nAtt];
		m_MaxValues = new double[nAtt];
		for (int i = 0; i < nAtt; i++) {
			MiningAttribute att = metaData.getMiningAttribute(i);
			if (att instanceof NumericAttribute) {
				m_MinValues[i] = sist.getCalculatedValue(att, SimpleStats.STAT_MIN);
				m_MaxValues[i] = sist.getCalculatedValue(att, SimpleStats.STAT_MAX);
				System.out.println(i + " min:" + m_MinValues[i] + " max:" + m_MaxValues[i]);
			}
			;
		}
		;
	}

	private boolean validateProperty() {
		String message = "";
		boolean setFocus = false;
		MiningAttribute mAtt = null;
		int target = m_AttributeCombo.getSelectedIndex();
		if (target <= 0) {
			m_AttributeCombo.requestFocus();
			setFocus = true;
			// m_AttributeCombo.setSelectedIndex(0);
			message += Resource.srcStr("SelectAttribute");
			m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
			return false;
		} else {
			MiningAttribute[] miningAttributes = m_MetaData.getAttributesArray();
			mAtt = miningAttributes[target - 1];
		}
		if (mAtt instanceof NumericAttribute) {
			String lowerBound = m_LowerBoundText.getText().trim();
			if (!ValueValidator.isDouble(lowerBound)) {
				if (!setFocus) {
					m_LowerBoundText.requestFocus();
					setFocus = true;
				}
				m_LowerBoundText.setText(null);
				message += Resource.srcStr("LowerMessage");
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
				return false;
			}
			String upperBound = m_UpperBoundText.getText().trim();
			if (!ValueValidator.isDouble(upperBound)) {
				if (!setFocus) {
					m_UpperBoundText.requestFocus();
					setFocus = true;
				}
				m_UpperBoundText.setText(null);
				message += Resource.srcStr("UpperMessage");
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
				return false;
			}
			if (ValueValidator.isDouble(lowerBound) && ValueValidator.isDouble(upperBound)
					&& !ValueValidator.largerThan(upperBound, Double.parseDouble(lowerBound), false)) {
				if (!setFocus) {
					m_LowerBoundText.requestFocus();
					setFocus = true;
				}
				m_LowerBoundText.setText(null);
				m_UpperBoundText.setText(null);
				message += Resource.srcStr("UpperMessage1");
				m_MessageDialog.showWarning(message, Resource.srcStr("InvalidValueMessage"));
				return false;
			}
			// if (m_RadioExtremeVal.isSelected())
			// {
			// String min = m_MinText.getText().trim();
			// if (!ValueValidator.isDouble(min))
			// {
			// if (!setFocus)
			// {
			// m_MinText.requestFocus();
			// setFocus = true;
			// }
			// m_MinText.setText(null);
			// message += "Minimum should be a double\n";
			// MessageDialog.showWarning(message,
			// Resource.srcStr("InvalidValueMessage"));
			// return false;
			// }
			//
			// String max = m_MaxText.getText().trim();
			// if (!ValueValidator.isDouble(max))
			// {
			// if (!setFocus)
			// {
			// m_MaxText.requestFocus();
			// setFocus = true;
			// }
			// m_MaxText.setText(null);
			// message += "Maximum should be a double\n";
			// MessageDialog.showWarning(message,
			// Resource.srcStr("InvalidValueMessage"));
			// return false;
			// }
			//
			// if (ValueValidator.isDouble(min)
			// && ValueValidator.isDouble(max)
			// && !ValueValidator.largerThan(max, Double
			// .parseDouble(min), false))
			// {
			// if (!setFocus)
			// {
			// m_MinText.requestFocus();
			// setFocus = true;
			// }
			// m_MinText.setText(null);
			// m_MaxText.setText(null);
			// message += "Maximum should not be larger than minimum\n";
			// MessageDialog.showWarning(message,
			// Resource.srcStr("InvalidValueMessage"));
			// return false;
			// }
			// }
		}
		// if (!message.equals("")) {
		// MessageDialog.showWarning(message, "Invalid input values");
		// return false;
		// } else
		return true;
	}

	public static void main(String[] args) {
	}
}

⌨️ 快捷键说明

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