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


Java CentroidClusterModel.getClusterAssignments方法代碼示例

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


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

示例1: getAverageWithinDistance

import com.rapidminer.operator.clustering.CentroidClusterModel; //導入方法依賴的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

示例2: getAverageWithinDistance

import com.rapidminer.operator.clustering.CentroidClusterModel; //導入方法依賴的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

示例3: getDaviesBouldin

import com.rapidminer.operator.clustering.CentroidClusterModel; //導入方法依賴的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

示例4: getDaviesBouldin

import com.rapidminer.operator.clustering.CentroidClusterModel; //導入方法依賴的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


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