Free cookie consent management tool by TermsFeed Policy Generator

Changeset 13100 for trunk


Ignore:
Timestamp:
11/02/15 22:32:59 (9 years ago)
Author:
gkronber
Message:

#1998: merged changes from the branch to trunk (btw. this branch was difficult to merge back to trunk because of it's specific structure)

Location:
trunk/sources
Files:
18 edited
10 copied

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis

  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views

    • Property svn:mergeinfo set to (toggle deleted branches)
      /branches/ClassificationModelComparison/HeuristicLab.Algorithms.DataAnalysis.Viewsmergedeligible
      /branches/Algorithms.GradientDescent/HeuristicLab.Algorithms.DataAnalysis.Views5516-5520
      /branches/Benchmarking/sources/HeuristicLab.Algorithms.DataAnalysis.Views6917-7005
      /branches/CloningRefactoring/HeuristicLab.Algorithms.DataAnalysis.Views4656-4721
      /branches/DataAnalysis Refactoring/HeuristicLab.Algorithms.DataAnalysis.Views5471-5808
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Algorithms.DataAnalysis.Views5815-6180
      /branches/DataAnalysis/HeuristicLab.Algorithms.DataAnalysis.Views4458-4459,​4462,​4464
      /branches/GP.Grammar.Editor/HeuristicLab.Algorithms.DataAnalysis.Views6284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Algorithms.DataAnalysis.Views5060
      /branches/NET40/sources/HeuristicLab.Algorithms.DataAnalysis.Views5138-5162
      /branches/ParallelEngine/HeuristicLab.Algorithms.DataAnalysis.Views5175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Algorithms.DataAnalysis.Views7568-7810
      /branches/QAPAlgorithms/HeuristicLab.Algorithms.DataAnalysis.Views6350-6627
      /branches/Restructure trunk solution/HeuristicLab.Algorithms.DataAnalysis.Views6828
      /branches/RuntimeOptimizer/HeuristicLab.Algorithms.DataAnalysis.Views8943-9078
      /branches/ScatterSearch (trunk integration)/HeuristicLab.Algorithms.DataAnalysis.Views7787-8333
      /branches/SlaveShutdown/HeuristicLab.Algorithms.DataAnalysis.Views8944-8956
      /branches/SuccessProgressAnalysis/HeuristicLab.Algorithms.DataAnalysis.Views5370-5682
      /branches/Trunk/HeuristicLab.Algorithms.DataAnalysis.Views6829-6865
      /branches/VNS/HeuristicLab.Algorithms.DataAnalysis.Views5594-5752
      /branches/histogram/HeuristicLab.Algorithms.DataAnalysis.Views5959-6341
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj

    r11623 r13100  
    166166    <Compile Include="NcaDimensionReductionView.Designer.cs">
    167167      <DependentUpon>NcaDimensionReductionView.cs</DependentUpon>
     168    </Compile>
     169    <Compile Include="OneRClassificationModelView.cs" />
     170    <Compile Include="OneRClassificationModelView.Designer.cs">
     171      <DependentUpon>OneRClassificationModelView.cs</DependentUpon>
    168172    </Compile>
    169173    <Compile Include="Plugin.cs" />
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/GradientBoostedTrees/GradientBoostedTreesAlgorithmStatic.cs

    r13065 r13100  
    9696        weights = new List<double>();
    9797        // add constant model
    98         models.Add(new ConstantRegressionModel(f0));
     98        models.Add(new ConstantModel(f0));
    9999        weights.Add(1.0);
    100100      }
  • trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj

    r13026 r13100  
    122122  </ItemGroup>
    123123  <ItemGroup>
     124    <Compile Include="BaselineClassifiers\OneR.cs" />
     125    <Compile Include="BaselineClassifiers\OneRClassificationModel.cs" />
     126    <Compile Include="BaselineClassifiers\OneRClassificationSolution.cs" />
     127    <Compile Include="BaselineClassifiers\ZeroR.cs" />
    124128    <Compile Include="CrossValidation.cs">
    125129      <SubType>Code</SubType>
  • trunk/sources/HeuristicLab.Problems.DataAnalysis

  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views

  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/DiscriminantFunctionClassificationSolutionThresholdView.cs

    r12012 r13100  
    4646
    4747    private Dictionary<double, Series> classValueSeriesMapping;
    48     private Random random;
     48    private System.Random random;
    4949    private bool updateInProgress;
    5050
     
    5454
    5555      classValueSeriesMapping = new Dictionary<double, Series>();
    56       random = new Random();
     56      random = new System.Random();
    5757      updateInProgress = false;
    5858
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/HeuristicLab.Problems.DataAnalysis.Views-3.4.csproj

    r13003 r13100  
    137137    <Compile Include="Classification\ClassificationFeatureCorrelationView.Designer.cs">
    138138      <DependentUpon>ClassificationFeatureCorrelationView.cs</DependentUpon>
     139    </Compile>
     140    <Compile Include="Classification\ClassificationSolutionComparisonView.cs" />
     141    <Compile Include="Classification\ClassificationSolutionComparisonView.Designer.cs">
     142      <DependentUpon>ClassificationSolutionComparisonView.cs</DependentUpon>
    139143    </Compile>
    140144    <Compile Include="Classification\ClassificationTimeframeFeatureCorrelationView.cs">
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Regression/RegressionSolutionErrorCharacteristicsCurveView.cs

    r13003 r13100  
    292292    private IRegressionSolution CreateConstantSolution() {
    293293      double averageTrainingTarget = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices).Average();
    294       var model = new ConstantRegressionModel(averageTrainingTarget);
    295       var solution = new ConstantRegressionSolution(model, (IRegressionProblemData)ProblemData.Clone());
     294      var model = new ConstantModel(averageTrainingTarget);
     295      var solution = model.CreateRegressionSolution(ProblemData);
    296296      solution.Name = "Baseline (constant)";
    297297      return solution;
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj

    r12817 r13100  
    130130    <Compile Include="Implementation\Classification\ClassificationEnsembleProblemData.cs" />
    131131    <Compile Include="Implementation\Classification\ClassificationSolutionBase.cs" />
     132    <Compile Include="Implementation\Classification\ConstantClassificationSolution.cs" />
    132133    <Compile Include="Implementation\Classification\DiscriminantFunctionClassificationSolutionBase.cs" />
    133134    <Compile Include="Implementation\Clustering\ClusteringProblem.cs" />
    134135    <Compile Include="Implementation\Clustering\ClusteringProblemData.cs" />
    135136    <Compile Include="Implementation\Clustering\ClusteringSolution.cs" />
     137    <Compile Include="Implementation\Regression\ConstantModel.cs" />
    136138    <Compile Include="Implementation\Regression\ConstantRegressionModel.cs" />
    137139    <Compile Include="Implementation\Regression\ConstantRegressionSolution.cs" />
     
    182184    <Compile Include="OnlineCalculators\AutoCorrelationCalculator.cs" />
    183185    <Compile Include="OnlineCalculators\ClassificationPerformanceMeasuresCalculator.cs" />
     186    <Compile Include="OnlineCalculators\ConfusionMatrixCalculator.cs" />
    184187    <Compile Include="OnlineCalculators\DependencyCalculator\HoeffdingsDependenceCalculator.cs" />
    185188    <Compile Include="OnlineCalculators\DependencyCalculator\PearsonsRDependenceCalculator.cs" />
    186189    <Compile Include="OnlineCalculators\DependencyCalculator\PearsonsRSquaredDependenceCalculator.cs" />
    187190    <Compile Include="OnlineCalculators\DependencyCalculator\SpearmansRankCorrelationCoefficientCalculator.cs" />
     191    <Compile Include="OnlineCalculators\FOneScoreCalculator.cs" />
     192    <Compile Include="OnlineCalculators\MatthewsCorrelationCoefficientCalculator.cs" />
    188193    <Compile Include="OnlineCalculators\OnlineBoundedMeanSquaredErrorCalculator.cs" />
    189194    <Compile Include="OnlineCalculators\OnlineCovarianceCalculator.cs" />
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationPerformanceMeasures.cs

    r12012 r13100  
    3737    protected const string TrainingFalsePositiveRateResultName = "False positive rate (training)";
    3838    protected const string TrainingFalseDiscoveryRateResultName = "False discovery rate (training)";
     39    protected const string TrainingF1ScoreResultName = "F1 score (training)";
     40    protected const string TrainingMatthewsCorrelationResultName = "Matthews Correlation (training)";
    3941    protected const string TestTruePositiveRateResultName = "True positive rate (test)";
    4042    protected const string TestTrueNegativeRateResultName = "True negative rate (test)";
     
    4345    protected const string TestFalsePositiveRateResultName = "False positive rate (test)";
    4446    protected const string TestFalseDiscoveryRateResultName = "False discovery rate (test)";
     47    protected const string TestF1ScoreResultName = "F1 score (test)";
     48    protected const string TestMatthewsCorrelationResultName = "Matthews Correlation (test)";
    4549    #endregion
    4650
     
    8993      set { ((DoubleValue)this[TrainingFalseDiscoveryRateResultName].Value).Value = value; }
    9094    }
     95    public double TrainingF1Score {
     96      get { return ((DoubleValue)this[TrainingF1ScoreResultName].Value).Value; }
     97      set { ((DoubleValue)this[TrainingF1ScoreResultName].Value).Value = value; }
     98    }
     99    public double TrainingMatthewsCorrelation {
     100      get { return ((DoubleValue)this[TrainingMatthewsCorrelationResultName].Value).Value; }
     101      set { ((DoubleValue)this[TrainingMatthewsCorrelationResultName].Value).Value = value; }
     102    }
    91103    public double TestTruePositiveRate {
    92104      get { return ((DoubleValue)this[TestTruePositiveRateResultName].Value).Value; }
     
    113125      set { ((DoubleValue)this[TestFalseDiscoveryRateResultName].Value).Value = value; }
    114126    }
     127    public double TestF1Score {
     128      get { return ((DoubleValue)this[TestF1ScoreResultName].Value).Value; }
     129      set { ((DoubleValue)this[TestF1ScoreResultName].Value).Value = value; }
     130    }
     131    public double TestMatthewsCorrelation {
     132      get { return ((DoubleValue)this[TestMatthewsCorrelationResultName].Value).Value; }
     133      set { ((DoubleValue)this[TestMatthewsCorrelationResultName].Value).Value = value; }
     134    }
    115135    #endregion
    116136
     
    123143      Add(new Result(TrainingFalsePositiveRateResultName, "The false positive rate is the complement of the true negative rate of the model on the training partition.", new PercentValue()));
    124144      Add(new Result(TrainingFalseDiscoveryRateResultName, "The false discovery rate is the complement of the positive predictive value of the model on the training partition.", new PercentValue()));
     145      Add(new Result(TrainingF1ScoreResultName, "The F1 score of the model on the training partition.", new DoubleValue()));
     146      Add(new Result(TrainingMatthewsCorrelationResultName, "The Matthews correlation value of the model on the training partition.", new DoubleValue()));
    125147      Add(new Result(TestTruePositiveRateResultName, "Sensitivity/True positive rate of the model on the test partition\n(TP/(TP+FN)).", new PercentValue()));
    126148      Add(new Result(TestTrueNegativeRateResultName, "Specificity/True negative rate of the model on the test partition\n(TN/(FP+TN)).", new PercentValue()));
     
    129151      Add(new Result(TestFalsePositiveRateResultName, "The false positive rate is the complement of the true negative rate of the model on the test partition.", new PercentValue()));
    130152      Add(new Result(TestFalseDiscoveryRateResultName, "The false discovery rate is the complement of the positive predictive value of the model on the test partition.", new PercentValue()));
     153      Add(new Result(TestF1ScoreResultName, "The F1 score of the model on the test partition.", new DoubleValue()));
     154      Add(new Result(TrainingMatthewsCorrelationResultName, "The Matthews correlation value of the model on the test partition.", new DoubleValue()));
    131155      TrainingTruePositiveRate = double.NaN;
    132156      TrainingTrueNegativeRate = double.NaN;
     
    135159      TrainingFalsePositiveRate = double.NaN;
    136160      TrainingFalseDiscoveryRate = double.NaN;
     161      TrainingF1Score = double.NaN;
     162      TrainingMatthewsCorrelation = double.NaN;
    137163      TestTruePositiveRate = double.NaN;
    138164      TestTrueNegativeRate = double.NaN;
     
    141167      TestFalsePositiveRate = double.NaN;
    142168      TestFalseDiscoveryRate = double.NaN;
     169      TestF1Score = double.NaN;
     170      TestMatthewsCorrelation = double.NaN;
    143171    }
    144172
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationSolutionBase.cs

    r12012 r13100  
    2626using HeuristicLab.Optimization;
    2727using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HeuristicLab.Problems.DataAnalysis.OnlineCalculators;
    2829
    2930namespace HeuristicLab.Problems.DataAnalysis {
     
    135136      if (testPerformanceCalculator.ErrorState == OnlineCalculatorError.None)
    136137        ClassificationPerformanceMeasures.SetTestResults(testPerformanceCalculator);
     138
     139      var f1Training = FOneScoreCalculator.Calculate(originalTrainingClassValues, estimatedTrainingClassValues, out errorState);
     140      if (errorState == OnlineCalculatorError.None) ClassificationPerformanceMeasures.TrainingF1Score = f1Training;
     141      var f1Test = FOneScoreCalculator.Calculate(originalTestClassValues, estimatedTestClassValues, out errorState);
     142      if (errorState == OnlineCalculatorError.None) ClassificationPerformanceMeasures.TestF1Score = f1Test;
     143
     144
     145      var mccTraining = MatthewsCorrelationCoefficientCalculator.Calculate(originalTrainingClassValues, estimatedTrainingClassValues, out errorState);
     146      if (errorState == OnlineCalculatorError.None) ClassificationPerformanceMeasures.TrainingMatthewsCorrelation = mccTraining;
     147      var mccTest = MatthewsCorrelationCoefficientCalculator.Calculate(originalTestClassValues, estimatedTestClassValues, out errorState);
     148      if (errorState == OnlineCalculatorError.None) ClassificationPerformanceMeasures.TestMatthewsCorrelation = mccTest;
    137149    }
    138150
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ConstantRegressionModel.cs

    r13001 r13100  
    3131  [StorableClass]
    3232  [Item("Constant Regression Model", "A model that always returns the same constant value regardless of the presented input data.")]
     33  [Obsolete]
    3334  public class ConstantRegressionModel : NamedItem, IRegressionModel, IStringConvertibleValue {
    3435    [Storable]
     
    6061
    6162    public IRegressionSolution CreateRegressionSolution(IRegressionProblemData problemData) {
    62       return new ConstantRegressionSolution(this, new RegressionProblemData(problemData));
     63      return new ConstantRegressionSolution(new ConstantModel(constant), new RegressionProblemData(problemData));
    6364    }
    6465
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/ConstantRegressionSolution.cs

    r12012 r13100  
    2828  [Item(Name = "Constant Regression Solution", Description = "Represents a constant regression solution (model + data).")]
    2929  public class ConstantRegressionSolution : RegressionSolution {
    30     public new ConstantRegressionModel Model {
    31       get { return (ConstantRegressionModel)base.Model; }
     30    public new ConstantModel Model {
     31      get { return (ConstantModel)base.Model; }
    3232      set { base.Model = value; }
    3333    }
     
    3636    protected ConstantRegressionSolution(bool deserializing) : base(deserializing) { }
    3737    protected ConstantRegressionSolution(ConstantRegressionSolution original, Cloner cloner) : base(original, cloner) { }
    38     public ConstantRegressionSolution(ConstantRegressionModel model, IRegressionProblemData problemData)
     38    public ConstantRegressionSolution(ConstantModel model, IRegressionProblemData problemData)
    3939      : base(model, problemData) {
    4040      RecalculateResults();
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/Models/ConstantTimeSeriesPrognosisModel.cs

    r12509 r13100  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
    2324using System.Linq;
     
    2930  [StorableClass]
    3031  [Item("Constant TimeSeries Model", "A time series model that returns for all prediciton the same constant value.")]
     32  [Obsolete]
    3133  public class ConstantTimeSeriesPrognosisModel : ConstantRegressionModel, ITimeSeriesPrognosisModel {
    3234    [StorableConstructor]
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisResults.cs

    r12641 r13100  
    373373      //mean model
    374374      double trainingMean = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, problemData.TrainingIndices).Average();
    375       var meanModel = new ConstantTimeSeriesPrognosisModel(trainingMean);
     375      var meanModel = new ConstantModel(trainingMean);
    376376
    377377      //AR1 model
     
    448448        //mean model
    449449        double trainingMean = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, problemData.TrainingIndices).Average();
    450         var meanModel = new ConstantTimeSeriesPrognosisModel(trainingMean);
     450        var meanModel = new ConstantModel(trainingMean);
    451451
    452452        //AR1 model
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/TimeSeriesPrognosis/TimeSeriesPrognosisSolutionBase.cs

    r12012 r13100  
    150150      OnlineCalculatorError errorState;
    151151      double trainingMean = ProblemData.TrainingIndices.Any() ? ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndices).Average() : double.NaN;
    152       var meanModel = new ConstantTimeSeriesPrognosisModel(trainingMean);
     152      var meanModel = new ConstantModel(trainingMean);
    153153
    154154      double alpha, beta;
Note: See TracChangeset for help on using the changeset viewer.