當前位置: 首頁>>代碼示例>>Java>>正文


Java DistanceMeasure.calculateDistance方法代碼示例

本文整理匯總了Java中com.rapidminer.tools.math.similarity.DistanceMeasure.calculateDistance方法的典型用法代碼示例。如果您正苦於以下問題:Java DistanceMeasure.calculateDistance方法的具體用法?Java DistanceMeasure.calculateDistance怎麽用?Java DistanceMeasure.calculateDistance使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.rapidminer.tools.math.similarity.DistanceMeasure的用法示例。


在下文中一共展示了DistanceMeasure.calculateDistance方法的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: computeClusterDistances

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private void computeClusterDistances(DistanceMatrix centroidDistances, double[] s, CentroidClusterModel model,
		DistanceMeasure measure) {
	for (int i = 0; i < model.getNumberOfClusters(); i++) {
		s[i] = Double.POSITIVE_INFINITY;
	}
	for (int i = 0; i < model.getNumberOfClusters(); i++) {
		for (int j = i + 1; j < model.getNumberOfClusters(); j++) {
			final double d = measure.calculateDistance(model.getCentroidCoordinates(i), model.getCentroidCoordinates(j));
			if (d < s[i]) {
				s[i] = d;
			}
			if (d < s[j]) {
				s[j] = d;
			}
			centroidDistances.set(i, j, d);
		}
	}
	for (int i = 0; i < model.getNumberOfClusters(); i++) {
		s[i] = 0.5 * s[i];
	}
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:22,代碼來源:FastKMeans.java

示例2: computeClusterDistances

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private void computeClusterDistances(DistanceMatrix centroidDistances, double[] s, 
		CentroidClusterModel model,  DistanceMeasure measure) {
	for (int i = 0; i < model.getNumberOfClusters(); i++){
		s[i] = Double.POSITIVE_INFINITY;
	}
	for (int i = 0; i < model.getNumberOfClusters(); i++){
		for (int j = i+1; j < model.getNumberOfClusters(); j++){
			final double d = measure.calculateDistance(model.getCentroidCoordinates(i), model.getCentroidCoordinates(j));
			if (d < s[i]){
				s[i] = d;
			}
			if (d < s[j]){
				s[j] = d;
			}
			centroidDistances.set(i, j, d);
		}
	}
	for (int i = 0; i < model.getNumberOfClusters(); i++){
		s[i] = 0.5 * s[i];
	}
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:22,代碼來源:FastKMeans.java

示例3: getAverageWithinDistance

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private double[] getAverageWithinDistance(CentroidClusterModel model, ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = new SquaredEuclideanDistance();
	measure.init(exampleSet);
	int numberOfClusters = model.getNumberOfClusters();

	// counting distances within
	double[] result = new double[numberOfClusters + 1];
	int[] clusterSizes = new int[numberOfClusters];

	int[] clusterIndices = model.getClusterAssignments(exampleSet);

	int i = 0;
	for (Example example : exampleSet) {
		clusterSizes[clusterIndices[i]]++;
		result[clusterIndices[i]] += measure.calculateDistance(example, model.getCentroidCoordinates(clusterIndices[i]));
		i++;
	}

	// averaging by cluster sizes and sum over all
	int totalSize = 0;
	for (i = 0; i < numberOfClusters; i++) {
		result[numberOfClusters] += result[i];
		result[i] /= clusterSizes[i];
		totalSize += clusterSizes[i];
	}
	result[numberOfClusters] /= totalSize;

	return result;
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:30,代碼來源:CentroidBasedEvaluator.java

示例4: getNeighbourhood

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private LinkedList<Integer> getNeighbourhood(Example centerExample, ExampleSet exampleSet, DistanceMeasure measure,
		double epsilon) {
	LinkedList<Integer> neighbourhood = new LinkedList<Integer>();
	int i = 0;
	for (Example example : exampleSet) {
		double distance = measure.calculateDistance(centerExample, example);
		if (distance < epsilon) {
			neighbourhood.add(i);
		}
		i++;
	}
	return neighbourhood;
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:14,代碼來源:DBScan.java

示例5: createHistogramPlotter

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private Plotter createHistogramPlotter(SimilarityMeasureObject sim, ExampleSet exampleSet) {
	DistanceMeasure measure = sim.getDistanceMeasure();
	DataTable dataTable = new SimpleDataTable("Histogram", new String[] { "Histogram" });
	double sampleRatio = Math.min(1.0d, 500.0d / exampleSet.size());

	Random random = new Random();
	int i = 0;
	for (Example example : exampleSet) {
		int j = 0;
		for (Example comExample : exampleSet) {
			if (j != i && random.nextDouble() < sampleRatio) {
				double simValue;
				if (measure.isDistance()) {
					simValue = measure.calculateDistance(example, comExample);
				} else {
					simValue = measure.calculateSimilarity(example, comExample);
				}
				dataTable.add(new SimpleDataTableRow(new double[] { simValue }));
			}
			j++;
		}
		i++;
	}
	PlotterConfigurationModel settings = new PlotterConfigurationModel(PlotterConfigurationModel.HISTOGRAM_PLOT,
			dataTable);

	settings.enablePlotColumn(0);
	settings.setParameterAsInt(HistogramChart.PARAMETER_NUMBER_OF_BINS, 100);

	return settings.getPlotter();
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:32,代碼來源:SimilarityHistogramRenderer.java

示例6: getAverageWithinDistance

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private double[] getAverageWithinDistance(CentroidClusterModel model, ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = new SquaredEuclideanDistance();
	measure.init(exampleSet);
	int numberOfClusters = model.getNumberOfClusters();

	// counting distances within
	double[] result = new double[numberOfClusters + 1];
	int[] clusterSizes = new int[numberOfClusters];

	int[] clusterIndices = model.getClusterAssignments(exampleSet);

	int i = 0;
	for (Example example: exampleSet) {
		clusterSizes[clusterIndices[i]]++;
		result[clusterIndices[i]] += measure.calculateDistance(example, model.getCentroidCoordinates(clusterIndices[i]));
		i++;
	}

	// averaging by cluster sizes and sum over all
	int totalSize = 0;
	for (i = 0; i < numberOfClusters; i++) {
		result[numberOfClusters] += result[i];
		result[i] /= clusterSizes[i];
		totalSize += clusterSizes[i];
	}
	result[numberOfClusters] /= totalSize;

	return result;
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:30,代碼來源:CentroidBasedEvaluator.java

示例7: getDaviesBouldin

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private double getDaviesBouldin(CentroidClusterModel model, ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = new EuclideanDistance();
	measure.init(exampleSet);
	int numberOfClusters = model.getNumberOfClusters();

	// counting distances within
	double[] withinClusterDistance = new double[numberOfClusters];
	int[] clusterSizes = new int[numberOfClusters];

	int[] clusterIndices = model.getClusterAssignments(exampleSet);

	int i = 0;
	for (Example example: exampleSet) {
		clusterSizes[clusterIndices[i]]++;
		withinClusterDistance[clusterIndices[i]] += measure.calculateDistance(example, model.getCentroidCoordinates(clusterIndices[i]));
		i++;
	}

	// averaging by cluster sizes and sum over all
	for (i = 0; i < numberOfClusters; i++) {
		withinClusterDistance[i] /= clusterSizes[i];
	}

	double result = 0.0;

	for (i = 0; i < numberOfClusters; i++) {
		double max = Double.NEGATIVE_INFINITY;
		for (int j = 0; j < numberOfClusters; j++)
			if (i != j) {
				double val = (withinClusterDistance[i] + withinClusterDistance[j]) / measure.calculateDistance(model.getCentroidCoordinates(i), model.getCentroidCoordinates(j));
				if (val > max)
					max = val;
			}
		result = result + max;
	}
	return result / model.getNumberOfClusters();
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:38,代碼來源:CentroidBasedEvaluator.java

示例8: getNeighbourhood

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private LinkedList<Integer> getNeighbourhood(Example centerExample, ExampleSet exampleSet, DistanceMeasure measure, double epsilon) {
	LinkedList<Integer> neighbourhood = new LinkedList<Integer>();
	int i = 0;
	for (Example example: exampleSet) {
		double distance = measure.calculateDistance(centerExample, example);
		if (distance < epsilon) 
			neighbourhood.add(i);
		i++;
	}
	return neighbourhood;
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:12,代碼來源:DBScan.java

示例9: createHistogramPlotter

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private Plotter createHistogramPlotter(SimilarityMeasureObject sim, ExampleSet exampleSet) {
	DistanceMeasure measure = sim.getDistanceMeasure();
	DataTable dataTable = new SimpleDataTable("Histogram", new String[] { "Histogram" });
	double sampleRatio = Math.min(1.0d, 500.0d / exampleSet.size());

	Random random = new Random();
	int i = 0;
	for (Example example : exampleSet) {
		int j = 0;
		for (Example comExample : exampleSet) {
			if (j != i && random.nextDouble() < sampleRatio) {
				double simValue;
				if (measure.isDistance())
					simValue = measure.calculateDistance(example, comExample);
				else
					simValue = measure.calculateSimilarity(example, comExample);
				dataTable.add(new SimpleDataTableRow(new double[] { simValue }));
			}
			j++;
		}
		i++;
	}
	PlotterConfigurationModel settings = new PlotterConfigurationModel(PlotterConfigurationModel.HISTOGRAM_PLOT, dataTable);
	
	settings.enablePlotColumn(0);
	settings.setParameterAsInt(HistogramChart.PARAMETER_NUMBER_OF_BINS, 100);

	return settings.getPlotter();
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:30,代碼來源:SimilarityHistogramRenderer.java

示例10: getDaviesBouldin

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
private double getDaviesBouldin(CentroidClusterModel model, ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = new EuclideanDistance();
	measure.init(exampleSet);
	int numberOfClusters = model.getNumberOfClusters();

	// counting distances within
	double[] withinClusterDistance = new double[numberOfClusters];
	int[] clusterSizes = new int[numberOfClusters];

	int[] clusterIndices = model.getClusterAssignments(exampleSet);

	int i = 0;
	for (Example example : exampleSet) {
		clusterSizes[clusterIndices[i]]++;
		withinClusterDistance[clusterIndices[i]] += measure.calculateDistance(example,
				model.getCentroidCoordinates(clusterIndices[i]));
		i++;
	}

	// averaging by cluster sizes and sum over all
	for (i = 0; i < numberOfClusters; i++) {
		withinClusterDistance[i] /= clusterSizes[i];
	}

	double result = 0.0;

	for (i = 0; i < numberOfClusters; i++) {
		double max = Double.NEGATIVE_INFINITY;
		for (int j = 0; j < numberOfClusters; j++) {
			if (i != j) {
				double val = (withinClusterDistance[i] + withinClusterDistance[j])
						/ measure.calculateDistance(model.getCentroidCoordinates(i), model.getCentroidCoordinates(j));
				if (val > max) {
					max = val;
				}
			}
		}
		result = result + max;
	}
	return result / model.getNumberOfClusters();
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:42,代碼來源:CentroidBasedEvaluator.java

示例11: computeCOF

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
public void computeCOF(ArrayList<COFObject> cofobjectList, int k, DistanceMeasure measure) {

		// define a list of knn for each cof object
		PriorityQueue<COFKnn> knnList = new PriorityQueue<COFKnn>();

		// reset pcl, kDist, and deviation
		double pcl = 0.0;
		double kDist = 0.0;
		double deviation = 0.0;

		for (COFObject cofobject : cofobjectList) {// for all objects in the dataset
			double distance = Double.POSITIVE_INFINITY;
			// compute the distance to current object
			distance = measure.calculateDistance(this.getValues(), cofobject.getValues());
			COFKnn cOFKnn = new COFKnn(cofobject, distance);
			// determine if cofobject is on of the nearest neighbors to current object
			if (knnList.size() < k) {
				knnList.offer(cOFKnn);
			} else if (distance < knnList.peek().getDistance()) {
				knnList.remove();
				knnList.offer(cOFKnn);
			}
			// if the cofobject has the same class label, add its distance to deviation
			if (this.getLabel() == cofobject.getLabel()) {
				deviation += distance;
			}

		}
		this.setDeviation(deviation); // save deviation

		// compute pcl to current object
		for (COFKnn cofKnn : knnList) {
			kDist += measure.calculateDistance(getValues(), cofKnn.getCofobject().getValues());
			if (this.getLabel() == cofKnn.getCofobject().getLabel()) {
				pcl++;
			}
		}

		this.setPcl(pcl); // save pcl
		this.setCOF(pcl); // save the initial cof based on pcl
		this.setKDist(kDist); // save kDist

	}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:44,代碼來源:COFObject.java

示例12: computeCOF

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
public void computeCOF(ArrayList<COFObject> cofobjectList, int k, DistanceMeasure measure) {

		// define a list of knn for each cof object
		PriorityQueue<COFKnn> knnList = new PriorityQueue<COFKnn>();

		// reset pcl, kDist, and deviation
		double pcl = 0.0;
		double kDist = 0.0;
		double deviation = 0.0;

		for (COFObject cofobject : cofobjectList) {// for all objects in the dataset
			double distance = Double.POSITIVE_INFINITY;
			// compute the distance to current object
			distance = measure.calculateDistance(this.getValues(), cofobject.getValues());
			COFKnn cOFKnn = new COFKnn(cofobject, distance);
			// determine if cofobject is on of the nearest neighbors to current object
			if (knnList.size() < k)
				knnList.offer(cOFKnn);
			// if the KNN list is full, remove the far neighbor
			// i.e, keep only the nearest neighbors
			else if (distance < knnList.peek().getDistance()) {
				knnList.remove();
				knnList.offer(cOFKnn);
			}
			// if the cofobject has the same class label, add its distance to deviation
			if (this.getLabel() == cofobject.getLabel())
				deviation += distance;

		}
		this.setDeviation(deviation); // save deviation

		// compute pcl to current object
		for (COFKnn cofKnn : knnList) {
			kDist += measure.calculateDistance(getValues(), cofKnn.getCofobject().getValues());
			if (this.getLabel() == cofKnn.getCofobject().getLabel()) {
				pcl++;
			}
		}

		this.setPcl(pcl); // save pcl
		this.setCOF(pcl); // save the initial cof based on pcl
		this.setKDist(kDist); // save kDist
		
	}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:45,代碼來源:COFObject.java


注:本文中的com.rapidminer.tools.math.similarity.DistanceMeasure.calculateDistance方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。