学生リスク分析と予測システム(Student-Risk-Analysis-and-Prediction)

AI/ML

概要

Student-Risk-Analysis-and-Prediction は、学生の成績データと属性情報から「リスクのある学生」を識別するためのシンプルかつ実用的なシステムです。リポジトリには前処理用スクリプト(preprocess_students.py)、ラベル付け済み・クリーン済みのCSVデータ(StudentsPerformance_Labeled.csv / StudentsPerformance_Cleaned.csv)、およびStreamlitで構築されたウェブアプリ(student_risk_app.py)が含まれています。Random Forest を用いた分類器により、特徴量の重要度を把握して解釈性を確保しつつ、教師や支援者が利用できるインタラクティブなダッシュボードを通じて個別学生のリスク予測や集団分析が行えます。教育現場での早期介入支援を想定したプロトタイプ実装です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 0
  • ウォッチャー数: 5
  • コミット数: 3
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • データ前処理とラベル化:欠損値処理やカテゴリ変数の整理、リスク判定基準に基づくラベル付け処理を含むスクリプトを提供。
  • 機械学習モデル:Random Forest による分類で、予測と特徴量重要度の可視化が可能。
  • Streamlit ダッシュボード:ブラウザ上でインタラクティブにデータを絞り込み、個別/集団のリスク診断や可視化結果を確認できるUI。
  • 教育現場向けワークフロー:教師やカウンセラーが利用しやすい形で、早期介入の判断材料を提示することを目指す。

技術的なポイント

本リポジトリはデータ処理からモデル運用までのシンプルなパイプラインを提示しています。まず preprocess_students.py によって生データ(StudentsPerformance 系のCSV)を読み込み、カテゴリ変数の整形(例:性別、民族、親の教育レベル、ランチ種別、試験準備有無など)と数値スコア(数学・読解・作文など)のクリーニングを行い、モデル学習用のラベル(リスク/非リスク)を付与したファイルを出力します。ラベル付けは閾値ベース(合計点・平均点や特定科目の低得点)で行われることが多く、本リポジトリも同様のルールで学生を分類していると想定されます。

学習フェーズでは Random Forest(決定木のアンサンブル)を採用しており、欠損値や非線形関係に強く、カテゴリ変数をワンホットまたはラベルエンコードで扱うことで高い頑健性を得られます。Random Forest は特徴量重要度を出力できるため、どの属性(親の教育水準、試験準備、特定科目の低得点など)がリスク判定に寄与しているかを可視化しやすく、教育現場での説明性に寄与します。クラス不均衡が想定される場合は、サンプリング調整(オーバーサンプリング、アンダーサンプリング)やクラス重みの設定で対応可能です。

可視化・操作面は Streamlit により実現されています。student_risk_app.py では、フィルター操作(年齢帯、性別、親の教育レベルなど)や個別学生のプロフィール入力から即時に予測を返すインターフェースが提供される構成です。推論は学習済みモデルを読み込んで行い、混同行列や分類レポート、ROC曲線や特徴量重要度の棒グラフといった基本的な評価指標を表示することで、モデルの信頼性を評価できます。

拡張のポイントとしては、モデル解釈性を高めるための SHAP 値導入、時間経過を考慮した時系列型のリスク監視、モデルの継続学習(新しい学期データでの再学習)や、API化して既存の学務システムと連携するためのバックエンド実装(FastAPI など)が考えられます。また、データプライバシーに配慮して匿名化やアクセス制御を組み込むことも実運用では重要です。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: リポジトリの概要や使用方法の記載(file)
  • StudentsPerformance_Cleaned.csv: 前処理で生成されたクリーンなデータ(file)
  • StudentsPerformance_Labeled.csv: リスクラベル付与済みデータ(file)
  • preprocess_students.py: データ読み込み・クリーニング・ラベル付けの処理を行うスクリプト(file)
    • 期待される処理内容:カテゴリ変数の整形、スコアの集計、閾値によるリスクラベル作成、エクスポート
  • student_risk_app.py: Streamlit ベースのウェブアプリ本体(file)
    • 期待される機能:データのフィルタリング、単一学生の予測入力、モデル読み込みと推論、結果の可視化(特徴量重要度など)

まとめ

教育支援のための実用的なプロトタイプで、データ前処理から可視化まで一通り揃っている点が評価できるリポジトリです。(約50字)

リポジトリ情報:

READMEの抜粋: The Student Risk Prediction System is an intelligent, web-based application developed to identify students who are at risk of academic failure using data mining and machine learning techniques. The system analyzes student performance and background information such as academic scores, demographic attributes, parental education level, lunch type, and test preparation status to detect hidden patterns and classify students into risk categories.

The application provides an interactive dashboard whe…