Spaces:
Sleeping
Sleeping
Update Streamlit app
Browse files
app.py
CHANGED
|
@@ -40,36 +40,40 @@ def engineer_features(df):
|
|
| 40 |
"""Apply feature engineering to match training pipeline exactly"""
|
| 41 |
df_enhanced = df.copy()
|
| 42 |
|
| 43 |
-
#
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
)
|
| 53 |
|
| 54 |
-
#
|
| 55 |
-
df_enhanced
|
| 56 |
-
df_enhanced['Engine rpm'] * df_enhanced['Fuel pressure']
|
| 57 |
-
)
|
| 58 |
|
| 59 |
-
#
|
| 60 |
-
|
| 61 |
-
'
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
'
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
|
|
|
|
|
|
|
|
|
| 71 |
|
| 72 |
-
return df_enhanced
|
| 73 |
|
| 74 |
# ============================================
|
| 75 |
# MAIN APP
|
|
|
|
| 40 |
"""Apply feature engineering to match training pipeline exactly"""
|
| 41 |
df_enhanced = df.copy()
|
| 42 |
|
| 43 |
+
# STEP 1: Rename columns to match training convention (CAPITALS)
|
| 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
|