/** * Serialize a <code>PMMLModel</code> object that encapsulates a PMML model * * @param model the <code>PMMLModel</code> to serialize * @param stream the <code>OutputStream</code> to serialize to * @throws Exception if something goes wrong during serialization */ public static void serializePMMLModel(PMMLModel model, OutputStream stream) throws Exception { ObjectOutputStream oo = new ObjectOutputStream(stream); Instances header = model.getMiningSchema().getFieldsAsInstances(); oo.writeObject(header); oo.writeObject(model); oo.flush(); oo.close(); }
MiningSchema ms = new MiningSchema(model, dataDictionary, transDict);
Instances miningSchemaI = m_miningSchema.getFieldsAsInstances(); Attribute classAtt = miningSchemaI.classAttribute(); if (!m_miningSchema.hasTargetMetaData()) { throw new Exception("[GeneralRegression] function type is classification and " + "class attribute in mining schema is numeric, however, " if (m_miningSchema.getTargetMetaData().getOptype() != TargetMetaInfo.Optype.CATEGORICAL) { throw new Exception("[GeneralRegression] function type is classification and " targetVals = m_miningSchema.getTargetMetaData().getValues(); if (targetVals.size() == 0) { throw new Exception("[GeneralRegression] function type is classification and " m_miningSchema.convertNumericAttToNominal(miningSchemaI.classIndex(), targetVals);
protected NeuralInput(Element input, MiningSchema miningSchema) throws Exception { m_ID = input.getAttribute("id"); NodeList fL = input.getElementsByTagName("DerivedField"); if (fL.getLength() != 1) { throw new Exception("[NeuralInput] expecting just one derived field!"); } Element dF = (Element)fL.item(0); Instances allFields = miningSchema.getFieldsAsInstances(); ArrayList<Attribute> fieldDefs = new ArrayList<Attribute>(); for (int i = 0; i < allFields.numAttributes(); i++) { fieldDefs.add(allFields.attribute(i)); } m_field = new DerivedFieldMetaInfo(dF, fieldDefs, miningSchema.getTransformationDictionary()); }
if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds = new double[1]; } else { preds = new double[m_miningSchema.getFieldsAsInstances().classAttribute().numValues()]; if (i != m_miningSchema.getFieldsAsInstances().classIndex() && Double.isNaN(incoming[i])) { hasMissing = true; if (!m_miningSchema.hasTargetMetaData()) { String message = "[NeuralNetwork] WARNING: Instance to predict has missing value(s) but " + "there is no missing value handling meta data and no " + "prior probabilities/default value to fall back to. No " + "prediction will be made (" + ((m_miningSchema.getFieldsAsInstances().classAttribute().isNominal() || m_miningSchema.getFieldsAsInstances().classAttribute().isString()) ? "zero probabilities output)." : "NaN output)."); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = Utils.missingValue(); TargetMetaInfo targetData = m_miningSchema.getTargetMetaData(); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = targetData.getDefaultValue(); } else { Instances miningSchemaI = m_miningSchema.getFieldsAsInstances(); for (int i = 0; i < miningSchemaI.classAttribute().numValues(); i++) { preds[i] = targetData.getPriorProbability(miningSchemaI.classAttribute().value(i));
Instances miningSchemaI = miningSchema.getMiningSchemaAsInstances(); double[] result = new double[miningSchema.getFieldsAsInstances() .numAttributes()]; miningSchema.applyMissingAndOutlierTreatments(result); .getDerivedFields(); for (int i = 0; i < derivedFields.size(); i++) { DerivedFieldMetaInfo temp = derivedFields.get(i);
protected NeuralOutputs(Element outputs, MiningSchema miningSchema) throws Exception { m_classAttribute = miningSchema.getMiningSchemaAsInstances().classAttribute();
if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds = new double[1]; } else { preds = new double[m_miningSchema.getFieldsAsInstances().classAttribute().numValues()]; if (i != m_miningSchema.getFieldsAsInstances().classIndex() && Double.isNaN(incoming[i])) { hasMissing = true; if (!m_miningSchema.hasTargetMetaData()) { String message = "[GeneralRegression] WARNING: Instance to predict has missing value(s) but " + "there is no missing value handling meta data and no " + "prior probabilities/default value to fall back to. No " + "prediction will be made (" + ((m_miningSchema.getFieldsAsInstances().classAttribute().isNominal() || m_miningSchema.getFieldsAsInstances().classAttribute().isString()) ? "zero probabilities output)." : "NaN output)."); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = Utils.missingValue(); TargetMetaInfo targetData = m_miningSchema.getTargetMetaData(); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = targetData.getDefaultValue(); } else { Instances miningSchemaI = m_miningSchema.getFieldsAsInstances(); for (int i = 0; i < miningSchemaI.classAttribute().numValues(); i++) { preds[i] = targetData.getPriorProbability(miningSchemaI.classAttribute().value(i));
Instances miningSchemaI = miningSchema.getMiningSchemaAsInstances(); double[] result = new double[miningSchema.getFieldsAsInstances() .numAttributes()]; miningSchema.applyMissingAndOutlierTreatments(result); .getDerivedFields(); for (int i = 0; i < derivedFields.size(); i++) { DerivedFieldMetaInfo temp = derivedFields.get(i);
protected NeuralInput(Element input, MiningSchema miningSchema) throws Exception { m_ID = input.getAttribute("id"); NodeList fL = input.getElementsByTagName("DerivedField"); if (fL.getLength() != 1) { throw new Exception("[NeuralInput] expecting just one derived field!"); } Element dF = (Element)fL.item(0); Instances allFields = miningSchema.getFieldsAsInstances(); ArrayList<Attribute> fieldDefs = new ArrayList<Attribute>(); for (int i = 0; i < allFields.numAttributes(); i++) { fieldDefs.add(allFields.attribute(i)); } m_field = new DerivedFieldMetaInfo(dF, fieldDefs, miningSchema.getTransformationDictionary()); }
protected NeuralOutputs(Element outputs, MiningSchema miningSchema) throws Exception { m_classAttribute = miningSchema.getMiningSchemaAsInstances().classAttribute();
/** * Serialize a <code>PMMLModel</code> object that encapsulates a PMML model * * @param model the <code>PMMLModel</code> to serialize * @param stream the <code>OutputStream</code> to serialize to * @throws Exception if something goes wrong during serialization */ public static void serializePMMLModel(PMMLModel model, OutputStream stream) throws Exception { ObjectOutputStream oo = new ObjectOutputStream(stream); Instances header = model.getMiningSchema().getFieldsAsInstances(); oo.writeObject(header); oo.writeObject(model); oo.flush(); oo.close(); }
if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds = new double[1]; } else { preds = new double[m_miningSchema.getFieldsAsInstances().classAttribute().numValues()]; if (i != m_miningSchema.getFieldsAsInstances().classIndex() && Double.isNaN(incoming[i])) { hasMissing = true; if (!m_miningSchema.hasTargetMetaData()) { String message = "[GeneralRegression] WARNING: Instance to predict has missing value(s) but " + "there is no missing value handling meta data and no " + "prior probabilities/default value to fall back to. No " + "prediction will be made (" + ((m_miningSchema.getFieldsAsInstances().classAttribute().isNominal() || m_miningSchema.getFieldsAsInstances().classAttribute().isString()) ? "zero probabilities output)." : "NaN output)."); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = Utils.missingValue(); TargetMetaInfo targetData = m_miningSchema.getTargetMetaData(); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = targetData.getDefaultValue(); } else { Instances miningSchemaI = m_miningSchema.getFieldsAsInstances(); for (int i = 0; i < miningSchemaI.classAttribute().numValues(); i++) { preds[i] = targetData.getPriorProbability(miningSchemaI.classAttribute().value(i));
Instances miningSchemaI = m_miningSchema.getFieldsAsInstances(); Attribute classAtt = miningSchemaI.classAttribute(); if (!m_miningSchema.hasTargetMetaData()) { throw new Exception("[GeneralRegression] function type is classification and " + "class attribute in mining schema is numeric, however, " if (m_miningSchema.getTargetMetaData().getOptype() != TargetMetaInfo.Optype.CATEGORICAL) { throw new Exception("[GeneralRegression] function type is classification and " targetVals = m_miningSchema.getTargetMetaData().getValues(); if (targetVals.size() == 0) { throw new Exception("[GeneralRegression] function type is classification and " m_miningSchema.convertNumericAttToNominal(miningSchemaI.classIndex(), targetVals);
public MappingInfo(Instances dataSet, MiningSchema miningSchema, Logger log) throws Exception { m_log = log; Instances fieldsI = miningSchema.getMiningSchemaAsInstances();
MiningSchema ms = new MiningSchema(model, dataDictionary, transDict);
if (m_miningSchema.getFieldsAsInstances().classAttribute().isNominal()) { temp.append(" (target category = " + m_targetCategory + ")"); if (m_localAlternateTargetCategoryIndex != -1) { temp.append("\n (alternate category = " + m_miningSchema.getFieldsAsInstances().classAttribute(). value(m_localAlternateTargetCategoryIndex) + ")");
if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds = new double[1]; } else { preds = new double[m_miningSchema.getFieldsAsInstances().classAttribute().numValues()]; for (int i = 0; i < preds.length; i++) { preds[i] = -1; // mark all entries as not calculated to begin with if (i != m_miningSchema.getFieldsAsInstances().classIndex() && Double.isNaN(incoming[i])) { hasMissing = true; if (!m_miningSchema.hasTargetMetaData()) { String message = "[SupportVectorMachineModel] WARNING: Instance to predict has missing value(s) but " + "there is no missing value handling meta data and no " + "prior probabilities/default value to fall back to. No " + "prediction will be made (" + ((m_miningSchema.getFieldsAsInstances().classAttribute().isNominal() || m_miningSchema.getFieldsAsInstances().classAttribute().isString()) ? "zero probabilities output)." : "NaN output)."); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = Utils.missingValue(); TargetMetaInfo targetData = m_miningSchema.getTargetMetaData(); if (m_miningSchema.getFieldsAsInstances().classAttribute().isNumeric()) { preds[0] = targetData.getDefaultValue(); } else { Instances miningSchemaI = m_miningSchema.getFieldsAsInstances();