/// <inheritdoc/> public void Save(Stream os, Object obj) { var xout = new EncogWriteHelper(os); var svm2 = (SupportVectorMachine)obj; xout.AddSection("SVM"); xout.AddSubSection("PARAMS"); xout.AddProperties(svm2.Properties); xout.AddSubSection("SVM-PARAM"); xout.WriteProperty(PersistConst.InputCount, svm2.InputCount); xout.WriteProperty(ParamC, svm2.Params.C); xout.WriteProperty(ParamCacheSize, svm2.Params.cache_size); xout.WriteProperty(ParamCoef0, svm2.Params.coef0); xout.WriteProperty(ParamDegree, svm2.Params.degree); xout.WriteProperty(ParamEps, svm2.Params.eps); xout.WriteProperty(ParamGamma, svm2.Params.gamma); xout.WriteProperty(ParamKernelType, svm2.Params.kernel_type); xout.WriteProperty(ParamNumWeight, svm2.Params.nr_weight); xout.WriteProperty(ParamNu, svm2.Params.nu); xout.WriteProperty(ParamP, svm2.Params.p); xout.WriteProperty(ParamProbability, svm2.Params.probability); xout.WriteProperty(ParamShrinking, svm2.Params.shrinking); /* xout.WriteProperty(PersistSVM.PARAM_START_ITERATIONS, * svm2.Params.statIterations); */ xout.WriteProperty(ParamSVMType, svm2.Params.svm_type); xout.WriteProperty(ParamWeight, svm2.Params.weight); xout.WriteProperty(ParamWeightLabel, svm2.Params.weight_label); if (svm2.Model != null) { xout.AddSubSection("SVM-MODEL"); try { #if !SILVERLIGHT var ba = new MemoryStream(); var w = new StreamWriter(ba); svm.svm_save_model(w, svm2.Model); var enc = new ASCIIEncoding(); xout.Write(enc.GetString(ba.ToArray())); w.Close(); ba.Close(); #endif } catch (IOException ex) { throw new PersistError(ex); } } xout.Flush(); }
/// <inheritdoc/> public void Save(Stream os, Object obj) { EncogWriteHelper o = new EncogWriteHelper(os); BayesianNetwork b = (BayesianNetwork)obj; o.AddSection("BAYES-NETWORK"); o.AddSubSection("BAYES-PARAM"); String queryType = ""; String queryStr = b.ClassificationStructure; if (b.Query != null) { queryType = b.Query.GetType().Name; } o.WriteProperty("queryType", queryType); o.WriteProperty("query", queryStr); o.WriteProperty("contents", b.Contents); o.AddSubSection("BAYES-PROPERTIES"); o.AddProperties(b.Properties); o.AddSubSection("BAYES-TABLE"); foreach (BayesianEvent e in b.Events) { foreach (TableLine line in e.Table.Lines) { if (line == null) { continue; } StringBuilder str = new StringBuilder(); str.Append("P("); str.Append(BayesianEvent.FormatEventName(e, line.Result)); if (e.Parents.Count > 0) { str.Append("|"); } int index = 0; bool first = true; foreach (BayesianEvent parentEvent in e.Parents) { if (!first) { str.Append(","); } first = false; int arg = line.Arguments[index++]; if (parentEvent.IsBoolean) { if (arg == 0) { str.Append("+"); } else { str.Append("-"); } } str.Append(parentEvent.Label); if (!parentEvent.IsBoolean) { str.Append("="); if (arg >= parentEvent.Choices.Count) { throw new BayesianError("Argument value " + arg + " is out of range for event " + parentEvent.ToString()); } str.Append(parentEvent.GetChoice(arg)); } } str.Append(")="); str.Append(line.Probability); str.Append("\n"); o.Write(str.ToString()); } } o.Flush(); }