Commit 474bf449 authored by Patrik Tomov's avatar Patrik Tomov
Browse files

Merge branch 'single-complete-linkages' into 'master'

Added single and complete linkage strategies

See merge request grp-fidentis/analyst2!364
parents 0567dd24 2522b32f
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
package cz.fidentis.analyst.engines.face.batch.clustering.impl;

import cz.fidentis.analyst.engines.face.batch.clustering.LinkageStrategy;
import cz.fidentis.analyst.engines.face.batch.clustering.dto.Distance;

import java.util.List;

/**
 * @author Patrik Tomov
 */
public class CompleteLinkageStrategy implements LinkageStrategy {
    @Override
    public Distance calculateDistance(List<Distance> distances) {
        double maxDistance = distances.stream()
                .mapToDouble(Distance::getDistance)
                .max()
                .orElse(0.0);
        return new Distance(maxDistance);
    }
}
+21 −0
Original line number Diff line number Diff line
package cz.fidentis.analyst.engines.face.batch.clustering.impl;

import cz.fidentis.analyst.engines.face.batch.clustering.LinkageStrategy;
import cz.fidentis.analyst.engines.face.batch.clustering.dto.Distance;

import java.util.List;

/**
 * @author Patrik Tomov
 */
public class SingleLinkageStrategy implements LinkageStrategy {

    @Override
    public Distance calculateDistance(List<Distance> distances) {
        double minDistance = distances.stream()
                .mapToDouble(Distance::getDistance)
                .min()
                .orElse(0.0);
        return new Distance(minDistance);
    }
}