Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/01/10 12:31:04 (14 years ago)
Author:
gkronber
Message:

Adapted SVM classes to work correctly for overlapping training / test partitions. #1226

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/SupportVectorRegression/SupportVectorRegressionSolution.cs

    r4068 r4543  
    7373
    7474    protected override void RecalculateEstimatedValues() {
    75       SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(ProblemData, 0, ProblemData.Dataset.Rows);
     75      SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(ProblemData, Enumerable.Range(0, ProblemData.Dataset.Rows));
    7676      SVM.Problem scaledProblem = Scaling.Scale(Model.RangeTransform, problem);
    7777
     
    8787      get {
    8888        if (estimatedValues == null) RecalculateEstimatedValues();
    89         return estimatedValues.AsEnumerable();
     89        return estimatedValues;
    9090      }
    9191    }
     
    9393    public override IEnumerable<double> EstimatedTrainingValues {
    9494      get {
    95         if (estimatedValues == null) RecalculateEstimatedValues();
    96         int start = ProblemData.TrainingSamplesStart.Value;
    97         int n = ProblemData.TrainingSamplesEnd.Value - start;
    98         return estimatedValues.Skip(start).Take(n).ToList();
     95        return GetEstimatedValues(ProblemData.TrainingIndizes);
    9996      }
    10097    }
     
    10299    public override IEnumerable<double> EstimatedTestValues {
    103100      get {
    104         if (estimatedValues == null) RecalculateEstimatedValues();
    105         int start = ProblemData.TestSamplesStart.Value;
    106         int n = ProblemData.TestSamplesEnd.Value - start;
    107         return estimatedValues.Skip(start).Take(n).ToList();
     101        return GetEstimatedValues(ProblemData.TestIndizes);
    108102      }
     103    }
     104
     105    private IEnumerable<double> GetEstimatedValues(IEnumerable<int> rows) {
     106      if (estimatedValues == null) RecalculateEstimatedValues();
     107      foreach (int row in rows)
     108        yield return estimatedValues[row];
    109109    }
    110110  }
Note: See TracChangeset for help on using the changeset viewer.