Skip to main content

A general purpose, multi-dimensional skill tracing algorithm.

Project description

graaftel_python

This is a python translation of Graaftel algorithm by N.A. Taatgen. See here for the original Swift implementation: https://github.com/ntaatgen/ELO

To train new data:

  1. create a new Model object by calling Model(). Perhaps called 'm'.

  2. Initiate model with new data by calling the method m.init_model(data). Passing a path to a CSV file to data is required here. Other parameters if different from the default should be set at this time.

  3. Run the method m.run_training()

To load a model and optinally train further, perhaps with new data of the same students with new questions or the same questions with new students.

  1. create a new Model object by calling Model(). perhaps called 'm'.

  2. load previously trained model by calling the method m.load_model(model, data). Parameters 'model' and 'data' are required. Other parameters will be loaded from the model file, but can be optionally set here. Note that these should be set at this time if new parameters are needed.

  3. Run method m.run_training() if more training is needed.

To get ratings for one student (assumes a model 'm' has been trained and/or loaded):

  1. If student already exists in the model, simply run m.update_student_rating(name, item, score), by providing the name of the
    student, the question item, and the score they obtained. A new record will be added to the list of scores and the student's skills will be updated.

  2. If it is a new student with no previous scores, first run m.new_student(name). Then run step 1 above.

Other Functions:

Model object 'm', that has been trained, can be passed to these other functions from GraafTel:

  1. make_nodes(model, graph=False) Pass the model object m to generate nodes and edges, optionally set graph to True to plot a basic graph.

  2. calculate_error(model, student=None) This computes the error of the predicted score (actual score - predicted score) for all the questions in the model for all students. If student is set to a student ID, the predicted error for that student only is returned.

  3. Get_recommendations(model, student=None) This returns the Id's and predicted scores of all the questions that fall with-in the range of "acceptable difficulty" for the student. If student is set to an Id, only that student's recommended questions are returned.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graaftel-1.0.1.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graaftel-1.0.1-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file graaftel-1.0.1.tar.gz.

File metadata

  • Download URL: graaftel-1.0.1.tar.gz
  • Upload date:
  • Size: 21.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for graaftel-1.0.1.tar.gz
Algorithm Hash digest
SHA256 68b2b2d2c744884f501783c00d39472d78a9bbad097713b06e73412242848316
MD5 ed31b4adbfaaf47e2fb95a11a4384ff6
BLAKE2b-256 df7199575fb7c0bc74dee3eefdbce13600d93cb7489d6e2660c3e230371ec5a3

See more details on using hashes here.

File details

Details for the file graaftel-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: graaftel-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for graaftel-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e754460f87e0973a74bc4a5174bf30e57b240d27a16553d87005695292b81343
MD5 38c9361da36d872fb65cdd323362ef4e
BLAKE2b-256 a9b2d00aa1d5780b971dae04951661ed422775b0152c4957e069e7a5da745ccb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page