Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/08 13:54:29 (16 years ago)
Author:
gkronber
Message:

worked on view for CEDMA problems and persistence of CEDMA problems to RDF store. #419 (Refactor CEDMA plugins)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/CEDMA-Refactoring-Ticket419/HeuristicLab.CEDMA.Core/Problem.cs

    r1003 r1043  
    3030
    3131namespace HeuristicLab.CEDMA.Core {
     32
     33  public enum LearningTask {
     34    Classification,
     35    Regression,
     36    TimeSeries,
     37    Clustering
     38  }
     39
    3240  /// <summary>
    3341  /// Problem describes the data mining task.
     
    5967
    6068    private int validationSamplesStart;
    61 
    6269    public int ValidationSamplesStart {
    6370      get { return validationSamplesStart; }
    6471      set { validationSamplesStart = value; }
    6572    }
     73
    6674    private int validationSamplesEnd;
    67 
    6875    public int ValidationSamplesEnd {
    6976      get { return validationSamplesEnd; }
     
    7279
    7380    private int testSamplesStart;
    74 
    7581    public int TestSamplesStart {
    7682      get { return testSamplesStart; }
    7783      set { testSamplesStart = value; }
    7884    }
     85
    7986    private int testSamplesEnd;
    80 
    8187    public int TestSamplesEnd {
    8288      get { return testSamplesEnd; }
     
    95101
    96102    private bool autoRegressive;
    97 
    98103    public bool AutoRegressive {
    99104      get { return autoRegressive; }
     
    101106    }
    102107
    103     private bool timeSeries;
    104 
    105     public bool TimeSeries {
    106       get { return timeSeries; }
    107       set { timeSeries = value; }
     108    private LearningTask learningTask;
     109    public LearningTask LearningTask {
     110      get { return learningTask; }
     111      set { learningTask = value; }
    108112    }
    109113
     
    118122      return new ProblemView(this);
    119123    }
     124
     125    public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
     126      XmlNode node = base.GetXmlNode(name, document, persistedObjects);
     127      node.AppendChild(PersistenceManager.Persist("DataSet", dataset, document, persistedObjects));
     128      XmlAttribute trainingSamplesStartAttr = document.CreateAttribute("TrainingSamplesStart");
     129      trainingSamplesStartAttr.Value = TrainingSamplesStart.ToString();
     130      XmlAttribute trainingSamplesEndAttr = document.CreateAttribute("TrainingSamplesEnd");
     131      trainingSamplesEndAttr.Value = TrainingSamplesEnd.ToString();
     132      XmlAttribute validationSamplesStartAttr = document.CreateAttribute("ValidationSamplesStart");
     133      validationSamplesStartAttr.Value = ValidationSamplesStart.ToString();
     134      XmlAttribute validationSamplesEndAttr = document.CreateAttribute("ValidationSamplesEnd");
     135      validationSamplesEndAttr.Value = ValidationSamplesEnd.ToString();
     136      XmlAttribute testSamplesStartAttr = document.CreateAttribute("TestSamplesStart");
     137      testSamplesStartAttr.Value = TestSamplesStart.ToString();
     138      XmlAttribute testSamplesEndAttr = document.CreateAttribute("TestSamplesEnd");
     139      testSamplesEndAttr.Value = TestSamplesEnd.ToString();
     140      XmlAttribute learningTaskAttr = document.CreateAttribute("LearningTask");
     141      learningTaskAttr.Value = LearningTask.ToString();
     142      XmlAttribute autoRegressiveAttr = document.CreateAttribute("AutoRegressive");
     143      autoRegressiveAttr.Value = AutoRegressive.ToString();
     144
     145      node.Attributes.Append(trainingSamplesStartAttr);
     146      node.Attributes.Append(trainingSamplesEndAttr);
     147      node.Attributes.Append(validationSamplesStartAttr);
     148      node.Attributes.Append(validationSamplesEndAttr);
     149      node.Attributes.Append(testSamplesStartAttr);
     150      node.Attributes.Append(testSamplesEndAttr);
     151      node.Attributes.Append(learningTaskAttr);
     152      node.Attributes.Append(autoRegressiveAttr);
     153
     154      XmlElement targetVariablesElement = document.CreateElement("AllowedTargetVariables");
     155      targetVariablesElement.InnerText = SemiColonSeparatedList(AllowedTargetVariables);
     156      XmlElement inputVariablesElement = document.CreateElement("AllowedInputVariables");
     157      inputVariablesElement.InnerText = SemiColonSeparatedList(AllowedInputVariables);
     158      node.AppendChild(targetVariablesElement);
     159      node.AppendChild(inputVariablesElement);
     160      return node;
     161    }
     162
     163    public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
     164      base.Populate(node, restoredObjects);
     165      dataset = (HeuristicLab.DataAnalysis.Dataset)PersistenceManager.Restore(node.SelectSingleNode("DataSet"), restoredObjects);
     166      TrainingSamplesStart = int.Parse(node.Attributes["TrainingSamplesStart"].Value);
     167      TrainingSamplesEnd = int.Parse(node.Attributes["TrainingSamplesEnd"].Value);
     168      ValidationSamplesStart = int.Parse(node.Attributes["ValidationSamplesStart"].Value);
     169      ValidationSamplesEnd = int.Parse(node.Attributes["ValidationSamplesEnd"].Value);
     170      TestSamplesStart = int.Parse(node.Attributes["TestSamplesStart"].Value);
     171      TestSamplesEnd = int.Parse(node.Attributes["TestSamplesEnd"].Value);
     172      LearningTask = (LearningTask)Enum.Parse(typeof(LearningTask), node.Attributes["LearningTask"].Value);
     173      AutoRegressive = bool.Parse(node.Attributes["AutoRegressive"].Value);
     174      allowedTargetVariables.Clear();
     175      foreach (string tok in node.SelectSingleNode("AllowedTargetVariables").InnerText.Split(new string[]{";"}, StringSplitOptions.RemoveEmptyEntries))
     176        allowedTargetVariables.Add(int.Parse(tok));
     177      allowedInputVariables.Clear();
     178      foreach (string tok in node.SelectSingleNode("AllowedInputVariables").InnerText.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
     179        allowedInputVariables.Add(int.Parse(tok));
     180    }
     181
     182    private string SemiColonSeparatedList(List<int> xs) {
     183      StringBuilder b = new StringBuilder();
     184      foreach (int x in xs) {
     185        b = b.Append(x).Append(";");
     186      }
     187      if (xs.Count > 0) b.Remove(b.Length - 1, 1); // remove last ';'
     188      return b.ToString();
     189    }
    120190  }
    121191}
Note: See TracChangeset for help on using the changeset viewer.