学生の副専攻推薦システム (Student-Minor-Prediction)
概要
Student-Minor-Predictionは、学生のスキル習熟度、興味・好み、キャリア志向などのアンケートデータを用いて、最も適した副専攻(minor)を機械学習で予測・推薦するプロジェクトです。データはGoogleフォームで収集され、前処理→探索的解析→モデル構築のワークフローをJupyter Notebookで整備。分類モデルを中心に、特徴量エンジニアリングや評価指標を通して推薦精度の向上を図る構成になっており、教育機関や学生向けの意思決定支援に応用できます。
リポジトリの統計情報
- スター数: 8
- フォーク数: 4
- ウォッチャー数: 8
- コミット数: 5
- ファイル数: 4
- メインの言語: Jupyter Notebook
主な特徴
- アンケートベースの実データ活用: Googleフォームで収集した実学生データを使用しており、実運用に近いデータ前処理と分析が学べます。
- Notebook中心のワークフロー: Preprocessing、Analysis、Modelの各Notebookが分かれており、前処理→解析→学習の流れを追いやすい構成です。
- シンプルな推薦アプローチ: 学生一人ひとりのスキルスコアや興味を入力特徴量として分類モデルで最適な副専攻を予測する、分かりやすい設計。
- 再現性と拡張性: データはGoogle Driveで管理される想定で、モデルや特徴量の追加、交差検証やハイパーパラメータ最適化など拡張が容易です。
技術的なポイント
本プロジェクトの技術的要点はデータ収集からモデル評価までの一連の流れがNotebookベースで整理されている点にあります。データセットはGoogleフォームから得たスキル熟練度(数値スコア)、興味・嗜好(カテゴリ)、キャリアゴール(分類ラベル)と選択された副専攻ラベルを含み、欠損値処理、カテゴリエンコーディング(One-HotやLabel Encoding)、スケーリングなどの前処理が重要です。特徴量エンジニアリングでは、スキル間の相互作用や興味スコアの合成指標、キャリア目標とのクロスフィーチャーなどが有用で、これらを追加することでモデルの判別力が向上します。
Model.ipynbでは複数の分類器(例: ロジスティック回帰、決定木、ランダムフォレスト、場合によっては勾配ブースティング)が試験されることが想定され、クロスバリデーションと混同行列、精度(Accuracy)だけでなく精度・再現率・F1スコアやクラス別の評価を用いてバランスの取れた評価を行うべきです。クラス不均衡がある場合は、サンプリング(SMOTE等)やクラス重みの調整が有効です。
Notebookによる実験ログ、モデル保存(pickleやjoblib)、評価結果の可視化(ヒートマップや特徴量重要度の棒グラフ)を組み合わせることで再現性と説明性を確保できます。さらに実運用を考えると、ユーザー入力フォーム→前処理→予測API(Flask/FastAPI)→フロントエンドというデプロイの流れを想定し、モデルの説明(SHAPやLIME)を導入して推奨理由を提示することが推奨されます。データのプライバシーと偏りにも注意し、収集時の同意や匿名化、バイアス診断を行う設計が望ましいです。(約700字)
プロジェクトの構成
主要なファイルとディレクトリ:
- Analysis.ipynb: file
- 探索的データ解析(EDA)を行うNotebook。分布確認、欠損値の傾向、カテゴリ変数の分布、相関行列や可視化による関係性の把握を実施。
- Model.ipynb: file
- 分類モデルの学習・評価を行うNotebook。アルゴリズム比較、交差検証、混同行列やF1スコアによる評価、モデル保存の手順が含まれている想定。
- Preprocessing.ipynb: file
- データの前処理に特化したNotebook。欠損値処理、エンコーディング、スケーリング、特徴量生成(例:スキル合算スコア、興味カテゴリのワンホット)を行い、モデルに投入可能な形式へ変換。
- README.md: file
- プロジェクトの目的、データ収集方法(Googleフォームのリンク記載)、データ配置(Google Driveにホスト)や実行手順、依存関係の簡単な説明を含む。データが大きくGit管理できないため外部ホスティングを利用している旨が記載されています。
追加で想定される実行手順:
- Google Driveからデータをダウンロード(READMEの指示に従う)。
- Preprocessing.ipynbを実行しデータクリーニングと特徴量作成を行う。
- Analysis.ipynbでデータの理解を深め、仮説を立てる。
- Model.ipynbでモデル学習と評価、最終モデルの保存を行う。
拡張ポイントとしては、より多様な特徴量(履修履歴、成績、課外活動)、ハイパーパラメータ最適化(Grid/Random/Optuna)、モデル解釈(SHAP)やWebアプリ化(Streamlit/FastAPI)などが挙げられます。
まとめ
実践的な学生データを使った推薦パイプラインが学べる、教育分野向けの機械学習リポジトリです(約50字)。
リポジトリ情報:
- 名前: Student-Minor-Prediction
- 説明: Student Minor Recommendation System using Machine Learning Predicts the most suitable academic minor for students based on skills, interests, and career goals.
- スター数: 8
- 言語: Jupyter Notebook
- URL: https://github.com/Harvindar23/Student-Minor-Prediction
- オーナー: Harvindar23
- アバター: https://avatars.githubusercontent.com/u/134523367?v=4
READMEの抜粋:
Student-Minor-Prediction
Student Minor Recommendation System using Machine Learning Predicts the most suitable academic minor for students based on skills, interests, and career goals.
📊 Dataset
The dataset was collected via a Google Form from students and includes:
- Skill proficiency scores
- Interests and preferences
- Career goals
- Minor chosen by students form link : https://forms.gle/ExTXAjbAodoEtHoC6 Due to size constraints, the dataset is hosted on Google Drive.
🔗 Datase…