Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/22/12 10:36:20 (12 years ago)
Author:
sforsten
Message:

#1776:

  • merged r7454:7863 trunk into branch to make it compatible again
  • adjusted GetConfidence of MajorityVoteWeightCalculator to be in an interval of [0, 1]
Location:
branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis
Files:
1 deleted
16 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis

  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Dataset.cs

    r7259 r7866  
    7272      rows = variableValues.First().Count;
    7373      this.variableNames = new List<string>(variableNames);
    74       this.variableValues = new Dictionary<string, IList>();
     74      this.variableValues = new Dictionary<string, IList>(this.variableNames.Count);
    7575      for (int i = 0; i < this.variableNames.Count; i++) {
    7676        var values = variableValues.ElementAt(i);
     
    107107      this.variableNames = new List<string>(variableNames);
    108108
    109       this.variableValues = new Dictionary<string, IList>();
     109      this.variableValues = new Dictionary<string, IList>(variableValues.GetLength(1));
    110110      for (int col = 0; col < variableValues.GetLength(1); col++) {
    111111        string columName = this.variableNames[col];
    112         var values = new List<double>();
     112        var values = new List<double>(variableValues.GetLength(0));
    113113        for (int row = 0; row < variableValues.GetLength(0); row++) {
    114114          values.Add(variableValues[row, col]);
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/HeuristicLab.Problems.DataAnalysis-3.4.csproj

    r7729 r7866  
    120120      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
    121121    </Reference>
     122    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
     123      <Private>False</Private>
     124    </Reference>
    122125    <Reference Include="System" />
    123126    <Reference Include="System.Core">
     
    179182    <Compile Include="Interfaces\Regression\IRegressionEnsembleSolution.cs" />
    180183    <Compile Include="Implementation\Regression\RegressionSolutionBase.cs" />
     184    <Compile Include="OnlineCalculators\OnlineMaxAbsoluteErrorCalculator.cs" />
    181185    <Compile Include="OnlineCalculators\OnlineMeanErrorCalculator.cs" />
    182186    <Compile Include="OnlineCalculators\NormalizedGiniCalculator.cs" />
     
    217221    <Compile Include="Implementation\Regression\RegressionSolution.cs" />
    218222    <Compile Include="Plugin.cs" />
    219     <Compile Include="TableFileParser.cs" />
    220223    <Compile Include="Implementation\Classification\ThresholdCalculators\AccuracyMaximizationThresholdCalculator.cs" />
    221224    <Compile Include="Implementation\Classification\ThresholdCalculators\NormalDistributionCutPointsThresholdCalculator.cs" />
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblem.cs

    r7259 r7866  
    4040      ProblemData = new ClassificationProblemData();
    4141    }
    42 
    43     public override void ImportProblemDataFromFile(string fileName) {
    44       ClassificationProblemData problemData = ClassificationProblemData.ImportFromFile(fileName);
    45       ProblemData = problemData;
    46     }
    4742  }
    4843}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/ClassificationProblemData.cs

    r7266 r7866  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.IO;
    2524using System.Linq;
    2625using HeuristicLab.Common;
     
    403402    }
    404403    #endregion
    405 
    406     #region Import from file
    407     public static ClassificationProblemData ImportFromFile(string fileName) {
    408       TableFileParser csvFileParser = new TableFileParser();
    409       csvFileParser.Parse(fileName);
    410 
    411       Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    412       dataset.Name = Path.GetFileName(fileName);
    413 
    414       ClassificationProblemData problemData = new ClassificationProblemData(dataset, dataset.DoubleVariables.Skip(1), dataset.DoubleVariables.First());
    415       problemData.Name = "Data imported from " + Path.GetFileName(fileName);
    416       return problemData;
    417     }
    418     #endregion
    419404  }
    420405}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Classification/WeightCalculators/MajorityVoteWeightCalculator.cs

    r7549 r7866  
    5151      return Enumerable.Repeat<double>(1, classificationSolutions.Count());
    5252    }
     53
     54    public override double GetConfidence(IEnumerable<IClassificationSolution> solutions, int index, double estimatedClassValue) {
     55      if (solutions.Count() < 1)
     56        return double.NaN;
     57      Dataset dataset = solutions.First().ProblemData.Dataset;
     58      int correctEstimated = solutions.Select(s => s.Model.GetEstimatedClassValues(dataset, Enumerable.Repeat(index, 1)).First())
     59                                      .Where(x => x.Equals(estimatedClassValue))
     60                                      .Count();
     61      return ((double)correctEstimated / (double)solutions.Count() - 0.5) * 2;
     62    }
    5363  }
    5464}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Clustering/ClusteringProblem.cs

    r7259 r7866  
    3838      ProblemData = new ClusteringProblemData();
    3939    }
    40 
    41     public override void ImportProblemDataFromFile(string fileName) {
    42       ClusteringProblemData problemData = ClusteringProblemData.ImportFromFile(fileName);
    43       ProblemData = problemData;
    44     }
    4540  }
    4641}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Clustering/ClusteringProblemData.cs

    r7259 r7866  
    2121
    2222using System.Collections.Generic;
    23 using System.IO;
    2423using HeuristicLab.Common;
    2524using HeuristicLab.Core;
     
    9089      : base(dataset, allowedInputVariables) {
    9190    }
    92 
    93 
    94     #region Import from file
    95     public static ClusteringProblemData ImportFromFile(string fileName) {
    96       TableFileParser csvFileParser = new TableFileParser();
    97       csvFileParser.Parse(fileName);
    98 
    99       Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    100       dataset.Name = Path.GetFileName(fileName);
    101 
    102       ClusteringProblemData problemData = new ClusteringProblemData(dataset, dataset.DoubleVariables);
    103       problemData.Name = "Data imported from " + Path.GetFileName(fileName);
    104       return problemData;
    105     }
    106     #endregion
    10791  }
    10892}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/DataAnalysisProblem.cs

    r7259 r7866  
    2626using HeuristicLab.Parameters;
    2727using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HeuristicLab.Problems.Instances;
    2829
    2930namespace HeuristicLab.Problems.DataAnalysis {
    3031  [StorableClass]
    31   public abstract class DataAnalysisProblem<T> : Problem,
    32     IDataAnalysisProblem<T>
     32  public abstract class DataAnalysisProblem<T> : Problem, IDataAnalysisProblem<T>,
     33    IProblemInstanceConsumer<T>, IProblemInstanceExporter<T>
    3334    where T : class, IDataAnalysisProblemData {
    3435    private const string ProblemDataParameterName = "ProblemData";
     
    9192    }
    9293
    93     public abstract void ImportProblemDataFromFile(string fileName);
     94    #region Import & Export
     95    public void Load(T data) {
     96      Name = data.Name;
     97      Description = data.Description;
     98      ProblemData = data;
     99      OnReset();
     100    }
     101
     102    public T Export() {
     103      return ProblemData;
     104    }
     105    #endregion
    94106  }
    95107}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionEnsembleSolution.cs

    r7259 r7866  
    9797
    9898      RegisterRegressionSolutionsEventHandler();
     99    }
     100
     101    public RegressionEnsembleSolution(IRegressionProblemData problemData)
     102      : this(Enumerable.Empty<IRegressionModel>(), problemData) {
    99103    }
    100104
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblem.cs

    r7259 r7866  
    4040      ProblemData = new RegressionProblemData();
    4141    }
    42 
    43     public override void ImportProblemDataFromFile(string fileName) {
    44       RegressionProblemData problemData = RegressionProblemData.ImportFromFile(fileName);
    45       ProblemData = problemData;
    46     }
    4742  }
    4843}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionProblemData.cs

    r7259 r7866  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.IO;
    2524using System.Linq;
    2625using HeuristicLab.Common;
     
    136135      OnChanged();
    137136    }
    138 
    139     #region Import from file
    140     public static RegressionProblemData ImportFromFile(string fileName) {
    141       TableFileParser csvFileParser = new TableFileParser();
    142       csvFileParser.Parse(fileName);
    143 
    144       Dataset dataset = new Dataset(csvFileParser.VariableNames, csvFileParser.Values);
    145       dataset.Name = Path.GetFileName(fileName);
    146 
    147       RegressionProblemData problemData = new RegressionProblemData(dataset, dataset.DoubleVariables.Skip(1), dataset.DoubleVariables.First());
    148       problemData.Name = "Data imported from " + Path.GetFileName(fileName);
    149       return problemData;
    150     }
    151     #endregion
    152137  }
    153138}
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionSolution.cs

    r7259 r7866  
    4444    protected RegressionSolution(IRegressionModel model, IRegressionProblemData problemData)
    4545      : base(model, problemData) {
    46       evaluationCache = new Dictionary<int, double>();
     46      evaluationCache = new Dictionary<int, double>(problemData.Dataset.Rows);
    4747    }
    4848
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Regression/RegressionSolutionBase.cs

    r7272 r7866  
    2121
    2222using System.Collections.Generic;
    23 using System.Linq;
    2423using HeuristicLab.Common;
    2524using HeuristicLab.Data;
     
    166165
    167166    protected void CalculateResults() {
    168       double[] estimatedTrainingValues = EstimatedTrainingValues.ToArray(); // cache values
    169       double[] originalTrainingValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndizes).ToArray();
    170       double[] estimatedTestValues = EstimatedTestValues.ToArray(); // cache values
    171       double[] originalTestValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TestIndizes).ToArray();
     167      IEnumerable<double> estimatedTrainingValues = EstimatedTrainingValues; // cache values
     168      IEnumerable<double> originalTrainingValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TrainingIndizes);
     169      IEnumerable<double> estimatedTestValues = EstimatedTestValues; // cache values
     170      IEnumerable<double> originalTestValues = ProblemData.Dataset.GetDoubleValues(ProblemData.TargetVariable, ProblemData.TestIndizes);
    172171
    173172      OnlineCalculatorError errorState;
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Interfaces/IDataAnalysisProblem.cs

    r7259 r7866  
    2929    IDataAnalysisProblemData ProblemData { get; }
    3030    event EventHandler ProblemDataChanged;
    31 
    32     void ImportProblemDataFromFile(string fileName);
    3331  }
    3432
  • branches/ClassificationEnsembleVoting/HeuristicLab.Problems.DataAnalysis/3.4/Plugin.cs.frame

    r7259 r7866  
    3636  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    3737  [PluginDependency("HeuristicLab.Persistence", "3.3")]
     38  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
    3839  public class HeuristicLabProblemsDataAnalysisPlugin : PluginBase {
    3940  }
Note: See TracChangeset for help on using the changeset viewer.