Git Product home page Git Product logo

emc-nets's Introduction

EMC-Nets

The official repos of Efficient Multi-view Clustering Networks

Abstract

Deep learning has made remarkable progress on multi-view clustering (MvC) in the last decade. Most existing literature adopted a broad target to guide network learning, such as minimize the reconstruction loss. It is effective but not efficient. In this paper, we proposed a novel framework, named Efficient Multi-view Clustering Networks (EMC-Nets), which guarantees the efficiency of the network learning and produces discriminative common representation efficiently in multiple sources. Specifically, the proposed method alternates between the instruction process and approximation process during training. The instruction process employs a standard clustering algorithm, such as k-means, to generate pseudo-labels corresponding to the current common representation. The approximation process leverages pseudo-labels to force the network to approximate a reasonable cluster distribution. Experimental results on four real-world datasets demonstrate that the proposed method outperforms state-of-the-art methods.

Architecture

architecture

Attention Fusion Layer

attn

Environment setting

  • python 3.7
  • pytorch 1.8.1
  • CUDA 10.2

We recommend using Conda to setup the environment, and run as the following:

  1. Create the virtual environment and install the requirements.
    conda create -n EMC-Nets python=3.7
    conda activate EMC-Nets
    cd EMC-Nets
    conda install --yes --file requirements.txt
    
  2. Then, use unittest to test this project, following:
    cd tests
    export PYTHONPATH="../"
    python -m unittest
    

Quickly validation

Run:

python validation.py

Result:

------------------------------ Begin validation BDGP ------------------------------
CV 1 Beginning...
Acc.: 98.60% NMI: 95.41% purity: 98.60% and ARI: 96.55%
CV 2 Beginning...
Acc.: 98.56% NMI: 95.27% purity: 98.56% and ARI: 96.45%
CV 3 Beginning...
Acc.: 98.56% NMI: 95.27% purity: 98.56% and ARI: 96.45%
CV 4 Beginning...
Acc.: 98.56% NMI: 95.27% purity: 98.56% and ARI: 96.45%
CV 5 Beginning...
Acc.: 98.56% NMI: 95.27% purity: 98.56% and ARI: 96.45%
After ron 5 times, final Acc.: 98.57% NMI: 95.30% purity: 98.57% and ARI: 96.47%
------------------------------ End validation BDGP ------------------------------

More training details see logs/

Training

Coming soon.

Visualization

Here, we present the visualization of BDGP. More details see our paper, please.

visualization

Citation

@article{Ke_2022,	
doi = {10.1007/s10489-021-03129-0},	
url = {https://doi.org/10.1007/s10489-021-03129-0},	
year = 2022,	
month = {jan},	
publisher = {Springer Science and Business Media {LLC}},	
author = {Guanzhou Ke and Zhiyong Hong and Wenhua Yu and Xin Zhang and Zeyi Liu},	
title = {Efficient multi-view clustering networks},	
journal = {Applied Intelligence}}

Acknowledge

This paper was inspired by DeepCluster, OnlineCluster.

emc-nets's People

Contributors

guanzhou-ke avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

emc-nets's Issues

ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.

Traceback (most recent call last):
File "E:/PRJ/ResT/train.py", line 239, in
bdgp_record = train_BDGP('Data/BDGP/', seed=4028)
File "E:/PRJ/ResT/train.py", line 215, in train_BDGP
validate_epoch=1, verbose=0)
File "E:/PRJ/ResT/train.py", line 199, in main
acc, nmi, pur, ari = validate(train_loader, model, labels_holder, n_clusters, device)
File "E:/PRJ/ResT/train.py", line 39, in validate
acc, nmi, pur, ari = RunKmeans(commonZ, labels_holder['labels_gt'], K=n_clusters, cv=1)
File "E:\PRJ\ResT\utils.py", line 28, in RunKmeans
results.append(measure_cluster(y_pred, y))
File "E:\PRJ\ResT\utils.py", line 77, in measure_cluster
acc = clustering_accuracy(y_true, y_pred)
File "E:\PRJ\ResT\utils.py", line 66, in clustering_accuracy
w = np.zeros((D, D), dtype=np.int64)
ValueError: array is too big; arr.size * arr.dtype.itemsize is larger than the maximum possible size.

I don't known how to fix this error.somebody help.I think maybe 'num_worker=4' cause this issue .worked on the win 10 + RTX2060

history['nmi_t_1'] is just cheating?

In your paper, algorithm1โ€˜s pseudocode, the program halts when the ratio of the NMI value approaching the next clustering is close to 1. However, upon inspecting your code, I found a discrepancy between the code and the representation in your document. It appears that history['nmi_t_1'] is seemingly calculated but remains unused throughout, with no early stopping or threshold set in the algorithm.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.