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


Java DistanceMeasure.init方法代碼示例

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


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

示例1: 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

示例2: 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

示例3: 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

示例4: 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

示例5: doWork

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
@Override
public void doWork() throws OperatorException {
	ExampleSet requestSet = requestSetInput.getData(ExampleSet.class);
	ExampleSet documentSet = referenceSetInput.getData(ExampleSet.class);
	Tools.checkAndCreateIds(requestSet);
	Tools.checkAndCreateIds(documentSet);

	DistanceMeasure measure = DistanceMeasures.createMeasure(this);
	measure.init(requestSet.getAttributes(), documentSet.getAttributes());

	Attribute oldRequestId = requestSet.getAttributes().getId();
	Attribute oldDocumentId = documentSet.getAttributes().getId();

	// creating new exampleSet
	Attribute requestId = AttributeFactory.createAttribute("request", oldRequestId.getValueType());
	Attribute documentId = AttributeFactory.createAttribute("document", oldDocumentId.getValueType());
	Attribute distance = AttributeFactory.createAttribute("distance", Ontology.REAL);

	List<Attribute> newAttributes = new LinkedList<Attribute>();
	Collections.addAll(newAttributes, requestId, documentId, distance);
	MemoryExampleTable table = new MemoryExampleTable(newAttributes);

	double searchModeFactor = getParameterAsInt(PARAMETER_SEARCH_MODE) == MODE_FARTHEST ? -1d : 1d;
	boolean computeSimilarity = getParameterAsBoolean(PARAMETER_COMPUTE_SIMILARITIES);

	for (Example request : requestSet) {
		Collection<Tupel<Double, Double>> distances;
		if (getParameterAsBoolean(PARAMETER_USE_K)) {
			distances = new BoundedPriorityQueue<Tupel<Double, Double>>(getParameterAsInt(PARAMETER_K));
		} else {
			distances = new ArrayList<Tupel<Double, Double>>();
		}

		// calculating distance
		for (Example document : documentSet) {
			if (computeSimilarity) {
				distances.add(new Tupel<Double, Double>(measure.calculateSimilarity(request, document)
						* searchModeFactor, document.getValue(oldDocumentId)));
			} else {
				distances.add(new Tupel<Double, Double>(measure.calculateDistance(request, document) * searchModeFactor,
						document.getValue(oldDocumentId)));
			}
			checkForStop();
		}

		// writing into table
		DataRowFactory factory = new DataRowFactory(DataRowFactory.TYPE_DOUBLE_ARRAY, '.');
		double requestIdValue = request.getValue(oldRequestId);
		if (oldRequestId.isNominal()) {
			requestIdValue = requestId.getMapping().mapString(request.getValueAsString(oldRequestId));
		}

		for (Tupel<Double, Double> tupel : distances) {
			double documentIdValue = tupel.getSecond();
			if (oldDocumentId.isNominal()) {
				documentIdValue = documentId.getMapping().mapString(
						oldDocumentId.getMapping().mapIndex((int) documentIdValue));
			}
			DataRow row = factory.create(3);
			row.set(distance, tupel.getFirst() * searchModeFactor);
			row.set(requestId, requestIdValue);
			row.set(documentId, documentIdValue);
			table.addDataRow(row);
			checkForStop();
		}
	}

	// sorting set
	ExampleSet result = new SortedExampleSet(table.createExampleSet(), distance,
			searchModeFactor == -1d ? SortedExampleSet.DECREASING : SortedExampleSet.INCREASING);

	requestSetOutput.deliver(requestSet);
	referenceSetOutput.deliver(documentSet);
	resultSetOutput.deliver(result);
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:76,代碼來源:CrossDistancesOperator.java

示例6: learn

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
@Override
public Model learn(ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = DistanceMeasures.createMeasure(this);
	measure.init(exampleSet);
	GeometricDataCollection<RegressionData> data = new LinearList<RegressionData>(measure);

	// check if weights should be used
	boolean useWeights = getParameterAsBoolean(PARAMETER_USE_EXAMPLE_WEIGHTS);
	// check if robust estimate should be performed: Then calculate weights and use it anyway
	if (getParameterAsBoolean(PARAMETER_USE_ROBUST_ESTIMATION)) {
		useWeights = true;
		LocalPolynomialExampleWeightingOperator weightingOperator;
		try {
			weightingOperator = OperatorService.createOperator(LocalPolynomialExampleWeightingOperator.class);
			exampleSet = weightingOperator.doWork((ExampleSet) exampleSet.clone(), this);
		} catch (OperatorCreationException e) {
			throw new UserError(this, 904, "LocalPolynomialExampleWeighting", e.getMessage());
		}
	}

	Attributes attributes = exampleSet.getAttributes();
	Attribute label = attributes.getLabel();
	Attribute weightAttribute = attributes.getWeight();
	for (Example example : exampleSet) {
		double[] values = new double[attributes.size()];
		double labelValue = example.getValue(label);
		double weight = 1d;
		if (weightAttribute != null && useWeights) {
			weight = example.getValue(weightAttribute);
		}

		// filter out examples without influence
		if (weight > 0d) {
			// copying example values
			int i = 0;
			for (Attribute attribute : attributes) {
				values[i] = example.getValue(attribute);
				i++;
			}

			// inserting into geometric data collection
			data.add(values, new RegressionData(values, labelValue, weight));
		}
	}
	return new LocalPolynomialRegressionModel(exampleSet, data, Neighborhoods.createNeighborhood(this),
			SmoothingKernels.createKernel(this), getParameterAsInt(PARAMETER_DEGREE),
			getParameterAsDouble(PARAMETER_RIDGE));
}
 
開發者ID:transwarpio,項目名稱:rapidminer,代碼行數:49,代碼來源:LocalPolynomialRegressionOperator.java

示例7: doWork

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
@Override
public void doWork() throws OperatorException {
	ExampleSet requestSet = requestSetInput.getData(ExampleSet.class);
	ExampleSet documentSet = referenceSetInput.getData(ExampleSet.class);
	Tools.checkAndCreateIds(requestSet);
	Tools.checkAndCreateIds(documentSet);

	DistanceMeasure measure = DistanceMeasures.createMeasure(this);
	measure.init(requestSet.getAttributes(), documentSet.getAttributes());

	Attribute oldRequestId = requestSet.getAttributes().getId();
	Attribute oldDocumentId = documentSet.getAttributes().getId();

	// creating new exampleSet
	Attribute requestId = AttributeFactory.createAttribute("request", oldRequestId.getValueType());
	Attribute documentId = AttributeFactory.createAttribute("document", oldDocumentId.getValueType());
	Attribute distance = AttributeFactory.createAttribute("distance", Ontology.REAL);

	List<Attribute> newAttributes = new LinkedList<Attribute>();
	Collections.addAll(newAttributes, requestId, documentId, distance);
	ExampleSetBuilder builder = ExampleSets.from(newAttributes);

	double searchModeFactor = getParameterAsInt(PARAMETER_SEARCH_MODE) == MODE_FARTHEST ? -1d : 1d;
	boolean computeSimilarity = getParameterAsBoolean(PARAMETER_COMPUTE_SIMILARITIES);
	boolean useK = getParameterAsBoolean(PARAMETER_USE_K);
	int k = getParameterAsInt(PARAMETER_K);

	for (Example request : requestSet) {
		Collection<Tupel<Double, Double>> distances;
		if (useK) {
			distances = new BoundedPriorityQueue<Tupel<Double, Double>>(k);
		} else {
			distances = new ArrayList<Tupel<Double, Double>>();
		}

		// calculating distance
		for (Example document : documentSet) {
			if (computeSimilarity) {
				distances
						.add(new Tupel<Double, Double>(measure.calculateSimilarity(request, document) * searchModeFactor,
								document.getValue(oldDocumentId)));
			} else {
				distances.add(new Tupel<Double, Double>(measure.calculateDistance(request, document) * searchModeFactor,
						document.getValue(oldDocumentId)));
			}
			checkForStop();
		}

		// writing into table
		DataRowFactory factory = new DataRowFactory(DataRowFactory.TYPE_DOUBLE_ARRAY, '.');
		double requestIdValue = request.getValue(oldRequestId);
		if (oldRequestId.isNominal()) {
			requestIdValue = requestId.getMapping().mapString(request.getValueAsString(oldRequestId));
		}

		for (Tupel<Double, Double> tupel : distances) {
			double documentIdValue = tupel.getSecond();
			if (oldDocumentId.isNominal()) {
				documentIdValue = documentId.getMapping()
						.mapString(oldDocumentId.getMapping().mapIndex((int) documentIdValue));
			}
			DataRow row = factory.create(3);
			row.set(distance, tupel.getFirst() * searchModeFactor);
			row.set(requestId, requestIdValue);
			row.set(documentId, documentIdValue);
			builder.addDataRow(row);
			checkForStop();
		}
	}

	// sorting set
	ExampleSet result = new SortedExampleSet(builder.build(), distance,
			searchModeFactor == -1d ? SortedExampleSet.DECREASING : SortedExampleSet.INCREASING);

	requestSetOutput.deliver(requestSet);
	referenceSetOutput.deliver(documentSet);
	resultSetOutput.deliver(result);
}
 
開發者ID:rapidminer,項目名稱:rapidminer-studio,代碼行數:79,代碼來源:CrossDistancesOperator.java

示例8: learn

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
@Override
public Model learn(ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = DistanceMeasures.createMeasure(this);
	measure.init(exampleSet, this);
	GeometricDataCollection<RegressionData> data = new LinearList<RegressionData>(measure);

	// check if weights should be used
	boolean useWeights = getParameterAsBoolean(PARAMETER_USE_EXAMPLE_WEIGHTS);
	// check if robust estimate should be performed: Then calculate weights and use it anyway
	if (getParameterAsBoolean(PARAMETER_USE_ROBUST_ESTIMATION)) {
		useWeights = true;
		LocalPolynomialExampleWeightingOperator weightingOperator;
		try {
			weightingOperator = OperatorService.createOperator(LocalPolynomialExampleWeightingOperator.class);
			exampleSet = weightingOperator.doWork((ExampleSet) exampleSet.clone(), this);
		} catch (OperatorCreationException e) {
			throw new UserError(this, 904, "LocalPolynomialExampleWeighting", e.getMessage());
		}
	}

	Attributes attributes = exampleSet.getAttributes();
	Attribute label = attributes.getLabel();
	Attribute weightAttribute = attributes.getWeight();
	for (Example example : exampleSet) {
		double[] values = new double[attributes.size()];
		double labelValue = example.getValue(label);
		double weight = 1d;
		if (weightAttribute != null && useWeights) {
			weight = example.getValue(weightAttribute);
		}

		// filter out examples without influence
		if (weight > 0d) {
			// copying example values
			int i = 0;
			for (Attribute attribute : attributes) {
				values[i] = example.getValue(attribute);
				i++;
			}

			// inserting into geometric data collection
			data.add(values, new RegressionData(values, labelValue, weight));
		}
	}
	return new LocalPolynomialRegressionModel(exampleSet, data, Neighborhoods.createNeighborhood(this),
			SmoothingKernels.createKernel(this), getParameterAsInt(PARAMETER_DEGREE),
			getParameterAsDouble(PARAMETER_RIDGE));
}
 
開發者ID:rapidminer,項目名稱:rapidminer-studio,代碼行數:49,代碼來源:LocalPolynomialRegressionOperator.java

示例9: doWork

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
@Override
public void doWork() throws OperatorException {
    ExampleSet requestSet = requestSetInput.getData(ExampleSet.class);
    ExampleSet documentSet = referenceSetInput.getData(ExampleSet.class);
    Tools.checkAndCreateIds(requestSet);
    Tools.checkAndCreateIds(documentSet);

    DistanceMeasure measure = DistanceMeasures.createMeasure(this);
    measure.init(requestSet.getAttributes(), documentSet.getAttributes());

    Attribute oldRequestId = requestSet.getAttributes().getId();
    Attribute oldDocumentId = documentSet.getAttributes().getId();

    // creating new exampleSet
    Attribute requestId = AttributeFactory.createAttribute("request", oldRequestId.getValueType());
    Attribute documentId = AttributeFactory.createAttribute("document", oldDocumentId.getValueType());
    Attribute distance = AttributeFactory.createAttribute("distance", Ontology.REAL);

    List<Attribute> newAttributes = new LinkedList<Attribute>();
    Collections.addAll(newAttributes, requestId, documentId, distance);
    MemoryExampleTable table = new MemoryExampleTable(newAttributes);

    double searchModeFactor = getParameterAsInt(PARAMETER_SEARCH_MODE) == MODE_FARTHEST ? -1d : 1d;
    boolean computeSimilarity = getParameterAsBoolean(PARAMETER_COMPUTE_SIMILARITIES);

    for (Example request: requestSet) {
        Collection<Tupel<Double, Double>> distances;
        if (getParameterAsBoolean(PARAMETER_USE_K))
            distances = new BoundedPriorityQueue<Tupel<Double,Double>>(getParameterAsInt(PARAMETER_K));
        else
            distances = new ArrayList<Tupel<Double,Double>>();

        // calculating distance
        for (Example document: documentSet) {
            if (computeSimilarity)
                distances.add(new Tupel<Double, Double>(measure.calculateSimilarity(request, document) * searchModeFactor, document.getValue(oldDocumentId)));
            else
                distances.add(new Tupel<Double, Double>(measure.calculateDistance(request, document) * searchModeFactor, document.getValue(oldDocumentId)));
            checkForStop();
        }

        // writing into table
        DataRowFactory factory = new DataRowFactory(DataRowFactory.TYPE_DOUBLE_ARRAY, '.');
        double requestIdValue = request.getValue(oldRequestId);
        if (oldRequestId.isNominal())
            requestIdValue = requestId.getMapping().mapString(request.getValueAsString(oldRequestId));

        for (Tupel<Double, Double> tupel: distances) {
            double documentIdValue = tupel.getSecond();
            if (oldDocumentId.isNominal())
                documentIdValue = documentId.getMapping().mapString(oldDocumentId.getMapping().mapIndex((int) documentIdValue));
            DataRow row = factory.create(3);
            row.set(distance, tupel.getFirst() *  searchModeFactor);
            row.set(requestId, requestIdValue);
            row.set(documentId, documentIdValue);
            table.addDataRow(row);
            checkForStop();
        }
    }

    // sorting set
    ExampleSet result = new SortedExampleSet(table.createExampleSet(), distance, searchModeFactor == -1d ? SortedExampleSet.DECREASING : SortedExampleSet.INCREASING);

    requestSetOutput.deliver(requestSet);
    referenceSetOutput.deliver(documentSet);
    resultSetOutput.deliver(result);
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:68,代碼來源:CrossDistancesOperator.java

示例10: learn

import com.rapidminer.tools.math.similarity.DistanceMeasure; //導入方法依賴的package包/類
@Override
public Model learn(ExampleSet exampleSet) throws OperatorException {
	DistanceMeasure measure = DistanceMeasures.createMeasure(this);
	measure.init(exampleSet);
	GeometricDataCollection<RegressionData> data = new LinearList<RegressionData>(measure);

	// check if weights should be used
	boolean useWeights = getParameterAsBoolean(PARAMETER_USE_EXAMPLE_WEIGHTS);
	// check if robust estimate should be performed: Then calculate weights and use it anyway
	if (getParameterAsBoolean(PARAMETER_USE_ROBUST_ESTIMATION)) {
		useWeights = true;
		LocalPolynomialExampleWeightingOperator weightingOperator;
		try {
			weightingOperator = OperatorService.createOperator(LocalPolynomialExampleWeightingOperator.class);
			exampleSet = weightingOperator.doWork((ExampleSet) exampleSet.clone(), this);
		} catch (OperatorCreationException e) {
			throw new UserError(this, 904, "LocalPolynomialExampleWeighting", e.getMessage());
		}
	}

	Attributes attributes = exampleSet.getAttributes();
	Attribute label = attributes.getLabel();
	Attribute weightAttribute = attributes.getWeight();
	for (Example example : exampleSet) {
		double[] values = new double[attributes.size()];
		double labelValue = example.getValue(label);
		double weight = 1d;
		if (weightAttribute != null && useWeights)
			weight = example.getValue(weightAttribute);

		// filter out examples without influence
		if (weight > 0d) {
			// copying example values
			int i = 0;
			for (Attribute attribute : attributes) {
				values[i] = example.getValue(attribute);
				i++;
			}

			// inserting into geometric data collection
			data.add(values, new RegressionData(values, labelValue, weight));
		}
	}
	return new LocalPolynomialRegressionModel(exampleSet, data, Neighborhoods.createNeighborhood(this), SmoothingKernels.createKernel(this), getParameterAsInt(PARAMETER_DEGREE), getParameterAsDouble(PARAMETER_RIDGE));
}
 
開發者ID:rapidminer,項目名稱:rapidminer-5,代碼行數:46,代碼來源:LocalPolynomialRegressionOperator.java


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