Skip to main content

Studentprognose tool voor het voorspellen van eerstejaars instroom in het hoger onderwijs

Project description

Studentprognose

Voorspel je studentinstroom maanden vooruit — met je eigen data, op je eigen machine.

Radboud Universiteit CEDA Contributors GitHub License PyPI
Python GitHub Last Commit Windows macOS Linux

[!NOTE] Dit model is oorspronkelijk ontwikkeld door Radboud Universiteit en vervolgens samen met CEDA open source gemaakt zodat andere instellingen er ook van kunnen profiteren. Lees meer in het VOX-artikel.


📦 Aan de slag

Vereisten: Python 3.12

Installeer met uv:

uv tool install studentprognose

Heb je uv nog niet? Eenmalig installeren met curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux) of powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" (Windows). Voor pip-instructies, zie de documentatie.

Na installatie:

studentprognose init        # mapstructuur + configuratie aanmaken
studentprognose -w 6 -y 2024

init maakt de benodigde mapstructuur aan en legt uit welke bestanden je moet aanleveren.

Voor geautomatiseerde runs (cron, taakplanner) — sla de interactieve prompt over:

studentprognose -w 6 -y 2024 --yes

[!NOTE] Heb je afwijkende kolomnamen in je Studielink-export? Voeg een "columns"-blok toe aan configuration/configuration.json. Zie Configuratie voor uitleg en voorbeelden.

Zie de documentatie voor een complete walkthrough met uitleg over Python-installatie, data klaarzetten en veelvoorkomende fouten.


Waarom dit model?

Dit model is gebouwd voor data-analisten bij Nederlandse onderwijsinstellingen die werken met Studielink-data. Je hebt geen machine learning-expertise nodig.

Bring Your Own Data Je levert je eigen data aan — er wordt niets extern gedeeld
Privacy-vriendelijk Draait volledig lokaal op je eigen machine
Open source Transparant, aanpasbaar en gratis te gebruiken
Demo data inbegrepen Direct uitproberen zonder eigen data — demobestanden zitten in data/input_raw/

🛠️ Aan de slag voor ontwikkelaars

Via de broncode (met demodata):

# 1. Installeer uv (zie https://docs.astral.sh/uv/getting-started/installation/)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Clone de repository
git clone https://github.com/cedanl/studentprognose.git
cd studentprognose

# 3. Draai het model met demodata
uv run studentprognose -w 6 -y 2020

[!NOTE] Demodata is meegeleverd in data/input_raw/, zodat je direct kunt starten. Gebruik -y 2020 t/m -y 2024 en -w 1 t/m -w 52.


🗃️ Studielink Data

[!IMPORTANT] Dit model werkt met Studielink-telbestanden. Je hebt deze data nodig om voorspellingen te maken voor jouw instelling. Demodata is meegeleverd zodat je het model eerst kunt uitproberen.


✨ Gebruik

studentprognose -w 6 -y 2024                  # specifieke week en jaar
studentprognose -w 10 : 20 -y 2023            # weekbereik
studentprognose -d c                           # alleen cumulatief spoor
studentprognose -y 2023 2024 -w 10 : 20 -d b  # meerdere jaren, beide sporen
Vlag Beschrijving Opties
-w Voorspelweek(en) weeknummers of bereik, bijv. 10 : 20
-y Voorspeljaar(en) bijv. 2024 of 2023 2024
-d Dataset individual, cumulative, both (standaard)
--noetl Sla ETL over als je al verwerkte data in data/input/ hebt
--yes Sla interactieve prompts over voor CI/CD en cron

Zie de documentatie voor alle vlaggen, configuratie, validatie-instellingen en uitgebreide voorbeelden.


📁 Beschrijving van bestanden

Input

Bestand Beschrijving
individual Individuele (voor)aanmeldingen per student. Voedt het individueel model (XGBoost classifier + SARIMA) en levert de SARIMA_individual voorspelling.
cumulative Aantal aanmeldingen per opleiding, herkomst, jaar, week en herinschrijving. Wordt gebruikt voor de SARIMA_cumulative voorspelling. Verkregen via Studielink.
latest Per opleiding, herkomst, jaar en week: aanmeldingen, voorspellingen en foutwaarden (MAE/MAPE).
student_count_first-years Werkelijk aantal eerstejaars studenten per jaar, opleiding en herkomst.
student_volume Werkelijk totaal aantal ingeschreven studenten per jaar, opleiding en herkomst (alleen nodig bij -sy v).
weighted_ensemble Gewichten per model voor de ensemble-voorspelling.

Output

Bestand Beschrijving
output_prelim.xlsx Voorlopige output met alle voorspellingen van de huidige run.
output_first-years.xlsx Volledige output met voorspellingen voor eerstejaars studenten.
output_volume.xlsx Volledige output met volume-voorspellingen (totaal).

🏗️ Architectuur

Pipeline executievolgorde

Gedeelde stappen (alle modi):

Stap Fase Bestand
1 CLI parsing cli.py
2 Validatie ruwe data (skip met --noetl) data/validation
3 ETL (skip met --noetl) data/etl
4 Configuratie laden config.py
5 Data laden loaderpreprocessing/add_zero_weeks
6 CI subset (indien --ci) utils/ci_subset

Modus-specifieke stappen:

Stap Fase Individual (-d i) Cumulative (-d c) Both (-d b)
6 Preprocessing strategies/individual strategies/cumulative individual → cumulative
7 Filtering strategies/base strategies/base strategies/base
8 Classificatie xgboost_classifier xgboost_classifier
9 Transformatie transforms transforms
10 SARIMA sarima (individual) sarimatransforms sarima (both)
11 XGBoost regressor xgboost_regressor xgboost_regressor
12 Ratio model ratio ratio
13 Postprocessing + Opslaan postprocessor postprocessor postprocessor

Zie de Technische README voor meer details over de architectuur. Voor een end-to-end uitleg van het individueel spoor (inclusief Mermaid-flow), zie Individueel model in de methodologische documentatie.


🤝 Bijdragen

Dit project wordt actief onderhouden door CEDA. Wil je bijdragen of meedenken? Sluit je aan bij de werkgroep.

🆘 Ondersteuning

Voor vragen of problemen:


Gebouwd met ❤️ door de CEDANL community

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

studentprognose-1.5.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

studentprognose-1.5.0-py3-none-any.whl (128.1 kB view details)

Uploaded Python 3

File details

Details for the file studentprognose-1.5.0.tar.gz.

File metadata

  • Download URL: studentprognose-1.5.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for studentprognose-1.5.0.tar.gz
Algorithm Hash digest
SHA256 8e8623d14503633dd6964eb4e13064c80f6ffbf8b43803f5c6796f7a82e3a631
MD5 e347591a45c17723465d0d68f787e76f
BLAKE2b-256 b272c4177ee24dadf562fe359a9ca26c740d003810401c9528532a03dbecd725

See more details on using hashes here.

Provenance

The following attestation bundles were made for studentprognose-1.5.0.tar.gz:

Publisher: pypi-publish.yml on cedanl/studentprognose

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file studentprognose-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: studentprognose-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 128.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for studentprognose-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9544fa2e29ede141c41729a6b2ce72fe8ae6b25ad6c758e3b6e0af9cac9c9d2f
MD5 675bed808897bcb05fabbdbf6dee6f59
BLAKE2b-256 2e0895bd9b2c3e6fd26bf94485961db785c4ccd5cf1ba17035daa3e5952de987

See more details on using hashes here.

Provenance

The following attestation bundles were made for studentprognose-1.5.0-py3-none-any.whl:

Publisher: pypi-publish.yml on cedanl/studentprognose

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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