Ninja Learn | نینجا لرن
مغزم نمیمغزه برای پست
نظرتون چیه تجربیاتو درمورد پروژه ای که به تازگی داشتم؟
👍14
Random Forest یا همون غول پایدار یادگیری ماشین
داستان از اونجا شروع میشه که
لئو بریمن سال ۲۰۰۱ این الگوریتم رو معرفی کرد. بعد از ۲۴ سال، هنوز تو تاپ ۵ مسابقههای Kaggle و پروژههای واقعی هست
نه به خاطر پیچیدگی، بلکه به خاطر تعادل دقت، پایداری و تفسیرپذیری.
اول از همه Random Forest چیه؟
یه مجموعه (Ensemble) از درختهای تصمیم که:
هر درخت روی یه زیرمجموعه تصادفی از دادهها (Bootstrap) آموزش میبینه
تو هر گره، فقط یه تعداد تصادفی از ویژگیها (features) بررسی میشه
خروجی نهایی با رأیگیری (طبقهبندی) یا میانگین (رگرسیون) ترکیب میشه
نتیجه؟ یه مدل قوی که Variance درختهای تک رو کم میکنه، بدون اینکه Bias زیاد بشه.
چطور کار میکنه؟ (۳ گام ساده داره)
۱. Bagging
از داده اصلی، چندین زیرمجموعه با جایگزینی میسازیم.
تقریباً 63.2% دادهها تو هر درخت هستن (بقیه میشن OOB برای ارزیابی بدون نیاز به Validation).
احتمال انتخاب نشدن یه نمونه: (1 - 1/n)^n نزدیک به 0.368
۲. انتخاب تصادفی ویژگی
تو هر گره:
طبقهبندی: √p ویژگی (p = کل ویژگیها)
رگرسیون: p/3 یا √p
این کار باعث میشه درختها همبستگی کمی داشته باشن
چرا اینقدر خوبه؟
دقت بالا (معمولاً تو ۱۰٪ برتر Kaggle)
-مقاوم به Overfitting (حتی با درخت عمیق)
-اهمیت ویژگی (Feature Importance) میده
با داده گمشده کار میکنه
نیازی به نرمالسازی نداره
اهمیت ویژگی چطور حساب میشه؟
با کاهش میانگین ناخالصی (مثل Gini) در گرههایی که از اون ویژگی استفاده شده.
روش دقیقترش: Permutation Importance
ویژگی رو به هم میریزیم و افت دقت رو اندازه میگیریم.
کاربردهای واقعی:
تشخیص سرطان (دقت ۹۹٪)
تشخیص تقلب بانکی
سیستم پیشنهاد Netflix
پیشبینی قیمت خانه
و...
نقل قول بریمن (۲۰۰۱):
"Random forests does not overfit. As you add more trees, the test error keeps decreasing."
*منبع: Breiman, L. (2001). Random Forests*
➖➖➖➖➖➖➖➖➖➖
داستان از اونجا شروع میشه که
لئو بریمن سال ۲۰۰۱ این الگوریتم رو معرفی کرد. بعد از ۲۴ سال، هنوز تو تاپ ۵ مسابقههای Kaggle و پروژههای واقعی هست
نه به خاطر پیچیدگی، بلکه به خاطر تعادل دقت، پایداری و تفسیرپذیری.
اول از همه Random Forest چیه؟
یه مجموعه (Ensemble) از درختهای تصمیم که:
هر درخت روی یه زیرمجموعه تصادفی از دادهها (Bootstrap) آموزش میبینه
تو هر گره، فقط یه تعداد تصادفی از ویژگیها (features) بررسی میشه
خروجی نهایی با رأیگیری (طبقهبندی) یا میانگین (رگرسیون) ترکیب میشه
نتیجه؟ یه مدل قوی که Variance درختهای تک رو کم میکنه، بدون اینکه Bias زیاد بشه.
چطور کار میکنه؟ (۳ گام ساده داره)
۱. Bagging
از داده اصلی، چندین زیرمجموعه با جایگزینی میسازیم.
تقریباً 63.2% دادهها تو هر درخت هستن (بقیه میشن OOB برای ارزیابی بدون نیاز به Validation).
احتمال انتخاب نشدن یه نمونه: (1 - 1/n)^n نزدیک به 0.368
۲. انتخاب تصادفی ویژگی
تو هر گره:
طبقهبندی: √p ویژگی (p = کل ویژگیها)
رگرسیون: p/3 یا √p
این کار باعث میشه درختها همبستگی کمی داشته باشن
چرا اینقدر خوبه؟
دقت بالا (معمولاً تو ۱۰٪ برتر Kaggle)
-مقاوم به Overfitting (حتی با درخت عمیق)
-اهمیت ویژگی (Feature Importance) میده
با داده گمشده کار میکنه
نیازی به نرمالسازی نداره
اهمیت ویژگی چطور حساب میشه؟
با کاهش میانگین ناخالصی (مثل Gini) در گرههایی که از اون ویژگی استفاده شده.
روش دقیقترش: Permutation Importance
ویژگی رو به هم میریزیم و افت دقت رو اندازه میگیریم.
کاربردهای واقعی:
تشخیص سرطان (دقت ۹۹٪)
تشخیص تقلب بانکی
سیستم پیشنهاد Netflix
پیشبینی قیمت خانه
و...
نقل قول بریمن (۲۰۰۱):
"Random forests does not overfit. As you add more trees, the test error keeps decreasing."
*منبع: Breiman, L. (2001). Random Forests*
#️⃣ #ai #programming
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
❤6