An implementation of bayesian cut methods
Project description
The Bayesian Cut Python package provides an easy to use API for the straight-forward application of Bayesian network cuts using a full Bayesian inference framework based on the Gibbs-Sampler using the degree corrected Stochastic Blockmodel (dc-SBM) or the Bayesian Cut (BC). Furthermore it provides modularity, ratio-cut and norm cut based spectral network cut methods. It also provides a rich visualization library that allow an easy analysis of posterior solution landscapes and network cuts obtained by the various methods.
Jupyter Notebooks with examples on how to use the package can be found at https://github.com/DTUComputeCognitiveSystems/bayesian_cut/tree/master/examples
Installation
- Install the package for Python3 using the following command. Some dependencies might require an upgrade (scikit-learn, numpy and scipy).$ pip install bayesian_cut
- Now you can import the bayesian cut class by typingfrom bayesian_cut.cuts import Model
Quick Start
Use the bayesian_cut package for performing graph cuts
# Load the package
from bayesian_cut.data.load import load_data
from bayesian_cut.cuts.bayesian_models import Model
# Load an example network
network_name = 'karate'
X, Y = load_data(network=network_name, labels=True, remove_disconnected=True)
# Set the parameters for the model
n_samples_per_chain = 75
n_chains = 15
C = 2
model_params = {
'alpha_in': 1e-2,
'beta_in': 1e-2,
'alpha_out': 1e-2,
'beta_out': 1e-2,
'b': 1,
'gamma': 3
}
# Define the model
BC = Model('ShiftedApproximateBayesianCommunityDetection',
X,
model_params,
Y=Y,
C=C,
block_sampling=False,
marginalize_phi=True
)
# Add the number of chains to run
BC.add_chains(number_of_chains=n_chains)
# Run the Gibbs sampler
BC.run_chains(n_samples=n_samples_per_chain,
n_prior_updates=20,
verbose=2,
save_all_samples=False,
parallel=True
)
# Obtain the cut with the highest log-likelihood
graph_cut_z_vector = BC.get_best_chain().max_log_lik_z_
# Plot the cut as an adjacency matrix
from bayesian_cut.utils import utils
utils.cluster_plot(BC)
# Done
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bayesian_cut-0.1.2b0.tar.gz
.
File metadata
- Download URL: bayesian_cut-0.1.2b0.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45eebf057ade356b71bcb401aff9a4ce8f8f8a73b7c16f471489146040bce5e2 |
|
MD5 | d1bc3977190f8530993072ebd4666eab |
|
BLAKE2b-256 | 8df8c8782d08f573699b184dd8f581ed4eb593e1d6290c67a8deace245ebc273 |
File details
Details for the file bayesian_cut-0.1.2b0-py3-none-any.whl
.
File metadata
- Download URL: bayesian_cut-0.1.2b0-py3-none-any.whl
- Upload date:
- Size: 29.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5fa5c7616a411bdb89b09ddebdf487c754f96be40a04534b5ab6baf5ddc68379 |
|
MD5 | 604b841094814b4d13151bf0daee829a |
|
BLAKE2b-256 | 8e968f429a2111ae2e097d6e0b7c998185d5074f1010e348d9da181de7270b30 |