विमानन में, "चीजों को तोड़ना" कोई विकल्प नहीं है।
यदि कोई सर्वर क्रैश हो जाता है, तो आप इसे पुनः आरंभ करते हैं। यदि उड़ान के दौरान जेट इंजन विफल हो जाता है, तो परिणाम विनाशकारी होते हैं। यही कारण है कि विमानन उद्योग प्रिवेंटिव मेंटेनेंस (एक निर्धारित समय पर पुर्जों को बदलना चाहे उनकी आवश्यकता हो या नहीं) से प्रिडिक्टिव मेंटेनेंस (PdM) (पुर्जों को ठीक उनके टूटने से पहले बदलना) की ओर स्थानांतरित हो रहा है।
डेटा साइंटिस्ट्स के लिए, यह अंतिम टाइम सीरीज रिग्रेशन समस्या है। लक्ष्य सेंसर डेटा (तापमान, दबाव, कंपन) के आधार पर इंजन के रिमेनिंग यूज़फुल लाइफ (RUL) की गणना करना है।
पारंपरिक रूप से, इसके लिए जटिल भौतिकी मॉडल या मैन्युअल रूप से ट्यून किए गए डीप लर्निंग आर्किटेक्चर (LSTMs) की आवश्यकता होती थी। लेकिन हाल ही में, ऑटोमेटेड मशीन लर्निंग (AutoML) इस हद तक परिपक्व हो गया है कि यह मैन्युअल ट्यूनिंग से बेहतर प्रदर्शन कर सकता है।
इस गाइड में, NASA C-MAPSS डेटासेट का उपयोग करते हुए विश्लेषण के आधार पर, हम दो ओपन-सोर्स दिग्गजों: AWS AutoGluon और H2O.ai का उपयोग करके इंजन विफलता की भविष्यवाणी करने के लिए एक पाइपलाइन बनाएंगे।
हम यहां केवल छवियों को वर्गीकृत नहीं कर रहे हैं; हम मल्टीवेरिएट टाइम-सीरीज डेटा से निपट रहे हैं। पाइपलाइन को कच्चे सेंसर लॉग्स को एक रिग्रेशन टारगेट (RUL) में बदलने की आवश्यकता है।
हम प्रसिद्ध NASA Commercial Modular Aero-Propulsion System Simulation (C-MAPSS) डेटासेट का उपयोग कर रहे हैं। इसमें रन-टू-फेलियर सिम्युलेटेड डेटा शामिल है।
डेटासेट स्पष्ट रूप से हमें RUL नहीं देता है; यह हमें वर्तमान साइकिल देता है। हमें टारगेट की गणना करनी होगी।
लॉजिक: RUL = MaxCycleofEngine - CurrentCycle
import pandas as pd # Load dataset (Simulated example structure) # Columns: ['unit_number', 'time_in_cycles', 'sensor_1', ... 'sensor_21'] df = pd.read_csv('train_FD001.txt', sep=" ", header=None) # 1. Calculate the maximum life of each engine unit max_life = df.groupby('unit_number')['time_in_cycles'].max().reset_index() max_life.columns = ['unit_number', 'max_life'] # 2. Merge back to original dataframe df = df.merge(max_life, on='unit_number', how='left') # 3. Calculate RUL (The Target Variable) df['RUL'] = df['max_life'] - df['time_in_cycles'] # Drop columns we don't need for training (like max_life) df = df.drop(columns=['max_life']) print(df[['unit_number', 'time_in_cycles', 'RUL']].head())
प्रिडिक्टिव मेंटेनेंस में, साधारण "सटीकता" काम नहीं करती है। हमें यह मापने की आवश्यकता है कि हमारी भविष्यवाणी कितनी दूर है।
हम RMSE (रूट मीन स्क्वायर एरर) पर निर्भर करते हैं।
import numpy as np def calculate_rmse(y_true, y_pred): """ y_true: The actual Remaining Useful Life y_pred: The model's prediction """ mse = np.mean((y_true - y_pred)**2) return np.sqrt(mse)
नोट: विश्लेषण RMSLE (लॉगरिदमिक एरर) को भी हाइलाइट करता है। यह महत्वपूर्ण है क्योंकि जीवन का कम अनुमान लगाना (पहले विफल होने की भविष्यवाणी) सुरक्षित है, लेकिन अधिक अनुमान लगाना (वास्तविकता से बाद में विफल होने की भविष्यवाणी) खतरनाक है। RMSLE विभिन्न स्केल्स पर सापेक्ष त्रुटियों को बेहतर तरीके से संभालता है।
हमने दो फ्रेमवर्क का परीक्षण किया यह देखने के लिए कि व्यापक मैन्युअल ट्यूनिंग के बिना जटिल, नॉइजी सेंसर डेटा को कौन बेहतर संभाल सकता है।
AutoGluon (AWS द्वारा विकसित) स्वचालित रूप से कई मॉडल (न्यूरल नेट्स, LightGBM, CatBoost) को स्टैकिंग और एन्सेम्बलिंग करने की रणनीति का उपयोग करता है।
कोड:
from autogluon.tabular import TabularPredictor # AutoGluon handles feature engineering automatically # 'RUL' is our target label calculated in Phase 1 predictor = TabularPredictor(label='RUL', eval_metric='root_mean_squared_error').fit( train_data=df_train, time_limit=600, # Train for 10 minutes presets='best_quality' ) # Inference y_pred = predictor.predict(df_test) results = predictor.evaluate(df_test) print(f"AutoGluon RMSE: {results['root_mean_squared_error']}")
H2O इस क्षेत्र में एक अनुभवी है, जो अपनी स्केलेबल डिस्ट्रिब्यूटेड कंप्यूटिंग क्षमताओं के लिए जाना जाता है।
कोड:
import h2o from h2o.automl import H2OAutoML h2o.init() # Convert pandas df to H2O Frame hf_train = h2o.H2OFrame(df_train) hf_test = h2o.H2OFrame(df_test) # Train aml = H2OAutoML(max_models=20, seed=1) aml.train(y='RUL', training_frame=hf_train) # Inference preds = aml.predict(hf_test) perf = aml.leader.model_performance(hf_test) print(f"H2O RMSE: {perf.rmse()}")
विश्लेषण ने इस विशिष्ट सेंसर डेटासेट पर लागू होने पर प्रदर्शन में एक बड़ी असमानता का खुलासा किया।
| लाइब्रेरी | मेट्रिक | टारगेट: RUL | परिणाम (कम बेहतर है) | |----|----|----|----| | AutoGluon | RMSE | RUL | 14.07 | | H2O | RMSE | RUL | 44.85 |
**विश्लेषण: \ AutoGluon ने H2O को महत्वपूर्ण रूप से बेहतर प्रदर्शन किया (14.07 बनाम 44.85)। जेट इंजन के संदर्भ में, 14 साइकिल की त्रुटि सीमा रखरखाव को शेड्यूल करने के लिए स्वीकार्य है। 44 साइकिल की त्रुटि सीमा मॉडल को बेकार बना देती है।
AutoGluon ने क्यों जीता?
जटिल मल्टीवेरिएट डेटा से जुड़े औद्योगिक अनुप्रयोगों के लिए, AutoML अब केवल एक प्रोटोटाइपिंग टूल नहीं है—यह एक प्रोडक्शन क्षमता है।
मैन्युअल मॉडल चयन से AutoGluon जैसे ऑटोमेटेड एन्सेम्बल दृष्टिकोण पर स्विच करके, डेवलपर्स इंजीनियरिंग समय को सप्ताहों से घंटों तक कम कर सकते हैं जबकि बेहतर सटीकता प्राप्त कर सकते हैं।
डेवलपर्स के लिए मुख्य निष्कर्ष: जब इंडस्ट्रियल IoT ऐप्स बना रहे हों, तो अपना प्रयास चरण 1 (डेटा इंजीनियरिंग) पर केंद्रित करें सेंसर लॉग्स को साफ करने और सही RUL की गणना करने में। AutoML को मॉडल चयन संभालने दें।
\


