-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathExample11.java
50 lines (40 loc) · 1.57 KB
/
Example11.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package applications.ml;
import algorithms.utils.DefaultIterativeAlgorithmController;
import base.CommonConstants;
import datastructs.interfaces.IVector;
import datastructs.maths.DenseMatrixSet;
import datastructs.maths.RowBuilder;
import datastructs.utils.RowType;
import maths.functions.distances.DistanceCalculator;
import maths.functions.distances.EuclideanVectorCalculator;
import maths.functions.generators.IRandomGenerator;
import maths.functions.generators.UniformRandomGenerator;
import ml.clustering.KMeans;
import ml.clustering.KMeansInput;
/** Category: Machine Learning
* ID: Example11
* Description: Clustering with ```KMeans```
* Taken From:
* Taken From:
* Details:
* TODO
*/
public class Example11 {
public static void main(String[] args){
//some synthetic data
DenseMatrixSet<Double> matrix = new DenseMatrixSet(RowType.Type.DOUBLE_VECTOR, new RowBuilder(), 6, 2, 0.0);
matrix.set(0, 1.0, 2.0);
matrix.set(1, 1.0, 4.0);
matrix.set(2, 1.0, 0.0);
matrix.set(3, 10.0, 2.0);
matrix.set(4, 10.0, 2.0);
matrix.set(5, 10.0, 0.0);
KMeansInput input = new KMeansInput();
input.k = 2;
input.iterationContorller = new DefaultIterativeAlgorithmController(10, CommonConstants.getTol());
KMeans<Double, Double> kmeans = new KMeans<>(input);
DistanceCalculator<IVector<Double>, Double> similarity = new EuclideanVectorCalculator<Double>();
IRandomGenerator randomGenerator = new UniformRandomGenerator();
kmeans.cluster(matrix, similarity, randomGenerator);
}
}