Home

Awesome

Deep Embedding Clustering (DEC)

Keras implementation for ICML-2016 paper:

Usage

  1. Install Keras>=2.0.9, scikit-learn
pip install keras scikit-learn   
  1. Clone the code to local.
git clone https://github.com/XifengGuo/DEC-keras.git DEC
cd DEC
  1. Prepare datasets.

Download STL:

cd data/stl
bash get_data.sh
cd ../..

MNIST and Fashion-MNIST (FMNIST) can be downloaded automatically when you run the code.

Reuters and USPS: If you cannot find these datasets yourself, you can download them from:
https://pan.baidu.com/s/1hsMQ8Tm (password: 4ss4) for Reuters, and
https://pan.baidu.com/s/1skRg9Dr (password: sc58) for USPS

  1. Run experiment on MNIST.
    python DEC.py --dataset mnist
    or (if there's pretrained autoencoder weights)
    The DEC model will be saved to "results/DEC_model_final.h5".

  2. Other usages.

Use python DEC.py -h for help.

Results

python run_exp.py

Table 1. Mean performance over 10 trials. See results.csv for detailed results for each trial.

kmeansAE+kmeansDECpaper
mnistacc53889184
nmi508187--
fmnistacc476162--
nmi516465--
uspsacc677176--
nmi636879--
stlacc707986--
nmi717282--
reutersacc52767872
nmi315257--

Autoencoder model

Other implementations

Original code (Caffe): https://github.com/piiswrong/dec
MXNet implementation: https://github.com/dmlc/mxnet/blob/master/example/dec/dec.py
Keras implementation without pretraining code: https://github.com/fferroni/DEC-Keras