All Projects → cgre-aachen → bayseg

cgre-aachen / bayseg

Licence: LGPL-3.0 license
An unsupervised machine learning algorithm for the segmentation of spatial data sets.

Programming Languages

Jupyter Notebook
11667 projects

Projects that are alternatives of or similar to bayseg

Numpy Ml
Machine learning, in numpy
Stars: ✭ 11,100 (+24030.43%)
Mutual labels:  gaussian-mixture-models, hidden-markov-models
PyBGMM
Bayesian inference for Gaussian mixture model with some novel algorithms
Stars: ✭ 51 (+10.87%)
Mutual labels:  gaussian-mixture-models, mixture-model
markov-discord
A Markov chain Discord chat bot. Generates unique messages by learning from past messages. Also occasionally attaches images to messages.
Stars: ✭ 35 (-23.91%)
Mutual labels:  markov-chain
statrethink course in pymc3
Statistical Rethinking course in pymc3
Stars: ✭ 141 (+206.52%)
Mutual labels:  bayesian-methods
fishervector
Improved Fisher Vector Implementation- extracts Fisher Vector features from your data
Stars: ✭ 99 (+115.22%)
Mutual labels:  gaussian-mixture-models
timeline
Takes tweets from a bot's followings and markovifies them. Ruby port of sneaksnake/timeline
Stars: ✭ 13 (-71.74%)
Mutual labels:  markov-chain
android-vad
This VAD library can process audio in real-time utilizing GMM which helps identify presence of human speech in an audio sample that contains a mixture of speech and noise.
Stars: ✭ 64 (+39.13%)
Mutual labels:  gaussian-mixture-models
Mathematical-Modeling
A sharing of the learning process of mathematical modeling 数学建模常用工具模型算法分享:数学建模竞赛优秀论文,数学建模常用算法模型,LaTeX论文模板,SPSS工具分享。
Stars: ✭ 30 (-34.78%)
Mutual labels:  markov-chain
MMCAcovid19.jl
Microscopic Markov Chain Approach to model the spreading of COVID-19
Stars: ✭ 15 (-67.39%)
Mutual labels:  markov-chain
TwitchMarkovChain
Twitch Bot for generating messages based on what it learned from chat
Stars: ✭ 87 (+89.13%)
Mutual labels:  markov-chain
markovifyR
Markovify wrapper for R
Stars: ✭ 81 (+76.09%)
Mutual labels:  markov-chain
presidential-rnn
Project 4 for Metis bootcamp. Objective was generation of character-level RNN trained on Donald Trump's statements using Keras. Also generated Markov chains, and quick pyTorch RNN as baseline. Attempted semi-supervised GAN, but was unable to test in time.
Stars: ✭ 26 (-43.48%)
Mutual labels:  markov-chain
BayesianNonparametrics.jl
BayesianNonparametrics in julia
Stars: ✭ 30 (-34.78%)
Mutual labels:  bayesian-methods
porn-description-generator
Generates new porn descriptions based on an edited dataset of xhamster video descriptions uploaded between 2007-2016.
Stars: ✭ 40 (-13.04%)
Mutual labels:  markov-chain
neworder
A dynamic microsimulation framework for python
Stars: ✭ 15 (-67.39%)
Mutual labels:  markov-chain
ERTplot
Script to plot 2D electrical resistivity tomography (ERT) data with much more versatility than RES2DINV allows.
Stars: ✭ 15 (-67.39%)
Mutual labels:  geophysics
Vietnamese-Accent-Prediction
A simple/fast/accurate accent prediction for non-accented Vietnamese text
Stars: ✭ 31 (-32.61%)
Mutual labels:  markov-chain
pypmc
Clustering with variational Bayes and population Monte Carlo
Stars: ✭ 46 (+0%)
Mutual labels:  markov-chain
walrus
Это самый лучший женобот на этой планете // Нейросеть феминистка
Stars: ✭ 38 (-17.39%)
Mutual labels:  markov-chain
teaching-computational-geophysics
Additional material for computational geophysics course
Stars: ✭ 35 (-23.91%)
Mutual labels:  geophysics

BaySeg

Easy-to-use unsupervised spatial segmentation in Python.

License: LGPL v3 Python 3.6.x Build Status

Contents

Introduction

A Python library for unsupervised clustering of n-dimensional datasets, designed for the segmentation of one-, two- and three-dimensional data in the field of geological modeling and geophysics. The library is based on the algorithm developed by Wang et al., 2017 and combines Hidden Markov Random Fields with Gaussian Mixture Models in a Bayesian inference framework. It currently supports up to two physical dimension and is in an early development stage.

Examples

1D: Segmentation of geophysical well log data

alt text

(Above well log data used from machine learning contest of Hall, 2016)

2D: Combined segmentation of geophysical and remote sensing data

You can try out how BaySeg segments 2D data sets by using an interactive Jupyter Notebook in your own web browser, enabled by Binder:

Binder

Installation

As the library is still in early development, the current way to install it is to clone this repository and then import it manually to your projects. We plan to provide convenient installation using PyPi in the future.

Dependencies

BaySeg depends on several genius components of the Python eco-system:

  • numpy for efficient numerical implementation
  • scikit-learn for mixture models
  • scipy for its statistical functionality
  • matplotlib for plotting
  • tqdm provides convenient progress meters

Cloning directly from GitHub

First clone the repository using the command (or by manually downloading the zip file from the GitHub page)

git clone https://github.com/cgre-aachen/bayseg.git

then append the path to the repository:

import sys
sys.path.append("path/to/cloned/repository/bayseg")

to import the module:

import bayseg

Getting Started

Instantiate the classifier with the n-dimensional array storing the data and the number of labels:

clf = bayseg.BaySeg(data_ndarray, n_labels)

Then use the fit() method to classify your data with your desired number of iterations:

clf.fit(n_iter)

References

  • Wang, H., Wellmann, J. F., Li, Z., Wang, X., & Liang, R. Y. (2017). A Segmentation Approach for Stochastic Geological Modeling Using Hidden Markov Random Fields. Mathematical Geosciences, 49(2), 145-177.
  • Wang, H., Wellmann, F., Zhang, T., Schaaf, A., Kanig, R. M., Verweij, E., ... & van der Kruk, J. (2019). Pattern Extraction of Topsoil and Subsoil Heterogeneity and Soil‐Crop Interaction Using Unsupervised Bayesian Machine Learning: An Application to Satellite‐Derived NDVI Time Series and Electromagnetic Induction Measurements. Journal of Geophysical Research: Biogeosciences.
  • Wang, H. (2020). Finding patterns in subsurface using Bayesian machine learning approach. Underground Space, 5(1), 84-92.
  • Herbert, C., Camps, A., Wellmann, F., & Vall‐llossera, M. (2021). Bayesian unsupervised machine learning approach to segment Arctic sea ice using SMOS data. Geophysical Research Letters, 48(6).
  • Hall, B. (2016). Facies classification using machine learning. The Leading Edge, 35(10), 906-909.

Contact

The library is based on research Hui Wang and Florian Wellmann for a research project in the German Collaborative Research Center SFB TR32. It was rewritten in Python from a Matlab code by Alexander Schaaf.

Bayseg is currently being developed by the LuF Computational Geoscience and Reservoir Engineering (CGRE) and the Aachen Institute for Advanced Study in Computational Engineering Science (AICES) at RWTH Aachen University, Germany.

For more information and contacts, please see: http://www.cgre.rwth-aachen.de/

CGRE RWTH Aachen

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].