{ "info": { "author": "Eileen Kuehn, Max Fischer", "author_email": "maxfischer2781@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Clustering" ], "description": "dengraph - Density-based Graph Clustering\n=========================================\n\n|travis| |codecov| |landscape|\n\nDenGraph performs a density-based graph clustering.\nThe algorithm was proposed as an extension for DBSCAN to support overlapping clusters.\nThe approach is based around the neighbourhood of a node.\nThe neighbourhood is defined by the *number* of reachable nodes within a given *distance*.\nTherefore, large groups of items which are close to each other form clusters.\nAs DenGraph is a non-partitioning approach, isolated, distinct and uncommon items are left unclustered.\nInstead, they are treated as noise.\n\nQuick Overview\n--------------\n\nTo use ``dengraph`` for clustering your data, two steps are required:\n\n- Your data must be provided via the ``dengraph.graph.Graph`` interface.\n See the ``dengraph.graphs`` module for appropriate containers and examples.\n\n- The graph must be fed to ``dengraph.dengraph.DenGraphIO``.\n\n.. code:: python\n\n >>> from dengraph.graphs.distance_graph import DistanceGraph\n >>> from dengraph.dengraph import DenGraphIO\n >>> # Graph with defined nodes, edges from distance function\n >>> graph = DistanceGraph(\n ... nodes=(1, 2, 3, 4, 5, 10, 11, 13, 14, 15, 17, 22, 23, 24, 25, 28, 29, 30, 31),\n ... distance=lambda node_from, node_to: abs(node_from - node_to)\n ... )\n >>> # Cluster the graph\n >>> clustered_data = DenGraphIO(graph, cluster_distance=2, core_neighbours=3).clusters\n >>> # And print clusters\n >>> for cluster in sorted(clustered_data, key=lambda clstr: min(clstr)):\n ... print(sorted(cluster))\n [1, 2, 3, 4, 5]\n [11, 13, 14, 15, 17]\n [22, 23, 24, 25]\n [28, 29, 30, 31]\n\nFurther Information\n-------------------\n\nAt the moment, you must refer to the module and class documentation.\n\n- See ``dengraph.dengraph.DenGraphIO`` for an explanation of clustering settings.\n\n- See ``dengraph.graph.Graph`` for documentation of the graph interface.\n\nUseful Classes\n..............\n\nWe provide several implementations and tools for the ``Graph`` interface:\n\n- Create a graph from a list of nodes and a distance function via ``dengraph.graphs.distance_graph.DistanceGraph``\n\n- Create a graph from adjacency lists via ``dengraph.graphs.adjacency_graph.AdjacencyGraph``\n\n- Read a distance matrix to a graph via ``dengraph.graphs.graph_io.csv_graph_reader``\n\nFrequently Asked Questions\n--------------------------\n\n- Why is there no ``DenGraphHO`` class?\n\n We haven't implemented that one yet.\n It's on our Todo.\n\n- Why is there no ``DenGraph`` class?\n\n The original DenGraph algorithm is non-deterministic for unordered graphs.\n Since border nodes can belong to only one cluster, the first cluster wins - results depend on iteration order.\n The ``DenGraphIO`` algorithm does not have this issue and performs equally well.\n\n- Why is ``DenGraphO`` the same class as ``DenGraphIO``?\n\n Algorithmically, ``DenGraphIO`` is basically ``DenGraphO`` *plus* the option to insert/remove/modify nodes/edges.\n In the static case (just initialisation), both are equivalent.\n At the moment, we don't have any optimisations based on immutability of ``DenGraphO``.\n The alias exists so that applications can distinguish between the two, possibly benefiting from future optimisations.\n\nAcknowledgement\n---------------\n\nThis module is based on several publications:\n\n- [1] T. Falkowski, A. Barth, and M. Spiliopoulou, \"DENGRAPH: A Density-based Community Detection Algorithm,\" presented at the IEEE/WIC/ACM International Conference on Web Intelligence (WI'07), 2007, pp. 112\u2013115.\n- [2] T. Falkowski, A. Barth, and M. Spiliopoulou, \u201cStudying community dynamics with an incremental graph mining algorithm,\u201d AMCIS 2008 Proceedings, 2008.\n- [3] N. Schlitter, T. Falkowski, and J. L\u00e4ssig, \"DenGraph-HO - a density-based hierarchical graph clustering algorithm.,\" Expert Systems, vol. 31, no. 5, pp. 469\u2013479, 2014.\n\n\n.. |travis| image:: https://travis-ci.org/MaineKuehn/dengraph.svg?branch=master\n :target: https://travis-ci.org/MaineKuehn/dengraph\n :alt: Unit Tests\n\n.. |codecov| image:: https://codecov.io/gh/MaineKuehn/dengraph/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/MaineKuehn/dengraph\n :alt: Code Coverage\n\n.. |landscape| image:: https://landscape.io/github/MaineKuehn/dengraph/master/landscape.svg?style=flat\n :target: https://landscape.io/github/MaineKuehn/dengraph/master\n :alt: Code Health\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "clustering cluster graph density distance", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "dengraph", "package_url": "https://pypi.org/project/dengraph/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dengraph/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/dengraph/0.1.dev0/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.1.dev0" }, "last_serial": 4105034, "releases": { "0.1.dev0": [ { "comment_text": "", "digests": { "md5": "f22ff5de7fc2cb6cd420a3948ce91335", "sha256": "057ea3150a9b625f37e613834e40d7d2e01e5521d15ae8f926ffc0c4f225d52d" }, "downloads": -1, "filename": "dengraph-0.1.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f22ff5de7fc2cb6cd420a3948ce91335", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26990, "upload_time": "2016-12-07T19:31:29", "url": "https://files.pythonhosted.org/packages/bf/cf/6001af8a42eccb0ed142796f3ddf72f8bc2ccb85a0d6bc644d092e4f680a/dengraph-0.1.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a07cc87d37f420f6cae7fc30afbed72b", "sha256": "6c26e458483f1da1316941be8ad1f451224b2d943bc85e56fa6552d0510d5c84" }, "downloads": -1, "filename": "dengraph-0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "a07cc87d37f420f6cae7fc30afbed72b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20090, "upload_time": "2016-12-07T19:31:26", "url": "https://files.pythonhosted.org/packages/26/cb/26ce0c7c5f6b659c37793ba997c89dc80220c82083d35562730f4c933fc5/dengraph-0.1.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f22ff5de7fc2cb6cd420a3948ce91335", "sha256": "057ea3150a9b625f37e613834e40d7d2e01e5521d15ae8f926ffc0c4f225d52d" }, "downloads": -1, "filename": "dengraph-0.1.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f22ff5de7fc2cb6cd420a3948ce91335", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26990, "upload_time": "2016-12-07T19:31:29", "url": "https://files.pythonhosted.org/packages/bf/cf/6001af8a42eccb0ed142796f3ddf72f8bc2ccb85a0d6bc644d092e4f680a/dengraph-0.1.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a07cc87d37f420f6cae7fc30afbed72b", "sha256": "6c26e458483f1da1316941be8ad1f451224b2d943bc85e56fa6552d0510d5c84" }, "downloads": -1, "filename": "dengraph-0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "a07cc87d37f420f6cae7fc30afbed72b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20090, "upload_time": "2016-12-07T19:31:26", "url": "https://files.pythonhosted.org/packages/26/cb/26ce0c7c5f6b659c37793ba997c89dc80220c82083d35562730f4c933fc5/dengraph-0.1.dev0.tar.gz" } ] }