Changeset 14022 for stable/HeuristicLab.Problems.DataAnalysis
- Timestamp:
- 07/08/16 12:25:13 (8 years ago)
- Location:
- stable
- Files:
-
- 8 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/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.