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)