InsCD: A Modularized, Comprehensive and User-Friendly Toolkit for Machine Learning Empowered Cognitive Diagnosis
Project description
InsCD: A Modularized, Comprehensive and User-Friendly Toolkit for Machine Learning Empowered Cognitive Diagnosis
Shanghai Institute of AI Education, School of Computer Science and Technology
East China Normal University
InsCD, namely Instant Cognitive Diagnosis (Chinese: 时诊), is a highly modularized python library for cognitive diagnosis in intelligent education systems. This library incorporates both traditional methods (e.g., solving IRT via statistics) and deep learning-based methods (e.g., modelling students and exercises via graph neural networks).
📰 News
- [2025.7.10] InsCD toolkit v1.3.1 is released. What's New: We implement one new model: Disentangled Graph Cognitive Diagnosis (DisenGCD). InsCD toolkit v1.3.0 has been yanked from PyPI.
- [2024.8.31] InsCD toolkit v1.2 is released. What's New: We implement two new models: symbolic cognitive diagnosis model (SymbolCD) and hypergraph cognitive diagnosis model (HyperCD)
- [2024.7.14] InsCD toolkit v1.1 is released and available for downloading.
- [2024.4.20] InsCD toolkit v1.0 is released.
🚀 Getting Started
Installation
Git and install with pip:
git clone https://github.com/ECNU-ILOG/InsCD.git
cd <path of code>
pip install .
or install the library from pypi
pip install inscdkit==1.3.1
⚠️ Note: Installing DGL
InsCD depends on DGL (Deep Graph Library). The installation of DGL varies depending on your operating system, PyTorch version, and whether you are using a GPU.
Please refer to the official DGL installation guide and choose the command that matches your environment:
👉 DGL Installation Guide: https://www.dgl.ai/pages/start.html
Quick Example
The following code is a simple example of cognitive diagnosis implemented by inscd. We load build-in datasets, create cognitive diagnosis model, train model and show its performance:
inscd_run --model NCDM --datahub_name Math1
If you want to use multi-GPU parallel training, please use the following command-line:
accelerate launch -m inscd_run --model NCDM --datahub_name Math1
For other optional parameters, please use the format --[key]=[value].
🛠 Implementation
We incoporate classical, famous and state-of-the-art methods published or accepted by leading journals and conferences in the field of psychometric, machine learning and data mining. The reason why we call this toolkit "modulaized" is that we not only provide the "model", but also divide the model into two parts (i.e., extractor and interaction function), which enables us to design new models (e.g., extractor of Hypergraph with interaction function of KaNCD). To evaluate the model, we also provide vairous open-source datasets in online or offline scenarios.
List of Models
| Model | Release | Paper |
|---|---|---|
| Item Response Theory (IRT) | 1952 | Frederic Lord. A Theory of Test Scores. Psychometric Monographs. |
| Multidimentional Item Response Theory (MIRT) | 2009 | Mark D. Reckase. Multidimensional Item Response Theory Models. |
| Neural Cognitive Diagnosis Model (NCDM) | 2020 | Fei Wang et al. Neural Cognitive Diagnosis for Intelligent Education Systems. AAAI'20. |
| Relation Map-driven Cognitive Diagnosis Model (RCD) | 2021 | Weibo Gao et al. RCD: Relation Map Driven Cognitive Diagnosis for Intelligent Education Systems. SIGIR'21. |
| Knowledge-association Neural Cognitive Diagnosis (KaNCD) | 2022 | Fei Wang et al. NeuralCD: A General Framework for Cognitive Diagnosis. TKDE. |
| Knowledge-sensed Cognitive Diagnosis Model (KSCD) | 2022 | Haiping Ma et al. Knowledge-Sensed Cognitive Diagnosis for Intelligent Education Platforms. CIKM'22. |
| Cognitive Diagnosis Model Focusing on Knowledge Concepts (CDMFKC) | 2022 | Sheng Li et al. Cognitive Diagnosis Focusing on Knowledge Concepts. CIKM'22. |
| Self-supervised Cognitive Diagnosis Model (SCD) | 2023 | Shanshan Wang et al. Self-Supervised Graph Learning for Long-Tailed Cognitive Diagnosis. AAAI'23. |
| Disentangled Graph Cognitive Diagnosis (DisenGCD) | 2024 | Shanshan Wang et al. DisenGCD: A Meta Multigraph-assisted Disentangled Graph Learning Framework for Cognitive Diagnosis. NeurIPS'24. |
| Inductive Cognitive Diagnosis Model (ICDM) | 2024 | Shuo Liu et al. Inductive Cognitive Diagnosis for Fast Student Learning in Web-Based Intelligent Education Systems. WWW'24. |
| Symbolic Cognitive Diganosis Model (SymbolCD) | 2024 | Junhao Shen et al. Symbolic Cognitive Diagnosis via Hybrid Optimization for Intelligent Education Systems. AAAl'24. |
| Oversmoothing-Resistant Cognitive Diagnosis Framework (ORCDF) | 2024 | Shuo Liu et al. ORCDF: An Oversmoothing-Resistant Cognitive Diagnosis Framework for Student Learning in Online Education Systems. KDD'24. |
| Hypergraph Cognitive Diagnosis Model (HyperCDM) | 2024 | Junhao Shen et al. Capturing Homogeneous Influence among Students: Hypergraph Cognitive Diagnosis for Intelligent Education Systems. KDD'24. |
List of Build-in Datasets
| Dataset | Release | Source |
|---|---|---|
inscd.datahub.Assist17 |
2018 | https://sites.google.com/view/assistmentsdatamining/dataset |
inscd.datahub.FracSub |
2015 | http://staff.ustc.edu.cn/%7Eqiliuql/data/math2015.rar |
inscd.datahub.Junyi734 |
2015 | https://www.educationaldatamining.org/EDM2015/proceedings/short532-535.pdf |
inscd.datahub.Math1 |
2015 | http://staff.ustc.edu.cn/%7Eqiliuql/data/math2015.rar |
inscd.datahub.Math2 |
2015 | http://staff.ustc.edu.cn/%7Eqiliuql/data/math2015.rar |
inscd.datahub.Matmat |
2019 | https://github.com/adaptive-learning/matmat-web |
inscd.datahub.NeurIPS20 |
2020 | https://eedi.com/projects/neurips-education-challenge |
inscd.datahub.XES3G5M |
2023 | https://github.com/ai4ed/XES3G5M |
Note that we preprocess these datasets and filter invalid response logs. We will continuously update preprocessed datasets to foster the community.
🤔 Frequent Asked Questions
Problem: Why can't I download datasets when using built-in dataset classes (e.g.,
NeurIPS20ininscd.datahub)?
Since these datasets are saved in the Google Driver, they may be not available in some countries and regions. You can use proxy and add the following commands in your terminal:
export http_proxy = 'http://<IP address of proxy>:<Port of proxy>'
export https_proxy = 'http://<IP address of proxy>:<Port of proxy>'
export all_proxy = 'socks5://<IP address of proxy>:<Port of proxy>'
Problem: WandB fails to connect or hangs due to network issues?
You can disable WandB's network usage by setting the following environment variable:
export WANDB_MODE=offline
💡 Note: These settings are only effective for the current terminal session.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file inscdkit-1.3.1.tar.gz.
File metadata
- Download URL: inscdkit-1.3.1.tar.gz
- Upload date:
- Size: 61.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be16c04163b976f7dadafddd77bcc0cfda8a80dbedfb9744e4d39c9b0cd01634
|
|
| MD5 |
df92cf45772fd07af04ee8f898db6662
|
|
| BLAKE2b-256 |
128f86eedfaa3b97a0542228b99ce8348c756b7bb6b81749f9b45d03c4ecdbac
|
File details
Details for the file inscdkit-1.3.1-py3-none-any.whl.
File metadata
- Download URL: inscdkit-1.3.1-py3-none-any.whl
- Upload date:
- Size: 91.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e23eb51914f3a84feba42fe9273e669431030b3a62f8131c921eebe544553466
|
|
| MD5 |
d80e26ee89db5a0d980ebf31a20b8e83
|
|
| BLAKE2b-256 |
7a9273107a966c08690adc745d1cfa85e6db86c7caddf76f11c793efb01cf043
|