Skip to content

Commit 76d8e79

Browse files
authored
Merge pull request #197 from tremblap/feature/kmeans-random-seeding
(s)kmeans class adds random seed
2 parents a989703 + 2f4a08f commit 76d8e79

2 files changed

Lines changed: 18 additions & 10 deletions

File tree

release-packaging/Classes/FluidKMeans.sc

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
FluidKMeans : FluidModelObject {
22

3-
var clusters, maxiter, initMethod;
3+
var clusters, maxiter, initMethod, seed;
44

5-
*new {|server, numClusters = 4, maxIter = 100, initMethod = 0|
6-
^super.new(server,[numClusters,maxIter,initMethod])
5+
*new {|server, numClusters = 4, maxIter = 100, initMethod = 0, seed = -1|
6+
^super.new(server,[numClusters,maxIter,initMethod,seed])
77
.numClusters_(numClusters)
88
.maxIter_(maxIter)
9-
.initMethod_(initMethod);
9+
.initMethod_(initMethod)
10+
.seed_(seed);
1011
}
1112

1213
numClusters_{|n| clusters = n.asInteger}
@@ -18,7 +19,10 @@ FluidKMeans : FluidModelObject {
1819
initMethod_{|i| initMethod = i.asInteger}
1920
initMethod{ ^initMethod }
2021

21-
prGetParams{^[this.id,this.numClusters,this.maxIter,this.initMethod];}
22+
seed_{|i| seed = i.asInteger}
23+
seed{ ^seed }
24+
25+
prGetParams{^[this.id,this.numClusters,this.maxIter,this.initMethod,this.seed];}
2226

2327
fitMsg{ |dataSet| ^this.prMakeMsg(\fit,id,dataSet.id);}
2428

release-packaging/Classes/FluidSKMeans.sc

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
FluidSKMeans : FluidModelObject {
22

3-
var clusters, threshold, maxiter, initMethod;
3+
var clusters, threshold, maxiter, initMethod, seed;
44

5-
*new {|server, numClusters = 4, encodingThreshold = 0.25, maxIter = 100, initMethod = 0|
6-
^super.new(server,[numClusters, maxIter, encodingThreshold, initMethod])
5+
*new {|server, numClusters = 4, encodingThreshold = 0.25, maxIter = 100, initMethod = 0, seed = -1|
6+
^super.new(server,[numClusters, maxIter, encodingThreshold, initMethod, seed])
77
.numClusters_(numClusters)
88
.encodingThreshold_(encodingThreshold)
99
.maxIter_(maxIter)
10-
.initMethod_(initMethod);
10+
.initMethod_(initMethod)
11+
.seed_(seed);
1112
}
1213

1314
numClusters_{|n| clusters = n.asInteger}
@@ -22,7 +23,10 @@ FluidSKMeans : FluidModelObject {
2223
initMethod_{|i| initMethod = i.asInteger}
2324
initMethod{ ^initMethod }
2425

25-
prGetParams{^[this.id,this.numClusters, this.encodingThreshold, this.maxIter, this.initMethod];}
26+
seed_{|i| seed = i.asInteger}
27+
seed{ ^seed }
28+
29+
prGetParams{^[this.id,this.numClusters, this.encodingThreshold, this.maxIter, this.initMethod, this.seed];}
2630

2731
fitMsg{ |dataSet| ^this.prMakeMsg(\fit,id,dataSet.id);}
2832

0 commit comments

Comments
 (0)