Assignment 1
Out: January 17
Due: January 23 by 5:00 pm on Canvas
*Please write your name and TUID at the top of your CANVAS submission.
Download the Homework 1 from the class homework folder. This table is generated according to the background survey for this course. In this table, each raw represents a response of one of you to a survey asked as Homework 0; the column values are 1 if you have some background experience in (1) Data Mining (CIS 4523/5523) or Machine Learning); (2) Python or R programming; (3) Graphs or Statistics.
Problem 1. [Visualizing a Multilayer Network]
In this exercise, your job is to visualize a 3-layer course network, where nodes represent students. Each layer corresponds to a single topic network representing one type of relationship among students taking this course (e.g., in layer 1, nodes representing two students should be connected if both students took a Data Mining/Machine Learning course). Note: you need to convert row data to graph format edge list, or matrix; .csv or .txt format should be fine. Make a screenshot of your visualized networks.
Problem 2. [Visualizing a Weighted Network]
Visualize a network obtained by projecting the 3-layer network from Problem 1 to a single-layer weighted network, where two students are linked by a weighted edge representing the number of topics both students took.
Problem 3. [Visualization of a Bipartite Network]
Visualize a bipartite students-topics network where an edge between a student node and a topic node exists if and only if this student has taken a course on that topic.
Problem 4. [Computing Global Network Properties]
For each layer of the 3-layer network constructed in Problem 1, compute the following global network properties:
- the size and diameter of the network’s largest connected component
- degree distribution (you can report average degree distribution or plot degree distribution histogram)
- average path length
- average clustering coefficient
Repeat this for the network constructed in Problem 2.
Impotent Notes:
- Before importing the student network, you must transform the row data into a supported graph format. Check how to convert row data to graph input in the library/software you plan to use.
- Visualizing a multilayer network is different from a single-layer network. To visualize a Multilayer network, make sure to use a supporting library for example, Pymnet and Multinetx (check Syllabus- Software section for more libraries)
- It is highly recommended to use the Python library NetworkX. Check sections 'Creating a graph' and 'Drawing graphs' to see how to visualize a graph. You can also use Gephi, a platform-free software for graph visualization and analysis, which you can download from https://gephi.org/ (follow the quick start guide) to import and visualize the student network.
- All metrics can be calculated using the Python library NetworkX, but you can use any freely available packages to compute these properties or develop your code.