アナリティクスの使用

提供:MoodleDocs
2020年10月23日 (金) 07:42時点におけるToshihiro KITA (トーク | 投稿記録)による版 (→‎指標)
移動先:案内検索

概要

MoodleラーニングアナリティクスAPIは、非常に多様なモデルの基礎となるオープンシステムです。モデルには、指標(別名予測子)、ターゲット(予測しようとしている結果)、洞察(予測自体)、通知(洞察の結果として送信されるメッセージ)、およびアクション(メッセージの受信者に提供されるメッセージ)を含めることができます。

learning analytics components.png

ほとんどの学習分析モデルは、デフォルトでは有効になっていません。モデルを使用できるようにすることは、モデルがサポートすることを意図している制度上の目標を考慮した後で行う必要があります。分析モデルを選択または作成する場合、次の手順が重要です。

  • どのような結果を予測したいですか?または、どのプロセスを検出しますか? (ポジティブまたはネガティブ)
  • その結果/プロセスをどのように検出しますか?
  • その結果/プロセスを予測するのに役立つと思われる手がかりは何ですか?
  • 結果/プロセスの可能性が非常に高い場合はどうすればよいですか?ありそうもない?
  • 誰に通知する必要がありますか?どのような通知を送信する必要がありますか?
  • 通知時にどのような行動の機会を提供する必要がありますか?

Moodleは、同じコース内であっても、一度に複数の予測モデルをサポートできます。これは、複数のモデルのパフォーマンスと精度を比較するためのA/Bテストに使用できます。

Moodleラーニングアナリティクスは2種類のモデルをサポートしています。

  • 機械学習 ベースのモデル(予測モデルを含む)は、サイト履歴を使用してトレーニングされたAIモデルを利用して、学習プロセスの隠れた側面を検出または予測します。
  • "静的" モデルは、Moodleサイトの状況を検出し、選択したユーザに通知する、よりシンプルなルールベースのシステムを使用しています。

Moodleコアには、脱落リスクのある学生 と静的モデル 直近の活動期限 および 授業なし の3つのモデルが付属しています。アナリティクスAPIを使用して、追加の予測モデルを作成できます。または新しいWeb UIを使用します。各モデルは、選択されたいくつかの指標に基づいて、単一の特定の ターゲット または結果(望ましいか望ましくないかにかかわらず)の予測に基づいています。

システムモデルは、 サイト管理 > アナリティクス > 分析モデル から表示および管理できます。

manage models.png

既存のモデル

Moodleコアには、脱落リスクのある学生 と静的モデルの3つのモデルが付属しています。プラグインをインストールするか、Web UIを使用して、他のモデルをシステムに追加できます(以下を参照)。既存のモデルは、サイト管理の 分析モデル ページから調べて変更できます。

analytics models.png

これらは、既存のモデルで実行できるアクションの一部です。

  • 予測を取得する システムで利用可能な新しいデータを使用して機械学習アルゴリズムをトレーニングし、進行中のコースの予測を取得します。 予測は進行中のコースに限定されません-これはモデルによって異なります。
  • 洞察表示 システムで利用可能なデータを使用して機械学習アルゴリズムをトレーニングすると、分析可能 ごとにここに洞察(予測)が表示されます。 含まれているモデル 脱落リスクのある学生では、コースごとに洞察を選択できます。 予測は進行中のコースに限定されません-これはモデルによって異なります。
  • 評価 これはリソースを大量に消費するプロセスであり、サイトで onlycli 設定がチェックされている場合は表示されません(デフォルト)。詳細については、モデルの評価を参照してください。
  • ログ モデルの精度や、ROC曲線、学習曲線グラフ、テンソルボードログディレクトリ、モデルのマシューズ相関係数などの機械学習バックエンドによって生成されたその他の技術情報を含む、以前の評価ログを表示します。利用可能な情報は、使用中の機械学習バックエンドによって異なります。
    log info.png
  • 編集 指標のリストまたは時間分割方法を変更することにより、モデルを編集できます。モデルが変更されると、以前の予測はすべて削除されます。仮定に基づくモデル(静的モデル)は編集できません。
  • 有効化/無効化 これにより、モデルでトレーニングおよび予測プロセスを実行できます。システムで利用可能な新しいデータを使用して機械学習アルゴリズムをトレーニングし、進行中のコースの予測を取得するスケジュールされたタスクは、無効なモデルをスキップします。無効にされたモデルによって生成された以前の予測は、モデルが再び有効になるまで利用できません。


  • エクスポート サイトトレーニングデータをエクスポートして、パートナー機関と共有したり、新しいサイトで使用したりします。モデルのエクスポートアクションを使用すると、サイト固有のデータを公開せずに、指標と重みに関するモデルデータを含むcsvファイルを生成できます。さまざまな種類のサイトでのモデルの価値を評価するために、これらのモデルファイルの提出をお願いします。詳細については、Learning Analyticsコミュニティを参照してください。
  • 無効なサイト要素 このモデルで分析できないサイトの要素に関するレポート
  • 予測のクリア すべてのモデル予測とトレーニングデータをクリアします

コアモデル

脱落リスクのある学生

このモデルは、学生のエンゲージメントが低いことに基づいて、Moodleコースを修了しない(脱落する)リスクのある学生を予測します。このモデルでは、ドロップアウト の定義は コースの最終四半期に学生の活動がない です。予測モデルは、学生エンゲージメントのCommunity of Inquiryモデルを使用しており、次の3つの部分で構成されています。

この予測モデルは、さまざまなコースから結論を分析して導き出し、それらの結論を適用して新しいコースに関する予測を行うことができます。モデルは、過去に提供されたコースの正確な複製での学生の成功についての予測を行うことに限定されません。ただし、いくつかの制限があります。

  1. このモデルは、予測を行うために一定量のMoodle内データを必要とします。現時点では、コアMoodle活動のみが指標セットに含まれています(以下を参照)。 (時間分割方法に応じて)“タイムスライス” ごとにいくつかのコアMoodle活動を含まないコースは、このモデルでの予測サポートが不十分になります。この予測モデルは、完全にオンラインのコース、または実質的なオンラインコンポーネントを備えた “ハイブリッド” または “ブレンド” コースで最も効果的です。
  2. この予測モデルは、コースの開始日と終了日が固定されていることを前提としており、ローリング登録コースで使用するようには設計されていません。幅広いコースタイプをサポートするモデルは、Moodleの将来のバージョンに含まれる予定です。このモデル設計の前提のため、このモデルを使用するには、各コースのコース開始日と終了日を適切に設定することが非常に重要です。過去のコースと進行中のコースの両方の開始日と終了日が適切に設定されていない場合、予測は正確ではありません。コース終了日フィールドはMoodle3.2でのみ導入され、一部のコースは過去にコース開始日を設定していない可能性があるため、コマンドラインインターフェーススクリプトを含めます。
$ admin/tool/analytics/cli/guess_course_start_and_end.php 

このスクリプトは、学生の登録と学生の活動ログを調べて、過去のコースの開始日と終了日を推定しようとします。このスクリプトを実行した後、推定開始日と終了日のスクリプト結果が適切に正しいことを確認してください。

直近の活動期限

静的な “直近の活動期限” モデルは、期限が迫っている活動をチェックし、ユーザのカレンダーページに出力します。

授業なし

このモデルの洞察は、開始日が近づいているコースで教育活動が行われないコースをサイト管理者に通知します。これは単純な 静的 モデルであり、予測を返すために機械学習バックエンドを使用しません。それは仮定に基づいて予測を行います。例えば、学生がいない場合は授業はありません。

モデルの作成と編集

新しい機械学習モデルは、アナリティクスAPIを使用するか、エクスポートされたモデルを別のサイトからインポートするか、新しいWeb UIを使用して作成できます。

new model.png

デフォルト モデル(Moodleコアに同梱)を削除すると、作成メニューからリストアできます。 (注:現時点では、静的 モデルをWeb UIを使用して作成することはできません。)

Web UIを介して定義できるモデルには、次の4つのコンポーネントがあります。

ターゲット

create model 2.png

ターゲットは “既知の善” を表します。これについては、非常に強力な価値の証拠があります。ターゲットは、教育機関のカリキュラムの優先順位に合わせて慎重に設計する必要があります。各モデルには単一のターゲットがあります。 “アナライザー”(ターゲットが評価されるコンテキスト)は、ターゲットの選択によって自動的に制御されます。詳細については、ラーニングアナリティクスのターゲットを参照してください。

指標

指標は、ターゲットの予測に役立つ可能性のあるデータポイントです。モデルに多くの指標を自由に追加して、ターゲットを予測するかどうかを確認できます。唯一の制限は、データがMoodle内で利用可能であり、モデルのコンテキスト(ユーザ、コースなど)に接続されている必要があることです。機械学習の “トレーニング” プロセスにより、モデル内の各指標に与える重みが決まります。

生産モデルに含めるすべての指標が明確な目的を持ち、参加者が解釈できることを確認したいと思います。特に、それらが規範的または診断上の決定を行うために使用される場合はそうです。

指標はデータから構築されますが、一貫性のある再利用可能な指標を作成するには、データポイントを処理する必要があります。多くの場合、イベントは何らかの方法でカウントまたは結合されますが、指標を定義する他の方法も可能であり、後で説明します。データポイントの処理方法には、指標に影響を与える重要な仮定が含まれます。特に、指標は絶対的である場合があります。つまり、コンテキスト内の他のサンプルが何であっても、指標の値は同じままです。つまり、指標は、コンテキスト内の他のサンプルとサンプルを比較します。

詳細については、ラーニングアナリティクスの指標を参照してください。

indicators.png

分析間隔

analysis intervals.png

分析間隔は、洞察を生成するためにモデルを実行する頻度と、各生成サイクルに含まれる情報の量を制御します。選択のためにデフォルトで有効になっている2つの分析間隔は、“四半期” と “四半期累積” です。どちらのオプションでも、モデルはコースの第1、第2、第3、第4四半期の後に4回実行されます(最終的な実行は、実際の結果に対する予測の精度を評価するために使用されます)。違いは、含まれる情報の量にあります。 “四半期” には、コースの最新の四半期の情報のみが予測に含まれます。 “四半期累積” には、最新の四半期とそれ以前のすべての四半期が含まれ、より正確な予測を生成する傾向があります(ただし、実行にはより多くの時間とメモリが必要になる場合があります)。 Moodleラーニングアナリティクスには、アナリティクス設定パネルから有効にすることを選択した場合、コアに “10分の1” および “10分の1の累積” オプションも含まれています。これらは、より頻繁に予測を生成します。

  • 単一範囲 は、予測が1回行われることを示しますが、時間の範囲、たとえばコース終了時の1つの予測が考慮されます。予測は範囲の最後で行われます。
  • 今後... は、モデルが特定の瞬間のデータのスナップショットに基づいて洞察を生成することを示します。たとえば、授業なし モデルは、現在割り当てられている教師または学生がいるかどうかを確認します。学期開始の1週間前にコースを作成し、その空のコースでは授業が行われない可能性があることをサイト管理者に警告する1つの洞察を発行します。
  • すべての前の... (以前の "累積")と 最後の... メソッドは、予測に含まれるデータの量が異なります。 前のすべての四半期最後の四半期 の両方の予測は、期間の各四半期(コースなど)の終わりに行われますが、最後の四半期 では、最新の四半期の情報のみが予測に含まれます。一方、前のすべての四半期 では、現在までのすべての情報が予測に含まれています。

単一範囲 および 時分割なし メソッドには時間制約がありません。モデルにはさまざまな制限が適用されますが、これらは次にスケジュールされたタスクの実行中に実行されます(たとえば、トレーニングまたはコース内のデータに使用するためにコースを終了し、学生が予測を取得するために使用する必要があります...)。'単一範囲' と '分割なし' は、コースを脱落するリスクのある学生には適していません。これらは、適格なサンプルごとに1つの予測のみを行うように設計された '授業なし' や 'スパマーユーザ' などのモデルで使用することを目的としています。これを例で説明すると、'授業なし' モデルは '単一範囲' 分析間隔を使用します。ターゲットクラス(モデルのメインPHPクラス)は、来週中に開始されるコースのみを受け入れます。コースの '授業なし' の洞察を提供すると、そのコースの '授業なし' の洞察は提供されなくなります。

'単一範囲' と '分割なし' の違いは、'単一範囲' を使用して分析されたモデルは、分析可能な要素(リスクモデルの学生のコース)の開始日と終了日に制限されるのに対し、'分割なし' にはいつでも制約があり、システムで利用可能なすべてのデータが指標の計算に使用されます。

:上記の例はコースを参照していますが、分析間隔は任意の分析可能な要素で使用できます。たとえば、登録には開始日と終了日を設定できるため、分析間隔を適用して、登録の側面に関する予測を生成できます。開始日と終了日がない分析可能な要素の場合、異なる分析間隔が必要になります。たとえば、毎週 の分析間隔を、前の週の活動に基づいて、ユーザが将来システムにログインする可能性があるかどうかを予測することを目的としたモデルに適用できます。

予測プロセッサ

この設定は、モデルの推定に使用される機械学習バックエンドとアルゴリズムを制御します。 Moodleは現在、2つの予測プロセッサをサポートしています。

  • PHP機械学習バックエンド-php-mlを使用してロジスティック回帰を実装します(Moodleによる寄稿)
  • Python機械学習バックエンド-TensorFlowを使用して単一の隠れ層フィードフォワードニューラルネットワークを実装します。

サイトで有効になっている予測プロセッサからのみ選択できます。

regression.png
ffnn.png

各予測プロセッサは、将来、複数のアルゴリズムをサポートする可能性があります。

モデル名の変更

モデル名は、モデルによって生成された洞察を識別するために使用され、デフォルトでは、ターゲット名と同じです。モデルのリストでモデル名の横にある 鉛筆 アイコンをクリックすると、これを編集できます。

edit model name.png

トレーニングモデル

機械学習ベースのモデルには、サイトの以前のデータを使用したトレーニングプロセスが必要です。静的 モデルは、事前定義されたルールのセットを利用するため、トレーニングする必要はありません。

機械学習ベースの分析モデルには、主に2つのカテゴリがあります。 監視あり監視なし です。

  • 監視ありモデルは、ターゲット値がすでに特定されているデータセットを使用してトレーニングする必要があります。たとえば、モデルがコースの完了を予測する場合、モデルは、既知の完了ステータスを持つ一連のコースと登録についてトレーニングする必要があります。
  • 監視なしモデルは、既存のデータのパターンを探します。たとえば、コースでの行動の類似性に基づいて学生をグルーピングします。

現時点では、Moodleラーニングアナリティクスは監視ありモデルのみをサポートしています。

将来、Moodleコアのインストールに事前トレーニング済みモデルを含めることを望んでいますが、現時点では、外部で使用するためにモデルをトレーニングするのに十分なデータセットがありません。 (この取り組みにデータを提供したい場合は、Moodle Learning Analytics Working Groupを参照してください。)

トレーニングデータ

モデルコードには、トレーニング および 予測 データセットの基準が含まれています。たとえば、脱落リスクのある学生モデルのトレーニングに使用できるのは、登録済みの学生と過去の終了日があるコースのみです。これは、コースが終了するまで学生が脱落したかどうかを判断できないためです。一方、このモデルで予測を行うには、開始されたがまだ終了していない、学生が登録されたコースが必要です。

トレーニングセットは、ターゲットのphpコードで定義されています。モデルは、サイトにトレーニング基準に一致する十分なデータが含まれている場合にのみトレーニングできます。ほとんどのモデルは、分析されているイベントをカバーする期間のMoodleログデータを必要とします。たとえば、脱落リスクのある学生モデルは、トレーニング基準を満たすコースでの学生の活動をカバーするログデータがある場合にのみトレーニングできます。アーカイブ システムでモデルをトレーニングしてから、本番システムでモデルを使用することができます。

モデルの評価

model menu evaluate.png

これは 手動 リソース集約型プロセスであり、サイトで onlycli 設定がチェックされている場合(デフォルト)、Web UIからは表示されません。

このプロセスは、モデルの有効化またはトレーニングとは独立して実行でき、Moodleにサイトで利用可能なトレーニングデータを集め、すべての指標とターゲットを計算し、結果のデータセットを機械学習バックエンドに渡します。このプロセスでは、データセットをトレーニングデータとテストデータに分割し、その精度を計算します。評価プロセスでは、非常に古い場合でも、サイトで入手可能なすべての情報が使用されることに注意してください。このため、サイトの状態は時間とともに変化するため、トレーニングデータが利用可能になった直後に指標がより確実に計算されるため、評価プロセスによって返される精度は実際のモデルの精度よりも低くなる可能性があります。精度を説明するために使用されるメトリックは、重み付けされた F1 score です。

本番サイトで有効にする前に、すべての機械学習モデルを評価することをお勧めします。

モデル評価プロセスをコマンドラインから強制的に実行するには:

$ admin/tool/analytics/cli/evaluate_model.php --helpオプションを使用して、パラメーターを確認します。

Moodleサーバにリモートで接続している場合は、プロセスをバックグラウンドで実行してデタッチすることをお勧めします。そのため、セッションからログアウトした場合(または接続がタイムアウトした場合)もプロセスは実行され続けます。これは、bashを使用したLinuxでの例です。

# php evaluate_model.php --modelid=4 --analysisinterval='\core\analytics\time_splitting\deciles_accum' > eval.log &
# jobs
[1]+  Running                 php evaluate_model.php --modelid=4 --analysisinterval='\core\analytics\time_splitting\deciles_accum' > eval.log &
# disown -h %1

これにより、リモートシェルが切断された後もプロセスを実行し続けることができます。詳細については、OSとシェルのドキュメントを参照してください。

小規模なサイトでは、アナリティクス設定ページで 'onlycli' のチェックを外して、分析モデルページからモデルを評価できます。ただし、これは生産現場では実行できません。

評価結果を確認する

model menu log.png

評価ログにアクセスすると、モデルトレーニングプロセスの結果を確認できます。

model log.png
log info.png

評価の完了、モデルの精度、およびモデルの変動性に関する警告を確認してください。

invalid site elements.png

無効なサイト要素 リストをチェックして、分析に含まれた、または除外されたサイト要素を確認することもできます。このレポートに予期しない要素が多数表示されている場合は、データを確認する必要がある可能性があります。たとえば、コースに適切な開始日と終了日が設定されていない場合、または登録データが削除されている場合、システムはそれらのコースのデータをモデルトレーニングプロセスに含めることができない場合があります。

モデルのエクスポートとインポート

モデルは、あるサイトからエクスポートして別のサイトにインポートすることもできます。

export menu.png

モデルのエクスポート

モデルのトレーニングに使用されたデータ、またはモデル構成とトレーニングされたモデルの重みをエクスポートできます。

export dialogue.png

:モデルの重みは完全に匿名であり、個人を特定できるデータは含まれていません。これは、プライバシー規制を心配することなく、研究者とそれらを共有することが安全であることを意味します。

モデルのインポート

モデルが重み付きでインポートされる場合、サイト管理者は、サイトデータを使用してトレーニング済みモデルを評価するか、現在のサイトデータを使用してモデルを再トレーニングすることによってモデル構成を評価するかを選択できます。

import model.png
evaluate model.png