پیش پردازش داده ها در داده کاوی – راهنمای آماده سازی داده های خام
- چرا پیش پردازش داده ها زندگی تان را نجات می دهد
- چالش های واقعی که پیش پردازش حل می کند
- پنج ستون پیش پردازش داده ها
- ستون اول: پاکسازی داده ها (Data Cleaning)
- ستون دوم: یکپارچه سازی داده ها (Data Integration)
- ستون سوم: تبدیل داده ها (Data Transformation)
- ستون چهارم: کاهش داده ها (Data Reduction)
- ستون پنجم: آماده سازی نهایی (Final Preparation)
- ابزارهای مدرن: از پانداس تا AutoML
- کنترل کیفیت: چگونه مطمئن شوید پیش پردازش کار می کند
- سه مرحله برای شروع
- پیش پردازش سرمایه گذاری است نه هزینه
شما ده ها هزار رکورد داده جمع آوری کرده اید. فایل های CSV، دیتابیس های متفرق، و خروجی سنسورها روی سرور انباشته شده اند. اما وقتی اولین مدل یادگیری ماشین را اجرا می کنید، نتایج بی معنا می شوند. دقت مدل زیر ۵۰% است. نمودارها نادرست اند. گزارش مدیران غیرقابل دفاع. مشکل کجاست؟
مشکل در داده های خام شماست. ۹۰% زمان پروژه های داده کاوی صرف پیش پردازش می شود و این مرحله تعیین کننده ترین عامل موفقیت شماست.
چرا پیش پردازش داده ها زندگی تان را نجات می دهد
داده های خام مانند سنگ معدن هستند. شما نمی توانید طلا را مستقیماً از سنگ استخراج کنید. باید آن را خرد، شست، تصفیه و ذوب کنید. پیش پردازش دقیقاً این کار را برای داده های شما انجام می دهد. این فرآیند داده های ناقص، پرسروصدا و ناسازگار را به منبعی قابل اعتماد تبدیل می کند.
در یک بیمارستان واقعی در آلمان، پزشکان سیستم پیش بینی عفونت بیمارستان را اجرا کردند. داده ها مستقیماً از سیستم های پرونده پزشکی، آزمایشگاه و صورتحساب جمع آوری شد. بدون پیش پردازش، مدل ۳۰% بیماران را اشتباه طبقه بندی کرد. پس از پیاده سازی یک خط پیش پردازش شامل حذف داده های تکراری، استانداردسازی فرمت تاریخ و امتیازدهی مجدد به متغیرهای دسته بندی، دقت به ۸۹% افزایش یافت. این تفاوت بین مرگ و زندگی بیماران بود.
چالش های واقعی که پیش پردازش حل می کند
داده های واقعی کثیف هستند. آن ها چهار مشکل بزرگ دارند:
۱. ناقص بودن (Incompleteness): در یک نظرسنجی آنلاین، ۲۳% شرکت کنندگان فیلد «درآمد سالانه» را خالی گذاشتند. در داده های IoT، سنسورها ۱۵% از بازه های زمانی را گزارش نکردند.
۲. سروصدا (Noise): یک سنسور دما به دلیل تداخل الکترومغناطیسی دقایقی ۹۸% درجه سانتی گراد را ثبت کرد در حالی که دمای واقعی ۲۱% بود. یک کاربر نام محصول را «موبایل» تایپ کرد و کاربر دیگر «مبایل» (با املای اشتباه).
۳. ناسازگاری (Inconsistency): در یک سیستم، واحد فروش «کیلوگرم» است و در سیستم دیگر «پوند». یک پایگاه داده تاریخ را «YYYY-MM-DD» ذخیره می کند و دیگری «MM/DD/YYYY».
۴. تکراری بودن (Redundancy): همان مشتری با سه آدرس ایمیل متفاوت در سه جدول مختلف ثبت شده است.
اگر این مشکلات را برطرف نکنید، مدل های شما بر روی ماسک های اشتباه آموزش می بینند. نتایج غیرقابل اعتماد خواهند بود.

پنج ستون پیش پردازش داده ها
یک چارچوب یکپارچه پیش پردازش را به پنج مرحله اصلی تقسیم می کند. شما این مراحل را به ترتیب اجرا می کنید.
ستون اول: پاکسازی داده ها (Data Cleaning)
این مرحله مهم ترین بخش است. دو مسئله اصلی را حل می کند: مقادیر گم شده و داده های پرت.
مقادیر گم شده: سه نوع مکانیزم گم شدگی وجود دارد. شما ابتدا نوع آن را تشخیص می دهید، سپس روش مناسب را انتخاب می کنید.
- MCAR (گم شدگی کاملاً تصادفی): داده به دلایل تصادفی گم شده است. احتمال گم شدگی به هیچ متغیری بستگی ندارد. در این حالت، حذف سطر قابل قبول است اگر کمتر از ۵% داده ها گم شده باشند.
- MAR (گم شدگی تصادفی): احتمال گم شدگی به متغیرهای مشاهده شده بستگی دارد. برای مثال، افراد با درآمد بالا کمتر تمایل دارند درآمد خود را اعلام کنند. K-Nearest Neighbors (KNN) یا Multiple Imputation by Chained Equations (MICE) در اینجا عملکرد خوبی دارند.
- MNAR (گم شدگی غیرتصادفی): احتمال گم شدگی به خود مقدار گم شده بستگی دارد. این پیچیده ترین حالت است. autoencoder یا روش های چندباره گی چند متغیره توصیه می شوند.
داده های پرت (Outliers): داده هایی که از الگوی عادی فاصله دارند. شما دو روش اصلی دارید:
- IQR Method: چارک (Q۳-Q۱) را محاسبه می کنید. هر داده ای که از ۱.۵×IQR بالاتر یا پایین تر باشد، پرت است.
- Z-Score: داده هایی که |Z-Score| > ۳ هستند را حذف می کنید.
مثال: یک فروشگاه اینترنتی داده های مربوط به ۱۰۰ هزار تراکنش را بررسی کرد. در این داده ها، حدود ۲ درصد مبلغ خریدها ثبت نشده بود. بررسی ها نشان داد که این کمبود اطلاعات تصادفی نیست؛ مشتریانی که خریدهای بزرگ تری داشتند، بیشتر از دیگران مبلغ خریدشان ناقص مانده بود. برای جبران این مشکل، از روش KNN با k=۵ استفاده شد. نتیجه این بود که دقت پیش بینی تقاضا حدود ۱۸ درصد بهتر شد.همچنین در داده ها چند مورد غیرعادی پیدا شد: ۱۵ تراکنش با مبلغ بالای یک میلیارد تومان که به احتمال زیاد خطای ورود اطلاعات بودند. این موارد از تحلیل حذف شدند.
ستون دوم: یکپارچه سازی داده ها (Data Integration)
وقتی داده ها از منابع متعدد می آیند، باید آن ها را ادغام کنید. این کار سه چالش اصلی دارد:
۱. تضادهای معنایی: سیستم های مختلف یک مفهوم را متفاوت تعریف می کنند. در یک سیستم «فروش» شامل مالیات می شود و در سیستم دیگر نه.
۲. تحلیل موجودیت: همان مشتری با نام های متفاوت ثبت شده است. «رضا قنبری»، «علی احمدی» و « مهدی رحمانی.» باید به یک موجودیت واحد تبدیل شوند.
۳. تکراری بودن: دو جدول اطلاعات مشترکی دارند که باید ادغام شود.
راهکار عملی: یک بیمارستان داده های پرونده پزشکی، آزمایشگاه و صورتحساب را ادغام می کند. از DQOps استفاده می کند تا داده های نمونه را تحلیل و الگوهای تکراری را شناسایی کند. نرخ خطای داده ها از ۱۵% به ۳% کاهش یافت. این کار ۶ هفته زمان برد اما پایه ای قابل اعتماد ایجاد کرد.
ستون سوم: تبدیل داده ها (Data Transformation)
الگوریتم های داده کاوی نیازمند داده ها در قالب های خاصی هستند. این مرحله سه تبدیل کلیدی را شامل می شود:
۱. نرمال سازی (Normalization): داده ها را به بازه [۰, ۱] می برد. Min-Max Scaling انجام می دهید:
X_normalized = (X - X_min) / (X_max - X_min)
این کار برای الگوریتم هایی مانند K-Means یا Neural Networks ضروری است.
۲. استانداردسازی (Standardization): داده ها را به توزیعی با میانگین ۰ و انحراف معیار ۱ تبدیل می کنید:
X_standardized = (X - μ) / σ
این روش برای SVM و Logistic Regression بهتر است.
۳. کدگذاری دسته بندی ها (Encoding): متغیرهای دسته بندی (مانند «کشور» یا «جنسیت») را به اعداد تبدیل می کنید.
- One-Hot Encoding: برای دسته بندی های نامرتبط. کشورهای «ایران»، «آمریکا»، «چین» به [۱,۰,۰]، [۰,۱,۰]، [۰,۰,۱] تبدیل می شوند.
- Label Encoding: برای دسته بندی های ترتیبی. «کم»، «متوسط»، «زیاد» به ۰، ۱، ۲ تبدیل می شود.
مثال ملموس: یک شرکت فناوری داده های کاربران را از ۱۵ کشور مختلف دارد. پس از One-Hot Encoding، ۱۵ ستون جدید ایجاد می شود. اما اگر از Label Encoding استفاده کند، الگوریتم ممکن است تفاوت های غیرواقعی بین کشورها ایجاد کند (مثلاً ایران=۰، آمریکا=۱، چین=۲ → چین «بیشتر» از آمریکا!). بنابراین One-Hot Encoding انتخاب شد. دقت مدل ۱۲% افزایش یافت.
ستون چهارم: کاهش داده ها (Data Reduction)
وقتی تعداد متغیرها زیاد است، مدل ها کند و آسیب پذیر به overfitting می شوند. دو روش اصلی دارید:
۱. کاهش ابعاد (Dimensionality Reduction): PCA (Principal Component Analysis) داده ها را به فضایی با تعداد کمتر از متغیر تبدیل می کند که بیشترین واریانس را حفظ کند.
نحوه کار PCA:
- ماتریس کواریانس را محاسبه می کنید
- بردارهای ویژه (eigenvectors) و مقادیر ویژه (eigenvalues) را می یابید
- اجزای اصلی را بر اساس eigenvalues مرتب می کنید
- تعداد کمی از مهم ترین اجزا را نگه می دارید
مثال: مجموعه داده Iris، چهار ویژگی دارد. PCA آن را به ۲ بعد تبدیل می کند. شما می توانید ۹۶% از اطلاعات را با ۲ متغیر نگه دارید. مدل SVM از ۸ ثانیه به ۲ ثانیه سریع تر شد.
۲. انتخاب ویژگی (Feature Selection): فقط ویژگی های مهم را نگه می دارید. سه دسته روش دارید:
- Filter Methods: سریع هستند و بر اساس آزمون های آماری کار می کنند. Variance Threshold ویژگی هایی با واریانس کمتر از ۰.۰۱ را حذف می کند. Correlation Matrix ویژگی هایی با همبستگی بالای ۰.۹۵ را شناسایی و یکی را حذف می کند.
- Wrapper Methods: عملکرد مدل را مستقیماً ارزیابی می کنند. Recursive Feature Elimination (RFE) با شروع از تمام ویژگی ها، تک تک کم اهمیت ترین ها را حذف می کند. این روش دقت بالاتری دارد اما ۱۰ برابر کندتر است.
- Embedded Methods: انتخاب ویژگی درون مدل انجام می شود. L۱ Regularization (LASSO) ضرایب کم اهمیت را صفر می کند و آن ویژگی ها را حذف می کند.
مقایسه عملی: یک بانک ۲۰۰ ویژگی برای پیش بینی نکول وام داشت. Filter Methods در ۳۰ ثانیه ۵۰ ویژگی را حذف کرد. Wrapper Methods در ۴۵ دقیقه به ۳۰ ویژگی رسید و دقت ۳% بهتر بود. برای تولید، از Embedded LASSO استفاده شد که تعادل خوبی بین سرعت و دقت برقرار کرد.
ستون پنجم: آماده سازی نهایی (Final Preparation)
قبل از ورود به مرحله داده کاوی، باید کیفیت را ارزیابی کنید:
- آمار توصیفی: میانگین، میانه، انحراف معیار را بررسی کنید
- نمودارها: Boxplot برای پرت ها، هیستوگرام برای توزیع
- ماتریس همبستگی: برای شناسایی ویژگی های وابسته
- تست نرمالیتی: Shapiro-Wilk test برای بررسی توزیع نرمال
ابزارهای مدرن: از پانداس تا AutoML
شما نیازی به کدنویسی دستی همه این مراحل ندارید. ابزارهای مدرن کار را تسهیل می کنند:
۱. کتابخانه های پایتون:
- Pandas: برای حذف تکراری ها (drop_duplicates())، پر کردن مقادیر گم شده (fillna())
- Scikit-learn: برای StandardScaler، LabelEncoder، PCA، RFE
- Feature-engine: برای تبدیلات پیشرفته
۲. پلتفرم های AutoML:
- AutoGluon: خودکار تمام پیش پردازش را انجام می دهد. در یک آزمایش، زمان پیش پردازش از ۳ روز به ۶ ساعت کاهش یافت.
- H۲O.ai: داده های خام را می گیرد و خط لوله پیش پردازش بهینه را پیشنهاد می دهد.
۳. پلتفرم های تجاری:
- DQOps: داده های نمونه را تحلیل و پیشنهادات کیفیت می دهد
- Talend: برای یکپارچه سازی داده های سازمانی
کنترل کیفیت: چگونه مطمئن شوید پیش پردازش کار می کند
بدون اندازه گیری، نمی توانید بهبود را تشخیص دهید. شش معیار کلیدی را رصد کنید:
- ۱. نسبت داده به خطا: تعداد خطاها را بر کل داده تقسیم کنید. هدف: کاهش ۱۰% ماهانه
- ۲. درصد مقادیر خالی: تعداد Null ها را در هر ستون شمارش کنید. هدف: کمتر از ۲%
- ۳. خطاهای تبدیل: تعداد عملیات تبدیل ناموفق را ثبت کنید. هدف: صفر
- ۴. همبستگی ویژگی ها: ماتریس همبستگی را محاسبه کنید. هدف: کمتر از ۱۰ جفت با همبستگی >۰.۹۵
- ۵. زمان پردازش: هر مرحله را زمان سنجی کنید. هدف: کاهش ۱۵% در هر تکرار
- ۶. دقت مدل پایه: یک مدل ساده (مانند Logistic Regression) را قبل و بعد از پیش پردازش اجرا کنید. بهبود دقت باید دست کم ۱۲-۱۵% باشد.
مثال عملی: یک شرکت بیمه جدول داشبورد ایجاد کرد. هر هفته، این شش معیار را اندازه گیری می کند. وقتی نسبت داده به خطا از ۸% به ۱.۵% کاهش یافت، مدیران به داده ها اعتماد کردند و تصمیم گیری استراتژیک ۴۰% سریع تر شد.
سه مرحله برای شروع
سه گام کلیدی که به شما کمک می کند فرآیند آماده سازی داده ها و اعتبارسنجی مدل را به صورت مرحله ای و سازمان یافته پیش ببرید.
مرحله ۱: ارزیابی اولیه (هفته اول)
- نمونه ای ۱۰,۰۰۰ رکوردی از داده های خود بردارید
df.isnull().sum()را در پایتون اجرا کنید. نتایج را در اکسل فهرست کنیدdf.describe()را اجرا کنید. مقادیر min/max غیرمنطقی را علامت بزنید- یک نمودار boxplot برای ۵ متغیر عددی اصلی رسم کنید. پرت ها را شناسایی کنید
مرحله ۲: پیاده سازی پایپ لاین (هفته دوم تا چهارم)
- برای هر ستون، نوع گم شدگی (MCAR/MAR/MNAR) را تشخیص دهید
- روش imputation مناسب را انتخاب و پیاده سازی کنید
- فرمت ها را استاندارد کنید (تاریخ، واحدها)
- ویژگی های تکراری را با correlation >۰.۹۵ شناسایی و حذف کنید
- PCA را برای کاهش ابعاد اجرا کنید
مرحله ۳: اعتبارسنجی و نظارت (ماه بعد به بعد)
- دقت مدل قبل و بعد را مقایسه کنید
- شش معیار کیفیت را در یک جدول هفتگی رصد کنید
- DQOps یا ابزار مشابه را برای نظارت خودکار پیکربندی کنید
پیش پردازش سرمایه گذاری است نه هزینه
شما اکنون می دانید که پیش پردازش داده ها نه تنها یک مرحله تکنیکی، بلکه یک مزیت رقابتی است. شرکت هایی که داده های پاک تولید می کنند، ۲۳% سریع تر تصمیم می گیرند و ۱۹% سود بیشتری کسب می کنند.
پیشنهاد لرنادو: یک فایل داده خام باز کنید. یک ستون را انتخاب کنید.df['your_column'].isnull().sum() را اجرا کنید. آن عدد را یادداشت کنید. این نقطه شروع شماست. هر روز ۳۰ دقیقه به بهبود این عدد اختصاص دهید. در پایان ماه، دقت مدل شما بهبود یافته، مدیران راضی تر و نتایج قابل استنادتر خواهند بود.
داده کاوی بدون پیش پردازش مانند ساختن خانه روی ماسه است. اما با پیش پردازش دقیق، شما پایه ای از بتن مسلح می سازید که میتواند سازه های عظیم هوش مصنوعی را به دوش بکشد.
آیا آماده اید داده هایتان را به طلا تبدیل کنید؟
منابع و مطالعات بیشتر:
- برای کد عملی: Scikit-learn Preprocessing Documentation
- برای یکپارچه سازی: DQOps Data Quality Rule Mining
- برای کاهش ابعاد: PCA Tutorial در سایت Built In
- برای انتخاب ویژگی: Sebastian Raschka’s Guide