Spaces:
Build error
Build error
| 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 pickle | |
| import streamlit as st | |
| st.title('Repair Time Prediction') | |
| #DLoading the ataset | |
| #df = pd.read_csv('repair_time_sample_50k_modified2.csv') | |
| #new_data = df | |
| #df.drop(['SRU serial number','Date of Manufacture', 'Snag Description'], axis = 1, inplace=True) | |
| # DATA from user | |
| def user_report(): | |
| Aircraft_Type = st.sidebar.selectbox('Aircraft Type',("AH-64","UH-60","UH-63","UH-62","UH-61","AH-65")) | |
| if Aircraft_Type=="AH-64": | |
| Aircraft_Type=0 | |
| elif Aircraft_Type=="UH-60": | |
| Aircraft_Type=2 | |
| elif Aircraft_Type=="UH-63": | |
| Aircraft_Type=5 | |
| elif Aircraft_Type=="UH-62": | |
| Aircraft_Type=4 | |
| elif Aircraft_Type=="UH-61": | |
| Aircraft_Type=3 | |
| else: | |
| Aircraft_Type=1 | |
| 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 ) | |
| Issue_category= st.sidebar.selectbox("Issue Category", | |
| ("Display", "Unservicable","Bootup Problem","Engine Failure","Electrical Fault" )) | |
| if Issue_category=='Display': | |
| Issue_category=1 | |
| elif Issue_category=="Unservicable": | |
| Issue_category=4 | |
| elif Issue_category=="Bootup Problem": | |
| Issue_category=0 | |
| elif Issue_category=="Engine Failure": | |
| Issue_category=3 | |
| else: | |
| Issue_category=2 | |
| Snag_Severity = st.sidebar.selectbox("Snag Severity", | |
| ("Low", "Medium","High" )) | |
| if Snag_Severity =='Low': | |
| Snag_Severity=1 | |
| elif Snag_Severity=="Medium": | |
| Snag_Severity =2 | |
| else: | |
| Snag_Severity=0 | |
| Customer= st.sidebar.selectbox("Customer", | |
| ("IAF", "ARMY","NAVY" )) | |
| if Customer =='IAF': | |
| Customer=1 | |
| elif Customer=="ARMY": | |
| Customer =0 | |
| else: | |
| Customer=2 | |
| Technician_Skill_level= st.sidebar.selectbox("Technician Skill level", | |
| ("Expert", "Intermediate","Novice" )) | |
| if Technician_Skill_level =='Expert': | |
| Technician_Skill_level=0 | |
| elif Technician_Skill_level=="Intermediate": | |
| Technician_Skill_level =1 | |
| else: | |
| Technician_Skill_level=2 | |
| prior_maintainence = st.sidebar.selectbox('Prior Maintainence',("Regular","Irregular")) | |
| if prior_maintainence =='Regular': | |
| prior_maintainence=1 | |
| else: | |
| prior_maintainence=0 | |
| Logistics_Time = st.sidebar.slider('Logistics Time (hr)', 2,21, 5 ) | |
| total_operating_hours = st.sidebar.slider('Total Operating Hours)', 50,2000, 500 ) | |
| operating_temperature = st.sidebar.slider('Operating Temperature', 10,25, 15 ) | |
| previous_number_of_repairs = st.sidebar.number_input('Enter the Previous Number of Repairs Undergone 0 to 3 )',min_value=0,max_value=3,step=1) | |
| Power_Input_Voltage= st.sidebar.slider('Power Input Voltage (V)',100,133,115) | |
| user_report_data = { | |
| 'Aircraft Type':Aircraft_Type, | |
| 'Manufacturer':manufacturer, | |
| 'Component_Age':component_age, | |
| 'Issue_category':Issue_category, | |
| 'Snag Severity': Snag_Severity, | |
| 'Customer':Customer, | |
| 'Technician Skill level':Technician_Skill_level, | |
| 'Prior Maintenance': prior_maintainence, | |
| 'Logistics Time (hr)':Logistics_Time, | |
| 'total_operating_hours':total_operating_hours, | |
| 'operating_temperature':operating_temperature, | |
| 'previous_number_of_repairs':previous_number_of_repairs, | |
| 'Power_Input_Voltage':Power_Input_Voltage | |
| } | |
| 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 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 label_encoding(data): | |
| le = LabelEncoder() | |
| cat = data.select_dtypes(include='O').keys() | |
| categ = list(cat) | |
| data[categ] = data[categ].apply(le.fit_transform) | |
| # X = data.loc[:,data.columns!= "Time required for repair (in hours)"] | |
| # y = data['Time required for repair (in hours)'] | |
| # return X,y | |
| return data | |
| def prediction(df): | |
| #X = df.loc[:,df.columns!= "Time required for repair (in hours)"] | |
| #y = df['Time required for repair (in hours)'] | |
| #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_encoding(df) | |
| #X_test_df = preprocess_dataset(df) | |
| x_model = pickle.load(open('repair_time_model.pkl','rb')) | |
| pred = x_model.predict(df) | |
| #X_test['Actual_time_to_repair'] = y_test | |
| #X_test['Predicted_time_to_repair'] = pred | |
| #X_test.to_csv(r'/content/drive/MyDrive/Colab Notebooks/HAL/repair_time_prediction_results.csv') | |
| #print(X_test.head()) | |
| return pred | |
| y_pred = prediction(user_data) | |
| if st.button("Predict"): | |
| st.subheader(f"Time required to Repair the Component is {y_pred[0]} hours") |