{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Week13_Assignment.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "-c2YnvvCei8k",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "19957757-adac-4510-868d-068f17bfc75e"
},
"source": [
"!pip install dimcli networkx pyvis -U --quiet"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"\u001b[K |████████████████████████████████| 307kB 8.6MB/s \n",
"\u001b[K |████████████████████████████████| 51kB 4.3MB/s \n",
"\u001b[?25h"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 299
},
"id": "sDZ3OTw1_KN0",
"outputId": "53042041-cc49-4147-8240-b7b66dbd3e96"
},
"source": [
"import networkx as nx\n",
"from pyvis import network as net\n",
"import pyvis\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import scipy\n",
"from dimcli.core.extras import NetworkViz\n",
"\n",
"lrst = pd.DataFrame({'class': ['Math', 'Math', 'Math', 'Math','English', 'English', 'English', 'PE', 'PE', 'PE', 'PE', 'History', 'History', 'History', 'History', 'History'],\n",
" 'name': ['Carole ', 'Wood', 'Terrence ', 'Bowen','Anne', 'Singleton', 'Yvette','Edwards', 'Terrence ', 'Foster', 'Austin ','Montgomery', 'Lorena', 'Yvette', 'Kirk', 'Alexander']})\n",
"lrst.head(10)"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/a6224c040fa35dcf/data_table.js\";\n\n window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"Math\",\n\"Carole \"],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"Math\",\n\"Wood\"],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"Math\",\n\"Terrence \"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"Math\",\n\"Bowen\"],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"English\",\n\"Anne\"],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"English\",\n\"Singleton\"],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"English\",\n\"Yvette\"],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"PE\",\n\"Edwards\"],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"PE\",\n\"Terrence \"],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"PE\",\n\"Foster\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"class\"], [\"string\", \"name\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n ",
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" class | \n",
" name | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Math | \n",
" Carole | \n",
"
\n",
" \n",
" | 1 | \n",
" Math | \n",
" Wood | \n",
"
\n",
" \n",
" | 2 | \n",
" Math | \n",
" Terrence | \n",
"
\n",
" \n",
" | 3 | \n",
" Math | \n",
" Bowen | \n",
"
\n",
" \n",
" | 4 | \n",
" English | \n",
" Anne | \n",
"
\n",
" \n",
" | 5 | \n",
" English | \n",
" Singleton | \n",
"
\n",
" \n",
" | 6 | \n",
" English | \n",
" Yvette | \n",
"
\n",
" \n",
" | 7 | \n",
" PE | \n",
" Edwards | \n",
"
\n",
" \n",
" | 8 | \n",
" PE | \n",
" Terrence | \n",
"
\n",
" \n",
" | 9 | \n",
" PE | \n",
" Foster | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" class name\n",
"0 Math Carole \n",
"1 Math Wood\n",
"2 Math Terrence \n",
"3 Math Bowen\n",
"4 English Anne\n",
"5 English Singleton\n",
"6 English Yvette\n",
"7 PE Edwards\n",
"8 PE Terrence \n",
"9 PE Foster"
]
},
"metadata": {
"tags": []
},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "1B59dOs5AS9e",
"outputId": "436b0e77-027a-4110-a15a-84db35599e75"
},
"source": [
"df = nx.from_pandas_edgelist(lrst, source = 'class', target = 'name')\n",
"data = nx.adjacency_matrix(df)\n",
"print(data.todense())"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"[[0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
" [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
" [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
" [1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0]\n",
" [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0]\n",
" [0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1]\n",
" [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]\n",
" [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]]\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 383
},
"id": "AZi4mVnLAopM",
"outputId": "c55752ff-ce23-4c6b-98e5-bb4fb52c062d"
},
"source": [
"nodes = list(df.nodes())\n",
"documents = lrst['class'].unique().tolist()\n",
"names = lrst['name'].unique().tolist()\n",
"\n",
"row_idx = []\n",
"for name in names:\n",
" temp = np.where(np.array(nodes) == name)\n",
" row_idx.append(temp[0][0])\n",
"\n",
"col_idx = []\n",
"for document in documents:\n",
" temp = np.where(np.array(nodes) == document)\n",
" col_idx.append(temp[0][0])\n",
"\n",
"column_names = lrst['class'].unique().tolist()\n",
"doc_matrix = pd.DataFrame(data[np.ix_(row_idx, col_idx)].todense(), columns = column_names)\n",
"doc_matrix.insert(0, 'name', pd.Series(names)) \n",
"doc_matrix"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/a6224c040fa35dcf/data_table.js\";\n\n window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"Carole \",\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"Wood\",\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"Terrence \",\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"Bowen\",\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"Anne\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"Singleton\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"Yvette\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n }],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"Edwards\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"Foster\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"Austin \",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n }],\n [{\n 'v': 10,\n 'f': \"10\",\n },\n\"Montgomery\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n }],\n [{\n 'v': 11,\n 'f': \"11\",\n },\n\"Lorena\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n }],\n [{\n 'v': 12,\n 'f': \"12\",\n },\n\"Kirk\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n }],\n [{\n 'v': 13,\n 'f': \"13\",\n },\n\"Alexander\",\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 0,\n 'f': \"0\",\n },\n{\n 'v': 1,\n 'f': \"1\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"name\"], [\"number\", \"Math\"], [\"number\", \"English\"], [\"number\", \"PE\"], [\"number\", \"History\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n ",
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" name | \n",
" Math | \n",
" English | \n",
" PE | \n",
" History | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Carole | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" Wood | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 2 | \n",
" Terrence | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 3 | \n",
" Bowen | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 4 | \n",
" Anne | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 5 | \n",
" Singleton | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" | 6 | \n",
" Yvette | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 7 | \n",
" Edwards | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 8 | \n",
" Foster | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 9 | \n",
" Austin | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 10 | \n",
" Montgomery | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 11 | \n",
" Lorena | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 12 | \n",
" Kirk | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 13 | \n",
" Alexander | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" name Math English PE History\n",
"0 Carole 1 0 0 0\n",
"1 Wood 1 0 0 0\n",
"2 Terrence 1 0 1 0\n",
"3 Bowen 1 0 0 0\n",
"4 Anne 0 1 0 0\n",
"5 Singleton 0 1 0 0\n",
"6 Yvette 0 1 0 1\n",
"7 Edwards 0 0 1 0\n",
"8 Foster 0 0 1 0\n",
"9 Austin 0 0 1 0\n",
"10 Montgomery 0 0 0 1\n",
"11 Lorena 0 0 0 1\n",
"12 Kirk 0 0 0 1\n",
"13 Alexander 0 0 0 1"
]
},
"metadata": {
"tags": []
},
"execution_count": 7
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "A1jAbNVsKOrB",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 576
},
"outputId": "39dbcf2e-ad14-498a-9636-7816e50aee05"
},
"source": [
"G = NetworkViz(notebook=True)\n",
"G.from_nx(df)\n",
"G.show(\"example.html\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"\n",
"\n",
"\n",
"\n",
"\n",
"None
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
""
],
"text/plain": [
""
]
},
"metadata": {
"tags": []
},
"execution_count": 8
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Ih6-1VeHBzzv"
},
"source": [
""
],
"execution_count": null,
"outputs": []
}
]
}