nilanjanadevc commited on
Commit
f20da4c
·
verified ·
1 Parent(s): 475e39d

Update Streamlit app

Browse files
Files changed (1) hide show
  1. app.py +26 -30
app.py CHANGED
@@ -40,40 +40,36 @@ def engineer_features(df):
40
  """Apply feature engineering to match training pipeline exactly"""
41
  df_enhanced = df.copy()
42
 
43
- # STEP 1: Rename columns to match training convention
44
- rename_mapping = {
45
- "Lub oil pressure": "Lube Oil Pressure",
46
- "lub oil temp": "Lube Oil Temperature",
47
- "Coolant temp": "Coolant Temperature",
48
- "Engine rpm": "Engine RPM",
49
- "Fuel pressure": "Fuel Pressure",
50
- "Coolant pressure": "Coolant Pressure"
51
- }
52
 
53
- for old_name, new_name in rename_mapping.items():
54
- if old_name in df_enhanced.columns:
55
- df_enhanced.rename(columns={old_name: new_name}, inplace=True)
 
56
 
57
- # STEP 2: Get sensor columns (all columns except 'Engine Condition')
58
- sensor_columns = [col for col in df_enhanced.columns if col != 'Engine Condition']
 
 
59
 
60
- # STEP 3: Add ratio features
61
- if 'Lube Oil Pressure' in df_enhanced.columns and 'Coolant Pressure' in df_enhanced.columns:
62
- df_enhanced['Oil_Coolant_Pressure_Ratio'] = (
63
- df_enhanced['Lube Oil Pressure'] / (df_enhanced['Coolant Pressure'] + 1)
64
- )
65
-
66
- if 'Lube Oil Temperature' in df_enhanced.columns and 'Coolant Temperature' in df_enhanced.columns:
67
- df_enhanced['Oil_Coolant_Temp_Diff'] = (
68
- df_enhanced['Lube Oil Temperature'] - df_enhanced['Coolant Temperature']
69
- )
70
-
71
- # STEP 4: Add squared features for EACH sensor column
72
- for col in sensor_columns:
73
- if col in df_enhanced.columns:
74
- df_enhanced[f'{col}_Squared'] = df_enhanced[col] ** 2
75
 
76
- return df_enhanced
77
 
78
  # ============================================
79
  # MAIN APP
 
40
  """Apply feature engineering to match training pipeline exactly"""
41
  df_enhanced = df.copy()
42
 
43
+ # Create the three derived features that the model was trained with
44
+ # Lub_Stress_Index = Lub oil pressure * lub oil temp
45
+ df_enhanced['Lub_Stress_Index'] = (
46
+ df_enhanced['Lub oil pressure'] * df_enhanced['lub oil temp']
47
+ )
 
 
 
 
48
 
49
+ # Thermal_Efficiency = Coolant pressure / (Coolant temp + 1e-5)
50
+ df_enhanced['Thermal_Efficiency'] = (
51
+ df_enhanced['Coolant pressure'] / (df_enhanced['Coolant temp'] + 1e-5)
52
+ )
53
 
54
+ # Power_Load_Index = Engine rpm * Fuel pressure
55
+ df_enhanced['Power_Load_Index'] = (
56
+ df_enhanced['Engine rpm'] * df_enhanced['Fuel pressure']
57
+ )
58
 
59
+ # Return features in EXACT order the model was trained with
60
+ feature_order = [
61
+ 'Engine rpm',
62
+ 'Lub oil pressure',
63
+ 'Fuel pressure',
64
+ 'Coolant pressure',
65
+ 'lub oil temp',
66
+ 'Coolant temp',
67
+ 'Lub_Stress_Index',
68
+ 'Thermal_Efficiency',
69
+ 'Power_Load_Index'
70
+ ]
 
 
 
71
 
72
+ return df_enhanced[feature_order]
73
 
74
  # ============================================
75
  # MAIN APP