رفتن به محتوای اصلی
بازگشت به وبلاگ

داده و اتصال فنی

Whitening در PCA؛ کوواریانس و رتبه چه نقشی دارند؟

با تمرین پایتون، سفیدسازی را در دادهٔ دارای کوواریانس و رتبهٔ ناقص بررسی کنید و تفاوت خروجی کاهش‌یافته و تمام‌بعد را ببینید.

استانداردکردنِ جداگانهٔ ستون‌ها، همبستگیِ میانِ آن‌ها را لزوماً حذف نمی‌کند. Whitening با تغییرِ جهت و مقیاس می‌تواند کوواریانسِ نمونهٔ آموزش را در مختصاتِ انتخاب‌شده به همانی برساند. مثالِ این صفحه تمامِ ماتریسِ کوواریانس را کنترل می‌کند؛ عددِ رویِ قطر یا نامِ «نرمال‌سازی» به‌تنهایی کافی نیست.

چهار نقطه با وابستگیِ دو ستون

دادهٔ اصیلِ ما [−۳، −۱]، [−۱، −۳]، [۱، ۳] و [۳، ۱] است. میانگینِ هر ستون صفر است. با مخرجِ n−۱=۳، کوواریانسِ دقیق دو سطرِ [۲۰/۳، ۴] و [۴، ۲۰/۳] دارد. کسرهایِ این ماتریس با ضرب و جمعِ دستیِ Fraction محاسبه شده‌اند، نه با خروجیِ همان eigensolver.

اگر هر ستون را فقط بر انحرافِ معیارِ نمونه‌ایِ خودش تقسیم کنیم، قطرها ۱ می‌شوند ولی دو خانهٔ بیرونِ قطر ۰٫۶ می‌مانند. این شاهدِ واقعی، تفاوتِ استانداردسازیِ تک‌ستونی با سفیدسازیِ ماتریس را نشان می‌دهد. تعریفِ ddof در این تمرین ۱ است؛ آن را با مخرجِ n جابه‌جا نمی‌کنیم.

جهت‌ها را بچرخانیم و سپس مقیاس دهیم

اجرایِ واقعیِ NumPy.eigh مقدارهایِ ویژهٔ ۸/۳ و ۳۲/۳ را می‌دهد. اگر V ماتریسِ بردارهایِ ویژه و Z دادهٔ مرکزشده باشد، Y=ZVdiag(۱/√λ) می‌سازیم. حاصلِ YᵀY/(n−۱) در تلورانسِ آزمون، ماتریسِ همانی است؛ خطایِ بسیار کوچکِ خارجِ قطر در JSON نیز پنهان نشده است.

متعامدبودنِ پایه و بازسازیِ چهار نقطه از Y و λ و V نیز کنترل می‌شود. تغییرِ علامتِ یک بردارِ ویژه، علامتِ همان ستونِ خروجی را عوض می‌کند، ولی کوواریانس همچنان همانی می‌ماند. علامتِ ثابتِ همهٔ backend ها یا اجرایِ دوبارهٔ یک eigenbasis را وعده نمی‌دهیم.

تبدیلِ همین آموزشقطرِ کوواریانسخارجِ قطر
استانداردسازیِ ستون۱، ۱۰٫۶
Whitening بدون epsilonحدود ۱، ۱حدود ۰
Whitening با epsilon=۰٫۵حدود ۰٫۸۴۲۱، ۰٫۹۵۵۲حدود ۰

رتبهٔ ناقص، همانیِ دوبعدی نمی‌سازد

در شاهدِ دوم، نقطه‌های [−۲، −۴]، [−۱، −۲]، [۱، ۲] و [۲، ۴] روی یک جهت‌اند. پوششِ ما فقط جهتِ با مقدارِ ویژهٔ بالاتر از cutoff را نگه می‌دارد؛ خروجی چهار سطر و یک ستون دارد و کوواریانسِ همان فضایِ یک‌بعدی ۱ است. معکوسِ ریشهٔ مقدارِ ویژهٔ صفر ساخته نمی‌شود.

این قراردادِ کاهشِ رتبهٔ کدِ ماست. قراردادِ تمام‌بعدِ SciPy برای جهت‌هایِ نامثبت، ضریبِ صفر می‌گذارد؛ شکلِ آن را با خروجیِ یک‌بعدیِ این تمرین یکی معرفی نمی‌کنیم. SciPy یا scikit-learn اینجا نصب یا اجرا نشده‌اند؛ منابع، تعریفِ تبدیل را روشن می‌کنند.

epsilon، هدفِ تبدیل را هم عوض می‌کند

با افزودنِ ۰٫۵ به مقدارهایِ ویژه پیش از ریشه، کوواریانسِ هر جهت λ/(λ+۰٫۵) می‌شود. بنابراین آن را «دقیقاً همانی» نمی‌نامیم. در شاهدِ نزدیکِ تکین نیز اندازهٔ عملگرِ تبدیل حدود ۱۲۹۰۹۹ است؛ کوچک‌بودنِ یک جهت می‌تواند تقویتِ بزرگی بسازد و cutoff انتخابِ بی‌اهمیتی نیست.

آمارِ آموزش همراهِ تبدیل نگه داشته می‌شود. نقطهٔ تازهٔ [۴، ۰] با همان میانگین و همان پایه تبدیل و با عبارتِ مستقل کنترل می‌شود؛ روی آن نقطهٔ تازه دوباره fit نمی‌کنیم. ترتیبِ ویژگی‌ها نیز بخشی از قرارداد است؛ نامِ یک ماتریس به‌تنهایی معنایِ ستون را مشخص نمی‌کند.

از شاهدِ آموزشی چه نتیجه‌ای نگیریم؟

هشت ورودیِ نامعتبر، از آرایهٔ نامستطیل و NaN تا آموزشِ تک‌سطر، رتبهٔ صفر، حدِ غلط و شکلِ نادرستِ query رد می‌شوند. آموزش حداکثر ۸ سطر و ۴ ویژگی دارد. منفی‌بودنِ واقعیِ طیف زیرِ حدِ مجاز خطاست؛ کدِ ما ماتریسِ نامعینِ دلخواه را کوواریانسِ معتبر فرض نمی‌کند.

PCA انتخابِ جهتِ نگهدارندهٔ واریانس و استانداردسازیِ آموزش مرجعِ هر ستون را توضیح می‌دهد. اینجا هدف، کنترلِ کوواریانسِ تبدیل‌شده است. خروجیِ بی‌همبسته استقلال، توزیعِ نرمال یا بهبودِ مدل را ثابت نمی‌کند. ادامه در مبانی هوش مصنوعی؛ برای مسئلهٔ واقعی معیارِ پس از تبدیل را جدا تعریف کنید.

فایل تمرین و منبع

کد کاملِ تمرینِ مستقل و کنترل‌ها؛ Python · ورودی و تمامِ خروجیِ اجرای واقعی؛ JSON

منابع در 2026-11-04 خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثال‌ها و فایل‌های این راهنما آموزشی و ساختهٔ تحریریه‌اند.

برای این نیاز، کدام خدمت مناسب‌تر است؟

تماس و منشی، چت سایت و تحلیل مکالمه سه مسیر متفاوت‌اند. ابتدا خدمت متناسب نیازتان را انتخاب کنید.

انتخاب میان سه خدمتراهنمای شروع با تیم اپرا

برآورد هزینه