Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionConfusionMatrixView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionConfusionMatrixView.cs	(revision 6238)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionConfusionMatrixView.cs	(revision 6239)
@@ -103,9 +103,14 @@
         IEnumerable<int> rows;
 
+        double[] predictedValues;
         if (cmbSamples.SelectedItem.ToString() == TrainingSamples) {
           rows = Content.ProblemData.TrainingIndizes;
+          predictedValues = Content.EstimatedTrainingClassValues.ToArray();
         } else if (cmbSamples.SelectedItem.ToString() == TestSamples) {
           rows = Content.ProblemData.TestIndizes;
+          predictedValues = Content.EstimatedTestClassValues.ToArray();          
         } else throw new InvalidOperationException();
+
+        double[] targetValues = Content.ProblemData.Dataset.GetEnumeratedVariableValues(Content.ProblemData.TargetVariable, rows).ToArray();
 
         Dictionary<double, int> classValueIndexMapping = new Dictionary<double, int>();
@@ -115,7 +120,4 @@
           index++;
         }
-
-        double[] targetValues = Content.ProblemData.Dataset.GetEnumeratedVariableValues(Content.ProblemData.TargetVariable, rows).ToArray();
-        double[] predictedValues = Content.GetEstimatedClassValues(rows).ToArray();
 
         for (int i = 0; i < targetValues.Length; i++) {
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionEstimatedClassValuesView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionEstimatedClassValuesView.cs	(revision 6238)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.4/Classification/ClassificationSolutionEstimatedClassValuesView.cs	(revision 6239)
@@ -32,6 +32,7 @@
   [Content(typeof(IClassificationSolution))]
   public partial class ClassificationSolutionEstimatedClassValuesView : ItemView, IClassificationSolutionEvaluationView {
-    private const string TARGETVARIABLE_SERIES_NAME = "TargetVariable";
-    private const string ESTIMATEDVALUES_SERIES_NAME = "EstimatedClassValues";
+    private const string TARGETVARIABLE_SERIES_NAME = "Target Variable";
+    private const string ESTIMATEDVALUES_TRAINING_SERIES_NAME = "Estimated Class Values (training)";
+    private const string ESTIMATEDVALUES_TEST_SERIES_NAME = "Estimated Class Values (test)";
 
     public new IClassificationSolution Content {
@@ -85,15 +86,29 @@
         DoubleMatrix matrix = null;
         if (Content != null) {
-          double[,] values = new double[Content.ProblemData.Dataset.Rows, 2];
+          double[,] values = new double[Content.ProblemData.Dataset.Rows, 3];
+          // fill with NaN
+          for (int row = 0; row < Content.ProblemData.Dataset.Rows; row++)
+            for (int column = 0; column < 3; column++)
+              values[row, column] = double.NaN;
 
           double[] target = Content.ProblemData.Dataset.GetVariableValues(Content.ProblemData.TargetVariable);
-          double[] estimated = Content.EstimatedClassValues.ToArray();
           for (int row = 0; row < target.Length; row++) {
             values[row, 0] = target[row];
-            values[row, 1] = estimated[row];
+          }
+          var estimatedTraining = Content.EstimatedTrainingClassValues.GetEnumerator();
+          estimatedTraining.MoveNext();
+          foreach (var trainingRow in Content.ProblemData.TrainingIndizes) {
+            values[trainingRow, 1] = estimatedTraining.Current;
+            estimatedTraining.MoveNext();
+          }
+          var estimatedTest = Content.EstimatedTestClassValues.GetEnumerator();
+          estimatedTest.MoveNext();
+          foreach (var testRow in Content.ProblemData.TestIndizes) {
+            values[testRow, 2] = estimatedTest.Current;
+            estimatedTest.MoveNext();
           }
 
           matrix = new DoubleMatrix(values);
-          matrix.ColumnNames = new string[] { TARGETVARIABLE_SERIES_NAME, ESTIMATEDVALUES_SERIES_NAME };
+          matrix.ColumnNames = new string[] { TARGETVARIABLE_SERIES_NAME, ESTIMATEDVALUES_TRAINING_SERIES_NAME, ESTIMATEDVALUES_TEST_SERIES_NAME };
         }
         matrixView.Content = matrix;
