{"id":20377583,"url":"https://github.com/reshalfahsi/node-classification","last_synced_at":"2025-10-13T09:02:21.116Z","repository":{"id":184346284,"uuid":"671728826","full_name":"reshalfahsi/node-classification","owner":"reshalfahsi","description":"Graph Neural Network for Node Classification","archived":false,"fork":false,"pushed_at":"2024-01-11T00:40:22.000Z","size":11976,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-18T14:48:53.144Z","etag":null,"topics":["cora-dataset","graph-neural-network","node-classification","pytorch-geometric","pytorch-lightning"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reshalfahsi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-28T02:18:14.000Z","updated_at":"2023-07-28T02:25:23.000Z","dependencies_parsed_at":"2025-01-15T06:37:27.011Z","dependency_job_id":"37b07e7f-00f1-474d-b25b-ac5673c20cb7","html_url":"https://github.com/reshalfahsi/node-classification","commit_stats":null,"previous_names":["reshalfahsi/node-classification"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/reshalfahsi/node-classification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reshalfahsi%2Fnode-classification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reshalfahsi%2Fnode-classification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reshalfahsi%2Fnode-classification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reshalfahsi%2Fnode-classification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reshalfahsi","download_url":"https://codeload.github.com/reshalfahsi/node-classification/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reshalfahsi%2Fnode-classification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272084844,"owners_count":24870584,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cora-dataset","graph-neural-network","node-classification","pytorch-geometric","pytorch-lightning"],"created_at":"2024-11-15T01:45:40.336Z","updated_at":"2025-10-13T09:02:16.071Z","avatar_url":"https://github.com/reshalfahsi.png","language":"Jupyter Notebook","readme":"# Graph Neural Network for Node Classification\n\n\n \u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://colab.research.google.com/github/reshalfahsi/node-classification/blob/master/Node_Classification.ipynb\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"colab\"\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n \u003c/div\u003e\n\n\nA graph neural network (GNN) is a type of neural network leveraged to handle graph data. One kind of graph data is a single graph that is large enough to contain a myriad of nodes. Later, we can attribute each node to well-qualified features and discriminate them accordingly. Then, by means of GNN, we can perform node classification on this large graph. The CORA dataset, the publicly available dataset for node classification on a large graph, is used in this tutorial. The graph feature extractor utilized in this tutorial consists of a sequence of ``ResGatedGraphConv``, ``SAGEConv``, and ``TransformerConv``, which are implemented by [PyTorch Geometric](https://pytorch-geometric.readthedocs.io/en/latest/index.html). The final classifier comprises MLP.\n\n\n## Experiment\n\n\nTo run the code for this project, please click [here](https://github.com/reshalfahsi/node-classification/blob/master/Node_Classification.ipynb).\n\n\n## Result\n\n## Quantitative Result\n\nThe table below exhibits the quantitative performance of the model on the test data.\n\nMetrics | Score |\n------------ | ------------- |\nAccuracy | 0.743 |\nLoss | 2.695 |\n\n\n\n## Accuracy and Loss Curve\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"https://github.com/reshalfahsi/node-classification/blob/master/assets/accuracy_curve.png\" alt=\"accuracy_curve\" \u003e \u003cbr /\u003e GNN's training and validation accuracy curve. \u003c/p\u003e\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"https://github.com/reshalfahsi/node-classification/blob/master/assets/loss_curve.png\" alt=\"loss_curve\" \u003e \u003cbr /\u003e GNN's training and validation loss curve. \u003c/p\u003e\n\n\n## Qualitative Result\n\nThe qualitative result is provided as follows:\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"https://github.com/reshalfahsi/node-classification/blob/master/assets/qualitative_result.gif\" alt=\"qualitative_result\" \u003e \u003cbr /\u003e The visualization of the embedding space of the nodes in the large graph in the course of the training process. \u003c/p\u003e\n\n\n## Credit\n\n- [Residual Gated Graph ConvNets](https://arxiv.org/pdf/1711.07553.pdf)\n- [Inductive Representation Learning on Large Graphs](https://arxiv.org/pdf/1706.02216.pdf)\n- [Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification](https://arxiv.org/pdf/2009.03509.pdf)\n- [CORA dataset](https://relational.fit.cvut.cz/dataset/CORA)\n- [Node Classification on Large Knowledge Graphs](https://colab.research.google.com/drive/1LJir3T6M6Omc2Vn2GV2cDW_GV2YfI53_)\n- [Graph attention network (GAT) for node classification](https://keras.io/examples/graph/gat_node_classification/)\n- [PyTorch Geometric](https://github.com/pyg-team/pytorch_geometric)\n- [PyTorch Lightning](https://lightning.ai/docs/pytorch/latest/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freshalfahsi%2Fnode-classification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freshalfahsi%2Fnode-classification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freshalfahsi%2Fnode-classification/lists"}