From df995b854062f27b51a346c9bacb07d0c8a41492 Mon Sep 17 00:00:00 2001 From: mariohopfner <41242678+mariohopfner@users.noreply.github.com> Date: Sat, 22 Feb 2025 17:58:31 +0100 Subject: [PATCH] Fix bug for calculation of partition and partition entropy coefficient Coefficients have been calculated using a mean value over all dimensions, instead of a mean over all samples and summed over all clusters. This has been fixed with this commit. --- fcmeans/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fcmeans/main.py b/fcmeans/main.py index 04ffe31..07ff1ac 100644 --- a/fcmeans/main.py +++ b/fcmeans/main.py @@ -198,7 +198,7 @@ def partition_coefficient(self) -> float: [this paper](https://doi.org/10.1016/0098-3004(84)90020-7). """ if self._is_trained(): - return np.mean(self.u**2) + return np.sum(np.mean(self.u**2, axis=0)) raise ReferenceError( "You need to train the model. Run `.fit()` method to this." ) @@ -206,7 +206,7 @@ def partition_coefficient(self) -> float: @property def partition_entropy_coefficient(self): if self._is_trained(): - return -np.mean(self.u * np.log2(self.u)) + return -np.sum(np.mean(self.u * np.log2(self.u), axis=0)) raise ReferenceError( "You need to train the model. Run `.fit()` method to this." )