An awesome personal book review platform where user can share his reviews of books.
Report Bug
ยท
Request Feature
.
Contribute
.
Pull Requests
.
Report Security Issue
.
Fork the Project
Table of Contents
Skill2Salary is a smart salary prediction platform designed to help users estimate their expected salary based on educational background, work experience, and job preferences. Powered by machine learning, the app uses real-world data to make informed predictions and guide users in career planning.
- Salary Prediction Engine: Predicts salaries based on user input such as education, experience, job level, and location.
- Advanced Ensemble Models: Utilizes ensemble techniques like Stacking, Random Forest, and Gradient Boosting for robust predictions.
- Hyperparameter Tuning: Implements both GridSearchCV and RandomizedSearchCV to optimize model performance.
- Streamlit-Based UI: Clean and interactive user interface built entirely with Streamlit for real-time predictions.
- Categorical Feature Encoding: Uses
OrdinalEncoderwith controlled category ordering and handles unknown categories gracefully. - Feature Engineering: Includes derived metrics like experience buckets, combined experience score, and average academic score for improved accuracy.
- Log-Salary Handling: Trained on log-transformed salary data to handle skewed distributions, with inverse transformation for final output.
- Responsive Input Forms: Organizes user inputs into logical sections (education, job, company) for a better user experience.
- Lightweight and Fast: No authentication, no databaseโruns purely as a lightweight local or cloud-hosted app.
- Deployment Ready: Easily deployable on platforms like Render, HuggingFace Spaces, or Streamlit Cloud.
Built with cutting-edge technologies to deliver performance and reliability.
Get started quickly with these easy setup instructions.
Before you begin, make sure you have the following installed and configured:
- Python 3.8+: Download Python
- pip: Comes pre-installed with Python. Used to install Python packages.
- Streamlit: Install using
pip install streamlit(Streamlit Docs) - Scikit-learn: Install using
pip install scikit-learn - Pandas & NumPy: Install using
pip install pandas numpy - Matplotlib or Seaborn (optional): For data visualization
pip install matplotlib seaborn - Git: Download Git to clone the repository or manage version control
- Jupyter Notebook (optional): For experimentation before deployment
pip install notebook
To make the most out of this project, it helps to be familiar with:
- Machine Learning Concepts
- Data Preprocessing & Feature Engineering
- Python & Pandas
- Model Evaluation & Hyperparameter Tuning
Follow these steps to set up the Skill2Salary project locally:
- Clone the Repository
git clone https://github.com/akash85246/Skill2Salary-ml.git
cd Skill2Salary-ml- Create and Activate a Virtual Environment (Optional but recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install Python Dependencies
pip install -r requirements.txtIf you donโt have a
requirements.txt, install manually:
pip install streamlit pandas numpy scikit-learn- Ensure Model Artifacts are Present
Make sure the following files are inside the model/ directory:
model.pklโ Trained ensemble modeloe.pklโ OrdinalEncoder used during trainingselector.pklโ Feature selector (e.g., SelectKBest)columns.pklโ List of columns used during training
These files are required for prediction and must match the training pipeline.
- Run the Streamlit App
streamlit run app.py- (Optional): Explore the Jupyter Notebooks for Training & Tuning
jupyter notebookYou can explore training workflows like feature selection, model tuning (GridSearchCV, RandomizedSearchCV), and ensemble building.
๐ Note: This project doesn't require any database or authentication setup. It's a lightweight, ML-powered web app built purely with Streamlit for UI and scikit-learn for prediction.
Using the Skill2Salary application is simple and intuitive. Here's how to get started:
-
Launch the App
streamlit run app.py
-
Fill in Your Details
Provide your:- Education level
- 10th and 12th grade marks
- College CGPA
- Work experience in years
- Job seniority level
- Company size and location
- Year you started working
-
Click on the "๐ Predict Salary" Button
The model processes your input and returns a salary estimate based on advanced ensemble regression models.
- The app uses a Stacked Ensemble Regressor trained on industry-level salary datasets.
- Features are processed using:
OrdinalEncoderwith predefined categories.SelectKBestfor feature selection.
- Log-transformed salaries are predicted and converted back using
np.expm1()for more accurate skewed distribution modeling.
- Use real or realistic inputs to get meaningful results.
- The model was trained with robust hyperparameter tuning (GridSearchCV and RandomizedSearchCV).
- Try different combinations of job roles and experience levels to understand how they affect salary.
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
-
Fork the Project
- Click the "Fork" button at the top-right corner of this page to create a copy of the repository in your GitHub account.
-
Clone the Repository
- Clone your forked repository to your local machine:
git clone https://github.com/your-username/Skill2Salary-ml.git
- Clone your forked repository to your local machine:
-
Create Your Feature Branch
- Navigate to your project folder and create a new branch for your feature:
git checkout -b feature/AmazingFeature
- Navigate to your project folder and create a new branch for your feature:
-
Commit Your Changes
- After making the necessary changes, commit them:
git commit -m 'Add some AmazingFeature'
- After making the necessary changes, commit them:
-
Push to the Branch
- Push your changes to your forked repository:
git push origin feature/AmazingFeature
- Push your changes to your forked repository:
-
Open a Pull Request
- Go to the original repository (
akash85246/Skill2Salary-ml), and open a pull request to merge your feature branch into themainbranch. - Provide a brief description of the changes you've made and submit the pull request for review.
- Go to the original repository (
Akash Rajput - @akash_rajp91025 - akash.rajput.dev@gmail.com
Project Link: https://github.com/akash85246/Skill2Salary-ml
