Analytics-Einstellungen: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(19 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ÜberarbeitenNeu}}{{Analytics}}{{Neu}}
{{Analytics}}
The Moodle learning analytics system requires some initial configuration before it can be used. You can access ''Analytics settings'' from ''Site administration > Analytics > Analytics settings''.
Das Moodle Learning Analytics System erfordert vorab einige Einstellungen, bevor es genutzt werden kann. Die Moodle-Administration kann die Analytics-Einstellungen auf der Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' >  Analytics > Analytics-Einstellungen'' vornehmen.
Die Moodle-Administration kann die Analytics-Einstellungen auf der Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' >  Analytics > Analytics-Einstellungen'' vornehmen.


=== Vorhersage-Prozessor ===
== Website-Informationen ==
Die Website-Informationen werden verwendet, damit die Learning Analytics Modelle die Besonderheiten einer Institution mit einbeziehen.  Diese Informationen wird als Teil der Moodle-Site-Datensammlung übermittelt, wenn Sie Ihre Moodle-Site registrieren. Das ermöglicht es dem Moodle HQ zu verstehen, welche Bereiche in Learning Analytics am häufigsten verwendet werden, und die Ressourcen für die Weiterentwicklung entsprechend zu priorisieren.


Vorhersage-Prozessoren sind Backends für maschinelles Lernen, die Daten verarbeiten, die von den Zielen und Indikatoren generiert werden und aus diesen verarbeiteten Daten Vorhersagen generieren. Die Moodle-Standardinstallation stellt zwei Vorhersage-Prozessoren zur Verfügung:
== Analytics-Einstellungen vornehmen ==
* Der PHP-Prozessor ist der Standardprozessor. Es gibt keine Systemvoraussetzungen, um diesen Prozessor zu verwenden.
Die Moodle-Administration kann die Learning-Analytics-Funktionalität auf der Seite ''Website-Administration > Zusatzoptionen'' deaktivieren.
* Der Python-Prozessor ist mächtiger. Er generiert [https://www.tensorflow.org/get_started/summaries_and_tensorboard Grafiken, die die Performanz des Modells erklären]. Er erfordert zusätzliche Tools, die auf dem Moodle-Server installiert sein müssen: Python (https://wiki.python.org/moin/BeginnersGuide/Download) und das Python-Paket '''moodlemlbackend'''.


    pip install moodlemlbackend
Die Einstellungen für das Learning-Analytics-System von Moodle werden auf der Seite ''Website-Administration > Analytics > Analytics-Einstellungen'' vorgenommen.


=== Zeitaufteilungsmethode===
=== Prozessor für Vorhersagen===


Die [[dev:Analytics API#Time splitting methods|Zeitaufteilungsmethoden]] erlauben es, dass Analytics-Daten, die aus einem Kurs generiert wurden, in einem anderen Kurs verwendet werden können, selbst dann wenn die beiden Kurse nicht dieselbe Dauer haben.
[[Image:analytics01_predictions_processor34.png|frame|center|Auswahl des Vorhersage-Prozessors]]


Jede Zeitaufteilungsmethode unterteilt die Kursdauer in Zeitabschnitte. Am Ende jedes so definierten Zeitabschnitts läuft die Vorhersage-Engine und generiert Vorhersagen. Es wird empfohlen, nur die Zeiteinteilungsmethoden zu aktivieren, die Sie tatsächlich verwenden wollen, denn der Vorhersage-Prozess iteriert über alle aktivierten Zeitaufteilungsmethoden und dauert folglich um so länger, je mehr Methoden aktiviert sind.
Vorhersage-Prozessoren sind Backends für maschinelles Lernen, die Daten verarbeiten, die von den Zielen und Indikatoren generiert werden und aus diesen verarbeiteten Daten Vorhersagen generieren. Die Moodle-Standardinstallation stellt zwei Vorhersage-Prozessoren zur Verfügung:


''Einzeln'' bedeutet, dass eine Vorhersage einmalig gemacht wird, d.h. am Ende eines Kurses.  
====PHP-Vorhersage-Prozessor====
Der PHP-Vorhersage-Prozessor ist der Standardprozessor. Es gibt keine Systemvoraussetzungen, um diesen Prozessor zu verwenden.


''Keine Zeitaufteilung'' bedeutet, dass das Model eine Vorhersage auf der Basis der aktuell vorliegenden Daten zu einem bestimmten Zeitpunkt berechnet ("Schnapschuss"). Z.B. schaut das Model ''Keine Lehrtätigkeit'', ob irgendwelche Trainer/innen oder Teilnehmer/innen im Kurs eingeschrieben sind und sendet eine Warnung an die Moodle-Administration, dass in einem leeren Kurs voraussichtlich keine Lehrtätigkeit stattfinden wird.
====Python-Vorhersage-Prozessor====
Der Python-Vorhersage-Prozessor ist mächtiger. Er generiert [https://www.tensorflow.org/get_started/summaries_and_tensorboard Grafiken, die die Performanz des Modells erklären]. Er erfordert zusätzliche Tools, die auf dem Moodle-Server installiert sein müssen: Python (https://wiki.python.org/moin/BeginnersGuide/Download) und das Python-Paket '''moodlemlbackend'''. Das Paket kann auf dem Webserver  oder auf einem separaten Server installiert werden.


Die ''akkumulaiven'' Methoden unterscheiden sich darin, wie viele Daten in die Vorhersage einfließen. Sowohl ''Viertel'' als auch ''Viertel akkumuliert'' liefert Vorhersagen zum Ende jedes Viertels einer Zeiteinheit (z.B. nach jedem Viertel der Dauer eines Kurses). Bei der Einstellung ''Viertel'' wird die Vorhersage jedoch nur auf Basis der Daten des gerade vergangenen Viertels berechnet, bei ''Viertel akkumuliert'' dagegen auf der Basis der Daten aller vorangegangenen Viertel. Das gilt analog für die Optionen ''Zehntel'' bzw. ''Zehntel akkumuliert''.
=====Installation im Webserver=====
Das neueste Moodle-Paket ist kompatibel mit '''Python 3.4, 3.5, 3.6 und 3.7'''. Beachten Sie, dass das Paket sowohl für den Kommandozeilennutzer (CLI) als auch für den Webserver-Nutzer (z.B. www-data) verfügbar sein sollte.


Die Methoden ''Einzeln'' und ''Keine Zeitaufteilung'' haben keine Zeitbeschränkungen. Die Vorhersage-Engine wird beim nächsten geplanten Vorgang (dennoch kann das Modell Bedingungen haben, z.B. dass ein Kurs abgeschlossen sein muss, um ihn zum "trainieren" zu verwenden). Die Zeiteinteilungsmethoden ''Einzeln'' und ''Keine Zeitaufteilung'' sind nicht geeignet, um Teilnehmer/innen zu identifizieren, die gefährdet sind auszusteigen. Sie sollten stattdessen im Modell ''Keine Lehrtätigkeit'' verwendet werden oder um Nutzer/innen zu identifizieren, die Spam verursachen, d.h. in Modellen, in denen einmal eine Vorhersage gemacht wird und fertig. Z.B. kann das Modell ''Keine Lehrtätigkeit'' die Zeitaufteilungsmethode ''Einzeln'' verwenden; die Zielklasse (das ist die Haupt-PHP-Klasse des Modells) akzeptiert nur Kurse, die in der folgenden Woche beginnen; die Vorhersage wird dann für alle diese Kurse einmalig berechnet.
*Wenn nötig, installieren Sie Python 3 (und pip für Python 3)
*Stellen Sie sicher, dass Python 3 verwendet wird, um das '''moodlemlbackend''' Paket zu installieren:


Der Unterschied zwischen den Methoden ''Einzeln'' und ''Keine Zeitaufteilung'' besteht darin, dass Modelle, die mit der Methode ''Einzeln'' analysiert wurden, auf die analysierbaren Elemente beschränkt sind (z.B. auf die Daten Kursbeginn und Kursende im Fall des Modells ''Teilnehmer/innen, die gefährdet sind auszusteigen''). Bei der Zeitaufteilungsmethode ''Keine Zeitaufteilung'' gibt es keine zeitlichen Einschränkungen und alle im System verfügbaren Daten können zur Berechnung der Vorhersage verwendet werden.
    sudo -H python3 -m pip install "moodlemlbackend==2.3.*"


'''Anmerkung''': Obwohl alle oben beschriebenen Beispiele sich auf Kurse bezogen, können Zeitaufteilungsmethoden auch auf andere analysierbare Elemente bezogen werden. Z.B. können Kurseinschreibungen ein Beginn- und ein Endedatum haben, so dass die Zeitaufteilungsmethode verwendet werden kann, um Vorhersagen in Bezug auf Aspekte der Kurseinschreibung zu machen. Für analysierbare Elemente ohne Beginn- und Endedatum sind andere Zeitaufteilungsmethoden erforderlich. Z.B. könnte eine "wöchentliche" Zeitaufteilungsmethode in einem Modell verwendet werden, das auf der Basis von Daten über seine Aktivitäten in der vergangenen Woche vorhersagt, ob eine Person sich in  der Zukunftim System anmelden wird.
*Sie müssen auch den Pfad zum Python 3 Executable auf der Seite ''Website-Administration > Server > Systempfade'' eintragen:


===Ausgabeverzeichnis===
[[File:path_to_python_3.png|frame|center|Systempfad für Python 3]]


Mit dieser Einstellung legen Sie fest, wo die Daten des Machine Learning Backends gespeichert werden. Stellen Sie sicher, dass dieses Verzeichnis existiert und der Webserver dort Schreibrechte hat. Diese Einstellung kann von Moodle-Sites verwendet werden, die als Cluster betrieben werden, um ein gemeinsames Ausgabeverzeichnis zu nutzen. Dieses Verzeichnis kann von Backends für maschinelles Lernen verwendet werden, um trainierte Algorithmen zu speichern, die später zur Berechnung von Vorhersagen verwendet werden. Der Moodle-Cronjob verhindert, dass Analytics-spezifische geplante Vorgänge gleichzeitig ausgeführt werden, die die Algorithmen trainieren und daraus Vorhersagen berechnen.
===== Installation auf einem separaten Server=====
Die Installation des Python-Pakets auf einem separaten Server hat einige Vorteile gegenüber der Installation auf dem Webserver:
* erhält das Python Machine Learning (ML) Backend als einen externen Service
* gewährleistet eine separate Kontrolle der Ressourcen, die der Webserver für den Betrieb von Moodle reserviert und der Ressourcen, die für das das Python ML Backend reserviert sind
* Sie können denselben ML Server für mehrere Moodle-Sites verwenden. Das ist leichter aufzusetzen und zu warten, als das Backend auf allen Moodle-Servern im Cluster zu installieren.
* Sie können das Paket als neuen Docker-Container in Ihrer Docker-Umgebung installieren.
* Sie können das ML Backend vom AWS über das API Gateway und AWS lambda bedienen und die Dateien der trainierten Modelle in S3 speichern.


===Geplante Vorgänge===
Auf der anderen Seite kann es zu Verzögerungen beim Verbinden mit dem Python ML Backend Server kommen.


Die meisten Analytics-API-Prozesse werden über [[Geplante Vorgänge|geplante Vorgänge]] ausgeführt. Die Prozesse lesen die Logdaten der Aktivitäten und benötigen etwas Zeit für die Ausführung. Es gibt die geplanten Vorgänge ''Trainingsmodelle'' und ''Modelle vorhersagen'' auf der Seite auf die Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' > Server > Geplante Vorgänge''. Es wird empfohlen, die Ausführzeiten zu konfigurieren, so dass diese geplanten Vorgänge jede Nacht ausgeführt werden.
Das Python Backend wird als eine Flask Applikation ausgeliefert. Die Flask Applikation ist Teil des offiziellen '''moodlemlbackend''' Python-Pakets und ihr FLASK_APP Skript is ''webapp'' im Wurzelverzeichnis des Pakets. Sie können eine andere Konfiguration verwenden, wenn diese besser zu Ihrer Infrastruktur passt.


== Site information ==
====== Neuer Server in Ihrer Infrastruktur ======
{{New features}}
Das Python ML Backend wird als eine Flask Applikation ausgeliefert, die einen WSGI Server (https://wsgi.readthedocs.io/en/latest/what.html) verwendet, der über das WWW bereitgestellt wird. Die offizielle Dokumentation, wie Sie eine Flask Applikation aufsetzen, finden Sie unter https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/.
Site information will be used to help learning analytics models take characteristics of the institution into account. This information is also reported as part of site data collection when you register your site. This will allow HQ to understand which areas in learning analytics are seeing the most use and prioritize development resources appropriately.


== Configure learning analytics settings ==
* Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist '''default:sshhhh''' (Nutzer: '''default''', Passwort: '''sshhhh''').
[[File:configure_settings.png|thumb]] The settings for the Moodle Learning Analytics system are set to reasonable defaults, but let’s review them. To configure and enable Moodle Learning Analytics settings, access the Analytics settings panel under Site Administration/Analytics.
* Setzen Sie die Variable MOODLE_MLBACKEND_PYTHON_DIR auf den Pfad, den Sie verwenden wollen, um Daten zu speichern, die das Paket generiert.


=== Predictions processor ===
====== Docker ======
https://hub.docker.com/r/moodlehq/moodle-mlbackend-python ist das offizielle moodle-mlbackend-python Docker Image. Wir verwenden es im Moodle HQ für interne Tests und Sie können es ebenfalls nutzen. Wenn Sie mehr Kontrolle über das Image haben wollen, kann das https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile als Beispiel dienen, um das Python moodlemlbackend Paket zum Laufen zu bringen.


[[Image:analytics01_predictions_processor34.png|frame|center|Predictions processor selection]]
* Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist '''default:sshhhh''' (Nutzer: '''default''', Passwort: '''sshhhh''').


Prediction processors are the machine learning backends that process the datasets generated from the calculated indicators and targets and return predictions. Moodle core includes 2 prediction processors:
====== AWS Serverless Service======
Sie können die Flask Applikation als Serverless Applikation betreiben, indem Sie das AWS API Gateway und AWS lambda verwenden. Der einfachste Weg ist die Verwendung von Zappa https://github.com/Miserlou/Zappa, um die Flask Applikation aufzusetzen, die im Python ML Paket enthalten ist.


* The PHP processor is the default. There are no other system requirements to use this processor.
* Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist '''default:sshhhh''' (Nutzer: '''default''', Passwort: '''sshhhh''').
* The Python processor is more powerful and it generates [https://www.tensorflow.org/get_started/summaries_and_tensorboard graphs that explain the model performance]. It requires setting up extra tools: Python itself (https://wiki.python.org/moin/BeginnersGuide/Download) and the moodlemlbackend python package. The latest version of the package for Moodle 3.7 is compatible with python 2.7 and python 3.4.
* Setzen Sie die Variable MOODLE_MLBACKEND_PYTHON_DIR auf den Pfad, den Sie verwenden wollen, um Daten zu speichern, die das Paket generiert.
* Setzen Sie folgende Umgebungsvariablen, um den S3-Zugriff zu ermöglichen:
** MOODLE_MLBACKEND_PYTHON_S3_BUCKET_NAME
**AWS_ACCESS_KEY_ID
** AWS_SECRET_ACCESS_KEY


    pip install "moodlemlbackend>=1.0.0,<2.0.0"
Wenn alles eingerichtet ist, können Sie den Python-Vorhersage-Prozessor als Standard oder für ein einzelnes Modell auswählen:


=== Log store ===
[[File:python_backend.png|frame|center|Standard-Vorhersage-Prozessor]]
From Moodle version 2.7 and up, the “Standard logstore” is the default. If for some reason you also have data in the older “legacy logs,” you can enable the Moodle Learning Analytics system to access them instead.


=== Analysis intervals ===
[[File:python_backend_at_model.png|frame|center|Auswahl des Vorhersage-Prozessors für ein einzelnes Modell]]


[[dev:Analytics API#Time splitting methods|Analysis intervals]] determine how often insights will be generated, and how much information to use for each calculation. Using proportional analysis intervals allows courses of different lengths to be used to train a single model.
=== Log-Speicher ===
Ab Moodle 2.7 ist ''Logdaten Standard'' der standardmäßige Speicher für Logdaten. Wenn Sie aus irgendwelchen Gründen Daten im alten Legacy-Speicher ''Logdaten Alt'' gespeichert haben, dann können Sie diesen hier einstellen, so dass das Analytics-System auf diese Daten zugreift.


[[Image:06_timesplitting.png|frame|center|Analysis intervals]]
=== Zeitaufteilungsmethode===
Die [[dev:Analytics API#Time splitting methods|Zeitaufteilungsmethode]] legt fest, wie oft Einschätzungen generiert werden und wie viele Informationen für diese Berechnung verwendet werden. Wenn Sie geeignete proportionale Zeitintervalle verwenden, können Kurse mit verschiedener Kursdauer verwendet werden, um ein einzelnes Modell zu trainieren.


Each analysis interval divides the course duration into segments. At the end of each defined segment, the predictions engine will run and generate insights. It is recommended that you only enable the analysis intervals you are interested in using; the evaluation process will iterate through all enabled analysis intervals, so the more analysis intervals enabled, the slower the evaluation process will be.
[[Image:timesplitting.png]]


=== Models output directory ===
Jede Zeitaufteilungsmethode unterteilt die Kursdauer in Zeitabschnitte. Am Ende jedes so definierten Zeitabschnitts läuft die Vorhersage-Engine und generiert Vorhersagen. Es wird empfohlen, nur die Zeiteinteilungsmethoden zu aktivieren, die Sie tatsächlich verwenden wollen, denn der Vorhersage-Prozess iteriert über alle aktivierten Zeitaufteilungsmethoden und dauert folglich um so länger, je mehr Methoden aktiviert sind.


[[Image:03_models_output_directory.png|frame|center|Models output directory]]
===Ausgabeverzeichnis===
 
[[Image:outputdir.png]]
This setting allows you to define a directory where machine learning backends data is stored. Be sure this directory exists and is writable by the web server. This setting can be used by Moodle sites with multiple frontend nodes (a cluster) to specify a shared directory across nodes. This directory can be used by machine learning backends to store trained algorithms (its internal variables weights and stuff like that) to use them later to get predictions. Moodle cron lock will prevent multiple executions of the analytics tasks that train machine learning algorithms and get predictions from them.


== Scheduled tasks ==
Mit dieser Einstellung legen Sie fest, wo die Daten des Machine Learning Backends gespeichert werden. Stellen Sie sicher, dass dieses Verzeichnis existiert und der Webserver dort Schreibrechte hat. Diese Einstellung kann von Moodle-Sites verwendet werden, die als Cluster betrieben werden, um ein gemeinsames Ausgabeverzeichnis zu nutzen. Dieses Verzeichnis kann von Backends für maschinelles Lernen verwendet werden, um trainierte Algorithmen zu speichern, die später zur Berechnung von Vorhersagen verwendet werden. Der Moodle-Cronjob verhindert, dass Analytics-spezifische Tasks gleichzeitig ausgeführt werden, die die Algorithmen trainieren und daraus Vorhersagen berechnen.


Most analytics API processes are executed through [[Scheduled_tasks|scheduled tasks]]. These processes usually read the activity log table and can require some time to finish. You can find ''Train models'' and ''Predict models'' scheduled tasks listed in ''Administration > Site administration > Server > Scheduled tasks.'' It is recommended to edit the tasks schedule so they run nightly.
==Tasks==


== Defining roles ==
Die meisten Analytics-API-Prozesse werden über [[Tasks]] ausgeführt. Die Prozesse lesen die Logdaten der Aktivitäten und benötigen etwas Zeit für die Ausführung. Es gibt die Tasks ''Trainingsmodelle'' und ''Modelle vorhersagen'' auf der Seite auf die Seite ''Website-Administration'' (oder im Block ''[[Einstellungen-Block|Einstellungen]] > Website-Administration'')'' > Server > Tasks''. Es wird empfohlen, die Ausführzeiten zu konfigurieren, so dass diese Tasks jede Nacht ausgeführt werden.


Moodle learning analytics makes use of a number of capabilities. These can be added or removed from roles at the site level or within certain contexts to customise who can view insights.
== Rollen definieren ==
Das Moodle Learning Analytics System verwendet einige Fähigkeiten. Die entsprechenden Rechte können für einzelne Rollen auf Systemebene oder in bestimmten Kontexten vergeben oder entzogen werden, um festzulegen, wer Einschätzungen sehen darf.


To receive notifications and view insights, a user must have the [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] capability within the context used as the "Analysable" for the model. For example, the [[Students at risk of dropping out]] model operates within the context of a course. Insights will be generated for each enrolment within any course matching the criteria of the model (courses with a start date in the past and an end date in the future, with at least one teacher and student), and these insights will be sent to anyone with the listinsights capability in that course. By default, the roles of [[Teacher role|Teacher]], [[Non-editing teacher role|Non-editing teacher]], and [[Manager role|Manager]] have this capability.
Um Benachrichtigungen über Einschätzungen zu erhalten und diese Einschätzungen anzusehen, benötigen Nutzer/innen das Recht [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] in dem Kontext, den das Modell analysiert. Zum Beispiel wird das Modell [[Teilnehmer/innen, die Gefahr laufen, aus dem Kurs auszusteigen]] auf einen Kurskontext angewendet. Einschätzungen werden für jede Einschreibung in den Kursen generiert, die die Kriterien des Modells erfüllen (Kurse mit Kursbeginn-Datum in der Vergangenheit und Kursende-Datum in der Zukunft, mit mindestens einem/r Trainer/in und mindestens einem/r Teilnehmer/in), und diese Einschätzungen werden an alle verschickt, die das Recht [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] in dem jeweiligen Kurs haben. Standardmäßig haben die Rollen [[Trainer-Rolle|Trainer/in]] mit und ohne Bearbeitungsrecht und [[Manager-Rolle|Manager/in]] dieses Recht.


Some models (e.g. the ''No teaching'' model) generate insights at the Site level. To receive insights from these models, the user must have a role assignment at the System level which includes the listinsights capability. By default, this is included in the [[Manager role]] if assigned at the site level.
Einige Modelle (z.B. ''Kurse, bei denen die Gefahr besteht, dass sie nicht beginnen'') generieren Einschätzungen auf Systemebene. Um Einschätzungen von diesen Modellen zu erhalten, müssen Nutzer/innen eine globale Rolle mit dem Recht [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] haben. Standardmäßig ist das für die [[Manager-Rolle]] der Fall, wenn sie auf Systemebene zugewiesen wird.


'''Note''': Site administrators do '''not''' automatically receive insight notifications, though they can choose to view details of any insight notifications on the system. To enable site administrators to receive notifications of insights, assign an additional role that includes the listinsights capability to the site administrator at the system level (e.g. the [[Manager role]]).
'''Hinweis''': Administrator/innen bekommen '''nicht''' automatisch Benachrichtigungen mit Einschätzungen, sie können jedoch Details zu jeder Benachrichtigung im System einsehen. Damit auch Administrator/innen über Einschätzungen benachrichtigt werden, weisen Sie allen Administrator/innen eine zusätzliche Rolle mit dem Recht [[Capabilities/moodle/analytics:listinsights|analytics:listinsights]] auf Systemebene zu (z.B. die [[Manager-Rolle]]).


[[Category:Analytics]]
[[Category:Analytics]]

Aktuelle Version vom 6. Januar 2021, 19:56 Uhr

Das Moodle Learning Analytics System erfordert vorab einige Einstellungen, bevor es genutzt werden kann. Die Moodle-Administration kann die Analytics-Einstellungen auf der Seite Website-Administration (oder im Block Einstellungen > Website-Administration) > Analytics > Analytics-Einstellungen vornehmen.

Website-Informationen

Die Website-Informationen werden verwendet, damit die Learning Analytics Modelle die Besonderheiten einer Institution mit einbeziehen. Diese Informationen wird als Teil der Moodle-Site-Datensammlung übermittelt, wenn Sie Ihre Moodle-Site registrieren. Das ermöglicht es dem Moodle HQ zu verstehen, welche Bereiche in Learning Analytics am häufigsten verwendet werden, und die Ressourcen für die Weiterentwicklung entsprechend zu priorisieren.

Analytics-Einstellungen vornehmen

Die Moodle-Administration kann die Learning-Analytics-Funktionalität auf der Seite Website-Administration > Zusatzoptionen deaktivieren.

Die Einstellungen für das Learning-Analytics-System von Moodle werden auf der Seite Website-Administration > Analytics > Analytics-Einstellungen vorgenommen.

Prozessor für Vorhersagen

Auswahl des Vorhersage-Prozessors

Vorhersage-Prozessoren sind Backends für maschinelles Lernen, die Daten verarbeiten, die von den Zielen und Indikatoren generiert werden und aus diesen verarbeiteten Daten Vorhersagen generieren. Die Moodle-Standardinstallation stellt zwei Vorhersage-Prozessoren zur Verfügung:

PHP-Vorhersage-Prozessor

Der PHP-Vorhersage-Prozessor ist der Standardprozessor. Es gibt keine Systemvoraussetzungen, um diesen Prozessor zu verwenden.

Python-Vorhersage-Prozessor

Der Python-Vorhersage-Prozessor ist mächtiger. Er generiert Grafiken, die die Performanz des Modells erklären. Er erfordert zusätzliche Tools, die auf dem Moodle-Server installiert sein müssen: Python (https://wiki.python.org/moin/BeginnersGuide/Download) und das Python-Paket moodlemlbackend. Das Paket kann auf dem Webserver oder auf einem separaten Server installiert werden.

Installation im Webserver

Das neueste Moodle-Paket ist kompatibel mit Python 3.4, 3.5, 3.6 und 3.7. Beachten Sie, dass das Paket sowohl für den Kommandozeilennutzer (CLI) als auch für den Webserver-Nutzer (z.B. www-data) verfügbar sein sollte.

  • Wenn nötig, installieren Sie Python 3 (und pip für Python 3)
  • Stellen Sie sicher, dass Python 3 verwendet wird, um das moodlemlbackend Paket zu installieren:
   sudo -H python3 -m pip install "moodlemlbackend==2.3.*"
  • Sie müssen auch den Pfad zum Python 3 Executable auf der Seite Website-Administration > Server > Systempfade eintragen:
Systempfad für Python 3
Installation auf einem separaten Server

Die Installation des Python-Pakets auf einem separaten Server hat einige Vorteile gegenüber der Installation auf dem Webserver:

  • erhält das Python Machine Learning (ML) Backend als einen externen Service
  • gewährleistet eine separate Kontrolle der Ressourcen, die der Webserver für den Betrieb von Moodle reserviert und der Ressourcen, die für das das Python ML Backend reserviert sind
  • Sie können denselben ML Server für mehrere Moodle-Sites verwenden. Das ist leichter aufzusetzen und zu warten, als das Backend auf allen Moodle-Servern im Cluster zu installieren.
  • Sie können das Paket als neuen Docker-Container in Ihrer Docker-Umgebung installieren.
  • Sie können das ML Backend vom AWS über das API Gateway und AWS lambda bedienen und die Dateien der trainierten Modelle in S3 speichern.

Auf der anderen Seite kann es zu Verzögerungen beim Verbinden mit dem Python ML Backend Server kommen.

Das Python Backend wird als eine Flask Applikation ausgeliefert. Die Flask Applikation ist Teil des offiziellen moodlemlbackend Python-Pakets und ihr FLASK_APP Skript is webapp im Wurzelverzeichnis des Pakets. Sie können eine andere Konfiguration verwenden, wenn diese besser zu Ihrer Infrastruktur passt.

Neuer Server in Ihrer Infrastruktur

Das Python ML Backend wird als eine Flask Applikation ausgeliefert, die einen WSGI Server (https://wsgi.readthedocs.io/en/latest/what.html) verwendet, der über das WWW bereitgestellt wird. Die offizielle Dokumentation, wie Sie eine Flask Applikation aufsetzen, finden Sie unter https://flask.palletsprojects.com/en/1.0.x/tutorial/deploy/.

  • Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist default:sshhhh (Nutzer: default, Passwort: sshhhh).
  • Setzen Sie die Variable MOODLE_MLBACKEND_PYTHON_DIR auf den Pfad, den Sie verwenden wollen, um Daten zu speichern, die das Paket generiert.
Docker

https://hub.docker.com/r/moodlehq/moodle-mlbackend-python ist das offizielle moodle-mlbackend-python Docker Image. Wir verwenden es im Moodle HQ für interne Tests und Sie können es ebenfalls nutzen. Wenn Sie mehr Kontrolle über das Image haben wollen, kann das https://github.com/moodlehq/moodle-docker-mlbackend-python/blob/master/Dockerfile als Beispiel dienen, um das Python moodlemlbackend Paket zum Laufen zu bringen.

  • Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist default:sshhhh (Nutzer: default, Passwort: sshhhh).
AWS Serverless Service

Sie können die Flask Applikation als Serverless Applikation betreiben, indem Sie das AWS API Gateway und AWS lambda verwenden. Der einfachste Weg ist die Verwendung von Zappa https://github.com/Miserlou/Zappa, um die Flask Applikation aufzusetzen, die im Python ML Paket enthalten ist.

  • Verwenden Sie die Variable MOODLE_MLBACKEND_PYTHON_USERS, um eine kommaseparierte Nutzerliste mit Passwörtern zu erzeugen. Das Format ist default:sshhhh (Nutzer: default, Passwort: sshhhh).
  • Setzen Sie die Variable MOODLE_MLBACKEND_PYTHON_DIR auf den Pfad, den Sie verwenden wollen, um Daten zu speichern, die das Paket generiert.
  • Setzen Sie folgende Umgebungsvariablen, um den S3-Zugriff zu ermöglichen:
    • MOODLE_MLBACKEND_PYTHON_S3_BUCKET_NAME
    • AWS_ACCESS_KEY_ID
    • AWS_SECRET_ACCESS_KEY

Wenn alles eingerichtet ist, können Sie den Python-Vorhersage-Prozessor als Standard oder für ein einzelnes Modell auswählen:

Standard-Vorhersage-Prozessor
Auswahl des Vorhersage-Prozessors für ein einzelnes Modell

Log-Speicher

Ab Moodle 2.7 ist Logdaten Standard der standardmäßige Speicher für Logdaten. Wenn Sie aus irgendwelchen Gründen Daten im alten Legacy-Speicher Logdaten Alt gespeichert haben, dann können Sie diesen hier einstellen, so dass das Analytics-System auf diese Daten zugreift.

Zeitaufteilungsmethode

Die Zeitaufteilungsmethode legt fest, wie oft Einschätzungen generiert werden und wie viele Informationen für diese Berechnung verwendet werden. Wenn Sie geeignete proportionale Zeitintervalle verwenden, können Kurse mit verschiedener Kursdauer verwendet werden, um ein einzelnes Modell zu trainieren.

timesplitting.png

Jede Zeitaufteilungsmethode unterteilt die Kursdauer in Zeitabschnitte. Am Ende jedes so definierten Zeitabschnitts läuft die Vorhersage-Engine und generiert Vorhersagen. Es wird empfohlen, nur die Zeiteinteilungsmethoden zu aktivieren, die Sie tatsächlich verwenden wollen, denn der Vorhersage-Prozess iteriert über alle aktivierten Zeitaufteilungsmethoden und dauert folglich um so länger, je mehr Methoden aktiviert sind.

Ausgabeverzeichnis

outputdir.png

Mit dieser Einstellung legen Sie fest, wo die Daten des Machine Learning Backends gespeichert werden. Stellen Sie sicher, dass dieses Verzeichnis existiert und der Webserver dort Schreibrechte hat. Diese Einstellung kann von Moodle-Sites verwendet werden, die als Cluster betrieben werden, um ein gemeinsames Ausgabeverzeichnis zu nutzen. Dieses Verzeichnis kann von Backends für maschinelles Lernen verwendet werden, um trainierte Algorithmen zu speichern, die später zur Berechnung von Vorhersagen verwendet werden. Der Moodle-Cronjob verhindert, dass Analytics-spezifische Tasks gleichzeitig ausgeführt werden, die die Algorithmen trainieren und daraus Vorhersagen berechnen.

Tasks

Die meisten Analytics-API-Prozesse werden über Tasks ausgeführt. Die Prozesse lesen die Logdaten der Aktivitäten und benötigen etwas Zeit für die Ausführung. Es gibt die Tasks Trainingsmodelle und Modelle vorhersagen auf der Seite auf die Seite Website-Administration (oder im Block Einstellungen > Website-Administration) > Server > Tasks. Es wird empfohlen, die Ausführzeiten zu konfigurieren, so dass diese Tasks jede Nacht ausgeführt werden.

Rollen definieren

Das Moodle Learning Analytics System verwendet einige Fähigkeiten. Die entsprechenden Rechte können für einzelne Rollen auf Systemebene oder in bestimmten Kontexten vergeben oder entzogen werden, um festzulegen, wer Einschätzungen sehen darf.

Um Benachrichtigungen über Einschätzungen zu erhalten und diese Einschätzungen anzusehen, benötigen Nutzer/innen das Recht analytics:listinsights in dem Kontext, den das Modell analysiert. Zum Beispiel wird das Modell Teilnehmer/innen, die Gefahr laufen, aus dem Kurs auszusteigen auf einen Kurskontext angewendet. Einschätzungen werden für jede Einschreibung in den Kursen generiert, die die Kriterien des Modells erfüllen (Kurse mit Kursbeginn-Datum in der Vergangenheit und Kursende-Datum in der Zukunft, mit mindestens einem/r Trainer/in und mindestens einem/r Teilnehmer/in), und diese Einschätzungen werden an alle verschickt, die das Recht analytics:listinsights in dem jeweiligen Kurs haben. Standardmäßig haben die Rollen Trainer/in mit und ohne Bearbeitungsrecht und Manager/in dieses Recht.

Einige Modelle (z.B. Kurse, bei denen die Gefahr besteht, dass sie nicht beginnen) generieren Einschätzungen auf Systemebene. Um Einschätzungen von diesen Modellen zu erhalten, müssen Nutzer/innen eine globale Rolle mit dem Recht analytics:listinsights haben. Standardmäßig ist das für die Manager-Rolle der Fall, wenn sie auf Systemebene zugewiesen wird.

Hinweis: Administrator/innen bekommen nicht automatisch Benachrichtigungen mit Einschätzungen, sie können jedoch Details zu jeder Benachrichtigung im System einsehen. Damit auch Administrator/innen über Einschätzungen benachrichtigt werden, weisen Sie allen Administrator/innen eine zusätzliche Rolle mit dem Recht analytics:listinsights auf Systemebene zu (z.B. die Manager-Rolle).