فائدہ:
- پانڈا کے ساتھ ٹیلی میٹری، ٹیسٹ اور پروڈکشن ڈیٹا کو لوڈ اور صاف کرنے والا ایک دوبارہ قابل تجزیہ ورک فلو قائم کرنے کی صلاحیت
- آرٹیفیشل انٹیلی جنس سے کوڈ، اوصاف اور ویژولائزیشن کی مدد حاصل کرتے وقت آؤٹ پٹ لائن کو سمجھنے اور اس کی تصدیق کرنے کی صلاحیت
- یونٹ کی مستقل مزاجی، ڈیٹا کے رساو اور تولیدی صلاحیت کے لیے تجزیہ کے نتائج کو آڈٹ کرنے کی صلاحیت
پچھلی اکائیوں میں، ہم نے مصنوعی ذہانت کو "مشیر" کی طرح استعمال کیا۔ اس یونٹ میں، ہم ایک قدم آگے بڑھتے ہیں اور ایک ورک فلو قائم کرتے ہیں جو Python کا استعمال کرتے ہوئے اپنے ہاتھوں سے آٹوموٹو ڈیٹا کا تجزیہ کرتا ہے۔ مقصد آپ کو سافٹ ویئر ڈویلپر بنانا نہیں ہے۔ یہ ایک انجینئر بنانا ہے جو AI سے کوڈ کی مدد حاصل کرتے ہوئے اس کوڈ لائن کو لائن کے ذریعے سمجھ اور تصدیق کر سکے۔ کیونکہ AI کی طرف سے تیار کردہ کوڈ ناقص ہو سکتا ہے، بالکل اسی طرح جیسے AI کی طرف سے تیار کردہ متن؛ حجم، لیک ڈیٹا، درمیان میں غلط کالم کو الجھا سکتا ہے۔ کوڈ کو سمجھے بغیر چلانا ایک غیر دستخط شدہ رپورٹ شائع کرنے کے مترادف ہے۔
ازگر کیوں؟ کیونکہ یہ اعداد و شمار کے تجزیہ میں ڈی فیکٹو معیار ہے: آپ آسانی سے ٹیلی میٹری، ٹیسٹ اور پروڈکشن ڈیٹا کو پانڈوں (ٹیبلر ڈیٹا)، نمپی (عددی پروسیسنگ)، میٹپلوٹلیب (پلاٹ) اور اسکیٹ لرن (مشین لرننگ) لائبریریوں کے ساتھ آسانی سے پروسیس کرسکتے ہیں۔
تولیدی تجزیہ کے چھ مراحل
ایک ٹھوس تجزیہ ہمیشہ ایک ہی فریم ورک کی پیروی کرتا ہے:
- لوڈ: فائل سے ڈیٹا پڑھیں۔
- معائنہ کریں: طول و عرض، کالم، ڈیٹا کی اقسام، گمشدہ اقدار۔
- صاف: غائب/آؤٹ لیئر، یونٹ، ٹائم اسٹیمپ کی اصلاح۔
- خصوصیت نکالیں: معنی خیز متغیرات اخذ کریں۔
- تجزیہ/ماڈل: شماریات، تصور، یا ماڈل۔
- تصدیق کریں اور رپورٹ کریں: رزلٹ پروویژن، والیوم/لیک چیک، ریکارڈنگ۔
مشورہ: AI سے کوڈ کے لیے پوچھتے وقت، "تبصرہ کریں کہ آپ ہر قدم پر کیا کر رہے ہیں اور اپنے مفروضے لکھیں۔" لہذا آپ کوڈ کو پڑھتے ہی اس کی تصدیق کر سکتے ہیں۔
مرحلہ وار مثال: ٹیلی میٹری تجزیہ
درج ذیل کوڈ CAN/ٹیلی میٹری ریکارڈ کو لوڈ کرتا ہے اور بنیادی جانچ پڑتال کرتا ہے۔ (نوٹ: یقینی بنائیں کہ آپ کوڈز کو چلانے سے پہلے سمجھتے ہیں؛ کالم کے نام آپ کے ڈیٹا کے لحاظ سے مختلف ہوتے ہیں۔)
پانڈا درآمد کریں بطور pd# 1) لوڈ کریں: نیم ڈاٹڈ CSV، پہلا کالم timestampdf = pd.read_csv("telemetry.csv", parse_dates=["time"])# 2) Checkprint(df.shape) # کتنی قطاریں، کتنے کالم پرنٹ (slumnsprint) یا ہر ایک نمبر کی #dnty متن)پرنٹ(df.isna().sum()) # گم شدہ اقدار کی تعداد فی کالم پرنٹ(df.describe()) # خلاصہ کے اعدادوشمار: کم سے کم، زیادہ سے زیادہ، اوسط
describe() آؤٹ پٹ آپ کے لیے تصدیق کرنے کا پہلا موقع ہے: اگر انجن کی رفتار کی زیادہ سے زیادہ قیمت 45,000 rpm (عام مسافر انجن ~ 7,000 rpm) ہے، تو یونٹ یا سینسر کی خرابی ہے۔
آڈیٹنگ کے مرحلے میں اکثر استعمال ہونے والے پانڈوں کے حکم اور وہ کیا کرتے ہیں:
حکم
کیا کرتا ہے
یہ کیا تصدیق کرتا ہے؟
df.shape
قطاروں/کالموں کی تعداد
کیا یہ متوقع سائز ہے؟
df.dtypes
کالم کی اقسام
کیا نمبر کالم متن بن گیا ہے؟
df.isna().sum()
قدر کی گنتی غائب ہے۔
کتنی جگہ ہے؟
df.describe()
کم سے کم/زیادہ سے زیادہ/اوسط
کیا یہ جسمانی طور پر معقول ہے؟
df.duplicated().sum()
ڈپلیکیٹ قطار
کیا دوہری رجسٹریشن ہے؟
# 3) صاف کریں: جسمانی طور پر ناممکن اقدار کو نشان زد کریں۔
احتیاط: آؤٹ لیر کو فوری طور پر حذف نہ کریں۔ سب سے پہلے یہ سمجھیں کہ یہ آؤٹ لیر کیوں ہے۔ کیا یہ ایک حقیقی واقعہ (اچانک گرمی) یا سینسر کی ناکامی ہے؟ آنکھیں بند کرکے حذف کرنے سے اصل غلطی چھپ سکتی ہے۔
# 4) ایکسٹریکٹ فیچر: درجہ حرارت میں اضافے کی شرح (ماخوذ)df = df.sort_values("time")df["sic_increase_speed"] = df["motor_sic"].diff() / df["time"].diff().dt.total_seconds()# 5t.p.p.t. پورٹلائزیشن کے طور پر۔ pltplt.plot(df["time"], df["motor_sic"])plt.xlabel("وقت")؛ plt.ylabel("انجن کا درجہ حرارت (C)")plt.title("انجن کا درجہ حرارت کورس")plt.show()
ازگر میں ڈیٹا لیکیج کو روکنا
پیشن گوئی ماڈل بناتے وقت سب سے خطرناک غلطی ڈیٹا کا رساو ہے (یونٹ 5): جب ماڈل ایسی معلومات دیکھتا ہے جو پیشین گوئی کے وقت معلوم نہیں ہو سکتی۔ ٹائم سیریز میں اس سے بچنے کا سنہری اصول: ماضی کے ساتھ ٹریننگ کریں، مستقبل کے ساتھ ٹیسٹ کریں — کوئی بے ترتیب تبدیلی نہیں۔
sklearn.model_selection import train_test_split# FALSE: تصادفی طور پر ٹائم سیریز کو تقسیم کرنے سے مستقبل# df[df["time"] > حد] # آخری 20% مستقبل
احتیاط: ٹرین_ٹیسٹ_اسپلٹ ڈیٹا کو بطور ڈیفالٹ شفل کرتا ہے (شفل = ٹرو)۔ ٹائم سیریز میں، یہ مستقبل کو تعلیم کے ساتھ الجھا دیتا ہے اور غلط ہائی اسکور پیدا کرتا ہے۔ اگر AI نے یہ اپنے تیار کردہ کوڈ میں کیا ہے تو اسے ٹھیک کرنا یقینی بنائیں۔
یونٹ کی مستقل مزاجی: خاموش قاتل
آٹوموٹو میں سب سے زیادہ خطرناک خرابیاں یونٹ کی خرابیاں ہیں: کلومیٹر/h سے m/s، Nm سے lb-ft، بار سے kPa، °C سے K۔ تجزیہ میں ہر کالم کی اکائی کیا ہے اس کی لغت رکھنا اور تبادلوں کو واضح طور پر لکھنا جان بچاتا ہے۔
# یونٹوں کو واضح طور پر دستاویز کریں = {"رفتار": "km/h"، "motor_sic": "C", "pressure": "bar"}# اگر ضروری ہو تو واضح تبدیلی (km/h -> m/s)df["speed_ms"] = df["رفتار"] / 3.6
منی کیس اسٹڈیز
کیس 1 - describe() کے ساتھ غلطی پکڑی گئی۔ ایک تجزیہ کار AI سے کوڈ چلاتا ہے اور حد کا تخمینہ لگاتا ہے۔ نتیجہ مضحکہ خیز حد تک زیادہ ہے۔ جب ہم describe() آؤٹ پٹ کو دیکھتے ہیں، تو ہم دیکھتے ہیں کہ بیٹری کی گنجائش کچھ لائنوں میں Wh میں اور دوسروں میں kWh میں داخل ہوئی ہے (1000 گنا فرق)۔ جب یونٹ کو یکساں قسم میں لایا جاتا ہے تو نتیجہ بہتر ہوتا ہے۔ نتیجہ: ایک سادہ خلاصہ شماریات نے خراب پیشین گوئی کو روکا۔
کیس 2 - کنفیوژن ٹریپ۔ ایک انٹرن کے بریک پہننے کا ماڈل ٹیسٹ سیٹ پر 98% درست تھا۔ جب کوڈ کی جانچ کی جاتی ہے، تو یہ دیکھا جا سکتا ہے کہ ٹرین_ٹیسٹ_اسپلٹ(شفل=ٹرو) اور ٹائم سیریز کو ملایا گیا ہے، یعنی ٹریننگ میں مستقبل کے پوائنٹس لیک ہو جائیں گے۔ وقت کے حساب سے تقسیم ہونے پر، درستگی 80% تک گر جاتی ہے، لیکن اب یہ حقیقت پسندانہ ہے۔ نتیجہ: صرف اس وجہ سے کہ AI کوڈ نے کام کیا، یہ ٹھیک نہیں تھا۔ انسان نے رساو کو پکڑ لیا۔
کیس 3 - آؤٹ لیر کو سمجھنا۔ پائیداری کے ریکارڈ میں، AI کوڈ خود بخود آؤٹ لیئر سٹرین ویلیوز کو حذف کر دیتا ہے۔ انجینئر حذف شدہ نکات کو دیکھتا ہے۔ یہ کریک شروع کرنے کے بالکل وہی لمحات تھے جن میں ٹیسٹ کی دلچسپی تھی۔ حذف کرنے کو ہٹا دیا جاتا ہے اور خلاف ورزیوں کا الگ جائزہ لیا جاتا ہے۔ نتیجہ: "صفائی" کے تحت اصلی سگنل کو حذف کیا جا سکتا ہے۔ ہر قدم پر سوال
فوری ٹیمپلیٹس
سانچہ 1 - درخواست کوڈ (وضاحت کے ساتھ):
کردار: آپ ایک ازگر ڈیٹا تجزیہ کار ہیں۔ ٹاسک: کوڈ لکھیں جو ٹیلی میٹری CSV کو لوڈ اور چیک کرتا ہے۔ وضاحت کریں کہ کون سا چیک کیا گیا اور کیوں؛ جسمانی طور پر ناممکن ویلیو چیک شامل کریں۔ خاموشی سے کچھ نہیں حذف کرنا۔ آؤٹ پٹ: تبصرہ کردہ کوڈ + مجھے کون سا آؤٹ پٹ دیکھنا چاہئے اور کیوں۔
ٹیمپلیٹ 2 - لیک کا معائنہ:
کردار: آپ مشین لرننگ کوڈ کا جائزہ لینے والے ہیں۔ ٹاسک: ڈیٹا لیک کے لیے درج ذیل ٹریننگ/ٹیسٹ اسپلٹ کوڈ کو چیک کریں۔ سیاق و سباق: یہ ایک ٹائم سیریز ہے (وہیکل ٹیلی میٹری)۔ پابندی: اگر بے ترتیب تبدیلی ہو تو خبردار کریں؛ وقت کے لحاظ سے تقسیم کی تجویز اور جواز پیش کریں۔ آؤٹ پٹ: فائنڈنگز + درست شدہ کوڈ + وضاحت۔
ٹیمپلیٹ 3 - یونٹ کی توثیق:
کردار: آپ ڈیٹا کوالٹی آڈیٹر ہیں۔ ٹاسک: ایسے چیکس کی تجویز کریں جو ڈیٹا فریم میں یونٹ کی عدم مطابقت کو تلاش کرتے ہیں۔
سانچہ 4 - تصور + تبصرہ:
کردار: آپ ڈیٹا ویژولائزیشن کے ماہر ہیں۔ ٹاسک: کوڈ لکھیں جو انجن کے درجہ حرارت کے کورس اور اضافے کی شرح کو ترتیب دیتا ہے۔ رکاوٹ: اکائی کے ساتھ محور پر لیبل لگائیں۔ ضعف کو نشان زد کریں؛ گراف کی تشریح کرتے وقت قطعی غلطی کا دعوی نہ کریں۔ آؤٹ پٹ: کوڈ + گراف میں کیا تلاش کرنا ہے۔
کمزور فوری / مضبوط اشارہ
کمزور اشارہ:
اس ڈیٹا کے ساتھ ایک ماڈل بنائیں۔
یہ واضح نہیں ہے کہ کون سا ہدف، کون سا کمپارٹمنٹ، کون سی تصدیق؛ AI سکیمبلڈ، لیکی، یونٹ-بلائنڈ کوڈ کو آؤٹ پٹ کر سکتا ہے۔
طاقتور اشارہ:
کردار: آپ Python ML کے سرپرست ہیں۔ ٹاسک: بریک پیڈ پہننے کی پیشین گوئی کرنے اور توثیق کے نقصانات کا مظاہرہ کرنے کے لیے ایک ابتدائی ورک فلو لکھیں۔ سیاق و سباق: ٹائم سیریز ٹیلی میٹری؛ ہدف: باقی پیڈ کی موٹائی۔ رکاوٹ: وقت کے لحاظ سے وقت کی سیریز تقسیم کریں (کوئی شفلنگ نہیں)؛ ڈیٹا کے رساو کے خطرے میں جھنڈے کی خصوصیات؛ دستاویز کی اکائیاں؛ ہر قدم کی تشریح؛ لکھیں کہ کون سے چیک کی ضرورت ہے اس سے پہلے کہ نتیجہ فیلڈ میں نکلے۔ آؤٹ پٹ: تبصرہ کردہ کوڈ + تصدیقی چیک لسٹ۔
عام غلطیاں
- کوڈ کو سمجھے بغیر چلانا۔ AI کوڈ بھی ناقص ہو سکتا ہے۔ سطر بہ سطر پڑھیں۔
- مکسنگ ٹائم سیریز۔ shuffle=True مستقبل کو لیک کرتا ہے اور جعلی سکور تیار کرتا ہے۔
- آنکھ بند کرکے آؤٹ لیر کو حذف کریں۔ اصل سگنل (غلطی شروع) کو صاف کیا جا سکتا ہے۔
- یونٹ کی دستاویز نہیں کرنا۔ کلومیٹر/h بمقابلہ m/s، Wh بمقابلہ kWh جیسی خرابیاں خاموشی سے بڑھتی ہیں۔
- describe()/check قدم کو چھوڑنا۔ زیادہ تر غلطیاں پہلے خلاصہ کے اعدادوشمار میں ظاہر ہوتی ہیں۔
خلاصہ میں
- Python (پانڈا، numpy، matplotlib، scikit-learn) آٹوموٹو ڈیٹا کے تجزیہ کا اصل معیار ہے۔
- دوبارہ قابل تجزیہ: لوڈ، معائنہ، صاف، خصوصیت، تجزیہ، توثیق اور رپورٹ.
- اس کوڈ کو سمجھنا اور اس کی تصدیق کرنا ضروری ہے کہ AI لائن بہ لائن تیار کرتا ہے۔ صرف اس وجہ سے کہ یہ کام کرتا ہے اس کا مطلب یہ نہیں ہے کہ یہ صحیح ہے۔
- وقت کی سیریز میں ماضی/مستقبل کی تفریق کو برقرار رکھیں؛ بے ترتیب شفلنگ ڈیٹا کا رساو پیدا کرتا ہے۔
- یونٹ کی مستقل مزاجی اور باہر کی تشریح خاموش لیکن تصدیق کے اہم نکات ہیں۔
درخواست کا کام
ایک چھوٹا ڈیٹا سیٹ لیں (حقیقی یا مصنوعی ٹیلی میٹری)۔ (1) چھ قدمی فریم ورک کے بعد، ٹیمپلیٹ 1 کے ساتھ لوڈنگ اور کنٹرول کوڈ تیار کریں اور تصدیق کریں کہ آپ ہر لائن کو سمجھتے ہیں۔ (2) describe() آؤٹ پٹ میں کم از کم ایک مشکوک قدر تلاش کریں اور اس کی وجہ دریافت کریں۔ (3) پیشین گوئی کے کام میں، ٹریننگ/ٹیسٹ کا وقت تقسیم کریں اور ٹیمپلیٹ 2 کے ساتھ لیکیج کے خطرے کو چیک کریں۔
چیک لسٹ
- میں نے چھ قدمی فریم ورک کے ساتھ تجزیہ ترتیب دیا۔
- میں نے AI لائن کے ذریعہ تیار کردہ کوڈ کو پڑھا اور سمجھا۔
- [ ] میں نے describe()/audit کے ساتھ مشکوک اقدار کی تلاش کی۔
- میں نے ٹائم سیریز کو وقت کے لحاظ سے تقسیم کیا (کوئی شفلنگ نہیں)۔
- [ ] میں نے ان صفات کو نشان زد کیا جو ڈیٹا لیک ہونے کے خطرے میں ہیں۔
- میں نے ہر کالم کی اکائی کو دستاویز کیا اور تبادلوں کو واضح طور پر لکھا۔