امروز به این نتیجه رسیدم اگه Ai رو محدود نکنی هر کاری میکنه تکرار میکنم
هرکاری ...
هرکاری ...
👍14
یه خبر فوقالعاده برای کسایی که دنبال دورههای باکیفیت هستن ولی شرایط مالیشون مناسب نیست
مکتبخونه بعضی از دورههای ارزشمندش رو رایگان کرده؛
از جمله دورههای اساتید معروف مثل آقای بیگدلی، جادی، و سهیل تهرانیپور.
📌 جزئیات کامل رو میتونید از پست لینکدین ببینید
توجه داشته باشید این یک تبلیغ نیست
#موقت
مکتبخونه بعضی از دورههای ارزشمندش رو رایگان کرده؛
از جمله دورههای اساتید معروف مثل آقای بیگدلی، جادی، و سهیل تهرانیپور.
📌 جزئیات کامل رو میتونید از پست لینکدین ببینید
توجه داشته باشید این یک تبلیغ نیست
#موقت
Linkedin
#مکتبخونه | Soheil Tehranipour | 241 comments
گاهی اوضاع زندگی، فشار مالی یا دوری از منابع آموزشی باعث میشه یادگیری از اولویتها عقب بیفته. ما تو مکتبخونه خوب میدونیم این روزها برای خیلیها، شروع یاد گرفتن یه مهارت جدید شاید آسون نباشه.
ما همیشه باورمون این بوده که هیچکس نباید بهخاطر محدودیتهای…
ما همیشه باورمون این بوده که هیچکس نباید بهخاطر محدودیتهای…
👍6🔥3
این داستان Query Planning 😯
احتمالا با دیتابیس هایی مثل PostgreSQL یا MySQL کوئری زدین، اگه دقت کرده باشید این کوری ها چه ساده باشن چه پیچیده سریع اجرا میشن، دلیلشم تو یه فرایند جالب به اسم Query Planning هست.
تو این پست قراره ببینیم چیه، چطور کار میکنه.
🧠 Query Planning چیه؟
Query Planning (یا برنامهریزی کوئری) فرایندی تو دیتابیسهای رابطهایه که توش دیتابیس تصمیم میگیره بهترین راه برای اجرای یه کوئری SQL چیه. وقتی یه کوئری مثل
مینویسین، دیتابیس نمیره مستقیم اجرا کنه؛ اول یه نقشه میکشه که چطور دادهها رو پیدا کنه، فیلتر کنه و برگردونه. این نقشه که بهش Query Plan یا Execution Plan میگن، مثل یه GPSه که به دیتابیس میگه از کدوم مسیر بره تا سریعتر به مقصد برسه.
هدف اصلیش بهینهسازی پرفورمنس با کم کردن زمان اجرا، مصرف CPU، حافظه و I/O (خوندن/نوشتن دیسک). دیتابیس این کار رو با تحلیل ساختار کوئری، آمار جدولها و ایندکسها انجام میده.
📚 Query Planning چطور کار میکنه؟
دیتابیسها (مثل PostgreSQL، MySQL، SQL Server) یه بخش به اسم Query Optimizer دارن که مسئول ساختن پلن بهینهست. بیاین قدمبهقدم ببینیم چی به چیه:
1⃣ پارس کردن کوئری (Parsing)
دیتابیس اول کوئری رو بررسی میکنه تا مطمئن شه درست نوشته شده (از نظر گرامری و معنایی). مثلاً چک میکنه جدول
خروجی این مرحله یه درخت نحوی (parse tree)ه که ساختار کوئری رو نشون میده.
2⃣ بازنویسی کوئری (Rewriting)
تو این مرحله، دیتابیس کوئری رو سادهتر یا بهینهتر میکنه، بدون اینکه نتیجهش تغییر کنه. مثلاً:
تبدیل ساب کوری ها به جوینها.
حذف شرطهای اضافی (مثل
تو PostgreSQL، این کار توسط Query Rewriter انجام میشه.
3⃣ تولید پلنهای ممکن (Plan Generation)
حالا Query Optimizer کلی پلن ممکن برای اجرای کوئری میسازه. مثلاً برای یه کوئری ساده:
ممکنه این گزینهها بررسی شه:
Sequential Scan:
کل جدول رو خطبهخط بخونه.
Index Scan:
از ایندکس روی ستون
Bitmap Scan:
ترکیبی از ایندکس و اسکن.
برای کوئریهای پیچیده (با جوین، گروهبندی و غیره)، تعداد پلنها میتونه به هزارتا برسه
4️⃣ تخمین هزینه (Cost Estimation)
دیتابیس برای هر پلن یه هزینه (cost) تخمین میزنه. این هزینه یه عدد خیالیه که شامل:
مصرف CPU (برای مقایسهها، مرتبسازی و غیره).
I/O (خوندن از دیسک یا کش).
شبکه (اگه دیتابیس توزیعشده باشه).
دیتابیس از آمار جدولها (مثل تعداد ردیفها، توزیع دادهها) و ساختار ایندکسها برای این تخمین استفاده میکنه.
مثلاً تو PostgreSQL، دستور
5️⃣ انتخاب بهترین پلن
Optimizer پلنی رو انتخاب میکنه که کمترین هزینه رو داره. این پلن میشه Execution Plan و برای اجرا به Executor فرستاده میشه.
تو بعضی دیتابیسها (مثل Oracle)، میتونین از hints استفاده کنین تا Optimizer رو به یه پلن خاص هدایت کنین.
6️⃣ اجرا و بازخورد
بعد از اجرا، دیتابیس ممکنه بازخورد بگیره (مثلاً آمار واقعی تعداد ردیفها) و پلنهای بعدی رو بهتر کنه.
🛠 چرا Query Planning مهمه؟
Query Planning مثل مغز دیتابیسه و مستقیم روی پرفورمنس تأثیر میذاره:
سرعت: یه پلن خوب میتونه یه کوئری رو از چند دقیقه به چند میلیثانیه برسونه.
مصرف منابع: پلن بد میتونه CPU و دیسک رو بیخودی درگیر کنه و سرور رو خفه کنه.
مقیاسپذیری: تو دیتابیسهای بزرگ با میلیونها ردیف، یه پلن بهینه فرق بین موفقیت و فاجعهست.
تجربه کاربر: اگه APIتون به یه دیتابیس کند وصل باشه، کاربراتون فرار میکنن
🔍 مشکلات رایج تو Query Planning
آمار قدیمی: اگه آمار جدولها بهروز نباشه، Optimizer ممکنه پلن بد انتخاب کنه.
کوئریهای پیچیده: جوینهای چندگانه یا شرطهای مبهم میتونن Optimizer رو گیج کنن.
عدم ایندکس: بدون ایندکس، دیتابیس مجبوره کل جدول رو اسکن کنه.
دیتابیسهای توزیعشده:
تو دیتابیسهایی مثل CockroachDB، شبکه هم به معادله اضافه میشه و پلنها پیچیدهتر میشن.
✍ جمعبندی
Query Planning مثل یه شطرنجباز حرفهایه که تو دیتابیس تصمیم میگیره بهترین حرکت چیه. با تحلیل کوئری، آمار جدولها و ایندکسها، یه پلن بهینه میسازه که میتونه سرعت و کارایی پروژهتون رو زیر و رو کنه.
➖➖➖➖➖➖➖➖➖➖
احتمالا با دیتابیس هایی مثل PostgreSQL یا MySQL کوئری زدین، اگه دقت کرده باشید این کوری ها چه ساده باشن چه پیچیده سریع اجرا میشن، دلیلشم تو یه فرایند جالب به اسم Query Planning هست.
تو این پست قراره ببینیم چیه، چطور کار میکنه.
🧠 Query Planning چیه؟
Query Planning (یا برنامهریزی کوئری) فرایندی تو دیتابیسهای رابطهایه که توش دیتابیس تصمیم میگیره بهترین راه برای اجرای یه کوئری SQL چیه. وقتی یه کوئری مثل
SELECT * FROM users WHERE age > 30
مینویسین، دیتابیس نمیره مستقیم اجرا کنه؛ اول یه نقشه میکشه که چطور دادهها رو پیدا کنه، فیلتر کنه و برگردونه. این نقشه که بهش Query Plan یا Execution Plan میگن، مثل یه GPSه که به دیتابیس میگه از کدوم مسیر بره تا سریعتر به مقصد برسه.
هدف اصلیش بهینهسازی پرفورمنس با کم کردن زمان اجرا، مصرف CPU، حافظه و I/O (خوندن/نوشتن دیسک). دیتابیس این کار رو با تحلیل ساختار کوئری، آمار جدولها و ایندکسها انجام میده.
📚 Query Planning چطور کار میکنه؟
دیتابیسها (مثل PostgreSQL، MySQL، SQL Server) یه بخش به اسم Query Optimizer دارن که مسئول ساختن پلن بهینهست. بیاین قدمبهقدم ببینیم چی به چیه:
1⃣ پارس کردن کوئری (Parsing)
دیتابیس اول کوئری رو بررسی میکنه تا مطمئن شه درست نوشته شده (از نظر گرامری و معنایی). مثلاً چک میکنه جدول
users
وجود داره یا نه.خروجی این مرحله یه درخت نحوی (parse tree)ه که ساختار کوئری رو نشون میده.
2⃣ بازنویسی کوئری (Rewriting)
تو این مرحله، دیتابیس کوئری رو سادهتر یا بهینهتر میکنه، بدون اینکه نتیجهش تغییر کنه. مثلاً:
تبدیل ساب کوری ها به جوینها.
حذف شرطهای اضافی (مثل
WHERE TRUE
).تو PostgreSQL، این کار توسط Query Rewriter انجام میشه.
3⃣ تولید پلنهای ممکن (Plan Generation)
حالا Query Optimizer کلی پلن ممکن برای اجرای کوئری میسازه. مثلاً برای یه کوئری ساده:
SELECT * FROM users WHERE age > 30;
ممکنه این گزینهها بررسی شه:
Sequential Scan:
کل جدول رو خطبهخط بخونه.
Index Scan:
از ایندکس روی ستون
age
استفاده کنه.Bitmap Scan:
ترکیبی از ایندکس و اسکن.
برای کوئریهای پیچیده (با جوین، گروهبندی و غیره)، تعداد پلنها میتونه به هزارتا برسه
4️⃣ تخمین هزینه (Cost Estimation)
دیتابیس برای هر پلن یه هزینه (cost) تخمین میزنه. این هزینه یه عدد خیالیه که شامل:
مصرف CPU (برای مقایسهها، مرتبسازی و غیره).
I/O (خوندن از دیسک یا کش).
شبکه (اگه دیتابیس توزیعشده باشه).
دیتابیس از آمار جدولها (مثل تعداد ردیفها، توزیع دادهها) و ساختار ایندکسها برای این تخمین استفاده میکنه.
مثلاً تو PostgreSQL، دستور
ANALYZE
این آمار رو بهروز میکنه.5️⃣ انتخاب بهترین پلن
Optimizer پلنی رو انتخاب میکنه که کمترین هزینه رو داره. این پلن میشه Execution Plan و برای اجرا به Executor فرستاده میشه.
تو بعضی دیتابیسها (مثل Oracle)، میتونین از hints استفاده کنین تا Optimizer رو به یه پلن خاص هدایت کنین.
6️⃣ اجرا و بازخورد
بعد از اجرا، دیتابیس ممکنه بازخورد بگیره (مثلاً آمار واقعی تعداد ردیفها) و پلنهای بعدی رو بهتر کنه.
🛠 چرا Query Planning مهمه؟
Query Planning مثل مغز دیتابیسه و مستقیم روی پرفورمنس تأثیر میذاره:
سرعت: یه پلن خوب میتونه یه کوئری رو از چند دقیقه به چند میلیثانیه برسونه.
مصرف منابع: پلن بد میتونه CPU و دیسک رو بیخودی درگیر کنه و سرور رو خفه کنه.
مقیاسپذیری: تو دیتابیسهای بزرگ با میلیونها ردیف، یه پلن بهینه فرق بین موفقیت و فاجعهست.
تجربه کاربر: اگه APIتون به یه دیتابیس کند وصل باشه، کاربراتون فرار میکنن
🔍 مشکلات رایج تو Query Planning
آمار قدیمی: اگه آمار جدولها بهروز نباشه، Optimizer ممکنه پلن بد انتخاب کنه.
کوئریهای پیچیده: جوینهای چندگانه یا شرطهای مبهم میتونن Optimizer رو گیج کنن.
عدم ایندکس: بدون ایندکس، دیتابیس مجبوره کل جدول رو اسکن کنه.
دیتابیسهای توزیعشده:
تو دیتابیسهایی مثل CockroachDB، شبکه هم به معادله اضافه میشه و پلنها پیچیدهتر میشن.
✍ جمعبندی
Query Planning مثل یه شطرنجباز حرفهایه که تو دیتابیس تصمیم میگیره بهترین حرکت چیه. با تحلیل کوئری، آمار جدولها و ایندکسها، یه پلن بهینه میسازه که میتونه سرعت و کارایی پروژهتون رو زیر و رو کنه.
#️⃣ #web #programming #db
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
❤11👍2
این داستان Pypy 🐉
PyPy ابزاری قدرتمند برای برنامهنویسهای پایتونه که به دنبال بهبود پرفورمنس کدهای خودشون هستن. اگه با کندی اجرای کد تو پروژههاتون مواجه شدین یا میخواین بدونین چطور میشه سرعت پایتون رو بدون تغییر زیاد تو کد بالا برد، این پست برای شماست. اینجا قراره بررسی کنیم PyPy چیه، چه قابلیتهایی داره، کجا به کار میاد و چه محدودیتهایی داره.
🧠اول از همه PyPy چیه؟
PyPy یه مفسر (interpreter) جایگزین برای پایتونه که به جای CPython (مفسر استاندارد پایتون که با C نوشته شده) استفاده میشه. PyPy خودش با پایتون (به طور دقیقتر، یه زیرمجموعه به اسم RPython) پیادهسازی شده و از Just-In-Time Compilation (JIT) برای کامپایل کردن کد پایتون به کد ماشین تو زمان اجرا استفاده میکنه. این باعث میشه تو خیلی از سناریوها سرعتش به مراتب از CPython بیشتر باشه.
شروع این پروژه به سال ۲۰۰۲ برمیگرده و حالا یه پروژه متنباز با جامعهای فعاله که مدام در حال بهبودشه. هدف PyPy اینه که کدهای پایتون رو سریعتر، بهینهتر و بدون نیاز به تغییر زیاد تو ساختار کد اجرا کنه.
📚 قابلیتهای مهم PyPy
PyPy چندتا ویژگی اصلی داره که اون رو از CPython متمایز میکنه:
1⃣ سرعت بالا با JIT Compilation
PyPy به جای تفسیر خطبهخط کد (مثل CPython)، بخشهای پرتکرار کد رو به کد ماشین کامپایل میکنه. این یعنی برای حلقهها و عملیات تکراری، سرعتش خیلی بیشتره.
مثال: یه تابع ساده برای محاسبه فیبوناچی:
تو CPython این کد برای
2⃣ سازگاری بالا با پایتون
PyPy سعی میکنه تا حد زیادی با استانداردهای CPython سازگار باشه، یعنی اکثر کدهای پایتون بدون تغییر روی PyPy اجرا میشن.
مثلا اگه یه اسکریپت با Python 3.8 روی CPython کار کنه، به احتمال زیاد روی PyPy هم بدون دردسر اجرا میشه مگر از کتابخانه هایی استفاده کرده باشید که C extension استفاده میکنه.
3⃣ مصرف حافظه بهینه
PyPy یه Garbage Collector پیشرفته داره که میتونه مصرف حافظه رو تو بعضی سناریوها بهینهتر از CPython کنه.
کاربردشم تو برنامههایی که مدت طولانی اجرا میشن (مثل وبسرورها) و نیاز به مدیریت خوب حافظه دارن.
4⃣پشتیبانی از Stackless Python
PyPy از قابلیتهای Stackless Python (مثل micro-threads یا taskletها) پشتیبانی میکنه که برای برنامههای concurrent مناسبن.
🔍 چرا PyPy مناسبه؟
PyPy تو موقعیتهایی که پرفورمنس کد حیاتیه، میتونه بازی رو عوض کنه:
سرعت:
تو بنچمارکهای مختلف، PyPy برای کدهای محاسباتی (مثل حلقهها و الگوریتمهای ریاضی) تا ۷ برابر سریعتر از CPython عمل کرده.
بدون نیاز به بازنویسی کد: برخلاف ابزارهایی مثل Cython که نیاز به تغییر کد دارن، PyPy فقط با تغییر مفسر کار میکنه.
متنباز و فعال:
جامعه PyPy مدام داره باگها رو فیکس میکنه و پشتیبانی از نسخههای جدید پایتون رو اضافه میکنه.
🛠 کجا PyPy به کار میاد؟
1⃣ محاسبات سنگین:
اگه پروژهتون پر از حلقههای پیچیده یا الگوریتمهای محاسباتیه (مثل پردازش داده یا شبیهسازی)، PyPy سرعت رو حسابی بالا میبره.
2⃣ وبسرورها:
برای وباپلیکیشنهایی که با فریمورکهایی مثل Flask یا Django کار میکنن، PyPy میتونه پاسخگویی رو بهتر کنه.
3⃣ اسکریپتهای طولانیمدت: برنامههایی که مدت زیادی اجرا میشن (مثل دیمنها یا سرویسها) از بهینهسازی حافظه PyPy سود میبرن.
📚 محدودیتهای PyPy
هرچند PyPy عالیه، ولی محدودیتهایی هم داره:
1⃣ عدم پشتیبانی کامل از C Extensions:
خیلی از کتابخونههای پایتون (مثل NumPy، Pandas یا TensorFlow) از C Extensionها استفاده میکنن که تو PyPy ممکنه کندتر باشن یا کار نکنن. البته PyPy داره روی این موضوع کار میکنه.
2⃣ سربار اولیه JIT:
PyPy تو شروع اجرا یه کم کندتره چون باید کد رو کامپایل کنه. برای اسکریپتهای کوتاه این میتونه نقطهضعف باشه.
3⃣ مصرف حافظه اولیه:
PyPy گاهی تو شروع کار حافظه بیشتری نسبت به CPython مصرف میکنه.
✍ جمعبندی
PyPy یه ابزار قدرتمنده که میتونه کدهای پایتون شما رو بدون نیاز به بازنویسی، سریعتر و بهینهتر اجرا کنه. با استفاده از JIT Compilation، این مفسر برای پروژههای محاسباتی، وباپلیکیشنها و اسکریپتهای طولانیمدت یه انتخاب عالیه. هرچند محدودیتهایی مثل سازگاری با C Extensionها داره، ولی برای خیلی از سناریوها میتونه پرفورمنس رو چند برابر کنه.
➖➖➖➖➖➖➖➖➖➖
PyPy ابزاری قدرتمند برای برنامهنویسهای پایتونه که به دنبال بهبود پرفورمنس کدهای خودشون هستن. اگه با کندی اجرای کد تو پروژههاتون مواجه شدین یا میخواین بدونین چطور میشه سرعت پایتون رو بدون تغییر زیاد تو کد بالا برد، این پست برای شماست. اینجا قراره بررسی کنیم PyPy چیه، چه قابلیتهایی داره، کجا به کار میاد و چه محدودیتهایی داره.
🧠اول از همه PyPy چیه؟
PyPy یه مفسر (interpreter) جایگزین برای پایتونه که به جای CPython (مفسر استاندارد پایتون که با C نوشته شده) استفاده میشه. PyPy خودش با پایتون (به طور دقیقتر، یه زیرمجموعه به اسم RPython) پیادهسازی شده و از Just-In-Time Compilation (JIT) برای کامپایل کردن کد پایتون به کد ماشین تو زمان اجرا استفاده میکنه. این باعث میشه تو خیلی از سناریوها سرعتش به مراتب از CPython بیشتر باشه.
شروع این پروژه به سال ۲۰۰۲ برمیگرده و حالا یه پروژه متنباز با جامعهای فعاله که مدام در حال بهبودشه. هدف PyPy اینه که کدهای پایتون رو سریعتر، بهینهتر و بدون نیاز به تغییر زیاد تو ساختار کد اجرا کنه.
📚 قابلیتهای مهم PyPy
PyPy چندتا ویژگی اصلی داره که اون رو از CPython متمایز میکنه:
1⃣ سرعت بالا با JIT Compilation
PyPy به جای تفسیر خطبهخط کد (مثل CPython)، بخشهای پرتکرار کد رو به کد ماشین کامپایل میکنه. این یعنی برای حلقهها و عملیات تکراری، سرعتش خیلی بیشتره.
مثال: یه تابع ساده برای محاسبه فیبوناچی:
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
print(fib(35))
تو CPython این کد برای
n=35
ممکنه چند ثانیه طول بکشه، ولی تو PyPy به لطف JIT خیلی سریعتره (گاهی تا ۷ برابر).2⃣ سازگاری بالا با پایتون
PyPy سعی میکنه تا حد زیادی با استانداردهای CPython سازگار باشه، یعنی اکثر کدهای پایتون بدون تغییر روی PyPy اجرا میشن.
مثلا اگه یه اسکریپت با Python 3.8 روی CPython کار کنه، به احتمال زیاد روی PyPy هم بدون دردسر اجرا میشه مگر از کتابخانه هایی استفاده کرده باشید که C extension استفاده میکنه.
3⃣ مصرف حافظه بهینه
PyPy یه Garbage Collector پیشرفته داره که میتونه مصرف حافظه رو تو بعضی سناریوها بهینهتر از CPython کنه.
کاربردشم تو برنامههایی که مدت طولانی اجرا میشن (مثل وبسرورها) و نیاز به مدیریت خوب حافظه دارن.
4⃣پشتیبانی از Stackless Python
PyPy از قابلیتهای Stackless Python (مثل micro-threads یا taskletها) پشتیبانی میکنه که برای برنامههای concurrent مناسبن.
🔍 چرا PyPy مناسبه؟
PyPy تو موقعیتهایی که پرفورمنس کد حیاتیه، میتونه بازی رو عوض کنه:
سرعت:
تو بنچمارکهای مختلف، PyPy برای کدهای محاسباتی (مثل حلقهها و الگوریتمهای ریاضی) تا ۷ برابر سریعتر از CPython عمل کرده.
بدون نیاز به بازنویسی کد: برخلاف ابزارهایی مثل Cython که نیاز به تغییر کد دارن، PyPy فقط با تغییر مفسر کار میکنه.
متنباز و فعال:
جامعه PyPy مدام داره باگها رو فیکس میکنه و پشتیبانی از نسخههای جدید پایتون رو اضافه میکنه.
🛠 کجا PyPy به کار میاد؟
1⃣ محاسبات سنگین:
اگه پروژهتون پر از حلقههای پیچیده یا الگوریتمهای محاسباتیه (مثل پردازش داده یا شبیهسازی)، PyPy سرعت رو حسابی بالا میبره.
2⃣ وبسرورها:
برای وباپلیکیشنهایی که با فریمورکهایی مثل Flask یا Django کار میکنن، PyPy میتونه پاسخگویی رو بهتر کنه.
3⃣ اسکریپتهای طولانیمدت: برنامههایی که مدت زیادی اجرا میشن (مثل دیمنها یا سرویسها) از بهینهسازی حافظه PyPy سود میبرن.
📚 محدودیتهای PyPy
هرچند PyPy عالیه، ولی محدودیتهایی هم داره:
1⃣ عدم پشتیبانی کامل از C Extensions:
خیلی از کتابخونههای پایتون (مثل NumPy، Pandas یا TensorFlow) از C Extensionها استفاده میکنن که تو PyPy ممکنه کندتر باشن یا کار نکنن. البته PyPy داره روی این موضوع کار میکنه.
2⃣ سربار اولیه JIT:
PyPy تو شروع اجرا یه کم کندتره چون باید کد رو کامپایل کنه. برای اسکریپتهای کوتاه این میتونه نقطهضعف باشه.
3⃣ مصرف حافظه اولیه:
PyPy گاهی تو شروع کار حافظه بیشتری نسبت به CPython مصرف میکنه.
✍ جمعبندی
PyPy یه ابزار قدرتمنده که میتونه کدهای پایتون شما رو بدون نیاز به بازنویسی، سریعتر و بهینهتر اجرا کنه. با استفاده از JIT Compilation، این مفسر برای پروژههای محاسباتی، وباپلیکیشنها و اسکریپتهای طولانیمدت یه انتخاب عالیه. هرچند محدودیتهایی مثل سازگاری با C Extensionها داره، ولی برای خیلی از سناریوها میتونه پرفورمنس رو چند برابر کنه.
#️⃣ #web #programming
➖➖➖➖➖➖➖➖➖➖
🥷🏻 CHANNEL | GROUP
❤10
Forwarded from Linuxor ?
توی ماشین لرنینگ برای اینکه بفهمیم هرکدوم از ویژگی ها چقدر توی خروجی تاثیر داشته راه های مختلفی وجود داره با SHAP میتونید راحت این کارو انجام بدید، SHAP یه روش برای توضیح خروجی مدلهای یادگیری ماشینه که از مفهوم Shapley value در نظریه بازیها الهام گرفته. توی نظریه بازی، Shapley value منصفانه مشخص میکنه هر بازیکن چقدر در نتیجهی تیم سهم داشته؛ SHAP همین ایده رو برای ویژگیهای داده به کار میگیره. یعنی برای هر پیشبینی مشخص، حساب میکنه هر فیچر (مثل سن، درآمد یا سابقه خرید) چه میزان در نتیجه نهایی مدل نقش مثبت یا منفی داشته. اینطوری میشه دقیق فهمید که چرا مدل به یه تصمیم خاص رسیده.
shap.readthedocs.io
@Linuxor
shap.readthedocs.io
@Linuxor
👍9
بدون اینکه مستقیم اشاره کنید بگید با چه زبان برنامهنویسی کار میکنید 🙂↔️
❤7