hex.schemas.KMeansModelV3 Maven / Gradle / Ivy
package hex.schemas;
import hex.kmeans.KMeans;
import hex.kmeans.KMeansModel;
import hex.util.ClusteringUtils;
import water.api.API;
import water.api.schemas3.ModelOutputSchemaV3;
import water.api.schemas3.ModelSchemaV3;
import water.api.schemas3.TwoDimTableV3;
public class KMeansModelV3 extends ModelSchemaV3 {
public static final class KMeansModelOutputV3 extends ModelOutputSchemaV3 {
// Output fields; input fields are in the parameters list
@API(help="Cluster Centers[k][features]")
public TwoDimTableV3 centers;
@API(help="Cluster Centers[k][features] on Standardized Data")
public TwoDimTableV3 centers_std;
@Override public KMeansModelOutputV3 fillFromImpl(KMeansModel.KMeansOutput impl) {
KMeansModelOutputV3 kmv3 = super.fillFromImpl(impl);
kmv3.centers = new TwoDimTableV3().fillFromImpl(ClusteringUtils.createCenterTable(impl, false));
if (impl._centers_std_raw != null)
kmv3.centers_std = new TwoDimTableV3().fillFromImpl(ClusteringUtils.createCenterTable(impl, true));
return kmv3;
}
} // KMeansModelOutputV2
// TOOD: I think we can implement the following two in ModelSchemaV3, using reflection on the type parameters.
public KMeansV3.KMeansParametersV3 createParametersSchema() { return new KMeansV3.KMeansParametersV3(); }
public KMeansModelOutputV3 createOutputSchema() { return new KMeansModelOutputV3(); }
//==========================
// Custom adapters go here
// Version&Schema-specific filling into the impl
@Override public KMeansModel createImpl() {
KMeansModel.KMeansParameters parms = parameters.createImpl();
return new KMeansModel( model_id.key(), parms, null );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy