RPFKM Algorithm Documentation

πŸ” Overview

The Robust Projected Fuzzy K-Means (RPFKM) is a fuzzy clustering algorithm designed for high-dimensional data with noise and outliers. It combines fuzzy clustering with dimensionality reduction and robustness mechanisms to improve clustering quality.


βš™οΈ Class Definition

Class Name: RPFKM

Implements the RPFKM algorithm with projection learning and robust optimization. Exposes a fit_predict method to run clustering on data.

class RPFKM(
    c: int,
    d: int,
    gamma: float = 1.0,
    beta: float = 0.5,
    max_iter: int = 100
)

πŸ“‹ Parameters

Parameter

Type

Default

Description

c

int

β€”

Number of clusters

d

int

β€”

Dimension of reduced subspace

gamma

float

1.0

Fuzzy membership regularization

beta

float

0.5

Data reconstruction regularization

max_iter

int

100

Number of iterations

πŸš€ Usage Examples

import numpy as np
from rpfkm import RPFKM  # Assuming RPFKM class is saved in rpfkm.py

def test_rpfkm_basic():
    from sklearn.datasets import make_blobs

    # Generate synthetic dataset
    X, _ = make_blobs(n_samples=100, centers=3, n_features=10, random_state=42)
    X = X.T  # Transpose to shape (D, N)

    # Initialize and run the RPFKM algorithm
    model = RPFKM(c=3, d=5, gamma=0.1, beta=1.0, max_iter=10)
    labels, U, W = model.fit_predict(X)

    print("Cluster labels:", labels)
    print("Membership matrix U shape:", U.shape)
    print("Projection matrix W shape:", W.shape)

if __name__ == "__main__":
    test_rpfkm_basic()

πŸ› οΈ Methods

fit_predict(X)

Cluster input data X using the RPFKM algorithm.

Parameters:

  • X (np.ndarray, shape (D, N)): Input data with D features and N samples.

Returns:

  • labels (np.ndarray): Cluster label per sample.

  • U (np.ndarray): Fuzzy membership matrix (c, N).

  • W (np.ndarray): Projection matrix (D, d).

πŸ“ Implementation Notes

  • Projection matrix W is learned via eigen decomposition of a scatter matrix difference.

  • Membership matrix U is updated using softmax-like fuzzy assignment.

  • Auxiliary weights p increase robustness against outliers.

  • Initialization uses Dirichlet distribution for U and orthogonal random matrix for W.


πŸ“š Reference

  1. Improving Projected Fuzzy K-Means Clustering via Robust Learning.