Skip to content

kmkwon94/comcomai

Repository files navigation

Run on Ainize

Comcomai ainize

Find nodes that has probability of joining neigbors

This repository provides ten community detection methods The using each methods is done in the following steps:

  1. User types the argument which is composed of population, neighbors, probability, algorithm
  2. User queries ainize server with the Num 1's arguments
  3. ainize-node-join-neighbors Ainized server return a dictionary.

How to deploy

ainize-node-join-neighbors server is dockerlized, so it can be built and run using docker commands.

Docker build

$ docker build -t [your name]/[your docker repo] .

Docker run

$ docker run -p 80:80 -d [your name]/[your docker repo]

Now the server is available at http://localhost. To learn how to query the server, see the next section

Note that the docker image can be deployed using any docker-based deploy platform ainize.ai

How to query

http://localhost/?population=[input integer number]&neighbors=[input integer number]&probability=[input float number]&alogorithm=[input method] 

Note that

  1. population is enough larger than neighbors e.g population = 100 , neighbors = 20
  2. probability less than or equal to 1
  3. There are 10 methods walklets, deepWalk, splitter, edmot, danmf, mnmf, labelPropagation, graRep, graphWave, nnsed
  4. In this paper, nnsed is superior method than other detection methods so I recommend using nnsed method first.

References

Original code & paper

Run on Ainize

Version GitHub stars GitHub forks License


Documentation | Paper

Karate Club is an unsupervised machine learning extension library for NetworkX.

Karate Club consists of state-of-the-art methods to do unsupervised learning on graph structured data. To put it simply it is a Swiss Army knife for small-scale graph mining research. First, it provides network embedding techniques at the node and graph level. Second, it includes a variety of overlapping and non-overlapping commmunity detection methods. The package also includes methods that can deal with bipartite, temporal and heterogeneous graphs. Implemented methods cover a wide range of network science (NetSci, Complenet), data mining (ICDM, CIKM, KDD), artificial intelligence (AAAI, IJCAI) and machine learning (NeurIPS, ICML, ICLR) conferences and pieces from prominent journals.


Citing

If you find Karate Club useful in your research, please consider citing the following paper:

@misc{rozemberczki2020karateclub,
title = {Karate Club: A tool for unsupervised learning on graph structured data.},
author = {Benedek Rozemberczki and Rik Sarkar},
year = {2020} }


A simple example

Karate Club makes the use of modern community detection tecniques quite easy (see here for the accompanying tutorial). For example, this is all it takes to use on a Watts-Strogatz graph Ego-splitting:

import networkx as nx
from karateclub import EgoNetSplitter

g = nx.newman_watts_strogatz_graph(1000, 20, 0.05)

splitter = EgoNetSplitter(1.0)

splitter.fit(g)

print(splitter.overlapping_partitions)

Models included

In detail, the following methods are currently implemented.

Overlapping Community Detection

Non-Overlapping Community Detection

Neighbourhood-Based Node Level Embedding

Structural Node Level Embedding

Graph Level Embedding

Head over to our documentation to find out more about installation and data handling, a full list of implemented methods, and datasets. For a quick start, check out our examples.

If you notice anything unexpected, please open an issue and let us know. If you are missing a specific method, feel free to open a feature request. We are motivated to constantly make Karate Club even better.


Installation

$ pip install karateclub

Running examples

$ python examples.py

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published