eziokittu's picture
Update projects/ML_StudentPerformance/src/pipelines/predict_pipeline.py
c1f976e verified
raw
history blame
1.91 kB
import sys
import pandas as pd
from projects.ML_StudentPerformance.src.exception import CustomException
from projects.ML_StudentPerformance.src.utils import load_object
model_path = 'projects/ML_StudentPerformance/artifacts/model.pkl'
preprocessor_path = 'projects/ML_StudentPerformance/artifacts/preprocessor.pkl'
class PredictPipeline():
def __init__(self):
pass
def predict(self, features):
try:
model = load_object(file_path = model_path)
preprocessor = load_object(file_path=preprocessor_path)
data_scaled = preprocessor.transform(features)
prediction = model.predict(data_scaled)
return prediction
except Exception as e:
raise CustomException(e, sys)
class CustomData():
def __init__(self, gender:str, race_ethnicity:str, parental_level_of_education, lunch:str, test_preparation_course:str, reading_score:int, writing_score:int):
self.gender = gender
self.race_ethnicity = race_ethnicity
self.parental_level_of_education = parental_level_of_education
self.lunch = lunch
self.test_preparation_course = test_preparation_course
self.reading_score = reading_score
self.writing_score = writing_score
def get_data_as_dataframe(self):
try:
custom_data_input_dict = {
"gender" : [self.gender],
"race_ethnicity" : [self.race_ethnicity],
"parental_level_of_education": [self.parental_level_of_education],
"lunch": [self.lunch],
"test_preparation_course": [self.test_preparation_course],
"reading_score": [self.reading_score],
"writing_score": [self.writing_score],
}
return pd.DataFrame(custom_data_input_dict)
except Exception as e:
raise CustomException(e,sys)