یکی از دغدغههای مهندسین کیفیت و قابلیت اطمینان، حصول اطمینان از کیفیت محصولات تولیدی بر اساس تستهایی است که پس از پایان فرایند تولید بر روی محصولات انجام میگردد.
در این پست سعی نمودهام با استفاده از تکنیک رگرسیون لجستیگ و اصول تنظیم (Regularization)، مدلی برای سهولت پیشبینی کیفیت محصولات ارائه نمایم. تکنیکهای فوق با استفاده از زبان برنامهنویسی R پیادهسازی خواهند شد. در صورتی که علاقمند به پیادهسازی مدل ارائه شده هستید، نیاز میباشد که کتابخانههای ذیل را نصب نمایید:
library(ggplot2)
library(data.table)
library(magrittr)
لازم به ذکر است که دیتاست مورد استفاده در این مطلب، از دورهی یادگیری ماشین دانشگاه استنفورد الهام گرفته شده است. در صورت نیاز به آشنایی با مفاهیم رگرسیون لجستیک پیشنهاد میکنم مطالب ذکر شده در صفحه ذیل را مطالعه نمایید.
فرض کنید مجموعهی دادهای داریم که نتایج انجام دو تست مختلف و مستقل بر محصولات تولیدی در آن گزارش شده است. در مجموعهی دادهی ذیل که بخشی از دیتاست مورد استفاده میباشد، ستون اول بیانگر اجرای نتایج تست 1 بر روی هر محصول تولیدی، ستون دوم بیانگر اجرای نتایج تست 2 بر روی هر محصول تولیدی و ستون سوم که به صورت یک متغیر باینر(صفر و یک) میباشد نشان میدهد که محصول در حین مصرف از کیفیت ماسنب برخودار میباشد یا خیر. عدد صفر بیانگر عدم پذیرش کیفیت و عدد یک بیانگر پذیرش کیفیت میباشد.
به منظور اجرای تحلیل و آغاز مدلسازی برای دادههای tidy، پیشنهاد میگردد که در مرحلهی اول دیتاهای موجود را plot نماییم تا درک بهتری از دادههای موجود حاصل گردد.
برای رسم نمودار Scatter Plot دادههای نشان داده شده در شکل 1، کد نشان داده شده در شکل 2 را اجرا مینماییم تا خروجی شکل 3 حاصل گردد.
همان طور که از شواهد پیداست برای classify کردن دیتاها به دو دسته Failed و Passed به معادله رگرسیون لجستیکی غیر خطی نیاز میباشد. غیر خطی بودن نیز همواره با مشکل Overfitting میباشد، لذا در این مواقع استفاده از Regularization برای حل این مشکل توصیه اکید میگردد.
برای توسعه مدل مناسب، تمامی حالات متغییرهای Test1 و Test2 تا درجه 6 را ایجاد می نماییم و سپس با استفاده از Regularization تنها ویژگیهایی را در نظر میگیریم که تابع هزینه مدل رگرسیون لجستیک را مینیمم کنند.
کدهای نشان داده شده در شکل 4 تمامی ویژگیها تا توان 6 دو متغییر Test1 و Test2 را ایجاد میکند که نتایج آن در شکل 5 نشان داده شده است.
برای توسعهی مدل، کدهای نشان داده شده در شکل 7 را پیادهسازی مینماییم که نتایج آن در شکل 8 نشان داده شده است.
در ستون fitted_result_label مقادیر خروجی مدل برای دیتاست نشان داده شده است. به عنوان مثال برای دادههای ردیف سوم مقدار مشخص شده در ستون Label نشان دهندهی این موضوع میباشد که محصول تولید شده از لحاظ کیفیت قابل قبول میباشد و نتایج مدل توسعه داد شده نیز نشان می دهد که محصول مورد نظر نیز از لحاظ کیفی قابل قبول میباشد.
برای بررسی کیفیت مدل توسعه داده شده نیاز میباشد که شاخصهایی را محاسبه نماییم که بیانگر کیفیت مدل میباشند. کدهای مورد نیاز این شاخصها در شکل 9 نشان داده شده است.
با توجه به نتایج شاخصها می توان این استنباط را نمود که مدل پیادهسازی شده از کیفیت مناسبی برخوردار است.
در شکل 11، تابع رگرسیون برازش داده شده نشان داده شده است.
بر اساس نتایج تستها با استفاده از Decision boundary نشان داده شده، میتوان برای محصولاتی که در آینده تولید خواهند شد در رابطه با کیفیت محصول تصمیمگیری نمود. نقاطی که بر اساس نتایج تستها خارج از خطوط سبز واقع شوند به احتمال زیاد از کیفیت مناسب برخودار نخواهند بود.