SpectroCluster is an open-source application for analyzing vibratory and acoustic signals. It leverages modern unsupervised machine learning algorithms to automatically extract features from signals, cluster them, and detect anomalies. This aids in predictive maintenance and system optimization across various industries.
- Signal Generation: Create synthetic vibratory signals for testing and development.
- Feature Extraction: Automatically extract time-domain and frequency-domain features from signals.
- Clustering: Apply multiple clustering algorithms (K-Means, DBSCAN, HDBSCAN, GMM) to discover patterns.
- Dimensionality Reduction: Use UMAP and PCA for visualization of high-dimensional data.
- Outlier Detection: Identify anomalies in data using clustering techniques.
- Visualization: Interactive interfaces to visualize clusters and signal waveforms using Gradio and Matplotlib.
- Progress Tracking: Real-time progress bars and status updates using ProgressTable during lengthy operations.
-
Clone the repository:
git clone https://github.com/thekester/SpectroCluster.git cd SpectroCluster -
Set up the environment:
- Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate
- Install dependencies:
pip install --upgrade pip pip install -r requirements.txt
- Create and activate a virtual environment:
-
Initialize data and run the project:
- Run the demo script to execute the complete analysis pipeline:
python demo.py
- Run the demo script to execute the complete analysis pipeline:
-
Generate Signals:
Runpython generate_signals.pyto create synthetic vibratory signals. -
Extract Features:
After generating signals, runpython extract_features.pyto compute features from the signals. -
Clustering and Analysis:
Runpython clustering.pyto apply clustering algorithms and visualize results.
Usepython test_algorithms.py,python detect_outliers.py, andpython visualize_clusters.pyfor further analysis and visualization. -
View All File Contents:
Usepython content.pyto recursively list file contents (excluding certain directories and file types) with progress tracking.
Contributions, issues, and feature requests are welcome!
Feel free to check issues page.
This project is licensed under the MIT License - see the LICENSE file for details.
SpectroCluster is a collaborative and evolving project. Whether you're a data scientist, researcher, or developer, your contributions and feedback help make this tool more robust and versatile for vibratory signal analysis and anomaly detection. 🌟