یونٹ 6 / 11

ماڈل بلڈنگ: مسئلہ کی تعریف، الگورتھم کا انتخاب، اور تربیت/ٹیسٹ اسپلٹ

فائدہ:

  • کام کی اصل قیمت کے مطابق مسئلہ کی قسم (درجہ بندی، رجعت، کلسٹرنگ) اور کامیابی کے معیار کی وضاحت کرنے کی صلاحیت
  • ڈیٹا کو ایمانداری سے تقسیم کرنے کی اہلیت (ٹیسٹ سیٹ کو چھوئے بغیر؛ تاریخ کے لحاظ سے ٹائم سیریز میں) اور لیک سے پاک تشخیص کی بنیاد قائم کرنا
  • ایک سادہ بیس لائن کے ساتھ شروع کرکے اور صرف اس صورت میں پیچیدگی شامل کرکے قابل تشریح ماڈل منتخب کرنے کی اہلیت جب وہ اس کا مستحق ہو۔

اب تک ہم نے ڈیٹا اکٹھا کیا ہے، اسے صاف کیا ہے، اسے دریافت کیا ہے، اور خصوصیات تیار کی ہیں۔ اب ہم اصل کام کی طرف آتے ہیں، ایک ماڈل بنانا۔ ماڈل ایک ریاضیاتی ڈھانچہ ہے جو اعداد و شمار سے نمونہ سیکھتا ہے اور نئے حالات کے لیے پیشین گوئیاں تیار کرتا ہے۔ لیکن ماڈل بنانے کا سب سے اہم حصہ خود کوڈ نہیں ہے، بلکہ اس سے پہلے کے دو فیصلے ہیں: صحیح مسئلہ کی وضاحت اور ڈیٹا کو صحیح طریقے سے تقسیم کرنا۔ AI الگورتھم کے انتخاب، کوڈ لکھنے، اور پیرامیٹر ٹیوننگ میں ایک طاقتور مشیر ہے۔ لیکن یہ فیصلہ کرنا ہے کہ کیا پیشین گوئی کرنی ہے اور کامیابی کا کیا مطلب ہے۔ ایک غلط بیان کردہ مسئلہ بالکل تحریری ماڈل کے ساتھ بھی کام نہیں کرے گا۔

مسئلہ کی تعریف پہلے: ہم کیا پیشن گوئی کرتے ہیں۔

ہر ماڈلنگ کا کام ایک سوال سے شروع ہوتا ہے، اور یہ سوال ماڈل کی قسم کا تعین کرتا ہے۔ درجہ بندی - آؤٹ پٹ ایک زمرہ ہے: "کیا یہ گاہک چلے گا یا رہے گا؟"، "کیا یہ لین دین جعلی ہے؟"۔ رجعت (انگریزی میں رجعت - آؤٹ پٹ ایک نمبر ہے): "اس گھر کی قیمت کتنی ہے؟"، "اگلے مہینے کتنے آرڈر آئیں گے؟"۔ کلسٹرنگ (غیر لیبل والے ڈیٹا کو قدرتی گروپوں میں تقسیم کرنا): "میرے صارفین کتنے قدرتی حصوں میں تقسیم ہیں؟"۔

مسئلہ کے بیان کا دوسرا حصہ کامیابی کا معیار ہے: اس ماڈل کے "اچھے" ہونے کا کیا مطلب ہے؟ دھوکہ دہی کے ماڈل میں، ایک دھوکے باز کو غائب کرنا ایک ایماندار گاہک کو غلطی سے بلاک کرنے سے کہیں زیادہ مہنگا ہے۔ اس لیے "عام درستگی" نہیں بلکہ "جعل سازوں کو پکڑنے کی شرح" سامنے آتی ہے۔ اگر آپ کاروبار کے مالک کے ساتھ مل کر شروع سے اس معیار کی وضاحت نہیں کرتے ہیں، تو آپ کو ایک "انتہائی درست" ماڈل ملے گا جو کام نہیں کرتا ہے (ہم یونٹ 7 میں میٹرکس کی گہرائی میں جائیں گے)۔

احتیاط: "درستگی" گمراہ کن ہو سکتی ہے۔ اگر 1000 میں سے 10 ٹرانزیکشنز دھوکہ دہی پر مبنی ہیں، تو ایک احمقانہ ماڈل جو کہتا ہے کہ "کوئی بھی فراڈ نہیں ہے" 99% درستگی دے گا لیکن ایک بھی دھوکے باز کو نہیں پکڑے گا۔ مسئلہ کی اصل قیمت کی بنیاد پر کامیابی کے معیار کا انتخاب کریں۔

ٹریننگ/ٹیسٹ اسپلٹنگ: ماڈل کا ایماندار امتحان

اس نے جو ڈیٹا سیکھا ہے اس کے ساتھ ماڈل کی جانچ کرنا طالب علم سے وہی سوالات پوچھنا جیسا ہے جو اس نے امتحان میں پڑھا تھا۔ وہ اعلیٰ نمبر حاصل کرتا ہے لیکن وہ ظاہر نہیں کرتا کہ وہ واقعی کیا جانتا ہے۔ لہذا ہم ڈیٹا کو دو (اکثر تین) میں تقسیم کرتے ہیں:

  • ٹریننگ سیٹ (انگریزی میں ٹریننگ سیٹ، عام طور پر 70-80%): ماڈل اس پر سیکھتا ہے۔
  • ٹیسٹ سیٹ (ٹیسٹ سیٹ، عام طور پر 20-30%): ماڈل میں یہ بالکل نظر نہیں آتا ہے۔ حقیقی کارکردگی یہاں ماپا جاتا ہے.
  • توثیق سیٹ: ماڈل سیٹنگ کے لیے استعمال ہونے والا انٹرمیڈیٹ سیٹ (کون سا پیرامیٹر بہتر ہے)؛ ٹیسٹ سیٹ کو "صاف" رکھنے کے لیے۔

سب سے بنیادی اصول: تربیت کے دوران ٹیسٹ سیٹ کو کبھی نہیں چھوا ہے۔ اسکیلنگ، کوڈنگ، فیچر سلیکشن - سب کچھ صرف ٹریننگ سیٹ سے سیکھا جاتا ہے، پھر ٹیسٹنگ پر لاگو ہوتا ہے (یونٹ 5 سے رساو کا اصول)۔ ٹیسٹ سیٹ پہلی بار ہے جب ماڈل حقیقی دنیا کو دیکھتا ہے۔ اگر آپ اسے بہت جلدی آن کرتے ہیں تو آپ کو صحیح کارکردگی کا کبھی پتہ نہیں چلے گا۔

ٹائم سیریز استثناء: اگر آپ کا ڈیٹا وقت پر منحصر ہے (سیلز، اسٹاک مارکیٹ، ڈیمانڈ)، بے ترتیب تقسیم نہیں کی جاتی ہے۔ کیونکہ بے ترتیب تقسیم ماڈل کو مستقبل کو دیکھنے اور ماضی کی پیشین گوئی کرنے کا سبب بنتی ہے - یہ رساو ہے۔ اس کے بجائے، تاریخ کے مطابق تقسیم کریں: پرانے دور کے ساتھ ٹرین، نئے دور کے ساتھ ٹیسٹ کریں۔

الگورتھم کا انتخاب: سادہ سے پیچیدہ تک

ابتدائیوں کی سب سے عام غلطی سب سے پیچیدہ ماڈل سے شروع کرنا ہے۔ صحیح نقطہ نظر اس کے برعکس ہے: پہلے ایک سادہ بیس لائن قائم کریں۔ درجہ بندی میں "ہمیشہ اکثریتی طبقے کا اندازہ لگائیں"؛ رجعت میں "ہمیشہ اوسط کا اندازہ لگائیں"۔ یہ بیوقوف ماڈل ایک بنیادی لائن دیتا ہے؛ اگر آپ کا اصل ماڈل اسے پاس نہیں کر سکتا تو ایک مسئلہ ہے۔ پھر سادہ اور قابل تشریح ماڈلز کی طرف بڑھیں۔

ماڈل

مسئلہ کی قسم

مضبوط نقطہ

کمزوری

بیس لائن (اکثریت/اوسط)

دونوں

بینچ مارک دیتا ہے۔

نہیں سیکھتا

لاجسٹک رجعت

درجہ بندی

سادہ، قابل تشریح

صرف لکیری رشتہ

لکیری رجعت

رجعت

سادہ، تیز

لکیری مفروضہ

فیصلہ درخت

دونوں

قابل تشریح

آسان حفظ

بے ترتیب جنگل

دونوں

مضبوط، پائیدار

کم قابل تعبیر

گریڈینٹ بوسٹنگ (XGBoost وغیرہ)

دونوں

بہت مضبوط

ایڈجسٹ کرنا مشکل، حفظ کا خطرہ

اصول: آسان ترین "کافی اچھا" ماڈل منتخب کریں۔ زیادہ تر کاروباری سیاق و سباق میں تشریح طاقت سے زیادہ قیمتی ہے۔ قرض کے مسترد ہونے کی وضاحت کرنا بہتر ہے "کیونکہ آپ کے قرض سے آمدنی کا تناسب زیادہ ہے" کے بجائے "کیونکہ بلیک باکس نے ایسا کہا ہے۔"

تین چھوٹے مقدمات

کیس 1 - مسئلہ کی غلط تعریف۔ ایک ٹیم نے "گاہک مطمئن ہے" کی بنیاد پر درجہ بندی کا ماڈل بنایا لیکن کامیابی کے معیار کے طور پر "درستگی" کا انتخاب کیا۔ ڈیٹا میں، 88% صارفین مطمئن تھے۔ ماڈل نے سب کو "مطمئن" کہہ کر 88% درستگی حاصل کی اور کبھی بھی غیر مطمئن لوگوں کو نہیں پکڑا — حالانکہ اصل مقصد انہیں تلاش کرنا تھا۔ سبق: حقیقی مقصد کی بنیاد پر کامیابی کے معیار کا انتخاب کریں۔

کیس 2 - کمپارٹمنٹ میں ٹائم لیک۔ مانگ کی پیشن گوئی کے منصوبے میں، ڈیٹا کو تصادفی طور پر تقسیم کیا گیا تھا۔ ماڈل نے 93% درستگی دی لیکن پیداوار میں کریش ہو گیا کیونکہ تربیت میں اس نے دسمبر کے اعداد و شمار کے ساتھ جنوری، پھر نومبر کی پیش گوئی کی تھی - اس نے مستقبل دیکھا تھا۔ جب ہم نے تاریخی تقسیم کو تبدیل کیا تو اصل کارکردگی بڑھ کر 74% ہوگئی۔ سبق: وقت کی سیریز میں تاریخی تقسیم۔

کیس 3 - غیر ضروری پیچیدگی۔ ایک تجزیہ کار نے گہرے اعصابی نیٹ ورک کے ساتھ براہ راست آغاز کیا، اسے ہفتوں تک ٹیون کیا، اور 81% درستگی حاصل کی۔ پھر ایک ساتھی کو لاجسٹک ریگریشن کی 20 لائنوں کے ساتھ 80% ملا - بہت تیز، قابل تشریح اور برقرار رکھنے میں آسان۔ سبق: ایک بنیادی لائن اور ایک سادہ ماڈل کے ساتھ شروع کریں، جب وہ اس کے لائق ہو تو پیچیدگی شامل کریں۔

چار کاپی کرنے کے قابل ٹیمپلیٹس

1) مسئلہ کی تعریف کو واضح کرنا:

آپ کا کردار: ماڈلنگ کنسلٹنٹ۔ اس کام کی وضاحت کرنے میں میری مدد کریں: "میں گاہک کو کم کرنا چاہتا ہوں۔" مجھ سے پوچھیں اور واضح کریں: (1) کیا یہ درجہ بندی ہے یا رجعت، (2) ہدف متغیر کیا ہے اور اس کی وضاحت کیسے کی جانی چاہیے، (3) کامیابی کا معیار کیا ہونا چاہیے اور کیوں۔ فیصلہ میرا ہے آپ سوالات اور اختیارات پیش کرتے ہیں۔

2) محفوظ تربیت/ٹیسٹ ٹوکری:

میرے ڈی ایف کو ٹریننگ/ٹیسٹنگ میں 80%/20% تقسیم کریں۔ طبقاتی تقسیم کو برقرار رکھیں (stratify).random_state=42. یہ ٹائم سیریز (آزاد مشاہدات) نہیں ہے۔ تقسیم کے بعد ہر سیٹ کا طبقاتی تناسب پرنٹ کریں۔ کسی تبدیلی کو لاگو کیے بغیر صرف ٹیسٹ سیٹ کو تقسیم کرنے والا کوڈ دیں۔

3) ٹائم سیریز کی تاریخ کی تقسیم:

ڈیٹا وقت پر منحصر ہے (تاریخ کالم: آرڈر_تاریخ)۔ بے ترتیب نہیں، تاریخ کے لحاظ سے تقسیم کریں: قدیم ترین 80% تربیت، جدید ترین 20% ٹیسٹنگ۔ ٹریننگ اور ٹیسٹنگ کی تاریخ کی حدیں پرنٹ کریں تاکہ میں تصدیق کر سکوں کہ مستقبل لیک نہیں ہوا ہے۔

4) ایک بیس لائن ترتیب دینا:

مجھے درجہ بندی کا مسئلہ ہے (ہدف: 0/1 churn)۔ پہلے ایک بیس لائن قائم کریں: DummyClassifier کے ساتھ تربیت/ٹیسٹنگ کی درستگی کی پیمائش کریں، جو ہمیشہ اکثریتی طبقے کی پیش گوئی کرتا ہے۔ پھر ایک سادہ لوجسٹک ریگریشن کو تربیت دیں اور موازنہ کریں کہ آیا یہ بیس لائن کو مات دیتا ہے۔ دونوں کے ساتھ ساتھ میٹرکس دکھائیں۔

کمزور فوری / مضبوط اشارہ

کمزور اشارہ:

اس ڈیٹا کے ساتھ بہترین ماڈل بنائیں۔

"بہترین" غیر متعینہ ہے؛ کوئی مسئلہ نہیں ہے، کوئی مقصد نہیں، کامیابی کا کوئی معیار اور کوئی تقسیم کی حکمت عملی نہیں ہے۔ AI ایک بے ترتیب پیٹرن تیار کرتا ہے، ممکنہ طور پر رسا ہوا ہے۔

طاقتور اشارہ:

آپ کا کردار: ماڈلنگ اسسٹنٹ۔ مسئلہ: درجہ بندی، ہدف "چرن" (0/1)، طبقاتی عدم توازن ہے (~ 12% چرن)۔ کامیابی کا معیار: منتھنی کرنے والوں کو یاد کرنا ایک ترجیح ہے۔ ڈیٹا سے آزاد مشاہدہ (وقت کی سیریز نہیں)۔ ٹاسک: (1) 80/20% سطحی تقسیم، (2) DummyClassifier بیس لائن، (3) لاجسٹک ریگریشن، پائپ لائن میں تمام تبدیلیاں اور صرف تربیت سے سیکھا گیا۔ تقسیم کرنے سے پہلے ٹیسٹ سیٹ کو ہاتھ نہ لگائیں۔

یہاں مسئلہ کی قسم، عدم توازن، کسوٹی اور رساو کی پیمائش واضح ہے۔

عام غلطیاں

  • اصل مقصد کے مطابق کامیابی کے معیار کا انتخاب نہ کرنا۔ غیر متوازن ڈیٹا میں "درستگی" گمراہ کن ہے۔ اگر آپ اقلیتی طبقے کو پکڑنا چاہتے ہیں تو ریکول سامنے آجاتا ہے۔
  • تربیت کے دوران ٹیسٹ سیٹ کو چھونا۔ تقسیم کرنے سے پہلے اسکیلنگ/انکوڈنگ کرنا رسا ہے اور حقیقی کارکردگی کو چھپاتا ہے۔
  • ٹائم سیریز میں بے ترتیب تقسیم۔ ماڈل مستقبل کو دیکھتا ہے، پیداوار میں گر جاتا ہے؛ تاریخ کی تقسیم ضروری ہے۔
  • بیس لائن قائم کیے بغیر ایک پیچیدہ ماڈل میں کودنا۔ بینچ مارکس کے بغیر آپ نہیں جان سکتے کہ ماڈل واقعی اچھا ہے یا نہیں۔
  • تشریح کو نظر انداز کرنا۔ کاروباری فیصلوں میں، ایک سادہ وضاحتی ماڈل اکثر بلیک باکس سے زیادہ قیمتی ہوتا ہے۔
مشورہ: اس سے پہلے کہ آپ ماڈل بنانا شروع کریں، ایک جملہ لکھیں: "یہ ماڈل _____ کی پیشین گوئی کرے گا، اس کی کامیابی کی پیمائش میٹرک _____ سے کی جائے گی، کیونکہ کام کی اصل قیمت _____ ہے۔" اگر آپ اس جملے کو نہیں بھر سکتے ہیں، تو آپ ابھی کوڈ لکھنے کے لیے تیار نہیں ہیں۔

خلاصہ میں

ماڈل بنانے کا سب سے اہم حصہ کوڈ نہیں ہے، بلکہ اس سے پہلے کے فیصلے: صحیح مسئلے کی وضاحت کرنا (درجہ بندی یا رجعت، مقصد کیا ہے، کامیابی کا معیار کیا ہے) اور ڈیٹا کو منصفانہ طور پر تقسیم کرنا (ٹیسٹ سیٹ کو چھوئے بغیر؛ ٹائم سیریز میں تاریخ ساز)۔ ہمیشہ ایک سادہ بیس لائن سے شروع کریں اور پیچیدگی صرف اس وقت شامل کریں جب وہ اس کا مستحق ہو۔ زیادہ تر کاروباری سیاق و سباق میں تشریح کو طاقت سے زیادہ اہمیت دی جاتی ہے۔ AI الگورتھم کے انتخاب اور کوڈ میں ایک طاقتور مشیر ہے، لیکن انسان فیصلہ کرتا ہے کہ آپ کیا پیشین گوئی کرتے ہیں اور کیوں۔

درخواست کا کام

پیشین گوئی کے مسئلے کی وضاحت کریں اور درج ذیل جملہ کو تحریری طور پر مکمل کریں: "یہ ماڈل پیشین گوئی کرے گا ___ (درجہ بندی/رجعت)، ہدف ___ ہے، کامیابی کا معیار ___ ہے کیونکہ ___۔" پھر صحیح حکمت عملی کے ساتھ ڈیٹا کو تقسیم کریں (تاریخی اگر یہ وقت کی سیریز ہے)، ایک بیس لائن قائم کریں، اور پیمائش کریں کہ آیا ایک سادہ پیٹرن اس بیس لائن کو توڑتا ہے۔

چیک لسٹ

  • کیا میں نے مسئلہ کی قسم (درجہ بندی/رجعت) اور ہدف کو واضح طور پر بیان کیا ہے؟
  • کیا میں نے کام کی اصل قیمت کی بنیاد پر کامیابی کے معیار کا انتخاب کیا ہے؟
  • کیا میں نے تربیت کے دوران ٹیسٹ سیٹ کو اچھوتا چھوڑ دیا؟
  • اگر یہ ایک ٹائم سیریز ہے تو کیا میں نے اسے تاریخ کے لحاظ سے تقسیم کیا؟
  • کیا میں نے پیچیدہ ماڈل پر جانے سے پہلے ایک بنیادی لائن قائم کی ہے؟