All Projects → Networks-Learning → memorize

Networks-Learning / memorize

Licence: MIT license
Code and real data for "Enhancing Human Learning via Spaced Repetition Optimization", PNAS 2019

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to memorize

curb
Code for "An Online Algorithm to Reduce the Spread of Misinformation in Social Networks", WSDM 2018
Stars: ✭ 24 (-84.52%)
Mutual labels:  control, point-processes
vscode-control-snippets
Disable or enable VS Code's built-in snippets and manually installed snippets from extensions.
Stars: ✭ 43 (-72.26%)
Mutual labels:  control
Dock
A docking layout system.
Stars: ✭ 204 (+31.61%)
Mutual labels:  control
ColorPickerLib
A WPF/MVVM implementation of a themeable color picker control.
Stars: ✭ 44 (-71.61%)
Mutual labels:  control
Grbac
👮 grbac is a fast, elegant and concise RBAC(role-based access control) framework
Stars: ✭ 231 (+49.03%)
Mutual labels:  control
Reactor-and-Turbine-control-program
This is my Reactor- and Turbine control program for ComputerCraft and BigReactors
Stars: ✭ 18 (-88.39%)
Mutual labels:  control
Clearml
ClearML - Auto-Magical CI/CD to streamline your ML workflow. Experiment Manager, MLOps and Data-Management
Stars: ✭ 2,868 (+1750.32%)
Mutual labels:  control
DialogHost.Avalonia
AvaloniaUI control that provides a simple way to display a dialog with information or prompt the user when information is needed
Stars: ✭ 92 (-40.65%)
Mutual labels:  control
Xamarin.Forms.MultiSelectListView
☑️ Select multiple rows in a listview with xamarin.forms
Stars: ✭ 61 (-60.65%)
Mutual labels:  control
STM32 TimerInterrupt
This library enables you to use Interrupt from Hardware Timers on an STM32F/L/H/G/WB/MP1-based board. These STM32F/L/H/G/WB/MP1 Hardware Timers, using Interrupt, still work even if other functions are blocking. Moreover, they are much more precise (certainly depending on clock frequency accuracy) than other software timers using millis() or micr…
Stars: ✭ 27 (-82.58%)
Mutual labels:  control
NumericUpDownLib
Implements numeric up down WPF controls to edit/display values (byte, integer, short, ushort etc.) with a textbox and optional up/down arrow (repeat) buttons. Value editing is possible by dragging the mouse vertically/horizontally, clicking up/down buttons, using up/down or left right cursor keys, spinning mousewheel on mouseover, or editing th…
Stars: ✭ 68 (-56.13%)
Mutual labels:  control
Handycontrol
Contains some simple and commonly used WPF controls
Stars: ✭ 3,349 (+2060.65%)
Mutual labels:  control
rts2
Contains core part of the RTS2 - RTS2 libraries, and drivers for basic devices.
Stars: ✭ 35 (-77.42%)
Mutual labels:  control
Hoverboard Firmware Hack Foc
With Field Oriented Control (FOC)
Stars: ✭ 215 (+38.71%)
Mutual labels:  control
RLGC
An open-source platform for applying Reinforcement Learning for Grid Control (RLGC)
Stars: ✭ 85 (-45.16%)
Mutual labels:  control
Acados
Fast and embedded solvers for nonlinear optimal control
Stars: ✭ 194 (+25.16%)
Mutual labels:  control
Dropdownmenukit
UIKit drop down menu, simple yet flexible and written in Swift
Stars: ✭ 246 (+58.71%)
Mutual labels:  control
PuTTY-ng
An improved multi-tabbed PuTTY with better user experience. This project is based on noddle1983's putty-nd.
Stars: ✭ 37 (-76.13%)
Mutual labels:  control
supermemo-wine
Project to make SuperMemo for Windows editions runnable with Wine
Stars: ✭ 56 (-63.87%)
Mutual labels:  spaced-repetition
anki-apkg-export
📖 Generate decks for Anki (spaced repetition software)
Stars: ✭ 124 (-20%)
Mutual labels:  spaced-repetition

Memorize

This is a repository containing code and data for the paper:

B. Tabibian, U. Upadhyay, A. De, A. Zarezade, Bernhard Schölkopf, and M. Gomez-Rodriguez. Enhancing Human Learning via Spaced Repetition Optimization. Proceedings of the National Academy of Sciences (PNAS), March, 2019.

The paper is available from PNAS website and the supporting website also gives a description of our algorithm in a nutshell.

As a follow-up of this work, we tested a variant of the algorithm presented here (named Select) in the wild by means of a Randomized Trial and found that it performed significantly better than competitive baselines. We present those findings in the following paper:

U. Upadhyay, G. Lancashire, C. Moser and M. Gomez-Rodriguez. Large-scale randomized experiment reveals machine learning helps people learn and remember more effectively., npj Science of Learning, 6, Article number: 26 (2021).

Pre-requisites

This code depends on the following packages:

  1. numpy
  2. pandas
  3. matplotlib
  4. seaborn
  5. scipy
  6. dill
  7. click

Apart from this, the instructions assume that the Duolingo dataset has been downloaded, extracted, and saved at ./data/raw/duolingo.csv.

Code structure

  • memorize.py contains the memorize algorithm.
  • preprocesed_weights.csv contains estimated model parameters for the HLR model, as described in section 8 of supplementary materials.
  • observations_1k.csv contains a set of 1K user-item pairs and associated number of total/correct attempts by every user for given items. This dataset has been curated from a larger dataset released by Duolingo, available here.

Execution

The code can by executed as follows:

python memorize.py

The code will use default parameter value (q) used in the code.


Experiments with Duolingo data

Pre-processing

Convert to Python dict by user_id, lexeme_id and pruning it for reading it:

python dataset2dict.py ./data/raw/duolingo.csv ./data/duo_dict.dill --success_prob 0.99 --max_days 30 
python process_raw_data.py ./data/raw/duolingo.csv ./data/duolingo_reduced.csv

Plots

See the notebook plots.ipynb.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].