CoolFace
Apppublic

VanajaPulluri/Student_ML_Project

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
student_project.py51 linesDownload Raw Back to root
1import pandas as pd 2import numpy as np 3import matplotlib.pyplot as plt 4import seaborn as sns 5import streamlit as st6from sklearn.model_selection import train_test_split7from sklearn.preprocessing import StandardScaler8from sklearn.linear_model import LinearRegression9from sklearn.metrics import r2_score 10#Load data11df=pd.read_csv(r"student_study_habits.csv")12 13#Seperate features and target14x=df.drop("final_grade",axis=1)15y=df["final_grade"]16 17#Train test split18x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=42)19 20#Scaling21scaler  = StandardScaler()22x_train_scaled = pd.DataFrame(scaler .fit_transform(x_train),columns=x_train.columns)23 24#Train_model25model=LinearRegression()26model.fit(x_train_scaled,y_train)27 28# Evaluate29y_pred = model.predict(x_train_scaled)30st.write("R2_score:", r2_score(y_train, y_pred))31 32# --- UI for prediction ---33st.title(":blue[Predict Student Study Habits]")34 35cols = x.columns.tolist()36num_cols = x.select_dtypes(include=np.number).columns.tolist()37 38user_input = {}39for col in cols:40    if col in num_cols:41        user_input[col] = st.number_input(f"{col}", value=float(df[col].mean()))42    else:43        options = df[col].dropna().unique().tolist()44        user_input[col] = st.selectbox(f"{col}", options)45 46if st.button("Predict Student study habits"):47    input_df = pd.DataFrame([user_input])48    input_scaled = scaler.transform(input_df[cols])49    prediction = model.predict(input_scaled)[0]50    st.success(f"Prediction: {prediction}")51