/// <summary>
 /// Dump the current state of SPLConqueror to Files.
 /// </summary>
 /// <param name="pathArray">Array with file paths. Needs 5 paths. Data will be stored in these files.</param>
 /// <param name="mlSettings">Current ML_Settings, to save.</param>
 /// <param name="toSample">Sampling strategies to save.</param>
 /// <param name="toSampleValidation">Validation sampling strategies to save.</param>
 /// <param name="exp">Learning object to save.</param>
 /// <param name="history">Command history to save.</param>
 public static void dump(string[] path, ML_Settings mlSettings, List <SamplingStrategies> toSample, List <SamplingStrategies> toSampleValidation, Learning exp, CommandHistory history)
 {
     if (path.Length >= 1)
     {
         StreamWriter sw = new StreamWriter(path[0] + "GlobalState.xml");
         sw.Write(PersistGlobalState.dump());
         sw.Flush();
         sw.Close();
         sw = new StreamWriter(path[0] + "mlSettings.xml");
         sw.Write(PersistMLSettings.dump(mlSettings));
         sw.Flush();
         sw.Close();
         sw = new StreamWriter(path[0] + "toSample.xml");
         sw.Write(PersistSampling.dump(toSample));
         sw.Flush();
         sw.Close();
         sw = new StreamWriter(path[0] + "toSampleValidation.xml");
         sw.Write(PersistSampling.dump(toSampleValidation));
         sw.Flush();
         sw.Close();
         sw = new StreamWriter(path[0] + "learning.xml");
         sw.Write(PersistLearning.dump(exp));
         sw.Flush();
         sw.Close();
         sw = new StreamWriter(path[0] + "history.xml");
         sw.Write(PersistCommandHistory.dump(history));
         sw.Flush();
         sw.Close();
     }
     else
     {
         GlobalState.logError.logLine("Couldn't dump the data. Not all target paths are given");
     }
 }
 protected SamplingBasedAdditionStrategy(ML_Settings mlSettings, ConfigurationBuilder configBuilder,
                                         string sampleTask)
 {
     this.configBuilder = configBuilder;
     this.mlSettings    = mlSettings;
     this.sampleTask    = sampleTask;
 }
        /// <summary>
        /// String that represents the current mlsettings to save it as persistent file.
        /// </summary>
        /// <returns>ML_Settings in a xml format.</returns>
        public static string dump(ML_Settings mlsettings)
        {
            XmlSerializer xmls = new XmlSerializer(typeof(ML_Settings));
            StringWriter  sw   = new StringWriter();

            xmls.Serialize(sw, mlsettings);
            return(sw.ToString().Replace("utf-16", "utf-8"));
        }
Exemple #4
0
        private List <Configuration> buildSet(ML_Settings mlSettings, List <SamplingStrategies> binaryStrats, List <ExperimentalDesign> numericStrats, List <HybridStrategy> hybridStrats)
        {
            blacklisted = mlSettings.blacklisted;
            List <Configuration> configurationsTest = buildConfigs(GlobalState.varModel, binaryStrats, numericStrats, hybridStrats);

            configurationsTest = GlobalState.getMeasuredConfigs(configurationsTest);
            return(configurationsTest);
        }
 public void clear()
 {
     this.nbBaggings = 0;
     this.mLsettings = new ML_Settings();
     this.metaModel = null;
     this.models.Clear();
     clearSampling();
 }
        /// <summary>
        /// Recover a older ml settings from the persistent dump.
        /// </summary>
        /// <param name="persistentDump">Persistent ml settings dump as string</param>
        /// <returns>Previous ML_Settings object</returns>
        public static ML_Settings recoverFromPersistentDump(string persistentDump)
        {
            XmlDocument persistentMLSettings = new System.Xml.XmlDocument();

            persistentMLSettings.Load(persistentDump);
            XmlElement    mlsettings = persistentMLSettings.DocumentElement;
            StringBuilder sb         = new StringBuilder();

            foreach (XmlElement data in mlsettings)
            {
                if (data.InnerText != "" && data.InnerText.Trim().Length > 0)
                {
                    sb.Append(data.Name + ":" + data.InnerText.Trim() + " ");
                }
            }
            return(ML_Settings.readSettings(sb.ToString()));
        }
 /// <summary>
 /// Constructor of the learning class. It reads all configuration options and generates candidates for possible influences (i.e., features).
 /// </summary>
 /// <param name="infModel">The influence model which will later hold all determined influences and contains the variability model from which we derive all configuration options.</param>
 public FeatureSubsetSelection(InfluenceModel infModel, ML_Settings settings)
 {
     this.infModel   = infModel;
     this.MLsettings = settings;
     foreach (var opt in infModel.Vm.BinaryOptions)
     {
         if (opt == infModel.Vm.Root)
         {
             continue;
         }
         initialFeatures.Add(new Feature(opt.Name, infModel.Vm));
     }
     this.strictlyMandatoryFeatures.Add(new Feature(infModel.Vm.Root.Name, infModel.Vm));
     foreach (var opt in infModel.Vm.NumericOptions)
     {
         initialFeatures.Add(new Feature(opt.Name, infModel.Vm));
     }
 }
 /// <summary>
 /// Recover the SPLConqueror data from files.
 /// </summary>
 /// <param name="pathArray">String array with the file paths. Needs 6 file paths.</param>
 /// <returns>Tuple containing all recovered data.</returns>
 public static Tuple <ML_Settings, List <SamplingStrategies>, List <SamplingStrategies> > recoverDataFromDump(string[] path)
 {
     if (path.Length >= 1)
     {
         PersistGlobalState.recoverFromPersistentDump(path[0] + "GlobalState.xml");
         ML_Settings mlSettings                       = PersistMLSettings.recoverFromPersistentDump(path[0] + "mlSettings.xml");
         List <SamplingStrategies> toSample           = PersistSampling.recoverFromDump(path[0] + "toSample.xml");
         List <SamplingStrategies> toSampleValidation = PersistSampling.recoverFromDump(path[0] + "toSampleValidation.xml");
         List <List <string> >     learningRounds     = PersistLearning.recoverFromPersistentDump(path[0] + "learning.xml");
         learningHistory = Tuple.Create(true, learningRounds.Last());
         history         = PersistCommandHistory.recoverFromDump(path[0] + "history.xml");
         return(Tuple.Create(mlSettings, toSample, toSampleValidation));
     }
     else
     {
         GlobalState.logError.logLine("Couldn't recover from dump. Not all source paths are given");
         return(null);
     }
 }
 /// <summary>
 /// Clears the binary and numeric selections and the machine learning settings stored in this object.
 /// </summary>
 public void clear()
 {
     mlSettings = new ML_Settings();
     clearSampling();
 }
 public MatrixMaxAdditionStrategy(ML_Settings mlSettings, ConfigurationBuilder configBuilder,
                                  string sampleTask) : base(mlSettings, configBuilder, sampleTask)
 {
 }
 public MostSimilarPerformanceExchangeStrategy(ML_Settings mlSettings) : base(mlSettings, 0.1)
 {
 }
Exemple #12
0
 public SimpleSamplingBasedAdditionStrategy(ML_Settings mlSettings, ConfigurationBuilder configBuilder,
                                            string sampleTask) : base(mlSettings, configBuilder, sampleTask)
 {
 }
 protected LargestValidationErrorExchangeStrategy(ML_Settings mlSettings, double percentageToExchange)
 {
     this.mlSettings           = mlSettings;
     this.percentageToExchange = percentageToExchange;
 }
 public PerformanceValueExchangeStrategy(ML_Settings mlSettings) : base(mlSettings, 0.1)
 {
 }
Exemple #15
0
 private string mlSettingsContent(ML_Settings settings)
 {
     return(CommandLine.Commands.COMMAND_SET_MLSETTING + " " + settings.ToString());
 }
Exemple #16
0
 public List <Configuration> buildSetForValidation(ML_Settings mlSettings)
 {
     return(buildSet(mlSettings, binaryStrategiesValidation, numericStrategiesValidation, hybridStrategiesValidation));
 }
Exemple #17
0
 public List <Configuration> buildSet(ML_Settings mlSettings)
 {
     return(buildSet(mlSettings, binaryStrategies, numericStrategies, hybridStrategies));
 }
Exemple #18
0
        public Tuple <List <Configuration>, List <Configuration> > buildSetsEfficient(ML_Settings mlSettings)
        {
            bool measurementsValid = false;
            List <Configuration> configurationsLearning;
            List <Configuration> configurationsValidation;

            if (isAllMeasurementsToSample() && allMeasurementsValid() && (mlSettings.blacklisted == null || mlSettings.blacklisted.Count == 0))
            {
                measurementsValid      = true;
                configurationsLearning = GlobalState.allMeasurements.Configurations;
            }
            else
            {
                configurationsLearning = buildSet(mlSettings, binaryStrategies, numericStrategies, hybridStrategies);
            }

            if (isAllMeasurementsValidation() && (measurementsValid || allMeasurementsValid()) && (mlSettings.blacklisted == null || mlSettings.blacklisted.Count == 0))
            {
                configurationsValidation = GlobalState.allMeasurements.Configurations;
            }
            else
            {
                configurationsValidation = buildSet(mlSettings, binaryStrategiesValidation, numericStrategiesValidation, hybridStrategiesValidation);
            }
            return(Tuple.Create(configurationsLearning, configurationsValidation));
        }
 public KFoldCrossValidation(ML_Settings _settings, List <Configuration> _trainingSet)
 {
     this.settings = _settings;
     trainingSet   = _trainingSet;
 }
Exemple #20
0
 public ActiveLearning(ML_Settings mlSettings, InfluenceModel influenceModel, ConfigurationBuilder configBuilder)
 {
     this.mlSettings     = mlSettings;
     this.influenceModel = influenceModel;
     this.configBuilder  = configBuilder;
 }
Exemple #21
0
 public PairwiseDistanceExchangeStrategy(ML_Settings mlSettings) : base(mlSettings, 0.1)
 {
 }