Changeset 14022
- Timestamp:
- 07/08/16 12:25:13 (8 years ago)
- Location:
- stable
- Files:
-
- 11 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 13766,13942,13985-13987
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis merged: 13766,13985-13987
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Views
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis.Views merged: 13766,13942
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/RegressionSolutionView.Designer.cs
r12009 r14022 19 19 */ 20 20 #endregion 21 21 22 22 23 namespace HeuristicLab.Problems.DataAnalysis.Views { … … 45 46 /// </summary> 46 47 private void InitializeComponent() { 48 this.btnImpactCalculation = new System.Windows.Forms.Button(); 47 49 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); 48 50 this.splitContainer.Panel1.SuspendLayout(); … … 52 54 this.detailsGroupBox.SuspendLayout(); 53 55 this.SuspendLayout(); 56 // 57 // btnImpactCalculation 58 // 59 this.btnImpactCalculation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom))); 60 this.btnImpactCalculation.Image = HeuristicLab.Common.Resources.VSImageLibrary.Zoom; 61 this.btnImpactCalculation.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; 62 this.btnImpactCalculation.Name = "btnImpactCalculation"; 63 this.btnImpactCalculation.TabIndex = 6; 64 this.btnImpactCalculation.Size = new System.Drawing.Size(110, 24); 65 this.btnImpactCalculation.Text = "Variable Impacts"; 66 this.btnImpactCalculation.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 67 this.btnImpactCalculation.UseVisualStyleBackColor = true; 68 this.btnImpactCalculation.Click += new System.EventHandler(this.btnImpactCalculation_Click); 69 this.toolTip.SetToolTip(this.btnImpactCalculation, "Calculate impacts"); 70 // 71 // flowLayoutPanel 72 // 73 this.flowLayoutPanel.Controls.Add(this.btnImpactCalculation); 54 74 // 55 75 // splitContainer … … 84 104 85 105 #endregion 106 107 protected System.Windows.Forms.Button btnImpactCalculation; 86 108 } 87 109 } -
stable/HeuristicLab.Problems.DataAnalysis.Views/3.4/Solution Views/RegressionSolutionView.cs
r12009 r14022 20 20 #endregion 21 21 22 using System; 23 using System.Linq; 24 using System.Threading.Tasks; 22 25 using System.Windows.Forms; 23 26 using HeuristicLab.Core; 27 using HeuristicLab.Data; 28 using HeuristicLab.Data.Views; 24 29 using HeuristicLab.MainForm; 30 using HeuristicLab.MainForm.WindowsForms; 25 31 26 32 namespace HeuristicLab.Problems.DataAnalysis.Views { … … 35 41 get { return (RegressionSolutionBase)base.Content; } 36 42 set { base.Content = value; } 43 } 44 45 protected override void SetEnabledStateOfControls() { 46 base.SetEnabledStateOfControls(); 47 btnImpactCalculation.Enabled = Content != null && !Locked; 48 } 49 50 protected virtual void btnImpactCalculation_Click(object sender, EventArgs e) { 51 var mainForm = (MainForm.WindowsForms.MainForm)MainFormManager.MainForm; 52 var view = new StringConvertibleArrayView(); 53 view.Caption = Content.Name + " Variable Impacts"; 54 view.Show(); 55 56 Task.Factory.StartNew(() => { 57 try { 58 mainForm.AddOperationProgressToView(view, "Calculating variable impacts for " + Content.Name); 59 60 var impacts = RegressionSolutionVariableImpactsCalculator.CalculateImpacts(Content); 61 var impactArray = new DoubleArray(impacts.Select(i => i.Item2).ToArray()); 62 impactArray.ElementNames = impacts.Select(i => i.Item1); 63 view.Content = (DoubleArray)impactArray.AsReadOnly(); 64 } 65 finally { 66 mainForm.RemoveOperationProgressFromView(view); 67 } 68 }); 37 69 } 38 70 -
stable/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj
r13156 r14022 143 143 </Compile> 144 144 <Compile Include="Implementation\Regression\RegressionEnsembleSolution.cs" /> 145 <Compile Include="Implementation\Regression\RegressionSolutionVariableImpactsCalculator.cs" /> 145 146 <Compile Include="Implementation\TimeSeriesPrognosis\Models\ConstantTimeSeriesPrognosisModel.cs" /> 146 147 <Compile Include="Implementation\TimeSeriesPrognosis\Models\TimeSeriesPrognosisAutoRegressiveModel.cs" /> … … 313 314 <Private>False</Private> 314 315 </ProjectReference> 316 <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj"> 317 <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project> 318 <Name>HeuristicLab.Random-3.3</Name> 319 </ProjectReference> 315 320 </ItemGroup> 316 321 <ItemGroup /> -
stable/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblemData.cs
r12702 r14022 80 80 } 81 81 82 public virtual IEnumerable<int> AllIndices { 83 get { return Enumerable.Range(0, Dataset.Rows); } 84 } 82 85 public virtual IEnumerable<int> TrainingIndices { 83 86 get { -
stable/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs
r12702 r14022 110 110 } 111 111 112 public IEnumerable<double> TargetVariableValues { 113 get { return Dataset.GetDoubleValues(TargetVariable); } 114 } 115 public IEnumerable<double> TargetVariableTrainingValues { 116 get { return Dataset.GetDoubleValues(TargetVariable, TrainingIndices); } 117 } 118 public IEnumerable<double> TargetVariableTestValues { 119 get { return Dataset.GetDoubleValues(TargetVariable, TestIndices); } 120 } 121 122 112 123 [StorableConstructor] 113 124 protected RegressionProblemData(bool deserializing) : base(deserializing) { } -
stable/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionSolutionVariableImpactsCalculator.cs
r13766 r14022 30 30 using HeuristicLab.Parameters; 31 31 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 32 using HeuristicLab.Random; 32 33 33 34 namespace HeuristicLab.Problems.DataAnalysis { 34 35 [StorableClass] 35 [Item("RegressionSolution Impacts Calculator", "Calculation of the impacts of input variables for a concrete")]36 [Item("RegressionSolution Impacts Calculator", "Calculation of the impacts of input variables for any regression solution")] 36 37 public sealed class RegressionSolutionVariableImpactsCalculator : ParameterizedNamedItem { 37 38 public enum ReplacementMethodEnum { 38 39 Median, 39 Average 40 Average, 41 Shuffle, 42 Noise 40 43 } 41 44 … … 77 80 : base() { 78 81 Parameters.Add(new FixedValueParameter<EnumValue<ReplacementMethodEnum>>(ReplacementParameterName, "The replacement method for variables during impact calculation.", new EnumValue<ReplacementMethodEnum>(ReplacementMethodEnum.Median))); 79 Parameters.Add(new FixedValueParameter<EnumValue<DataPartitionEnum>>( ReplacementParameterName, "The data partition on which the impacts are calculated.", new EnumValue<DataPartitionEnum>(DataPartitionEnum.Training)));82 Parameters.Add(new FixedValueParameter<EnumValue<DataPartitionEnum>>(DataPartitionParameterName, "The data partition on which the impacts are calculated.", new EnumValue<DataPartitionEnum>(DataPartitionEnum.Training))); 80 83 } 81 84 … … 138 141 var originalValues = dataset.GetReadOnlyDoubleValues(variable).ToList(); 139 142 double replacementValue; 143 List<double> replacementValues; 144 IRandom rand; 140 145 141 146 switch (replacement) { 142 147 case ReplacementMethodEnum.Median: 143 148 replacementValue = rows.Select(r => originalValues[r]).Median(); 149 replacementValues = Enumerable.Repeat(replacementValue, dataset.Rows).ToList(); 144 150 break; 145 151 case ReplacementMethodEnum.Average: 146 152 replacementValue = rows.Select(r => originalValues[r]).Average(); 153 replacementValues = Enumerable.Repeat(replacementValue, dataset.Rows).ToList(); 147 154 break; 155 case ReplacementMethodEnum.Shuffle: 156 // new var has same empirical distribution but the relation to y is broken 157 rand = new FastRandom(31415); 158 replacementValues = rows.Select(r => originalValues[r]).Shuffle(rand).ToList(); 159 break; 160 case ReplacementMethodEnum.Noise: 161 var avg = rows.Select(r => originalValues[r]).Average(); 162 var stdDev = rows.Select(r => originalValues[r]).StandardDeviation(); 163 rand = new FastRandom(31415); 164 replacementValues = rows.Select(_ => NormalDistributedRandom.NextDouble(rand, avg, stdDev)).ToList(); 165 break; 166 148 167 default: 149 168 throw new ArgumentException(string.Format("ReplacementMethod {0} cannot be handled.", replacement)); 150 169 } 151 170 152 dataset.ReplaceVariable(variable, Enumerable.Repeat(replacementValue, dataset.Rows).ToList());171 dataset.ReplaceVariable(variable, replacementValues); 153 172 //mkommend: ToList is used on purpose to avoid lazy evaluation that could result in wrong estimates due to variable replacements 154 173 var estimates = model.GetEstimatedValues(dataset, rows).ToList(); -
stable/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblemData.cs
r12702 r14022 36 36 IntRange TestPartition { get; } 37 37 38 IEnumerable<int> AllIndices { get; } 38 39 IEnumerable<int> TrainingIndices { get; } 39 40 IEnumerable<int> TestIndices { get; } -
stable/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/Regression/IRegressionProblemData.cs
r12009 r14022 20 20 #endregion 21 21 22 using System.Collections.Generic; 23 22 24 namespace HeuristicLab.Problems.DataAnalysis { 23 25 public interface IRegressionProblemData : IDataAnalysisProblemData { 24 26 string TargetVariable { get; set; } 27 28 IEnumerable<double> TargetVariableValues { get; } 29 IEnumerable<double> TargetVariableTrainingValues { get; } 30 IEnumerable<double> TargetVariableTestValues { get; } 25 31 } 26 32 } -
stable/HeuristicLab.Problems.DataAnalysis/3.4/Plugin.cs.frame
r13316 r14022 38 38 [PluginDependency("HeuristicLab.Persistence", "3.3")] 39 39 [PluginDependency("HeuristicLab.Problems.Instances", "3.3")] 40 [PluginDependency("HeuristicLab.Random", "3.3")] 40 41 public class HeuristicLabProblemsDataAnalysisPlugin : PluginBase { 41 42 }
Note: See TracChangeset
for help on using the changeset viewer.