jarpan03's picture
Upload folder using huggingface_hub
da16e08 verified
import streamlit as st
import pandas as pd
from huggingface_hub import hf_hub_download
import joblib
# Download the model from the Model Hub
model_path = hf_hub_download(repo_id="jarpan03/engine-predictive-maintenance-model", filename="best_engine_maintenance_model_v1.joblib")
# Load the model
model = joblib.load(model_path)
# Streamlit UI for Predictive Maintenance Prediction
st.title("Engine Maintenance Prediction")
st.write("Fill the engine details below to predict if they'll need a maintenance")
# Collect user input
Engine_RPM = st.number_input("Engine_RPM", min_value=1, max_value=10000, value=100,step=1)
Lub_Oil_Pressure = st.number_input("Lub_Oil_Pressure", min_value=0.0, value=1.0,step=0.000001,format="%.6f")
Fuel_Pressure = st.number_input("Fuel_Pressure", min_value=0.0, value=1.0,step=0.000001,format="%.6f")
Coolant_Pressure = st.number_input("Coolant_Pressure", min_value=0.0, value=1.0,step=0.000001,format="%.6f")
Lub_Oil_Temperature = st.number_input("Lub_Oil_Temperature", min_value=0.0, value=1.0,step=0.000001,format="%.6f")
Coolant_Temperature = st.number_input("Coolant_Temperature", min_value=0.0, value=1.0,step=0.000001,format="%.6f")
# ----------------------------
# Prepare input data
# ----------------------------
input_data = pd.DataFrame([{
'Engine rpm': Engine_RPM,
'Lub oil pressure': Lub_Oil_Pressure,
'Fuel pressure': Fuel_Pressure,
'Coolant pressure': Coolant_Pressure,
'lub oil temp': Lub_Oil_Temperature,
'Coolant temp': Coolant_Temperature
}])
# Set the classification threshold
classification_threshold = 0.45
# Predict button
if st.button("Predict"):
prob = model.predict_proba(input_data)[0,1]
pred = int(prob >= classification_threshold)
result = "will need maintenance!" if pred == 1 else "doesn't need any maintenance!"
st.write(f"Prediction: Engine {result}")