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