@@ -61,32 +61,30 @@ class KMeansPMMLModelExport(model : KMeansModel) extends PMMLModelExport{
61
61
62
62
var miningSchema = new MiningSchema ()
63
63
64
- for ( i <- 0 to (clusterCenter.size - 1 )) {
65
- fields(i) = FieldName .create(" field_" + i)
66
- dataDictionary
67
- .withDataFields(new DataField (fields(i), OpType .CONTINUOUS , DataType .DOUBLE ))
68
- miningSchema
69
- .withMiningFields(new MiningField (fields(i))
70
- .withUsageType(FieldUsageType .ACTIVE ))
71
- }
72
-
73
64
var comparisonMeasure = new ComparisonMeasure ()
74
65
.withKind(Kind .DISTANCE )
75
66
.withMeasure(new SquaredEuclidean ()
76
67
);
77
68
78
- dataDictionary.withNumberOfFields((dataDictionary.getDataFields()).size());
79
-
80
- pmml.setDataDictionary(dataDictionary);
81
-
82
69
var clusteringModel = new ClusteringModel (miningSchema, comparisonMeasure,
83
70
MiningFunctionType .CLUSTERING , ModelClass .CENTER_BASED , model.clusterCenters.length)
84
71
.withModelName(" k-means" );
85
72
86
73
for ( i <- 0 to (clusterCenter.size - 1 )) {
74
+ fields(i) = FieldName .create(" field_" + i)
75
+ dataDictionary
76
+ .withDataFields(new DataField (fields(i), OpType .CONTINUOUS , DataType .DOUBLE ))
77
+ miningSchema
78
+ .withMiningFields(new MiningField (fields(i))
79
+ .withUsageType(FieldUsageType .ACTIVE ))
87
80
clusteringModel.withClusteringFields(
88
81
new ClusteringField (fields(i)).withCompareFunction(CompareFunctionType .ABS_DIFF )
89
- )
82
+ )
83
+ }
84
+
85
+ dataDictionary.withNumberOfFields((dataDictionary.getDataFields()).size());
86
+
87
+ for ( i <- 0 to (model.clusterCenters.size - 1 )) {
90
88
var cluster = new Cluster ()
91
89
.withName(" cluster_" + i)
92
90
.withArray(new org.dmg.pmml.Array ()
@@ -95,10 +93,10 @@ class KMeansPMMLModelExport(model : KMeansModel) extends PMMLModelExport{
95
93
.withValue(model.clusterCenters(i).toArray.mkString(" " )))
96
94
// we don't have the size of the single cluster but only the centroids (withValue)
97
95
// .withSize(value)
98
-
99
96
clusteringModel.withClusters(cluster)
100
97
}
101
98
99
+ pmml.setDataDictionary(dataDictionary);
102
100
pmml.withModels(clusteringModel);
103
101
104
102
}
0 commit comments