/power_law_graphs

Research Project with Machine Learning and Social Networks

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Social Network Analysis

This project focuses on studying a specific class of graphs known as Power-Law graphs, which are prevalent in social networks. Our objective is to employ Machine Learning algorithms to effectively detect and analyze these graphs. By leveraging the power of machine learning, we aim to gain deeper insights into the structural characteristics and properties of power-law graphs within social networks. This repository serves as a comprehensive resource to document and share our research findings in this field.

Supervised Learning Algorithms

  • K-Nearest Neighbors
  • Support Vector Machines
  • Random Forest
  • Gradient Boosting

Unsupervised Learning Algorithms

  • K-Means
  • DBSCAN

Types of graphs

Real World Networks

Synthetic Graphs

Data Frame Creator

Inputs

The input is any graph file in .gexf format, they must be saved in graphs folder

Properties

The graphs2csv.py script will create a csv file with the following properties of your graphs:

  • graph_type
  • clustering_coef
  • first_quartile
  • second_quartile
  • third_quartile
  • max_triangles
  • max_degree
  • qtd_max_degree
  • min_degree
  • qtd_min_degree
  • avg_degree
  • density
  • is_power_law

Synthetic Graph Generator

Script to generate synthetic graphs for my undergraduate research project: Recognizing Power-Law Graphs by Machine Learning Algorithms.

How to generate the graphs

  • Chose one of the functions gen_<type>_graph and give the quantity of graphs in the parameter. Those functions will generate graphs from NetworkX

Data files

  • The results will be saved in graphs directory with as a .gexf file

Project Advisors