Grade Predictor Application Overview The Grade Predictor Application is a PyQt5-based graphical user interface (GUI) tool that predicts final grade percentages based on the hours spent studying per week. The application utilizes a simple linear regression model, implemented from scratch using gradient descent, to establish the relationship between study hours and grades. Users can input their study hours and expected final grade, and the application will update the dataset while visualizing the regression line and user input on a plot.
Features User Input: Allows users to enter their hours spent studying, expected final grade percentage, and professor's name. Dynamic Plotting: Displays a scatter plot of the training data, the linear regression line, and user input predictions. CSV Integration: Appends user input data to a CSV file for future analysis. Gradient Descent Implementation: Implements gradient descent to optimize the linear regression parameters (slope and intercept). Technologies Used Python 3.x PyQt5 Pandas NumPy Matplotlib Scikit-learn (for train-test splitting) Installation Clone or download the repository.
Ensure you have Python 3.x installed on your machine.
Install the required packages using pip:
bash Copy code pip install pandas numpy matplotlib PyQt5 scikit-learn Update the file path in the code to point to your dataset (grades.csv).
Usage Run the application using the following command:
bash Copy code python grade_predictor.py Enter the hours spent per week, final grade percentage, and professor's name in the respective input fields.
Click the "Submit" button to append the data to the CSV file and update the plot.
The scatter plot will show the actual grades, the regression line, and the user's predicted grade based on their input.
Code Overview Main Components Data Loading: The application reads the dataset from a specified CSV file using Pandas. Gradient Descent Functions: Implements functions to compute the loss and update the slope (m) and intercept (b) parameters using gradient descent. PyQt5 GUI: The GUI is built using PyQt5, featuring input fields, labels, and a matplotlib canvas for plotting the regression results. Plotting Functionality: Visualizes the linear regression model and user predictions in real-time. License This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgments Inspired by linear regression and machine learning concepts. Thanks to the developers of PyQt5, Matplotlib, and other libraries that made this project possible.