Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/11 11:45:18 (13 years ago)
Author:
gkronber
Message:

#1081 merged r7103:7209 from trunk into time series branch

Location:
branches/HeuristicLab.TimeSeries
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TimeSeries

  • branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.3/HeuristicLab.Algorithms.DataAnalysis-3.3.csproj

    r6866 r7213  
    117117  </ItemGroup>
    118118  <ItemGroup>
    119     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    120       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    121       <Name>HeuristicLab.Collections-3.3</Name>
    122       <Private>False</Private>
    123     </ProjectReference>
    124     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    125       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    126       <Name>HeuristicLab.Common.Resources-3.3</Name>
    127       <Private>False</Private>
    128     </ProjectReference>
    129     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    130       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    131       <Name>HeuristicLab.Common-3.3</Name>
    132       <Private>False</Private>
    133     </ProjectReference>
    134     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    135       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    136       <Name>HeuristicLab.Core-3.3</Name>
    137       <Private>False</Private>
    138     </ProjectReference>
    139     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    140       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    141       <Name>HeuristicLab.Data-3.3</Name>
    142       <Private>False</Private>
    143     </ProjectReference>
    144     <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj">
    145       <Project>{125D3006-67F5-48CB-913E-73C0548F17FA}</Project>
    146       <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3</Name>
    147       <Private>False</Private>
    148     </ProjectReference>
    149     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    150       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    151       <Name>HeuristicLab.Operators-3.3</Name>
    152       <Private>False</Private>
    153     </ProjectReference>
    154     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    155       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    156       <Name>HeuristicLab.Optimization-3.3</Name>
    157       <Private>False</Private>
    158     </ProjectReference>
    159     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    160       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
    161       <Name>HeuristicLab.Parameters-3.3</Name>
    162       <Private>False</Private>
    163     </ProjectReference>
    164     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    165       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    166       <Name>HeuristicLab.Persistence-3.3</Name>
    167       <Private>False</Private>
    168     </ProjectReference>
    169     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    170       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    171       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    172       <Private>False</Private>
    173     </ProjectReference>
    174     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Regression\3.3\HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj">
    175       <Project>{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}</Project>
    176       <Name>HeuristicLab.Problems.DataAnalysis.Regression-3.3</Name>
    177       <Private>False</Private>
    178     </ProjectReference>
    179     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj">
    180       <Project>{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}</Project>
    181       <Name>HeuristicLab.Problems.DataAnalysis-3.3</Name>
    182       <Private>False</Private>
    183     </ProjectReference>
     119    <Reference Include="HeuristicLab.Collections-3.3">
     120      <HintPath>..\..\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     121      <Private>False</Private>
     122    </Reference>
     123    <Reference Include="HeuristicLab.Common.Resources-3.3">
     124      <HintPath>..\..\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     125      <Private>False</Private>
     126    </Reference>
     127    <Reference Include="HeuristicLab.Common-3.3">
     128      <HintPath>..\..\bin\HeuristicLab.Common-3.3.dll</HintPath>
     129      <Private>False</Private>
     130    </Reference>
     131    <Reference Include="HeuristicLab.Core-3.3">
     132      <HintPath>..\..\bin\HeuristicLab.Core-3.3.dll</HintPath>
     133      <Private>False</Private>
     134    </Reference>
     135    <Reference Include="HeuristicLab.Data-3.3">
     136      <HintPath>..\..\bin\HeuristicLab.Data-3.3.dll</HintPath>
     137      <Private>False</Private>
     138    </Reference>
     139    <Reference Include="HeuristicLab.Operators-3.3">
     140      <HintPath>..\..\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     141      <Private>False</Private>
     142    </Reference>
     143    <Reference Include="HeuristicLab.Optimization-3.3">
     144      <HintPath>..\..\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     145      <Private>False</Private>
     146    </Reference>
     147    <Reference Include="HeuristicLab.Parameters-3.3">
     148      <HintPath>..\..\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
     149      <Private>False</Private>
     150    </Reference>
     151    <Reference Include="HeuristicLab.Persistence-3.3">
     152      <HintPath>..\..\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     153      <Private>False</Private>
     154    </Reference>
     155    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     156      <HintPath>..\..\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     157      <Private>False</Private>
     158    </Reference>
    184159  </ItemGroup>
    185160  <ItemGroup>
     
    204179      <Install>true</Install>
    205180    </BootstrapperPackage>
     181  </ItemGroup>
     182  <ItemGroup>
     183    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj">
     184      <Project>{125D3006-67F5-48CB-913E-73C0548F17FA}</Project>
     185      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3</Name>
     186      <Private>False</Private>
     187    </ProjectReference>
     188    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis.Regression\3.3\HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj">
     189      <Project>{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}</Project>
     190      <Name>HeuristicLab.Problems.DataAnalysis.Regression-3.3</Name>
     191      <Private>False</Private>
     192    </ProjectReference>
     193    <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj">
     194      <Project>{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}</Project>
     195      <Name>HeuristicLab.Problems.DataAnalysis-3.3</Name>
     196      <Private>False</Private>
     197    </ProjectReference>
    206198  </ItemGroup>
    207199  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs

    r6636 r7213  
    224224      }
    225225    }
     226    public static new Image StaticItemImage {
     227      get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; }
     228    }
    226229    public override Image ItemImage {
    227230      get {
     
    230233        else if (ExecutionState == ExecutionState.Paused) return HeuristicLab.Common.Resources.VSImageLibrary.ExecutablePaused;
    231234        else if (ExecutionState == ExecutionState.Stopped) return HeuristicLab.Common.Resources.VSImageLibrary.ExecutableStopped;
    232         else return HeuristicLab.Common.Resources.VSImageLibrary.Event;
     235        else return base.ItemImage;
    233236      }
    234237    }
     
    278281            int testEnd = (i + 1) == Folds.Value ? SamplesEnd.Value : (i + 1) * testSamplesCount + SamplesStart.Value;
    279282
     283            problem.ProblemData.TrainingPartition.Start = SamplesStart.Value;
     284            problem.ProblemData.TrainingPartition.End = SamplesEnd.Value;
    280285            problem.ProblemData.TestPartition.Start = testStart;
    281286            problem.ProblemData.TestPartition.End = testEnd;
     
    515520        throw new InvalidOperationException("Can not change number of folds if the execution state is not prepared.");
    516521    }
     522
     523    private bool samplesChanged = false;
    517524    private void SamplesStart_ValueChanged(object sender, EventArgs e) {
     525      samplesChanged = true;
    518526      if (Problem != null) Problem.ProblemData.TrainingPartition.Start = SamplesStart.Value;
     527      samplesChanged = false;
    519528    }
    520529    private void SamplesEnd_ValueChanged(object sender, EventArgs e) {
     530      samplesChanged = true;
    521531      if (Problem != null) Problem.ProblemData.TrainingPartition.End = SamplesEnd.Value;
     532      samplesChanged = false;
    522533    }
    523534
     
    543554        throw new ArgumentException("A cross validation algorithm can only contain DataAnalysisProblems.");
    544555      }
    545       algorithm.Problem.Reset += (x,y) => OnProblemChanged();
     556      algorithm.Problem.Reset += (x, y) => OnProblemChanged();
    546557      problem = (IDataAnalysisProblem)algorithm.Problem;
    547558      OnProblemChanged();
     
    551562      EventHandler handler = ProblemChanged;
    552563      if (handler != null) handler(this, EventArgs.Empty);
     564      if (samplesChanged) return;
    553565
    554566      SamplesStart.Value = 0;
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkClassificationSolution.cs

    r6589 r7213  
    5151      return new NeuralNetworkClassificationSolution(this, cloner);
    5252    }
    53 
    5453    protected override void RecalculateResults() {
    5554      CalculateResults();
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineModel.cs

    r6604 r7213  
    9898      this.targetVariable = original.targetVariable;
    9999      this.allowedInputVariables = (string[])original.allowedInputVariables.Clone();
    100       foreach (var dataset in original.cachedPredictions.Keys) {
    101         this.cachedPredictions.Add(cloner.Clone(dataset), (double[])original.cachedPredictions[dataset].Clone());
    102       }
    103100      if (original.classValues != null)
    104101        this.classValues = (double[])original.classValues.Clone();
     
    162159    }
    163160    #endregion
    164     // cache for predictions, which is cloned but not persisted, must be cleared when the model is changed
    165     private Dictionary<Dataset, double[]> cachedPredictions = new Dictionary<Dataset, double[]>();
    166161    private IEnumerable<double> GetEstimatedValuesHelper(Dataset dataset, IEnumerable<int> rows) {
    167       if (!cachedPredictions.ContainsKey(dataset)) {
    168         // create an array of cached predictions which is initially filled with NaNs
    169         double[] predictions = Enumerable.Repeat(double.NaN, dataset.Rows).ToArray();
    170         CalculatePredictions(dataset, rows, predictions);
    171         cachedPredictions.Add(dataset, predictions);
    172       }
    173       // get the array of predictions and select the subset of requested rows
    174       double[] p = cachedPredictions[dataset];
    175       var requestedPredictions = from r in rows
    176                                  select p[r];
    177       // check if the requested predictions contain NaNs
    178       // (this means for the request rows some predictions have not been cached)
    179       if (requestedPredictions.Any(x => double.IsNaN(x))) {
    180         // updated the predictions for currently requested rows
    181         CalculatePredictions(dataset, rows, p);
    182         cachedPredictions[dataset] = p;
    183         // now we can be sure that for the current rows all predictions are available
    184         return from r in rows
    185                select p[r];
    186       } else {
    187         // there were no NaNs => just return the cached predictions
    188         return requestedPredictions;
    189       }
    190     }
    191 
    192     private void CalculatePredictions(Dataset dataset, IEnumerable<int> rows, double[] predictions) {
    193       // calculate and cache predictions for the currently requested rows
     162      // calculate predictions for the currently requested rows
    194163      SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
    195164      SVM.Problem scaledProblem = Scaling.Scale(RangeTransform, problem);
    196165
    197       // row is the index in the original dataset,
    198       // i is the index in the scaled dataset (containing only the necessary rows)
    199       int i = 0;
    200       foreach (var row in rows) {
    201         predictions[row] = SVM.Prediction.Predict(Model, scaledProblem.X[i]);
    202         i++;
     166      for (int i = 0; i < scaledProblem.Count; i++) {
     167        yield return SVM.Prediction.Predict(Model, scaledProblem.X[i]);
    203168      }
    204169    }
     
    207172    public event EventHandler Changed;
    208173    private void OnChanged(EventArgs e) {
    209       cachedPredictions.Clear();
    210174      var handlers = Changed;
    211175      if (handlers != null)
  • branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClusteringModel.cs

    r5809 r7213  
    2020#endregion
    2121
    22 using System;
    2322using System.Collections.Generic;
    24 using System.IO;
     23using System.Drawing;
    2524using System.Linq;
    26 using System.Text;
    2725using HeuristicLab.Common;
    2826using HeuristicLab.Core;
    2927using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    30 using SVM;
    3128using HeuristicLab.Problems.DataAnalysis;
    32 using System.Drawing;
    3329
    3430namespace HeuristicLab.Algorithms.DataAnalysis {
     
    3935  [Item("KMeansClusteringModel", "Represents a k-Means clustering model.")]
    4036  public sealed class KMeansClusteringModel : NamedItem, IClusteringModel {
    41     public override Image ItemImage {
     37    public static new Image StaticItemImage {
    4238      get { return HeuristicLab.Common.Resources.VSImageLibrary.Function; }
    4339    }
Note: See TracChangeset for help on using the changeset viewer.