Spaces:
Running
Running
| import pandas as pd | |
| from flask import Flask, request, jsonify | |
| from sklearn.compose import ColumnTransformer | |
| from sklearn.ensemble import RandomForestClassifier | |
| from sklearn.impute import SimpleImputer | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.pipeline import Pipeline | |
| from sklearn.preprocessing import LabelEncoder, StandardScaler | |
| # Load the CSV data | |
| data = pd.read_csv('dataset.csv') | |
| # Split the data into features and labels | |
| X = data.drop('PlacedOrNot', axis=1) | |
| y = data['PlacedOrNot'] | |
| # Encode categorical features | |
| categorical_features = ['HistoryOfBacklogs'] | |
| for feature in categorical_features: | |
| encoder = LabelEncoder() | |
| X[feature] = encoder.fit_transform(X[feature]) | |
| # 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 the pipeline | |
| numerical_features = ['Internships', 'CGPA'] | |
| numerical_transformer = StandardScaler() | |
| categorical_features = [ 'HistoryOfBacklogs'] | |
| categorical_transformer = SimpleImputer(strategy='most_frequent') | |
| preprocessor = ColumnTransformer( | |
| transformers=[ | |
| ('num', numerical_transformer, numerical_features), | |
| ('cat', categorical_transformer, categorical_features) | |
| ]) | |
| pipeline = Pipeline([ | |
| ('preprocessor', preprocessor), | |
| ('classifier', RandomForestClassifier(random_state=42)) | |
| ]) | |
| # Train the model | |
| pipeline.fit(X_train, y_train) | |
| # Evaluate the model | |
| accuracy = pipeline.score(X_test, y_test) | |
| print('Accuracy:', accuracy) | |
| # Create Flask app | |
| app = Flask(__name__) | |
| # Define API route for making predictions | |
| def predict(): | |
| # Get input data from request | |
| data = request.get_json() | |
| # Convert input data to dataframe | |
| input_data = pd.DataFrame(data, index=[0]) | |
| # Make predictions using the trained pipeline | |
| predictions = pipeline.predict(input_data) | |
| # Prepare response | |
| response = {'prediction': predictions[0]} | |
| return jsonify(response) | |
| # Run the Flask app | |
| if __name__ == '__main__': | |
| app.run(debug=True) | |