- Timestamp:
- 12/20/11 11:45:18 (13 years ago)
- 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 117 117 </ItemGroup> 118 118 <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> 184 159 </ItemGroup> 185 160 <ItemGroup> … … 204 179 <Install>true</Install> 205 180 </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> 206 198 </ItemGroup> 207 199 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> -
branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/CrossValidation.cs
r6636 r7213 224 224 } 225 225 } 226 public static new Image StaticItemImage { 227 get { return HeuristicLab.Common.Resources.VSImageLibrary.Event; } 228 } 226 229 public override Image ItemImage { 227 230 get { … … 230 233 else if (ExecutionState == ExecutionState.Paused) return HeuristicLab.Common.Resources.VSImageLibrary.ExecutablePaused; 231 234 else if (ExecutionState == ExecutionState.Stopped) return HeuristicLab.Common.Resources.VSImageLibrary.ExecutableStopped; 232 else return HeuristicLab.Common.Resources.VSImageLibrary.Event;235 else return base.ItemImage; 233 236 } 234 237 } … … 278 281 int testEnd = (i + 1) == Folds.Value ? SamplesEnd.Value : (i + 1) * testSamplesCount + SamplesStart.Value; 279 282 283 problem.ProblemData.TrainingPartition.Start = SamplesStart.Value; 284 problem.ProblemData.TrainingPartition.End = SamplesEnd.Value; 280 285 problem.ProblemData.TestPartition.Start = testStart; 281 286 problem.ProblemData.TestPartition.End = testEnd; … … 515 520 throw new InvalidOperationException("Can not change number of folds if the execution state is not prepared."); 516 521 } 522 523 private bool samplesChanged = false; 517 524 private void SamplesStart_ValueChanged(object sender, EventArgs e) { 525 samplesChanged = true; 518 526 if (Problem != null) Problem.ProblemData.TrainingPartition.Start = SamplesStart.Value; 527 samplesChanged = false; 519 528 } 520 529 private void SamplesEnd_ValueChanged(object sender, EventArgs e) { 530 samplesChanged = true; 521 531 if (Problem != null) Problem.ProblemData.TrainingPartition.End = SamplesEnd.Value; 532 samplesChanged = false; 522 533 } 523 534 … … 543 554 throw new ArgumentException("A cross validation algorithm can only contain DataAnalysisProblems."); 544 555 } 545 algorithm.Problem.Reset += (x, y) => OnProblemChanged();556 algorithm.Problem.Reset += (x, y) => OnProblemChanged(); 546 557 problem = (IDataAnalysisProblem)algorithm.Problem; 547 558 OnProblemChanged(); … … 551 562 EventHandler handler = ProblemChanged; 552 563 if (handler != null) handler(this, EventArgs.Empty); 564 if (samplesChanged) return; 553 565 554 566 SamplesStart.Value = 0; -
branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/NeuralNetwork/NeuralNetworkClassificationSolution.cs
r6589 r7213 51 51 return new NeuralNetworkClassificationSolution(this, cloner); 52 52 } 53 54 53 protected override void RecalculateResults() { 55 54 CalculateResults(); -
branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineModel.cs
r6604 r7213 98 98 this.targetVariable = original.targetVariable; 99 99 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 }103 100 if (original.classValues != null) 104 101 this.classValues = (double[])original.classValues.Clone(); … … 162 159 } 163 160 #endregion 164 // cache for predictions, which is cloned but not persisted, must be cleared when the model is changed165 private Dictionary<Dataset, double[]> cachedPredictions = new Dictionary<Dataset, double[]>();166 161 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 194 163 SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows); 195 164 SVM.Problem scaledProblem = Scaling.Scale(RangeTransform, problem); 196 165 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]); 203 168 } 204 169 } … … 207 172 public event EventHandler Changed; 208 173 private void OnChanged(EventArgs e) { 209 cachedPredictions.Clear();210 174 var handlers = Changed; 211 175 if (handlers != null) -
branches/HeuristicLab.TimeSeries/HeuristicLab.Algorithms.DataAnalysis/3.4/kMeans/KMeansClusteringModel.cs
r5809 r7213 20 20 #endregion 21 21 22 using System;23 22 using System.Collections.Generic; 24 using System. IO;23 using System.Drawing; 25 24 using System.Linq; 26 using System.Text;27 25 using HeuristicLab.Common; 28 26 using HeuristicLab.Core; 29 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 using SVM;31 28 using HeuristicLab.Problems.DataAnalysis; 32 using System.Drawing;33 29 34 30 namespace HeuristicLab.Algorithms.DataAnalysis { … … 39 35 [Item("KMeansClusteringModel", "Represents a k-Means clustering model.")] 40 36 public sealed class KMeansClusteringModel : NamedItem, IClusteringModel { 41 public override ImageItemImage {37 public static new Image StaticItemImage { 42 38 get { return HeuristicLab.Common.Resources.VSImageLibrary.Function; } 43 39 }
Note: See TracChangeset
for help on using the changeset viewer.