Skip to content

shreyagoyal9/Smart-Career-Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Smart Career Recommendation System

A machine learning project that predicts a suitable career/job role for a student based on academic performance, technical skills, extracurricular activities, and personal traits.

The notebook explores the problem in two passes: an initial exploration on a general "career prediction" dataset, followed by the main pipeline — feature selection + model comparison (Decision Tree, SVM, XGBoost) — trained on a student-performance dataset, ending in a simple interactive prediction script.

Overview

  • Input: Student academic scores (SSLC, HSC, CGPA), project/lab experience, skill ratings (aptitude, programming, problem-solving, etc.), extracurricular activity, learning style, and college-related attributes.
  • Output: A predicted career/job role (e.g. Database Developer, Portal Administrator, Systems Security Administrator, Business Systems Analyst).
  • Approach: Categorical features are label/ordinal-encoded, the most relevant features are selected via Chi-Squared and Mutual Information statistics, and several classifiers are trained and compared.

Datasets

Dataset Source Used for
career_pred.csv vaishnavipatil29/Career-Guidance-ML-Project Initial data exploration
career_compute_dataset.csv Nantha-1998/404-CODER Main model training pipeline

Pipeline

  1. Load data — read the student dataset directly from a raw GitHub CSV URL with pandas.
  2. Clean data — drop rows with missing values.
  3. Encode features — convert categorical/object columns to numeric codes (category dtype → .cat.codes, plus LabelEncoder for the target ROLE and learning_style).
  4. Feature selection — score features with SelectKBest using Chi-Squared (chi2) and Mutual Information (mutual_info_classif) to keep the most predictive attributes.
  5. Train/test split — separate splits are made per model (different test_size/random_state) for Decision Tree, SVM, and XGBoost.
  6. Train & evaluate models:
    • Decision Tree (with and without feature selection)
    • SVM (with and without feature selection)
    • XGBoost
  7. Compare accuracies — results are plotted in a bar chart.
  8. Predict — an interactive script collects a new student's feature values from the console and outputs the predicted role using the trained Decision Tree model.

Model accuracy comparison (from the notebook run)

Model Accuracy
Decision Tree (without feature selection) 40%
Decision Tree (with feature selection) 50%
SVM (without feature selection) 60%
SVM (with feature selection) 70%
XGBoost 93.3%

Architecture

flowchart TD
    A["Raw CSV Dataset\ncareer_compute_dataset.csv"] --> B["Data Cleaning\ndropna()"]
    B --> C["Categorical Encoding\ncat.codes / LabelEncoder"]
    C --> D["Feature / Target Split\nX (25 features), y (ROLE)"]

    D --> E["Feature Selection\nChi-Squared & Mutual Info\n(SelectKBest)"]

    E --> F1["Train/Test Split\n(Decision Tree)"]
    E --> F2["Train/Test Split\n(SVM)"]
    E --> F3["Train/Test Split\n(XGBoost)"]

    F1 --> G1["Decision Tree\nClassifier"]
    F2 --> G2["SVM\nClassifier"]
    F3 --> G3["XGBoost\nClassifier"]

    G1 --> H["Accuracy Comparison\n(bar chart)"]
    G2 --> H
    G3 --> H

    G1 --> I["Best / Selected Model"]
    I --> J["Interactive Prediction\n(console input per feature)"]
    J --> K["Predicted Career Role"]
Loading

Tech Stack

  • Language: Python (Jupyter Notebook)
  • Data handling: pandas, numpy
  • Visualization: matplotlib, seaborn
  • Machine learning: scikit-learn (LabelEncoder, OrdinalEncoder, SelectKBest, chi2, mutual_info_classif, DecisionTreeClassifier, SVC, train_test_split, accuracy_score), imbalanced-learn (SMOTE), xgboost

Getting Started

  1. Clone the repository:
    git clone https://github.com/shreyagoyal9/Smart-Career-Recommendation-System.git
    cd Smart-Career-Recommendation-System
  2. Install the dependencies:
    pip install numpy pandas scikit-learn matplotlib seaborn xgboost imbalanced-learn
  3. Open and run the notebook:
    jupyter notebook Smart-Career-Recommendation-System.ipynb
  4. Run the cells in order — the last cells prompt for feature values in the console and print the predicted career role.

Notes

  • The dataset is loaded directly from raw GitHub URLs, so an internet connection is required to run the notebook.
  • Feature and target columns are entirely numeric/label-encoded before modeling — no free-text NLP is involved.
  • XGBoost gave the best accuracy in the notebook's experiments, though results depend on the random train_test_split seed used for each model.

About

AI-powered career recommendation system that predicts suitable job roles based on students' academic performance, technical skills, and personal traits using Machine Learning. Compares Decision Tree, SVM, and XGBoost models.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages