diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/CentroidCluster.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/CentroidCluster.java
index ddffe44..5cbae3b 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/CentroidCluster.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/CentroidCluster.java
@@ -26,10 +26,6 @@
  * @since 3.2
  */
 public class CentroidCluster<T extends Clusterable> extends Cluster<T> {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = -3075288519071812288L;
-
     /** Center of the cluster. */
     private final Clusterable center;
 
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/DoublePoint.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/DoublePoint.java
index 3b7b4f8..0671041 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/DoublePoint.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/clustering/DoublePoint.java
@@ -17,18 +17,13 @@
 
 package org.apache.commons.math4.legacy.ml.clustering;
 
-import java.io.Serializable;
 import java.util.Arrays;
 
 /**
  * A simple implementation of {@link Clusterable} for points with double coordinates.
  * @since 3.2
  */
-public class DoublePoint implements Clusterable, Serializable {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = 3946024775784901369L;
-
+public class DoublePoint implements Clusterable {
     /** Point coordinates. */
     private final double[] point;
 
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/CanberraDistance.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/CanberraDistance.java
index 8da4390..0db6028 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/CanberraDistance.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/CanberraDistance.java
@@ -26,10 +26,6 @@
  * @since 3.2
  */
 public class CanberraDistance implements DistanceMeasure {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = -6972277381587032228L;
-
     /** {@inheritDoc} */
     @Override
     public double compute(double[] a, double[] b)
@@ -43,5 +39,4 @@
         }
         return sum;
     }
-
 }
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ChebyshevDistance.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ChebyshevDistance.java
index 94ed8ad..2f042c0 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ChebyshevDistance.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ChebyshevDistance.java
@@ -25,15 +25,10 @@
  * @since 3.2
  */
 public class ChebyshevDistance implements DistanceMeasure {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = -4694868171115238296L;
-
     /** {@inheritDoc} */
     @Override
     public double compute(double[] a, double[] b)
     throws DimensionMismatchException {
         return MathArrays.distanceInf(a, b);
     }
-
 }
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EarthMoversDistance.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EarthMoversDistance.java
index c62b570..3fedb22 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EarthMoversDistance.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EarthMoversDistance.java
@@ -28,10 +28,6 @@
  * @since 3.3
  */
 public class EarthMoversDistance implements DistanceMeasure {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = -5406732779747414922L;
-
     /** {@inheritDoc} */
     @Override
     public double compute(double[] a, double[] b)
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EuclideanDistance.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EuclideanDistance.java
index 4690d0f..1aa0fe7 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EuclideanDistance.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/EuclideanDistance.java
@@ -25,15 +25,10 @@
  * @since 3.2
  */
 public class EuclideanDistance implements DistanceMeasure {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = 1717556319784040040L;
-
     /** {@inheritDoc} */
     @Override
     public double compute(double[] a, double[] b)
     throws DimensionMismatchException {
         return MathArrays.distance(a, b);
     }
-
 }
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ManhattanDistance.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ManhattanDistance.java
index d5cbc0e..d9813a7 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ManhattanDistance.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/ml/distance/ManhattanDistance.java
@@ -25,15 +25,10 @@
  * @since 3.2
  */
 public class ManhattanDistance implements DistanceMeasure {
-
-    /** Serializable version identifier. */
-    private static final long serialVersionUID = -9108154600539125566L;
-
     /** {@inheritDoc} */
     @Override
     public double compute(double[] a, double[] b)
     throws DimensionMismatchException {
         return MathArrays.distance1(a, b);
     }
-
 }
