File size: 4,863 Bytes
34ffff8 db00fdf 8bedea7 db00fdf 1a99552 ce4a094 1a99552 d04e3f5 1a99552 b08fc08 82fbc4d b08fc08 82fbc4d 4fa075e 1a99552 db00fdf 3a4c793 db00fdf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
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 Model")
#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","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(X_test)
X_test_df = preprocess_dataset(X_test_encoded)
x_model = loaded_model = tf.keras.models.load_model('my_model')
y_pred = x_model.predict(X_test_df)
predicition = []
for i in list(y_pred):
if i[0]<=0.8:
predicition.append(0)
else:
predicition.append(1)
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())
prediction(df) |