آموزش دیتاساینس و ماشین‌لرنینگ
1.89K subscribers
161 photos
9 videos
134 links
🔴 آموزش مباحث حوزه دیتا شامل علم داده، یادگیری ماشین و تحلیل داده (رضا شکرزاد)

🌀 کانال اخبار و منابع هوش مصنوعی:
@DSLanders

🌀 مشاوره و ارتباط مستقیم:
https://t.iss.one/dslanders_admin

یوتیوب:
Youtube.com/@RezaShokrzad

دوره‌ها:
cafetadris.com/datascience
Download Telegram
آموزش دیتاساینس و ماشین‌لرنینگ
👨‍🎓 بررسی UMAP با جزئیات الگوریتم UMAP، مخفف Uniform Manifold Approximation and Projection، یک روش پیشرفته کاهش ابعاده که با هدف حفظ روابط و ویژگی‌های موجود بین نقاط داده و کشف ساختار Global در داده‌ها، طراحی شده. در مقایسه با t-SNE، الگوریتم UMAP سریع‌تر…
💡بررسی کد الگوریتم UMAP

🔵تعداد همسایه‌ها برای محاسبه فاصله فضای اصلی توسط n_neighbors مشخص میشه و تأثیر زیادی روی ساختار نهایی نقشه کاهش بعد داره.

🔵تعداد بعدهای هدف برای فضای کاهش یافته توسط n_components مشخص میشه. در این مثال به 2 تنظیم شده تا داده‌ها در یک فضای دو بعدی قابل نمایش باشن.

🔵معیار فاصله استفاده شده برای محاسبه فاصله بین نقاط در فضای اصلی metric است که می‌تونه مقادیر مختلفی داشته مثل euclidean ، manhattan و... داشته باشه.

🔵تصویر پست، خروجی قطعه کد می‌باشد.

#Machine_Learning
#Dimensionality_Reduction

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52👌2
👨‍🎓 کاربردهای کاهش ابعاد

هر جا که داده‌های با بعد بالا وجود داشته باشه و نیاز به تجزیه و تحلیل، تجسم یا ساده‌سازی‌شون باشه، تکنیک‌های کاهش ابعاد می‌تونن به کار برده شن.

استفاده از این روش‌ها در پروژه‌های یادگیری ماشین به بهبود کارایی مدل‌ها و کشف اطلاعات معنادار از بین داده‌های پیچیده کمک می‌کنه.

🔵 کاربردهای PCA

🔵تجزیه و تحلیل داده‌های ژنتیکی: PCA به صورت گسترده برای تجزیه و تحلیل داده‌های ژنی استفاده می‌شه، جایی که تعیین ساختار و الگوهای موجود در داده‌های بیوانفورماتیکی دارای اهمیته.

🔵پردازش تصویر و ویدیو: کاهش ابعاد با استفاده از PCA برای کاهش حجم داده‌ها در پردازش تصویر و ویدیو به کار می‌ره، به طوری که اطلاعات اصلی حفظ شن.

🔵شناسایی چهره: در سیستم‌های شناسایی چهره، PCA برای تبدیل تصاویر چهره به یک فضای ویژگی با بعد کمتر استفاده می‌شه تا عملیات مقایسه و شناسایی سریع‌تر انجام شه.

🔵 کاربردهای t-SNE

🔵تجسم داده‌های ژنتیکی: t-SNE برای نمایش داده‌های بیوانفورماتیکی در فضاهای دو یا سه بعدی به کار میره تا الگوهای پیچیده و گروه‌بندی‌های طبیعی داده‌ها بررسی شن.

🔵تجزیه و تحلیل داده‌های بزرگ: در مجموعه داده‌هایی با تعداد نمونه‌های بسیار زیاد، t-SNE برای کاهش ابعاد و تجسم ساختارهای پنهان داده‌ها استفاده میشه.

🔵فهم داده‌های پیچیده: با استفاده از t-SNE، میشه داده‌های پیچیده از حوزه‌های مختلف مثل مالی، اجتماعی و زیست‌شناختی رو تجزیه و تحلیل کرد تا الگوها و روابط کشف بشن.

🔵 کاربردهای UMAP

🔵تجزیه و تحلیل سیگنال‌های زیستی: در پردازش سیگنال‌های زیستی مثل EEG و ECG ،UMAP برای کاهش ابعاد داده‌ها و شناسایی ویژگی‌های مهم استفاده میشه.

🔵استفاده از UMAP برای بررسی سلول‌ها: UMAP کمک می‌کنه تا گروه‌های مختلف سلولی رو شناسایی و تفاوت‌های کارکردی بین‌شون رو متوجه شیم.

🔵 جمع‌بندی

🔵برای حفظ ساختارهای محلی UMAP بهترین انتخابه.
🔵برای تجسم داده‌های غیرخطی t-SNE مناسب‌تره.
🔵برای کاهش خطای بازسازی PCA عملکرد خوبی داره.
🔵برای تفسیر نتایج اول PCA و بعد UMAP انتخاب‌های مناسبی هستن.
🔵برای سرعت و مقیاس‌پذیری UMAP بهترینه.

#Machine_Learning
#Dimensionality_Reduction

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53👏2
کوییز شماره ۷۸: در کدوم سناریو زیر استفاده از t-SNE بهتر از PCA برای کاهش ابعاد، در حین کار با یک سیستم با حداقل توان محاسباتیه؟
Anonymous Quiz
29%
مجموعه داده با 1 میلیون ورودی و 300 ویژگی
19%
مجموعه داده با 100,000 ورودی و 310 ویژگی
33%
مجموعه داده با 10,000 ورودی و 8 ویژگی
19%
مجموعه داده با 10,000 ورودی و 200 ویژگی
😎5👍3🤔1
💡ترفند هسته (Kernel Trick) در تحلیل مؤلفه‌های اصلی با هسته (Kernel PCA) چیه و چه زمانی استفاده میشه؟

یک روش ریاضیه که امکان می‌ده تا مسائل غیرخطی رو به نحوی تغییر بدیم که بشه از روش‌های خطی برای حل‌شون استفاده کرد. در kPCA به جای کار با ماتریس کوواریانس، از ماتریس هسته استفاده می‌شه.

این ماتریس نشون می‌ده که هر دو نقطه داده در فضای جدید چقدر به هم شبیه هستن؛ فضای جدیدی که با استفاده از یک تابع خاص (هسته) به دست اومده.

برای مثال در مواردی مثل تشخیص چهره، جایی که داده‌ها به صورت غیرخطی در فضای اصلی پخش شدن، kPCA برای استخراج ویژگی‌ها و کاهش ابعاد، بدون تغییر ساختار غیرخطی داده‌ها کاربرد داره.

#Machine_Learning
#Dimensionality_Reduction

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👌2👨‍💻1
پست‌های هفته‌ای که گذشت رو این‌جا پیدا کنین!

🔺 آموزشی

🔵هدف از کاهش ابعاد
👉🔗 https://t.iss.one/data_ml/259

🔵انواع روش‌های کاهش ابعاد
👉🔗 https://t.iss.one/data_ml/261

🔵بررسی PCA با جزئیات
👉🔗 https://t.iss.one/data_ml/263

🔵بررسی t-SNE با جزئیات
👉🔗 https://t.iss.one/data_ml/266

🔵بررسی UMAP با جزئیات
👉🔗 https://t.iss.one/data_ml/269

🔵کاربردهای کاهش ابعاد
👉🔗 https://t.iss.one/data_ml/272

🔺 کوئیز

🔵کوییز شماره ۷۳: بررسی عملکرد الگوریتم کاهش ابعاد
👉🔗 https://t.iss.one/data_ml/260

🔵کوییز شماره ۷۴: تفاوت بین PCA و t-SNE
👉🔗 https://t.iss.one/data_ml/262

🔵کوییز شماره ۷۵: وظیفه PCA
👉🔗 https://t.iss.one/data_ml/264

🔵کوییز شماره ۷۶: پارامتر min_dist در UMAP
👉🔗 https://t.iss.one/data_ml/267

🔵کوییز شماره ۷۷: نقش تابع هزینه در الگوریتم UMAP
👉🔗 https://t.iss.one/data_ml/270

🔵کوییز شماره ۷۸: t-SNE و PCA
👉🔗 https://t.iss.one/data_ml/274

🔺 نکته

🔵استفاده از PCA برای تشخیص ناهنجاری
👉🔗 https://t.iss.one/data_ml/265

🔵بررسی کد الگوریتم t-SNE
👉🔗 https://t.iss.one/data_ml/268

🔵بررسی کد الگوریتم UMAP
👉🔗 https://t.iss.one/data_ml/271

🔵ترفند هسته (Kernel Trick) در Kernel PCA
👉🔗 https://t.iss.one/data_ml/275

#Weekend
#Machine_Learning
#Dimensionality_Reduction

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3👍2🔥2
👩‍🎓 برنامه آموزشی هفته: تشخیص ناهنجاری یا Anomaly Detection

🟠شنبه: هدف از تشخیص ناهنجاری

🔵یک‌شنبه: انواع تشخیص ناهنجاری

🟢دوشنبه: بررسی iForest با جزئیات

🔴سه‌شنبه: بررسی LOF با جزئیات

🟠چهارشنبه: شبکه‌های عصبی برای تشخیص ناهنجاری

🔵پنج‌شنبه: کاربردهای تشخیص ناهنجاری

🟢جمعه: جمع بندی

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
5👌2🔥1
🟡 دوره‌های مقدماتی و پیشرفته علم داده

دنیای داده‌ها جذابه و دونستن علم داده، توانایی تحلیل داده‌، یا بازاریابی مبتنی بر داده، می‌تونه شما رو برای فرصت‌های شغلی زیادی مناسب کنه.

فارغ از رشته‌ و پیش زمینه‌تون، می‌تونین با استفاده از دوره‌های رضا شکرزاد این مسیر رو شروع کنین و از سطح مقدماتی تا پیشرفته پیش برین.

🟢 دوره جامع دیتاساینس و ماشین لرنینگ:
👉📎 https://ctdrs.ir/cr14924

❗️دانشجویان دوره علم داده ۱ می‌تونن با پرداخت اختلاف هزینه، دوره جامع رو تهیه کنن.

🔵 هوش تجاری و تحلیل داده با Tableau و Power BI:
👉📎 https://ctdrs.ir/cr14230

🟠مارکتینگ داده‌محور:
👉📎 https://ctdrs.ir/cr13581

#Courses

@DSLanders | دی‌اس‌لندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1🔥1
👨‍🎓 هدف از تشخیص ناهنجاری

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

🔵 هدف از تشخیص ناهنجاری

هدف اصلی از تشخیص ناهنجاری، شناسایی داده‌ها یا رویدادهایی هست که از الگوهای معمول یا مورد انتظار منحرف هستن. این کار به دلایل زیر انجام می‌تونه انجام شه:

🔵پیشگیری از خسارت: در حوزه‌هایی مثل تشخیص تقلب یا نظارت روی سلامت تجهیزات، تشخیص به موقع ناهنجاری‌ها از به وجود اومدن خسارت‌های جدی جلوگیری می‌کنه.

🔵بهبود امنیت: تشخیص حملات سایبری یا نفوذهای امنیتی اکثرا با شناسایی الگوهای ناهنجار در ترافیک شبکه انجام می‌شه.

🔵کیفیت داده: در تحلیل داده‌ها، حذف یا اصلاح داده‌های ناهنجار به افزایش دقت نتایج کمک می‌کنه.

🔵کشف دانش: بعضی اوقات ناهنجاری‌ها نشون‌دهنده کشفیات جدید یا فرصت‌های نوآوری هستن.

🔵بهینه‌سازی عملیاتی: تشخیص ناهنجاری به شناسایی نقاط ضعف و فرصت‌های بهبود در فرآیندهای عملیاتی کمک می‌کنه و این ویژگی در صنایع تولیدی و حمل‌ونقل کاربرد داره.

🔵مدیریت ریسک: در مدیریت مالی و بیمه، تشخیص ناهنجاری باعث شناسایی ریسک‌های احتمالی میشه و به شرکت‌ها امکان می‌ده تا استراتژی‌های مدیریت ریسک‌شون رو تنظیم و از ضررهای بزرگ جلوگیری کنن.

🔵بهینه‌سازی مصرف انرژی: در صنعت انرژی، تشخیص ناهنجاری برای شناسایی موارد هدر رفت انرژی کاربرد داره و باعث کاهش هزینه‌ها میشه.

🔵 روش‌های تشخیص ناهنجاری

🔵تشخیص ناهنجاری بر اساس نقاط دورافتاده: این روش‌ها به دنبال شناسایی داده‌هایی هستن که به شدت از مجموعه‌های داده اصلی منحرف شدن.

🔵تشخیص ناهنجاری بر پایه چگالی: در این روش، داده‌هایی که در نواحی با چگالی پایین‌تر قرار دارن به عنوان ناهنجار شناسایی می‌شن.

🔵تشخیص ناهنجاری بر اساس خوشه: داده‌هایی که به هیچ خوشه معناداری تعلق ندارن یا با فاصله زیادی از کلاسترهای اصلی قرار دارن.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥1
💡تفاوت تشخیص ناهنجاری با حذف نویز چیه؟

هر دو برای شناسایی و فیلتر کردن ناهنجاری‌ها هستن اما اهداف و روش‌شناسی‌های متفاوتی دارن.

🔵 اهداف

🔵تشخیص ناهنجاری: شناسایی نقاط داده‌ای که به طور قابل توجهی از بقیه داده‌ها منحرف شدن.

🔵حذف نویز: از بین بردن نقاط داده‌ای تصادفی یا بدون اطلاعات که اکثرا به دلایلی مثل خطاهای اندازه‌گیری به وجود اومدن.

🔵 روش‌شناسی

🔵تشخیص ناهنجاری: از روش‌های آماری، مبتنی به فاصله یا یادگیری ماشین استفاده می‌کنه.

🔵حذف نویز: معمولاً از تکنیک‌های فیلتر کردن مثل میانگین‌های دوره‌ای یا میانگین مرکزی استفاده می‌کنه.

🔵 زمینه کاربرد

🔵تشخیص ناهنجاری: تشخیص تقلب مالی، امنیت شبکه، نظارت به تجهیزات و...

🔵حذف نویز: بسیار مهم در پیش‌پردازش داده‌های خام، متن‌های ساختار نیافته، یا تصاویر برای بهبود کیفیت سیگنال قبل از تجزیه و تحلیل‌های اصلی.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53👌1
👨‍🎓 انواع روش‌های تشخیص ناهنجاری

🔵 روش‌های آماری

روش‌های آماری یکی از سنتی‌ترین رویکردها در تشخیص ناهنجاری هستن. این روش‌ها بر پایه مدل‌سازی توزیع داده‌های نرمال و شناسایی داده‌هایی که با این توزیع سازگار نیستن، عمل می‌کنن. بعضی از روش‌های آماری شامل نمونه‌های زیر میشن:

🔵نقطه دورافتاده با استفاده از Z-Score: این روش بر اساس محاسبه انحراف معیار و میانگین داده‌ها کار می‌کنه و داده‌هایی که از میانگین به اندازه‌ای مشخص دور هستن رو به عنوان نقطه دورافتاده شناسایی می‌کنه.

🔵تجزیه و تحلیل مؤلفه‌های اصلی (PCA): PCA برای کاهش بعد داده‌ها و شناسایی الگوهای ناهنجاری در داده‌های کم‌بعد استفاده می‌شه.

🔵 روش‌های مبتنی بر فاصله

این روش‌ها داده‌های ناهنجار رو با توجه به فاصله‌شون از بقیه داده‌ها تشخیص می‌دن. الگوریتم K-نزدیک‌ترین همسایه (K-NN) یکی از معروف‌ترین روش‌های این گروهه. داده‌هایی که فاصله زیادی با K همسایه نزدیک‌شون دارن، به عنوان ناهنجاری شناسایی می‌شن.

🔵 روش‌های مبتنی بر چگالی

روش‌های مبتنی بر چگالی مثل DBSCAN و OPTICS، داده‌هایی که در نواحی با چگالی پایین قرار دارن رو به عنوان ناهنجاری در نظر می‌گیرن. این روش‌ها برای داده‌هایی با توزیع‌های مختلف کاربرد دارن و نیازی به تعیین تعداد خوشه‌ها ندارن.

🔵 شبکه‌های عصبی

شبکه‌های عصبی و یادگیری عمیق هم برای تشخیص ناهنجاری استفاده می‌شن. این روش‌ها مخصوصا در داده‌های پیچیده و با ابعاد بالا کارآمد هستن. بعضی از روش‌های شبکه‌های عصبی شامل نمونه‌های زیر میشن:

🔵شبکه‌های عصبی خودرمزگذار (Autoencoders): Autoencoderها داده‌ها رو به یک فضای کم‌بعد تبدیل و سپس بازسازی‌شون می‌کنن. داده‌هایی که در فرایند بازسازی دارای خطای زیادی هستن، ناهنجار در نظر گرفته میشن.

🔵شبکه‌های متخاصم مولد (GANs): GANها از دو بخش، یکی مولد و یکی تمییز دهنده، استفاده می‌کنن. مولد داده‌های جعلی می‌سازه که تمییز دهنده نمی‌تونه تشخیص بده جعلی هستن یا واقعی. اگه تمییز دهنده به سادگی بفهمه داده‌ها جعلی هستن، این نوع داده‌ها رو ناهنجار تشخیص می‌ده.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👌2👏1
کوییز شماره ۸۰: کدوم یک از گزینه‌های زیر تکنیک صحیحی برای کشف ناهنجاری‌های مبتنی بر تراکم داده‌ها نیست؟
Anonymous Quiz
38%
K-nearest neighbor
40%
Isolation Forest
21%
K-means cluster analysis
😎43🤔2
💡مزایا و معایب روش‌های تشخیص ناهنجاری

🔵 روش‌های آماری

🔵مزایا: سادگی و قابل فهم بودن؛ کارایی در داده‌های کوچک.
🔵معایب: محدودیت در مواجهه با داده‌های پیچیده؛ حساسیت به تنظیمات پارامتر.

🔵 روش‌های مبتنی بر فاصله

🔵مزایا: انعطاف‌پذیری؛ سادگی پیاده‌سازی.
🔵معایب: هزینه محاسباتی بالا برای داده‌های بزرگ؛ حساسیت به انتخاب تعداد همسایگان (K).

🔵 روش‌های مبتنی بر چگالی

🔵مزایا: کارآمد در داده‌های با توزیع‌های مختلف؛ عدم نیاز به تعیین تعداد خوشه‌ها.
🔵معایب: پیچیدگی در تنظیم پارامترها؛ چالش‌ها در داده‌های بسیار بزرگ.

🔵 شبکه‌های عصبی و یادگیری عمیق

🔵مزایا: قابلیت کشف ویژگی‌های پیچیده و غیرخطی؛ انعطاف‌پذیری و قابلیت تعمیم.
🔵معایب: نیاز به حجم زیادی از داده برای آموزش؛ پیچیدگی محاسباتی و زمان آموزش طولانی.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4👌3
👨‍🎓 بررسی iForest با جزئیات

یکی از روش‌های موثر در تشخیص ناهنجاری، استفاده از الگوریتم iForest یا جنگل ایزوله است. iForest که مخفف Isolation Forest هست، یک الگوریتم مبتنی بر درخت تصمیم برای تشخیص ناهنجاریه.

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

🔵 نحوه کار iForest

الگوریتم iForest با ایجاد یک جنگل از درختان ایزوله کار می‌کنه. هر درخت در این جنگل با استفاده از یک زیرمجموعه‌ی تصادفی از داده‌ها ساخته می‌شه.

در هر گره از درخت، یک ویژگی به صورت تصادفی انتخاب میشه و یک مقدار شکاف (split value) هم به صورت تصادفی تعیین می‌شه تا داده‌ها رو به دو زیر مجموعه تقسیم کنه. این فرآیند تا رسیدن به ایزوله کردن نمونه‌ها یا رسیدن به عمق مشخصی از درخت ادامه داره.

🔵 مزایای iForest

🔵الگوریتم iForest به دلیل نیاز کم به محاسبه و پیچیدگی زمانی خطی، برای داده‌های بزرگ بسیار کارآمده.

🔵نسبت به بقیه الگوریتم‌های تشخیص ناهنجاری، iForest نیاز به تنظیم کمتری از پارامترها داره.

🔵این الگوریتم می‌تونه انواع مختلفی از ناهنجاری‌ها رو بدون توجه به نوع توزیع داده‌ها تشخیص بده.

🔵 چالش‌ها و محدودیت‌ها

🔵با وجود اینکه iForest نیاز به تنظیم کمتری از پارامترها داره، اما انتخاب تعداد درخت‌ها و عمق درخت روی عملکردش تأثیر داره.

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

🔵 کاربردها

الگوریتم iForest در زمینه‌های مختلفی مثل تشخیص تقلب، سیستم‌های توصیه‌گر، نظارت به سلامت شبکه، و تشخیص نقص در تولید استفاده می‌شه. همچنین کارایی بالا و نیاز کمی به منابع محاسباتی داره.

🔵 مهم‌ترین پارامترهای کد iForest

تعداد درخت‌ها (n_estimators) روی دقت تشخیص ناهنجاری‌ها و عمق درخت (max_depth) روی قابلیت جداسازی ناهنجاری‌ها و تعادل بین زمان اجرا و دقت تاثیر گذاره.

همچنین contamination برای تعیین سطح آستانه‌ای که بر اساسش نمونه‌ها به عنوان ناهنجار شناسایی می‌شن اهمیت داره.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3👌2
💡 قطعه کد الگوریتم iForest

کد زیر مدلی از الگوریتم Isolation Forest رو برای تشخیص ناهنجاری‌ها در یک دیتاست مصنوعی آموزش می‌ده.

- n_samples: تعداد نمونه‌هایی که توسط make_blobs ایجاد می‌شن که در اینجا 300 نمونه در نظر گرفته شده.

- centers: تعداد مراکزی که داده‌های مصنوعی براساس اونها تولید می‌شن که در این مثال تنها یک مرکز وجود داره.

- cluster_std: انحراف معیاری که کنترل می‌کنه داده‌ها چقدر دور مرکز پخش شن. عدد کوچکتر باعث می‌شه داده‌ها نزدیک‌تر به هم و کمتر پراکنده باشن.

- np.random.uniform: برای ایجاد ناهنجاری‌ها، از توزیع یکنواخت بین مقادیر 6- و 6 استفاده می‌کنه. تعداد این ناهنجاری‌ها 20 تاست که در 2 بعد تولید می‌شن.

- n_estimators: تعداد درخت‌هایی که در جنگل ایزوله (iForest) استفاده می‌شن.

- contamination: پارامتری که نشون می‌ده چند درصد از داده‌ها رو میشه به عنوان ناهنجار در نظر گرفت.


import numpy as np
from sklearn.ensemble import IsolationForest
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

X, _ = make_blobs(n_samples=300, centers=1, cluster_std=0.60, random_state=42)

X = np.concatenate([X, np.random.uniform(low=-6, high=6, size=(20, 2))])


clf = IsolationForest(n_estimators=100, contamination=0.1, random_state=42)
clf.fit(X)
y_pred = clf.predict(X)
print(y_pred)

plt.scatter(X[:, 0], X[:, 1], c=y_pred, cmap='Paired')
plt.title("Isolation Forest Anomaly Detection")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.show()


🖼 تصویر پست، خروجی قطعه کد می‌باشد.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌42👍1🔥1
👨‍🎓 بررسی LOF با جزئیات

الگوریتم LOF (Local Outlier Factor) برای شناسایی داده‌های ناهنجار در مجموعه داده‌های بزرگ و پیچیده طراحی شده. LOF بر اساس مفهوم فاصله محلی (Local) بین نقاط کار می‌کنه.

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

🔵 چند مفهوم مهم در LOF

🔵تراکم محلی مشخص می‌کنه که اطراف یک نقطه چقدر شلوغ یا خلوته. این تراکم رو با نگاه کردن به فاصله بین یک نقطه و نقاط دیگه‌ای که نزدیکش هستن، می‌سنجیم.

🔵فرض کنید می‌خوایم بدونیم که اطراف یک نقطه خاص چقدر تراکم وجود داره. برای این کار، به k تا از نزدیک‌ترین همسایه‌هاش نگاه می‌کنیم. این k تا نقطه کمک می‌کنن تا درک بهتری از تراکم داشته باشیم.

🔵فاکتور ناهنجاری یک عدده که مشخص می‌کنه یک نقطه چقدر با بقیه نقاط اطرافش فرق داره. هر چقدر این عدد بزرگتر باشه، یعنی نقطه مدنظر خیلی با همسایه‌هاش فرق داره و احتمال ناهنجار بودن بالا می‌ره.

🔵 نحوه کار LOF

۱. محاسبه فاصله برای هر نقطه: در مرحله اول برای هر نقطه در داده‌ها، فاصله‌ تا k همسایه‌ی نزدیکش محاسبه می‌شه.

۲. محاسبه تراکم محلی: با استفاده از فاصله‌های محاسبه شده، تراکم محلی برای هر نقطه و همسایه‌هاش محاسبه می‌شه.

۳. محاسبه فاکتور ناهنجاری: برای هر نقطه، نسبت تراکم محلی به میانگین تراکم محلی همسایه‌هاش به عنوان فاکتور ناهنجاری محاسبه می‌شه.

🔵 نکات تکمیلی

🔵انتخاب k: انتخاب تعداد همسایگان k یک پارامتر کلیدی در LOF هست. انتخاب بیش از حد کوچک یا بزرگ k به تشخیص نادرست ناهنجاری‌ها منجر میشه.

🔵بهینه‌سازی محاسباتی: با توجه به نیاز به محاسبه فاصله‌ها و تراکم‌ها برای تعداد زیادی نقطه، بهینه‌سازی‌ محاسباتی با استفاده از مثلا KD-Tree به کاهش پیچیدگی زمانی کمک می‌کنه.

🔵مقابله با داده‌های چند بُعدی: در داده‌های با بُعد بالا، فاصله‌ی بین نقاط می‌تونه گمراه‌کننده باشه (Curse of Dimensionality). استفاده از روش‌های کاهش بُعد قبل از پیاده سازی LOF می‌تونه مفید باشه.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
💡 قطعه کد الگوریتم LOF

کد زیر مدلی از الگوریتم LOF رو برای تشخیص ناهنجاری‌ها در یک دیتاست مصنوعی آموزش می‌ده.


- n_neighbors: تعداد همسایگان برای محاسبه تراکم محلیه. تعداد بیشتر این مورد در داده‌های با تراکم متغیر، دقت تشخیص ناهنجاری رو بهبود میده.

- algorithm: الگوریتم برای محاسبه فاصله‌هاست و auto به طور خودکار الگوریتم بهینه رو بر اساس داده‌ها انتخاب می‌کنه.

- leaf_size: این پارامتر در الگوریتم‌های مبتنی بر درخت تاثیر داره و روی سرعت ساخت درخت و پرس‌وجوها تاثیر داره.

- metric: معیار فاصله برای محاسبه فاصله‌هاست. در اینجا، فاصله مینکوفسکی با p=2 که همون فاصله اقلیدسیه، استفاده شده.

- contamination: نسبت تقریبی ناهنجاری‌ها در داده‌هاست. این مقدار کمک می‌کنه تا مدل تعداد نقاط ناهنجاری مورد انتظار رو تخمین بزنه.

- novelty: این پارامتر تعیین می‌کنه که آیا مدل باید برای تشخیص ناهنجاری‌ها در داده‌های جدید استفاده شه یا نه.

- n_jobs: این پارامتر تعیین می‌کنه که آیا باید از همه پردازنده‌ها برای محاسبات استفاده کرد یا نه. با تنظیمش به منفی 1 ، تمام هسته‌های پردازنده موجود استفاده میشن، که سرعت محاسبات رو افزایش می‌ده.

from sklearn.datasets import make_blobs
import numpy as np
import matplotlib.pyplot as plt
from sklearn.neighbors import LocalOutlierFactor

X, _ = make_blobs(n_samples=200, centers=3, cluster_std=0.50, random_state=42)
X_outliers = np.random.uniform(low=-10, high=10, size=(15, 2))
X = np.r_[X, X_outliers]

lof = LocalOutlierFactor(n_neighbors=35, algorithm='auto', leaf_size=30, metric='minkowski', p=2, metric_params=None, contamination=0.1, novelty=False, n_jobs=-1)
y_pred = lof.fit_predict(X)
scores = lof.negative_outlier_factor_

plt.scatter(X[:, 0], X[:, 1], color='k', s=3., label='Data points')
plt.scatter(X[y_pred == -1][:, 0], X[y_pred == -1][:, 1], edgecolor='r', facecolor='none', s=100, label='Predicted outliers')
plt.axis('tight')
plt.legend(loc='upper left')
plt.show()


🖼 تصویر پست، خروجی قطعه کد می‌باشد.

#Machine_Learning
#Anomaly_Detection

@Data_ML | دیتاساینس و ماشین‌ لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3👌2