# Import necessary libraries import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler import gradio as gr # Load the CSV data into a pandas DataFrame data = pd.read_csv('dataset.csv') # Split the data into features (X) and labels (y) X = data.iloc[:, :-1] # All columns except the last one y = data.iloc[:, -1] # Last column (placed or not) # Split the data into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Create a pipeline with a Random Forest Classifier pipeline = Pipeline([ ('scaler', StandardScaler()), # Standardize features ('classifier', RandomForestClassifier()) # Random Forest Classifier ]) # Fit the pipeline to the training data pipeline.fit(X_train, y_train) # Make predictions on the testing data y_pred = pipeline.predict(X_test) # Calculate accuracy of the model accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy) # Define the input and output types for Gradio input_type = 'csv' output_type = 'label' # Define the function to make predictions using the trained model def predict_placement(Internships, CGPA, HistoryOfBacklogs): # Create a DataFrame from the input data input_df = pd.DataFrame({'Internships': [Internships], 'CGPA': [CGPA], 'HistoryOfBacklogs': [HistoryOfBacklogs]}) # Make a prediction using the trained model prediction = pipeline.predict(input_df)[0] # Return the predicted label return 'Placed' if prediction else 'Not Placed' # Create the Gradio interface iface = gr.Interface(fn=predict_placement, inputs=input_type, outputs=output_type, title='Student Job Placement Predictor', description='Predicts whether a student will be placed in a job or not based on internships, CGPA, and history of backlogs.') # Launch the Gradio interface iface.launch()