Code Monkey home page Code Monkey logo

clustremor's Introduction

ClusTremor

DOI

ClusTremor is an algorithm specifically designed for unsupervised clustering of seismic data, with a focus on tremor signals. Leveraging the power of deep learning and clustering techniques, we employ a deep clustering approach to effectively cluster volcanic tremors.

Eruptive phases

Our methodology utilizes an autoencoder, allowing the model to learn meaningful feature representations while assigning clusters to them. This joint learning process ensures the extraction of informative representations that capture the underlying patterns in tremor signals and effectively cluster them.

To showcase the practical application of the ClusTremor algorithm, we provide an example of its effectiveness in clustering volcanic tremors during the 2021 Geldingadalir eruption in Iceland. This demonstration serves to highlight the algorithm's capability in capturing meaningful clusters in real-world scenarios.

With ClusTremor, researchers and seismologists can leverage its unsupervised clustering capabilities to gain insights into the behavior and patterns of tremors, enabling a deeper understanding of seismic activity.

Link

Paper: https://www.nature.com/articles/s43247-023-01166-w

ClusTremor Algorithm - Code Instruction

The complete code for the ClusTremor algorithm can be found in the ClusTremor.ipynb notebook located in the src folder. This notebook includes the implementation of the algorithm, including autoencoder construction and evaluation, clustering, and fine-tuning.

Here's a breakdown of the ClusTremor algorithm code:

1- Loading and Splitting Data: The code begins by loading the input data and splitting it into training and test sets. This step ensures that you have separate datasets for training and evaluating the model.

2- Autoencoder Construction and Evaluation: We construct an autoencoder, which is a neural network architecture used for unsupervised learning and dimensionality reduction. It then evaluates the autoencoder's reconstruction performance using a loss function. Additionally, the input and output of the autoencoder are visualized to assess the quality of the reconstruction.

3- Clustering Initialization: We initialize the clustering process using the k-means algorithm. It assigns initial cluster labels to the data points based on the features or representations learned by the autoencoder.

4- Determining the Optimal Number of Clusters: We use the Calinski-Harabasz score defined as ratio of the sum of between-cluster dispersion and of within-cluster dispersion, to determine the optimal number of clusters. This step helps in finding an appropriate value for the number of clusters in the clustering process.

5- Integration of Clustering Layer: We integrate a clustering layer into the bottleneck layer of the autoencoder. This allows the model to simultaneously perform dimensionality reduction and clustering, leveraging the learned representations to separate data points into distinct clusters.

6- Fine-tuning with Clustering Loss: We fine-tune the model parameters using a loss functions. This loss function encourages the model to optimize both the reconstruction accuracy and the quality of the clustering assignments.

Contact

clustremor's People

Contributors

zahrazali avatar

Stargazers

董浩然 avatar  avatar Martanto avatar Null avatar Quentin Higueret avatar  avatar  avatar

Watchers

S.Mostafa Mousavi avatar  avatar

clustremor's Issues

Input.npy not found

Hello, I am trying to reproduce the jupyter notebook that you were shared.
Unfortunately I can not find an example file named 'Input.npy'

image

Thank you.

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.