Index: /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LinearTransformation.cs
===================================================================
--- /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LinearTransformation.cs	(revision 15938)
+++ /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LinearTransformation.cs	(revision 15939)
@@ -74,5 +74,18 @@
       : base(deserializing) {
     }
+
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      if (Parameters.TryGetValue("Slope", out IParameter slopeParameter)) {
+        Parameters.Add(new FixedValueParameter<DoubleValue>("Scale", "Multiplicative factor (Slope)", ((IValueParameter<DoubleValue>)slopeParameter).Value));
+        Parameters.Remove("Slope");
+      }
+      if (Parameters.TryGetValue("Intercept", out IParameter interceptParameter)) {
+        Parameters.Add(new FixedValueParameter<DoubleValue>("Offset", "Additive factor (Intercept)", ((IValueParameter<DoubleValue>)interceptParameter).Value));
+        Parameters.Remove("Intercept");
+      }
+    }
     #endregion
+
 
     public override IEnumerable<double> Apply(IEnumerable<double> data) {
Index: /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LogarithmTransformation.cs
===================================================================
--- /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LogarithmTransformation.cs	(revision 15938)
+++ /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/LogarithmTransformation.cs	(revision 15939)
@@ -71,5 +71,11 @@
       : base(deserializing) {
     }
+    [StorableHook(HookType.AfterDeserialization)]
+    private void AfterDeserialization() {
+      if (!Parameters.ContainsKey("Offset"))
+        Parameters.Add(new FixedValueParameter<DoubleValue>("Offset", "Offset before the logarithm", new DoubleValue(0.0)));
+    }
     #endregion
+
 
     public override bool Check(IEnumerable<double> data, out string errorMessage) {
@@ -95,5 +101,5 @@
 
     public static IEnumerable<double> InverseApply(IEnumerable<double> data, double @base = Math.E, double offset = 0.0) {
-      return ExponentialTransformation.InverseApply(data, @base).Select(x => x - offset);
+      return ExponentialTransformation.Apply(data, @base).Select(x => x - offset);
     }
   }
Index: /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/RescaleTransformation.cs
===================================================================
--- /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/RescaleTransformation.cs	(revision 15938)
+++ /branches/2906_Transformations/HeuristicLab.Problems.DataAnalysis/3.4/Implementation/Transformations/RescaleTransformation.cs	(revision 15939)
@@ -121,22 +121,14 @@
       if (double.IsNaN(originalMax)) originalMax = data.Max();
 
-      GetLinearTransformationParameters(targetMin, targetMax, originalMin, originalMax, out double scale, out double offset);
+      var originalRange = originalMax - originalMin;
+      var targetRange = targetMax - targetMin;
 
-      return LinearTransformation.Apply(data, scale, offset);
+      return data
+        .Select(x => (x - originalMin) / originalRange) // scale to [0-1]
+        .Select(x => x * targetRange + targetMin);
     }
 
     public static IEnumerable<double> InverseApply(IEnumerable<double> data, double targetMin, double targetMax, double originalMin, double originalMax) {
-      GetLinearTransformationParameters(targetMin, targetMax, originalMin, originalMax, out double scale, out double offset);
-
-      return LinearTransformation.InverseApply(data, scale, offset);
-    }
-
-    private static void GetLinearTransformationParameters(double targetMin, double targetMax, double originalMin, double originalMax,
-        out double scale, out double offset) {
-      var originalRange = originalMax - originalMin;
-      var targetRange = targetMax - targetMin;
-
-      scale = targetRange / originalRange;
-      offset = targetMin - originalMin * scale;
+      return Apply(data, originalMin, originalMax, targetMin, targetMax);
     }
   }
