vishalkryadav's picture
Update app.py
b2bcf83 verified
raw
history blame
5.16 kB
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
import seaborn as sns
from sklearn.preprocessing import LabelEncoder
import streamlit as st
st.title("Rouge Component Prediction")
#Reading Dataset
df = pd.read_csv('identify_rogue_50K_ALL.csv')
print("Dataset Size:",df.shape)
st.sidebar.header('Enter the Components Details here')
# Dropping the SRU serial number
df.drop(['SRU serial number','Date of Manufacture','Last Maintenance Date','date of last failure'], axis = 1, inplace=True)
# DATA from user
def user_report():
manufacturer = st.sidebar.selectbox("Manufacturer",
("JKL Company", "GHI Company","AGS Company","ABC Company","XYZ Company" ))
if manufacturer=='JKL Company':
manufacturer=3
elif manufacturer=="GHI Company":
manufacturer=2
elif manufacturer=="AGS Company":
manufacturer=1
elif manufacturer=="ABC Company":
manufacturer =0
else:
manufacturer=4
component_age = st.sidebar.slider('Component Age (in hours)', 500,2000, 600 )
total_operating_hours = st.sidebar.slider('Total Operating Hours)', 50,2000, 500 )
usage_intensity = st.sidebar.slider('Usage Intensity hours/day', 0,9, 5 )
last_maintance_type = st.sidebar.selectbox('Last Mantainence Type', ("Preventive","Corrective") )
if last_maintance_type=="Preventive":
last_maintance_type=1
else:
last_maintance_type=0
previous_number_of_repairs = st.sidebar.number_input('Enter the Previous Number of Repairs Undergone 0 to 5 )',min_value=0,max_value=5,step=1)
operating_temperature = st.sidebar.slider('Operating Temperature', 10,25, 15 )
humidity = st.sidebar.slider('Humidity', 20,105, 25 )
Vibration_Level = st.sidebar.slider('Vibration Level', 2,7, 2 )
Pressure = st.sidebar.slider('Pressure', 200,550, 250 )
Power_Input_Voltage= st.sidebar.slider('Power Input Voltage (V)',100,133,115)
repair_type = st.sidebar.selectbox('Repair Type', ("Hardware","Software") )
if repair_type=='Hardware':
repair_type=0
else:
repair_type=1
number_of_inspection = st.sidebar.selectbox('Number of Inspections',('1','2'))
if number_of_inspection=='1':
number_of_inspection=1
else:
number_of_inspection=2
number_of_inspection_6months = st.sidebar.selectbox('Number of Inspections in last 6 Months',('0','1'))
if number_of_inspection_6months=='0':
number_of_inspection_6months=0
else:
number_of_inspection_6months=1
prior_maintainence = st.sidebar.selectbox('Prior Maintainence',("Regular","Irregular"))
if prior_maintainence =='Regular':
prior_maintainence=1
else:
prior_maintainence=0
user_report_data = {
'Manufacturer':manufacturer,
'Component_Age':component_age,
'Total Operating Hours':total_operating_hours,
'Usage Intensity (hours/day)':usage_intensity,
'Last Maintenance Type': last_maintance_type,
'Previous number of repairs':previous_number_of_repairs,
'Operating Temperature':operating_temperature,
'Humidity': humidity,
'Vibration Level':Vibration_Level,
'Pressure':Pressure,
'Power Input Voltage (V)':Power_Input_Voltage,
'repair type':repair_type ,
'total number of inspection':number_of_inspection,
'No. of Inspections in Last 6 Months':number_of_inspection_6months,
'Prior Maintenance':prior_maintainence
}
report_data = pd.DataFrame(user_report_data, index=[0])
return report_data
#Customer Data
user_data = user_report()
st.header("Component Details")
st.write(user_data)
def label_encoder(df):
le = LabelEncoder()
cat = df.select_dtypes(include='O').keys()
categ = list(cat)
df[categ] = df[categ].apply(le.fit_transform)
return df
def preprocess_dataset(X):
x = X.values #returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
X_df = pd.DataFrame(x_scaled)
return X_df
def prediction(df):
#X = df.loc[:,df.columns!= "Rogue LRU/SRU (Target)"]
#y = df["Rogue LRU/SRU (Target)"]
#X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=42)
#print(X_train.shape)
#print(X_test.shape)
X_test_encoded = label_encoder(df)
X_test_df = preprocess_dataset(X_test_encoded)
#x_model = loaded_model = tf.keras.models.load_model('my_model')
#x_model = tf.keras.models.load_model('my_model.h5')
try:
x_model = tf.keras.models.load_model('my_model.h5')
except:
x_model = tf.keras.layers.TFSMLayer('my_model', call_endpoint='serving_default')
y_pred = x_model.predict(X_test_df)
#predicition = []
#for i in list(y_pred):
if y_pred ==0:
return 'Component is Good'
else:
return 'Component is not Good'
#X_test['Actual_time_to_repair'] = y_test
#X_test['Predicted_time_to_repair'] = predicition
# X_test.to_csv(r'/content/drive/MyDrive/Colab Notebooks/HAL/rogue_test_data.csv')
#print(X_test.head())
y_pred = prediction(user_data)
if st.button("Predict"):
st.subheader(y_pred)