Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisImportTypeDialog.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisImportTypeDialog.Designer.cs	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisImportTypeDialog.Designer.cs	(revision 8599)
@@ -27,4 +27,10 @@
       this.OkButton = new System.Windows.Forms.Button();
       this.CancelButton = new System.Windows.Forms.Button();
+      this.TrainingTestTrackBar = new System.Windows.Forms.TrackBar();
+      this.TrainingTestGroupBox = new System.Windows.Forms.GroupBox();
+      this.TestLabel = new System.Windows.Forms.Label();
+      this.TrainingLabel = new System.Windows.Forms.Label();
+      ((System.ComponentModel.ISupportInitialize)(this.TrainingTestTrackBar)).BeginInit();
+      this.TrainingTestGroupBox.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -32,5 +38,5 @@
       // 
       this.ShuffelDataCheckbox.AutoSize = true;
-      this.ShuffelDataCheckbox.Location = new System.Drawing.Point(61, 12);
+      this.ShuffelDataCheckbox.Location = new System.Drawing.Point(18, 12);
       this.ShuffelDataCheckbox.Name = "ShuffelDataCheckbox";
       this.ShuffelDataCheckbox.Size = new System.Drawing.Size(91, 17);
@@ -42,5 +48,5 @@
       // 
       this.OkButton.DialogResult = System.Windows.Forms.DialogResult.OK;
-      this.OkButton.Location = new System.Drawing.Point(12, 35);
+      this.OkButton.Location = new System.Drawing.Point(18, 121);
       this.OkButton.Name = "OkButton";
       this.OkButton.Size = new System.Drawing.Size(75, 23);
@@ -52,5 +58,5 @@
       // 
       this.CancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-      this.CancelButton.Location = new System.Drawing.Point(115, 35);
+      this.CancelButton.Location = new System.Drawing.Point(142, 121);
       this.CancelButton.Name = "CancelButton";
       this.CancelButton.Size = new System.Drawing.Size(75, 23);
@@ -59,18 +65,64 @@
       this.CancelButton.UseVisualStyleBackColor = true;
       // 
+      // TrainingTestTrackBar
+      // 
+      this.TrainingTestTrackBar.Location = new System.Drawing.Point(6, 19);
+      this.TrainingTestTrackBar.Maximum = 100;
+      this.TrainingTestTrackBar.Name = "TrainingTestTrackBar";
+      this.TrainingTestTrackBar.Size = new System.Drawing.Size(210, 45);
+      this.TrainingTestTrackBar.TabIndex = 4;
+      this.TrainingTestTrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
+      this.TrainingTestTrackBar.Value = 66;
+      this.TrainingTestTrackBar.ValueChanged += new System.EventHandler(this.TrainingTestTrackBar_ValueChanged);
+      // 
+      // TrainingTestGroupBox
+      // 
+      this.TrainingTestGroupBox.Controls.Add(this.TestLabel);
+      this.TrainingTestGroupBox.Controls.Add(this.TrainingLabel);
+      this.TrainingTestGroupBox.Controls.Add(this.TrainingTestTrackBar);
+      this.TrainingTestGroupBox.Location = new System.Drawing.Point(4, 35);
+      this.TrainingTestGroupBox.Name = "TrainingTestGroupBox";
+      this.TrainingTestGroupBox.Size = new System.Drawing.Size(222, 80);
+      this.TrainingTestGroupBox.TabIndex = 5;
+      this.TrainingTestGroupBox.TabStop = false;
+      this.TrainingTestGroupBox.Text = "Training/Test";
+      // 
+      // TestLabel
+      // 
+      this.TestLabel.AutoSize = true;
+      this.TestLabel.Location = new System.Drawing.Point(108, 51);
+      this.TestLabel.Name = "TestLabel";
+      this.TestLabel.Size = new System.Drawing.Size(57, 13);
+      this.TestLabel.TabIndex = 6;
+      this.TestLabel.Text = "Test: 34 %";
+      // 
+      // TrainingLabel
+      // 
+      this.TrainingLabel.AutoSize = true;
+      this.TrainingLabel.Location = new System.Drawing.Point(11, 51);
+      this.TrainingLabel.Name = "TrainingLabel";
+      this.TrainingLabel.Size = new System.Drawing.Size(74, 13);
+      this.TrainingLabel.TabIndex = 5;
+      this.TrainingLabel.Text = "Training: 66 %";
+      // 
       // DataAnalysisImportTypeDialog
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.ClientSize = new System.Drawing.Size(202, 69);
+      this.ClientSize = new System.Drawing.Size(229, 151);
       this.Controls.Add(this.CancelButton);
       this.Controls.Add(this.OkButton);
       this.Controls.Add(this.ShuffelDataCheckbox);
+      this.Controls.Add(this.TrainingTestGroupBox);
       this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
       this.Name = "DataAnalysisImportTypeDialog";
       this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
       this.Text = "DataAnalysisImportTypeDialog";
+      ((System.ComponentModel.ISupportInitialize)(this.TrainingTestTrackBar)).EndInit();
+      this.TrainingTestGroupBox.ResumeLayout(false);
+      this.TrainingTestGroupBox.PerformLayout();
       this.ResumeLayout(false);
       this.PerformLayout();
+
     }
 
@@ -80,4 +132,8 @@
     protected System.Windows.Forms.Button OkButton;
     protected System.Windows.Forms.Button CancelButton;
+    private System.Windows.Forms.TrackBar TrainingTestTrackBar;
+    private System.Windows.Forms.GroupBox TrainingTestGroupBox;
+    private System.Windows.Forms.Label TestLabel;
+    private System.Windows.Forms.Label TrainingLabel;
 
   }
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisImportTypeDialog.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisImportTypeDialog.cs	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisImportTypeDialog.cs	(revision 8599)
@@ -25,9 +25,21 @@
   public partial class DataAnalysisImportTypeDialog : Form {
 
-    public bool Shuffel { get { return ShuffelDataCheckbox.Checked; } }
+    public DataAnalysisImportType ImportType {
+      get {
+        return new DataAnalysisImportType() {
+          Shuffle = ShuffelDataCheckbox.Checked,
+          Training = TrainingTestTrackBar.Value
+        };
+      }
+    }
 
     public DataAnalysisImportTypeDialog() {
       InitializeComponent();
     }
+
+    private void TrainingTestTrackBar_ValueChanged(object sender, System.EventArgs e) {
+      TrainingLabel.Text = "Training: " + TrainingTestTrackBar.Value + " %";
+      TestLabel.Text = "Test: " + (TrainingTestTrackBar.Maximum - TrainingTestTrackBar.Value) + " %";
+    }
   }
 }
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisInstanceConsumerView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisInstanceConsumerView.cs	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/DataAnalysisInstanceConsumerView.cs	(revision 8599)
@@ -25,6 +25,4 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Problems.Instances.DataAnalysis;
-using HeuristicLab.Problems.Instances.DataAnalysis.Views;
 using HeuristicLab.Problems.Instances.Views;
 
@@ -55,5 +53,5 @@
             DataAnalysisImportTypeDialog importTypeDialog = new DataAnalysisImportTypeDialog();
             if (importTypeDialog.ShowDialog() == DialogResult.OK) {
-              instance = provider.ImportData(openFileDialog.FileName, new DataAnalysisImportType() { Shuffle = importTypeDialog.Shuffel });
+              instance = provider.ImportData(openFileDialog.FileName, importTypeDialog.ImportType);
             } else {
               return;
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis.Views/3.3/HeuristicLab.Problems.Instances.DataAnalysis.Views-3.3.csproj	(revision 8599)
@@ -55,5 +55,7 @@
       <DependentUpon>DataAnalysisImportTypeDialog.cs</DependentUpon>
     </Compile>
-    <Compile Include="DataAnalysisInstanceConsumerView.cs" />
+    <Compile Include="DataAnalysisInstanceConsumerView.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
     <Compile Include="DataAnalysisInstanceConsumerView.Designer.cs">
       <DependentUpon>DataAnalysisInstanceConsumerView.cs</DependentUpon>
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Classification/CSV/ClassifiactionCSVInstanceProvider.cs	(revision 8599)
@@ -70,5 +70,5 @@
       var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
       foreach (var variableName in dataset.DoubleVariables) {
-        if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
+        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
           variableName != targetVar)
           allowedInputVars.Add(variableName);
@@ -102,7 +102,8 @@
       // turn of input variables that are constant in the training partition
       var allowedInputVars = new List<string>();
-      var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
+      int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100;
+      var trainingIndizes = Enumerable.Range(0, trainingPartEnd);
       foreach (var variableName in dataset.DoubleVariables) {
-        if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
+        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
           variableName != targetVar)
           allowedInputVars.Add(variableName);
@@ -111,6 +112,5 @@
       ClassificationProblemData classificationData = new ClassificationProblemData(dataset, allowedInputVars, targetVar);
 
-      int trainingPartEnd = trainingIndizes.Last();
-      classificationData.TrainingPartition.Start = trainingIndizes.First();
+      classificationData.TrainingPartition.Start = 0;
       classificationData.TrainingPartition.End = trainingPartEnd;
       classificationData.TestPartition.Start = trainingPartEnd;
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Clustering/CSV/ClusteringCSVInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Clustering/CSV/ClusteringCSVInstanceProvider.cs	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Clustering/CSV/ClusteringCSVInstanceProvider.cs	(revision 8599)
@@ -69,5 +69,5 @@
       var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
       foreach (var variableName in dataset.DoubleVariables) {
-        if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
+        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
           variableName != targetVar)
           allowedInputVars.Add(variableName);
@@ -101,7 +101,8 @@
       // turn of input variables that are constant in the training partition
       var allowedInputVars = new List<string>();
-      var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
+      int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100;
+      var trainingIndizes = Enumerable.Range(0, trainingPartEnd);
       foreach (var variableName in dataset.DoubleVariables) {
-        if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
+        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
           variableName != targetVar)
           allowedInputVars.Add(variableName);
@@ -110,6 +111,5 @@
       ClusteringProblemData clusteringData = new ClusteringProblemData(dataset, allowedInputVars);
 
-      int trainingPartEnd = trainingIndizes.Last();
-      clusteringData.TrainingPartition.Start = trainingIndizes.First();
+      clusteringData.TrainingPartition.Start = 0;
       clusteringData.TrainingPartition.End = trainingPartEnd;
       clusteringData.TestPartition.Start = trainingPartEnd;
Index: /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs	(revision 8598)
+++ /trunk/sources/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/CSV/RegressionCSVInstanceProvider.cs	(revision 8599)
@@ -68,5 +68,5 @@
       var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
       foreach (var variableName in dataset.DoubleVariables) {
-        if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
+        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
           variableName != targetVar)
           allowedInputVars.Add(variableName);
@@ -99,7 +99,8 @@
       // turn of input variables that are constant in the training partition
       var allowedInputVars = new List<string>();
-      var trainingIndizes = Enumerable.Range(0, (csvFileParser.Rows * 2) / 3);
+      int trainingPartEnd = (csvFileParser.Rows * type.Training) / 100;
+      var trainingIndizes = Enumerable.Range(0, trainingPartEnd);
       foreach (var variableName in dataset.DoubleVariables) {
-        if (dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
+        if (trainingIndizes.Count() >= 2 && dataset.GetDoubleValues(variableName, trainingIndizes).Range() > 0 &&
           variableName != targetVar)
           allowedInputVars.Add(variableName);
@@ -108,6 +109,5 @@
       RegressionProblemData regressionData = new RegressionProblemData(dataset, allowedInputVars, targetVar);
 
-      int trainingPartEnd = trainingIndizes.Last();
-      regressionData.TrainingPartition.Start = trainingIndizes.First();
+      regressionData.TrainingPartition.Start = 0;
       regressionData.TrainingPartition.End = trainingPartEnd;
       regressionData.TestPartition.Start = trainingPartEnd;
