using System.ComponentModel; using System.Linq; using HeuristicLab.Algorithms.DataAnalysis; using HeuristicLab.Data; using HeuristicLab.Encodings.ParameterConfigurationTreeEncoding; using HeuristicLab.Optimization; using HeuristicLab.Problems.DataAnalysis; namespace HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard { public partial class MediumAnalysisPage : HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard.WizardPage { private BackgroundWorker worker; private DataAnalysisWizardContext context; public DataAnalysisWizardContext Context { get { return context; } } public MediumAnalysisPage(DataAnalysisWizardContext context) { InitializeComponent(); this.context = context; worker = new BackgroundWorker(); worker.DoWork += new DoWorkEventHandler(GenerateExperimentsTask); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(WorkerCompleted); } private void GenerateExperimentsTask(object sender, DoWorkEventArgs e) { DataAnalysisWizardContext c = e.Argument as DataAnalysisWizardContext; IProblem problem = c.Problem; SupportVectorRegression svr = new SupportVectorRegression(); svr.Problem = (IRegressionProblem)problem; ParameterConfigurationTree vc = new ParameterConfigurationTree(svr, problem); var nuPc = vc.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == "Nu").SingleOrDefault(); nuPc.Optimize = true; var nuVc = (RangeValueConfiguration)nuPc.ValueConfigurations.First(); nuVc.Optimize = true; nuVc.RangeConstraint = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.9), new DoubleValue(0.1)); var costPc = vc.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == "Cost").SingleOrDefault(); costPc.Optimize = true; var costVc = (RangeValueConfiguration)costPc.ValueConfigurations.First(); costVc.Optimize = true; costVc.RangeConstraint = new DoubleValueFactorRange(new DoubleValue(0.03125), new DoubleValue(32768), new DoubleValue(4)); var gammaPc = vc.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == "Gamma").SingleOrDefault(); gammaPc.Optimize = true; var gammaVc = (RangeValueConfiguration)gammaPc.ValueConfigurations.First(); gammaVc.Optimize = true; gammaVc.RangeConstraint = new DoubleValueFactorRange(new DoubleValue(6.10352E-05), new DoubleValue(64), new DoubleValue(4)); Experiment experiment = vc.GenerateExperiment(svr); e.Result = experiment; } private void WorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { SetWizardButton(Wizard.WizardButtons.Next); Experiment experiment = (Experiment)e.Result; context.Experiment = experiment; } private void MediumAnalysisPage_WizardBack(object sender, Wizard.WizardPageEventArgs e) { e.NewPage = "SelectAnalysisPage"; } private void MediumAnalysisPage_SetActive(object sender, System.ComponentModel.CancelEventArgs e) { SetWizardButton(Wizard.WizardButtons.None); worker.RunWorkerAsync(context); } } }