本文整理匯總了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;
}
示例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;
}
示例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();
}
示例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();
}