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

📄 cobwebxubasedminingmodel.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
字号:
package com.prudsys.pdm.Models.Clustering.CDBased;

import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;

import com.prudsys.pdm.Adapters.PmmlVersion20.ClusteringField;
import com.prudsys.pdm.Adapters.PmmlVersion20.ClusteringModel;
import com.prudsys.pdm.Adapters.PmmlVersion20.ComparisonMeasure;
import com.prudsys.pdm.Adapters.PmmlVersion20.DataDictionary;
import com.prudsys.pdm.Adapters.PmmlVersion20.Header;
import com.prudsys.pdm.Adapters.PmmlVersion20.MiningSchema;
import com.prudsys.pdm.Adapters.PmmlVersion20.PMML;
import com.prudsys.pdm.Adapters.PmmlVersion20.TransformationDictionary;
import com.prudsys.pdm.Core.ApplicationInputSpecification;
import com.prudsys.pdm.Core.MetaDataOperations;
import com.prudsys.pdm.Core.MiningDataSpecification;
import com.prudsys.pdm.Core.MiningException;
import com.prudsys.pdm.Core.MiningMatrixElement;
import com.prudsys.pdm.Core.MiningModel;
import com.prudsys.pdm.Input.MiningInputStream;
import com.prudsys.pdm.Input.MiningVector;
import com.prudsys.pdm.Input.Records.Arff.MiningArffStream;
import com.prudsys.pdm.Models.Clustering.Cluster;
import com.prudsys.pdm.Models.Clustering.ClusteringMiningModel;
import com.prudsys.pdm.Models.Clustering.ClusteringSettings;
import com.prudsys.pdm.Models.Clustering.Distance;
import com.prudsys.pdm.Transform.MiningTransformationActivity;
import com.prudsys.pdm.Utils.PmmlUtils;

public class CobwebXubasedMiningModel extends ClusteringMiningModel {

	public static final int CENTER_BASED = 1;

	/** Distribution-based clustering model. */
	public static final int DISTRIBUTION_BASED = 2;

	/** Distribution type. */
	private int type = CENTER_BASED;

	/**
	 * Empty constructor.
	 */
	public CobwebXubasedMiningModel() {
		function = MiningModel.CLUSTERING_FUNCTION;
		algorithm = MiningModel.CENTER_BASED_CLUSTERING_ALGORITHM;
	}

	// -----------------------------------------------------------------------
	// Getter and setter methods
	// -----------------------------------------------------------------------
	/**
	 * Sets type of clustering (center-based, distribution-based).
	 * 
	 * @param type
	 *            new type of clustering
	 */
	public void setType(int type) {
		this.type = type;
	}

	/**
	 * Returns type of clustering (center-based, distribution-based).
	 * 
	 * @return type of clustering
	 */
	public int getType() {
		return type;
	}

	public int apply(MiningVector miningVector) throws MiningException {
		return (int) applyModelFunction(miningVector);
	}

	public double applyModelFunction(MiningVector miningVector) throws MiningException {
		if (clusters == null || clusters.length == 0)
			return -1;

		// Run inner transformations (e.g. missing values replacement, outliers):
		if (miningTransform != null)
			miningVector = miningTransform.transform(miningVector);

		// Transform vector into basis of mining model:
		MetaDataOperations metaDataOp = miningSettings.getDataSpecification().getMetaDataOp();
		metaDataOp.setUsageType(MetaDataOperations.USE_ATT_NAMES_AND_TYPES);
		MiningVector miningVec = metaDataOp.transform(miningVector);

		// Find nearest cluster:
		int nearestClust = 0;
		double minDist = distance.distance(miningVec, clusters[0].getCenterVec());
		for (int i = 1; i < getNumberOfClusters(); i++) {
			double dist = distance.distance(miningVec, clusters[i].getCenterVec());
			if (dist < minDist) {
				minDist = dist;
				nearestClust = i;
			};
		};

		return nearestClust;
	}

}

⌨️ 快捷键说明

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