في مجال الطيران، "كسر الأشياء" ليس خياراً متاحاً.
إذا تعطل خادم، يمكنك إعادة تشغيله. أما إذا فشل محرك نفاث أثناء الطيران، فالعواقب ستكون كارثية. لهذا السبب تتحول صناعة الطيران من الصيانة الوقائية (استبدال الأجزاء وفقاً لجدول زمني سواء كانت بحاجة إلى ذلك أم لا) إلى الصيانة التنبؤية (PdM) (استبدال الأجزاء تماماً قبل أن تتعطل).
بالنسبة لعلماء البيانات، هذه هي مشكلة الانحدار النهائية للسلاسل الزمنية. الهدف هو حساب العمر الإنتاجي المتبقي (RUL) للمحرك بناءً على بيانات المستشعرات (درجة الحرارة، الضغط، الاهتزاز).
تقليدياً، كان هذا يتطلب نماذج فيزيائية معقدة أو هياكل التعلم العميق المضبوطة يدوياً (LSTMs). ولكن مؤخراً، نضج التعلم الآلي الآلي (AutoML) إلى النقطة التي يمكنه فيها التفوق على الضبط اليدوي.
في هذا الدليل، بناءً على التحليل باستخدام مجموعة بيانات NASA C-MAPSS، سنبني خط أنابيب للتنبؤ بفشل المحرك باستخدام اثنين من الأوزان الثقيلة مفتوحة المصدر: AWS AutoGluon و H2O.ai.
نحن لا نقوم فقط بتصنيف الصور هنا؛ نحن نتعامل مع بيانات السلاسل الزمنية متعددة المتغيرات. يتطلب خط الأنابيب تحويل سجلات المستشعرات الخام إلى هدف انحدار (RUL).
نحن نستخدم مجموعة بيانات NASA Commercial Modular Aero-Propulsion System Simulation (C-MAPSS) الشهيرة. تحتوي على بيانات محاكاة من التشغيل حتى الفشل.
مجموعة البيانات لا تعطينا RUL بشكل صريح؛ بل تعطينا الدورة الحالية. علينا حساب الهدف.
المنطق: RUL = أقصىدورةللمحرك - الدورةالحالية
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، يمكن للمطورين تقليل وقت الهندسة من أسابيع إلى ساعات مع تحقيق دقة فائقة.
النقطة الرئيسية للمطورين: عند بناء تطبيقات إنترنت الأشياء الصناعية، ركز جهدك على المرحلة 1 (هندسة البيانات) تنظيف سجلات المستشعرات وحساب RUL الصحيح. دع AutoML يتعامل مع اختيار النموذج.
\


