کامران کیانلو
کامران کیانلو
خواندن ۱۳ دقیقه·۸ ماه پیش

چک لیست دیتا ساینس به روش اعضای تیم مایکروسافت

این چک لیست ترجمه و خلاصه دم دستی از چک لیست پروژه دیتاساینس و ماشین لرنینگ سایت دیتاکمپ هست که می تونید اینفوگرافیک اونو به زبان انگلیسی از این لینک دانلود کنید.

خوبیش اینه که این چک لیست ترکیبی از فرآیندهای تیم دیتاساینس مایکروسافت و دومینو دیتا لب هست و میشه بهش اعتماد کرد.

آپدیت: واقعیت اینه که تو بحث های تخصصی ترجمه واقعا کار آسونی نیست و من هم هیچ ادعایی تو ترجمه ندارم ولی به نظرم رسید اگر ترجمه بشه می تونه کمک کننده باشه. امیدوارم براتون مفید باشه به درد من که خیلی خورد.

قواعد کلی در مدیریت پروژه

به طور کلی پروژه های دیتا ساینسی موفق خواهند بود که قواعد زیر را رعایت می کنند

  • معیار measurable: آیا موفقیت این پروژه بر بیزینس قابل سنجش است؟
  • معیار reliable: چه نسبتی از پروژه های دیتاساینس قبلی در این بیزینس به اهداف خودشون دست یافتند؟
  • معیار scalable: آیا می توان توان عملیاتی پروژه را بدون کاهش قابلیت اطمینان افزایش داد؟

سایر قواعد

با اینحال تیم های داده ساسنس علاوه بر موارد بالا باید قواعد زیر را نیز رعایت کنند

  • معیار Iterative: پروژه ها به ندرت مثل یک خط ثابت و بدون چالش تمام می شوند - بلکه بارها نیاز داریم به قدم های عقب بازگردیم- از تکنیک های agile و scrum برای حل این چالش ها و برگشت به قدم های قبلی استفاده کنید
  • معیار Reusable & Recycable: توسعه هر پروژه از صفر هزینه زمان و انرژی زیادی می برد - هر پروژه را طوری درست کنید که از مدل ها کد ها و داکیومنت های آن در دفعات بعدی استفاده نمایید
  • معیار Reproducible: همه چیز را طوری درست کنید که هربار به آن بازگشتید بتوانید به سادگی آن را بفهمید و ویرایش کنید - حالا با کامنت گذاری و کد نویسی تمیز گرفته تا روش های دیگر چون بارها ممکن است در هر زمانی بخواهید به کدها برگردید و آن ها را ویرایش کنید


فازهای مدیریت پروژه دیتاساینس

هر دو سازمان مایکروسافت و دومینو دیتا لب از شیوه های زیر برای فاز بندی پروژه های دیتاساینس خودشون استفاده می کنند

  • فاز اول: Context Setting & ideation
  • فاز دوم: Data Collection & Exploration
  • فاز سوم: Modeling & Testing
  • فاز چهارم: Deployment & User Testing
  • فاز پنجم: Monitoring


فاز اول: Context Setting & Ideation

  • قدم ۱:‌ چه مشکلی در بیزینس باید حل شود؟

- باید به صورت کاملا شفاف دغدغه های بیزیسن و دلیل ایجاد پروژه مشخص گردد


  • قدم ۲: اعضای پروژه را مشخص کنید

- نقش افرادی که در پروژه حضور دارند و وظایف و اختیارات هر فرد را مشخص کنید مثل لید دیتاساینس- حسابدار-مدیر داده ها- مهندس داده و ...


  • قدم ۳: پروژه های مشابه را که قبلا انجام دادید مرور کنید

- نتایج کلیدی پروژه های قبلی چه بود؟

- چه بخش هایی از پروژه های قبلی را می توانیم در این پروژه استفاده کنیم؟

- چه اشتباهاتی انجام دادید که باید از آن اجتناب کنید؟


قدم ۴: معیارهای شاخص عملکردی - KPI ها را برای اندازه گیری میزان موفقیت تعیین نمایید

- معیارهای KPI باید طبق متد SMART مشخص گردند

- شاخص Specific: مشخص باشد به طوری که تمام افراد تیم آن را بفهمند.

- شاخص Measurable: قابل اندازه گیری باشد به طوری بتوانیم به سادگی با دیدن عدد بفهمیم به KPI رسیدیم یا خیر

- شاخص Achievable:‌ اعضای تیم توانایی و منابع لازم برای رسیدن به هدف را داشته باشند

- شاخص Relevant: شاخص ها در راستانی اهداف سازمان و شرکت باشند

- شاخص Time-Related: ددلاینی برای رسیدن به هدف مشخص گردد

یک مثال از KPI غیر SMART: 'افزایش بازدید سایت'

یک مثال از SMART KPI: بهینه سازی UI و UX وبسایت برای افزایش ۱۰٪ نرخ تبدیل فروش تا پایان تابستان


قدم ۵: اختیارات و انتظارات پروژه را مشخص کنید

- خروجی های پروژه چه مواردی باید باشد؟

- چه آیتم هایی برای رسیدن به خروجی مد نظر مورد نیاز است؟

- چه مواردی در پروژه گنجانده نمی گردد و شامل پروژه نخواهد شد؟


قدم ۶: یک پلن برنامه ریزی برای پروژه بنویسد

- نقاط عطف را برای مراحل میانی پروژه تعیین نمایید

- ددلاین ها را برای هرکدام از نقاط عطف پروژه تعیین کنید

- شرح کوتاهی از هر مرحله و خروجی مدنظر آن بنویسید


قدم ۷: تخمین تاثیرگذاری های پروژه

- تعیین کنید اگر به اهداف دست پیدا کنید سازمان چقدر سود خواهد نمود

- اگر عدم قطعیت در محاسبات وجود دارد یک محدوده برای آن مشخص نمایید

- هرگونه مزیتی شرکت به دست خواهد آورد ولی به صورت کمی قابل اندازه گیری نیست را ذکر نمایید


قدم ۸:‌ هزینه های پروژه را تخمین بزنید

- پروژه چه هزینه هایی خواهد داشت؟

- چقدر زمان باید صرف انجام پروژه گردد؟

- چه منابعی برای انجام پروژه نیاز دارید؟


قدم ۹: ریسک های پروژه را تخمین بزنید

- تمام ریسک های پروژه را ذکر کنید

- برای هر کدام از ریسک ها- تاثیر آن را به صورت احتمال وقوع ضربدر شدت وقوع آن محاسبه نمایید.


قدم ‍۱۰: تصمیم بگیرید می خواهید پروژه را ادامه دهید یا خیر

با توجه به انتظارات پروژه- تاثیرات و ریسک های آن یکی از تصمیم های زیر را بگیرید

- پروژه را در دستور کار قرار دهید و شروع کنید

- پروژه را به صورت Hold نگه دارید و بعد از انجام اولیت های بالاتر به آن سر بزنید

- پروژه را به طور کل کنسل کنید


قدم ۱۱: مسولیت های هر شخص را در تیم مشخص کنید

می توانید از مدل RACI استفاده کنید - برای مثال برای هر تسک موارد زیر را مشخص کنید:

- تعیین Responsible: مشخص کردن فرد مسیول انجام تسک است

- تعیین Accountable: مشخص کردن فردی که مسیول اتخاذ تصمیم های کلیدی است

- تعیین Consulted: مشخص کردن افرادی که که نظراتشان در مورد تصمیمات کلیدی خواسته شده است

- تعیین Informed: مشخص کردن افرادی که در مورد تصمیمات کلیدی باید آگاه شوند


قدم ۱۲: تعیین کنید چطور قرار است با هم در ارتباط باشید؟

- چگونه و از چه طریقی با هم در ارتباط خواهید بود؟

- جلسات به چه صورت برگزار خواهد شد؟


قدم ۱۳: دیتا سورس ها را مشخص کنید

-آیا به این دیتاسورس دسترسی دارید؟

  • این دیتاها کجا نگهداری می شود؟
  • دیتاسورس به چه شکلی است؟
  • چقدر بزرگ است؟
  • آیا یک سند برای توضیح بخش های مختلف دیتا وجود دارد؟
  • با توجه به دیتاسورس می توان از دیتای مصنوعی برای اثبات موارد مدنظر استفاده کرد


قدم ۱۴: از نظر قانونی موارد مورد نظر را بررسی کنید

  • آیا گزارش هایی که تحویل می دهیم قرار است توسط مراجع قانونی نظارت گردد (مثل مدل های مالی)
  • آیا تمام دیتاسورس ها و مواردی که استفاده می کنیم قانونی هستند؟


قدم ۱۵:‌ نوع تکنولوژی که می خواهید استفاده کنید را مشخص کنید

  • بر روی ابزارهایی که برای ذخیره سازی- پردازش و مدلینگ دیتا قرار است استفاده کنید به توافق برسید


قدم ۱۶:‌ چارت پروژه را طراحی کنید

  • به صورت خلاصه تصمیمات خود در مورد پروژه- اهداف- اعضای پروژه- KPI ها - برنامه ریزی ها - دیتاسورس - تکنولوژی مورد نظر و شیوه تعامل افراد با یکدیگر را به صورت چارت بنویسید


فاز دوم: Data Collection & Exploration

قدم ۱: به دیتاساینتیست ها دسترسی به تمام دیتاست ها داده شود

  • مجوز های لازم برای هر دیتاست را از تیم فنی بگیرید
  • هر دیتاستی که لازم است خریده شود را تهیه کنید یا از داده های مصنوعی استفاده کنید


قدم ۲: دیتاها را منتقل کنید

  • هر دیتاسورس را به محیط آنالیزی خود منتقل کنید


قدم ۳: دیتاها را تحلیل کنید

  • توزیع هر متغیر را در داده خودو با استفاده از هیستوگرام یا Bar Plot به صورت مصور ایجاد نمایید
  • مقادیر از دست رفته (NaN) را برای هر متغیر تعیین تکلیف کنید
  • رابطه بین متغیرها (Features) را با متغیر هدف با استفاده از Scatter- Histogram - Box Plot و heatmap مشخص کنید


قدم ۴: شاخص های کلیدی عملکردی (KPI) ها را برای اندازه گیری میزان موفقیت مشخص کنید

برای هر دیتاست:

  • خلاصه ای از دیتاست را مشخص کنید
  • هرگونه مشکل کیفیت داده در سطح بالا را شرح دهید
  • کیفیت متغیر هدف را شرح دهید
  • کیفیت هرمتغیر دیگر (Features) را شرح دهید
  • رابطه بین هر متغیر با متغیر هدف را شرح دهید


قدم ۵: تصمیم بگیرید پروژه را ادامه دهید یا خیر

با توجه به گزارش کیفیت داده ها یکی از تصمیم های زیر را بگیرید

  • به پروژه ادامه دهید
  • پروژه را متوقف کنید تا زمانی که دیتاهای بیشتری جمع آوری گردد
  • پروژه را کنسل کنید


قدم ۶:‌ یک پایپ لاین برای داده ها ایجاد کنید

داده ها باید با پیشرفت پروژه به صورت منظم بروز گردند. پایپ لاین داده باید:

  • به صورت اتوماتیک به محل آنالیز انتقال داده شوند و تمیز گردند
  • باید بر روی یک حالت برنامه ریزی خودکار تنظیم گردند که یا به صورت دسته ای آپدیت شوند یا به صورت یک جریان برقرار (streaming Updates)


قدم ۷: پایپ لاین داده خود را داکیومنت کنید

  • نموداری از پایپ لاین داده خود و وابستگی های آن رسم کنید
  • در هر مرحله از پایپ لاین توضیح دهید که چه اتفاقی می افتد


فاز سوم: Modeling & Testing

نکته: این فاز هر پروژه های ماشین لرنینگ هم آزمایش هایی که می خواهیم در پروژه انجام دهیم (مثل A/B تستینگ) را شامل می گردد. از هر مرحله ای که برای پروژه شما منطقی نیست گذر کنید.


بخش یک Modeling

قدم ۱: یک فرضیه را در نظر بگیرید

  • آیا این فرضیه در حوزه کسب و کار شما معنا دارد؟
  • آیا می توان نتیجه را اندازه گیری کرد؟
  • آیا داده های کافی برای مشاهده اثر آماری معنا دار دارید؟
  • آیا سوگیری های آماری وجود دارد که باید آن ها را در نظر بگیرید؟


قدم ۲: داده های خود را به دو بخش Train و Test تقسیم کنید

  • قبل از شروع این مرحله مطمین شوید که بر روی داده های شما Data Engineering انجام شده باشد تا یک وقت داده ای را از دست ندهید


قدم ۳: مهندسی ویژگی ها - Data Features

برای مدل خود از طریق تکنیک های زیر Feature ایجاد کنید

  • از شیوه Median یا scale number Variable استفاده کنید
  • با استفاده از binning از داده های عددی خود Feature Category ایجاد نمایید
  • با استفاده از Box-Cox یا Yeo-Johnton داده های خود را به متغیر های عددی تبدیل کنید تا یک توزیع نرمال را دنبال کنند
  • دسته بندی های کمیاب یا یا مرتبط را با هم ترکیب کنید
  • داده های زمانی - Datetimes را extract یا ترکیب کنید
  • متغیرهای جدید از خلاصه آمارها ایجاد کنید
  • از داده های متنی یا غیرساختار یافته معیارهای کمی ایجاد کنید


قدم ۴:‌ مدل را fit کنید یا آزمایشی را بر روی آن انجام دهید

  • از ساده ترین مدل شروع به fit کردن کنید و سپس پیچیدگی را افزایش دهید
  • برای دیتاست های بزرگ حتما با یک sample شروع کنید


قدم۵: نتایج را ارزیابی کنید

از معیارهایی مثل دقت-Accuracy | درستی-Precision و Recall برای ارزیابی مدل خود استفاده کنید. اگر عملکرد به اندازه کافی خوب بود:

  • آیا می توانید دیتاهای بیشتری جمع آوری کنید
  • آیا می توانید داده های بیشتری را دخیل کنید یا اصطلاحا مهندسی کنید - Engineer more features
  • آیا می توانید از الگوریتم های دیگر استفاده کنید؟


قدم۶:‌ گزارشی از نتایج آماده کنید

  • به صورت منظم به اعضای پروژه فیدبک دهید و از آنها فیدبک دریافت کنید
  • یک زبان مشترک بین اعضای بیزینس و اعضای تکنیکال تیم دیتاساینس مشخص نمایید
  • شکست ها را نیز همانند موفقیت ها گزارش دهید


بخش Testing

قدم ۱: یک شرایط آزمایشی را ایجاد نمایید

یک شرایط آزمایشی ایجاد کنید به صورت اتوماتیک عملکرد مدل یا آزمایش شما را تست کند و اشکالاتی که ممکن است دوباره تکرار شوند را مشخص کند. این موارد شامل حالت های زیر می شود:

  1. تست هایی در کد خود
  2. یک بک تست بر روی سایر نمونه کار ها یا time series های دیگر


قدم ۲: تاثیری که بر روی کسب و کار شامل می شود را مجدد بررسی کنید

حالا شما عملکرد مدل خود را به صورت یک معیار دارید و می توانید به صورت عملی تاثیراتی را که انتظار داشتید بر روی بیزینس چک کنید. در مورد تاثیرات با اعضای کلیدی بیزینس بحث و مکالمه کنید


قدم ۳: رویکرد فنی که اتخاذ کردید را مجدد بررسی کنید

مطمین شوید که مدل نهایی از لحاظ تکنیکالی مناسب است

  • آیا فرضیه هایی که برای مدل در نظر گرفته بودید معتبر هستند؟
  • آیا نتایج به داده هایی که نمونه برداری می کنید حساس هستند؟
  • آیا پارامتر های شما به صورت کلی مناسب هستند؟
  • آیا کسی دیگر می تواند مجدد از مدل شما استفاده کند؟


قدم ۴: قابلیت استقرار یا Deploy را با تیم فنی بررسی و تایید کنید

  • آیا تمام احتمالات ورودی و use-case ها را می تواند هندل کند؟
  • آیا تمام منابع مورد نیاز در بخش production موجود است؟
  • اگر دیتاسورس ها موجود نباشند آیا مدل به خوبی و با خطاهای مناسب می تواند شکست بخورد؟
  • آیا پیش بینی به اندازه کافی سریع است؟


قدم ۵: نگهداری نتایج null

هرچیزی که به مرحله Production نمیرسد باید در یک مخزن دانش - Knowledge Repository نگهداری شود تا پروژه های آینده برای آن وقت صرف نکنند.


فاز چهارم: Deployment & User Testing

بخش Deployment


قدم ۱: یک پایپ لاین دیتا توسعه دهید

  • یک DAG یا Directed Acyclic Graph برای تمام دیتاسورس ها در محیط عملیاتی production ایجاد کنید
  • برای آپدیت خودکار داده ها یک برنامه ریزی زمانی ایجاد نمایید


قدم ۲: یک پایپ لاین برای مدل توسعه دهید

  • یک API برای مدل خود توسعه دهید تا توسط یک داشبورد- وبسایت یا نرم افزار دیگری قابل دسترس باشد


قدم ۳: برای مانیتور اطلاعات برنامه ریزی کنید

  • معیارهایی که باید Track شوند از جمله معیار عملکرد و معیار امنیت که به شما باگ ها را نشان دهد
  • محدوده های قابل قبول برای آن معیار مشخص کنید
  • تعیین کنید که چطور Alert دریافت کنید اگر معیار از رنج خارج شد


قدم ۴: یک سناریو A/B تستینگ ایجاد کنید

  • ویژگی یا مدل جدید را برای تعدادی از کابران تستی امتحان کنید
  • معیارها را با دقت زیر نظر داشته باشید اما تا زمانی که یک موضوع اهمیت آماری نداشته باشد از نظر گروه بندی جدید مقاوت داشته باشید


قدم ۵:‌ نتایج A/B تستینگ را تحلیل و گزارش نمایید

  • معیاری که برای اندازه گیری در هر گروه مشخص کردید را با هم مقایسه کنید
  • نتایج را گزارش دهید - حتی اگر آزمایش ها موفقیت آمیز نبودند


قدم ۶: نتایج را برای تمام کاربران یا بیشتر آنها امتحان نمایید

اگر تست ها موفقیت آمیز بود feature یا مدل خود را برای تمام کاربران یا بیشتر آنها امتحان نمایید.

  • یک گروه کوچک را نگه دارید که این ویژگی یا مدل را دریافت نمی کنند تا بتوانید در بلند مدت میزان افزایش عملکرد خود را با مدل یا ویژگی جدید بررسی نمایید


بخش User Testing

قدم اول: یک گزارش از خروجی کار بنویسید

به صورت خلاصه وضعیت پروژه و مواردی که یاد گرفتید یا مشخص کنید

  • یک بررسی اجمالی از پروژه بنویسید
  • خلاصه ای از مشکلات پروژه که شما برای حل آن تلاش کردید
  • توضیحی در مورد دیتاسورس ها و پردازش هایی که بر روی آنها انجام شد
  • توضیحی در مورد تکنیک مدل سازی استفاده شده و اینکه چطور مدل را ارزیابی کردید
  • خلاصه ای از معماری راه حل
  • دورنمایی از مزایایی که پروژه برای کمپانی و مشتری ها به ارمقان می آورد
  • هرگونه یادگیری که پیرامون اجرای پروژه - دیتا ساینس - حوزه کاری بیزینس و محصول داشتید را توضیح دهید
  • دورنمایی از قدم بعدی


قدم دوم: گرفتن فیدبک از مشتریان

  • انجام نظر سنجی و مصاحبه با مشتریان
  • نظرات- امتیازات و شبکه های اجتماعی را مانیتور کنید


فاز پنجم: Monitoring

قدم ۱: یک پایپ لاین برای مانیتور توسعه دهید

یک پایپ لاین برای track کردن خودکار عملکرد و معیارهای Safety برای پلن مانیتورینگ خودتون تعریف کنید


قدم ۲: داشبورد ایجاد کنید

داشبوردهایی ایجاد کنید تا تغییرات متریک هارو در هر زمانی نشان دهند


قدم ۳: alert ها را تنظیم کنید

مشخص کنید که از طریق ایمیل - پیامک - ربات و ... تغییرات غیرقابل پذیرش را به شما اعلام نماید.

چک لیستماشین لرنینگدیتا ساینستحلیل دادهمدیریت پروژه
الان در حال یادگیری MQL5 - کنجکاوی هام درباره برنامه نویسی رو اینجا می نویسم.
شاید از این پست‌ها خوشتان بیاید