Module dimdrop.models.deepcluster

Source code
import numpy as np

from .autoencoder import Autoencoder
from ..regularizers import KMeansRegularizer


class DeepCluster(Autoencoder):
    """
    DeepCluster model

    References
    ----------
    * Kai Tian, Shuigeng Zhou, and Jihong Guan. Deepcluster: A general
      clustering framework based on deep learning. In Michelangelo Ceci,
      Jaakko Hollmén, Ljupčo Todorovski, Celine Vens, and Sašo Džeroski,
      editors, *Machine Learning and Knowledge Discovery in Databases*,
      pages 809–825, Cham, 2017. Springer International Publishing.
    """

    def __init__(
            self,
            in_dim,
            out_dim,
            k,
            layer_sizes=[2000, 1000, 500],
            lr=0.01,
            scale=True,
            log=False,
            batch_size=100,
            patience=3,
            epochs=1000,
            regularizer='kmeans',
            regularizer_weight=0.5,
            decay=True,
            verbose=0
    ):
        if regularizer == 'kmeans':
            regularizer_obj = KMeansRegularizer(
                np.random.rand(k, out_dim), weight=regularizer_weight)
        elif regularizer == 'gmm':
            # TODO add gmm cluster regularizer
            regularizer_obj = None
        else:
            raise AttributeError
        super().__init__(
            in_dim,
            out_dim,
            layer_sizes=layer_sizes,
            lr=lr,
            scale=scale,
            log=log,
            batch_size=batch_size,
            patience=patience,
            epochs=epochs,
            regularizer=regularizer_obj,
            pretrain_method=None,
            decay=decay,
            verbose=verbose
        )

    def get_cluster_centers(self):
        """Get the cluster centers generated by the last fit operation.

        Returns:
        --------
        Array of cluster centers
        """
        return self.regularizer.cluster_centers

    def get_cluster_assignments(self):
        """Get the cluster assignments for the data of the last fit operation

        Returns:
        --------
        Array of cluster assignments
        """
        return self.regularizer.cluster_assignments

Classes

class DeepCluster (in_dim, out_dim, k, layer_sizes=[2000, 1000, 500], lr=0.01, scale=True, log=False, batch_size=100, patience=3, epochs=1000, regularizer='kmeans', regularizer_weight=0.5, decay=True, verbose=0)

DeepCluster model

References

  • Kai Tian, Shuigeng Zhou, and Jihong Guan. Deepcluster: A general clustering framework based on deep learning. In Michelangelo Ceci, Jaakko Hollmén, Ljupčo Todorovski, Celine Vens, and Sašo Džeroski, editors, Machine Learning and Knowledge Discovery in Databases, pages 809–825, Cham, 2017. Springer International Publishing.
Source code
class DeepCluster(Autoencoder):
    """
    DeepCluster model

    References
    ----------
    * Kai Tian, Shuigeng Zhou, and Jihong Guan. Deepcluster: A general
      clustering framework based on deep learning. In Michelangelo Ceci,
      Jaakko Hollmén, Ljupčo Todorovski, Celine Vens, and Sašo Džeroski,
      editors, *Machine Learning and Knowledge Discovery in Databases*,
      pages 809–825, Cham, 2017. Springer International Publishing.
    """

    def __init__(
            self,
            in_dim,
            out_dim,
            k,
            layer_sizes=[2000, 1000, 500],
            lr=0.01,
            scale=True,
            log=False,
            batch_size=100,
            patience=3,
            epochs=1000,
            regularizer='kmeans',
            regularizer_weight=0.5,
            decay=True,
            verbose=0
    ):
        if regularizer == 'kmeans':
            regularizer_obj = KMeansRegularizer(
                np.random.rand(k, out_dim), weight=regularizer_weight)
        elif regularizer == 'gmm':
            # TODO add gmm cluster regularizer
            regularizer_obj = None
        else:
            raise AttributeError
        super().__init__(
            in_dim,
            out_dim,
            layer_sizes=layer_sizes,
            lr=lr,
            scale=scale,
            log=log,
            batch_size=batch_size,
            patience=patience,
            epochs=epochs,
            regularizer=regularizer_obj,
            pretrain_method=None,
            decay=decay,
            verbose=verbose
        )

    def get_cluster_centers(self):
        """Get the cluster centers generated by the last fit operation.

        Returns:
        --------
        Array of cluster centers
        """
        return self.regularizer.cluster_centers

    def get_cluster_assignments(self):
        """Get the cluster assignments for the data of the last fit operation

        Returns:
        --------
        Array of cluster assignments
        """
        return self.regularizer.cluster_assignments

Ancestors

Methods

def get_cluster_assignments(self)

Get the cluster assignments for the data of the last fit operation

Returns:

Array of cluster assignments

Source code
def get_cluster_assignments(self):
    """Get the cluster assignments for the data of the last fit operation

    Returns:
    --------
    Array of cluster assignments
    """
    return self.regularizer.cluster_assignments
def get_cluster_centers(self)

Get the cluster centers generated by the last fit operation.

Returns:

Array of cluster centers

Source code
def get_cluster_centers(self):
    """Get the cluster centers generated by the last fit operation.

    Returns:
    --------
    Array of cluster centers
    """
    return self.regularizer.cluster_centers

Inherited members