چیتشیت
خوشهبندی، کاهش ابعاد و ناهنجاریها
Clustering, Dimensionality Reduction and Anomalies
خوشهبندی، کاهش ابعاد و نشانهگذاری دادههای پرت بدون برچسب. K-Means، DBSCAN، GMM، PCA، جنگل انزوا، LOF.
فهرست مطالب
سه وظیفه بدون برچسب
معماریفراخوانیهای پیادهسازی از صفر
کار و کد| وظیفه | کد |
|---|---|
| K خوشه، برچسبهای سخت | kmeans(data, k=3) |
| اینرسی و امتیاز سیلوئت به ازای هر K | find_best_k(data, max_k=6) |
| نواحی چگال، نوفه برچسب 1- میگیرد | dbscan(data, eps=1.5, min_samples=5) |
| برچسبهای نرم با EM | gmm(data, k=3) |
| تصویر به 2 محور | PCA(n_components=2).fit_transform(X) |
| جداسازی حلقهها | kernel_pca(X, n_components, kernel="rbf", gamma=1.0) |
| نشانهگذاری بر اساس انحراف معیار | zscore_detect(X, threshold=3.0) |
| نشانهگذاری بیرون از حصارها | iqr_detect(X, factor=1.5) |
معادل آن در sklearn
کدpython
km = KMeans(n_clusters=3, random_state=42).fit(data)
db = DBSCAN(eps=1.5, min_samples=5).fit(data)
gmm_model = GaussianMixture(n_components=3, random_state=42).fit(data)
sklearn_pca = SklearnPCA(n_components=2) # explained_variance_ratio_
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
reducer = UMAP(n_components=2, n_neighbors=15, min_dist=0.1, random_state=42)
iso = IsolationForest(n_estimators=100, contamination=0.05, random_state=42)
iso.fit(X_train) # برازش روی دادههای نرمال
lof = LocalOutlierFactor(n_neighbors=20, contamination=0.05, novelty=True)
oc_svm = OneClassSVM(kernel="rbf", gamma="auto", nu=0.05)
فرمولها
مفهومها- اینرسی
- مجموع مجذور فاصلهها از هر نقطه تا مرکز خوشهی آن. کمتر یعنی فشردهتر.
- سیلوئت
- $(b - a) / \max(a, b)$، از 1- (خوشهی اشتباه) تا 1+.
- Z-score
- $(x - \text{mean}) / \text{std}$. وقتی مقدار مطلق از آستانه بگذرد نشانهگذاری میشود.
- حصارهای IQR
- $Q1 - \text{factor} \cdot IQR$ و $Q3 + \text{factor} \cdot IQR$، با $IQR = Q3 - Q1$.
- امتیاز انزوا
- $2^{-\text{average\_path\_length}(x) / c(n)}$. نزدیک به 1 یعنی ناهنجاری، نزدیک به 0.5 یعنی نرمال.
- c(n)
2 * H(n-1) - 2*(n-1)/n، طول مسیر مورد انتظار برای جستجوی ناموفق.- نسبت واریانس تبیینشده
- $\text{eigenvalue}_k / \sum \text{all eigenvalues}$
- کسر از دسترفته در PCA
- مقادیر ویژهی حذفشده تقسیم بر کل مقادیر ویژه.
خوشهبندی: چه زمانی از X استفاده کنیم
دستورها| دستور | کاربرد |
|---|---|
K-Means | دادههای بزرگ، خوشههای کروی، K معلوم. حساس به دادههای پرت |
DBSCAN | K نامعلوم، هر شکلی، یافتن نوفه. شکست در چگالی متغیر |
Hierarchical | دادههای کوچک، نیازمند دندروگرام. حافظهی $O(n^2)$ |
GMM | خوشههای بیضوی و دارای همپوشانی، انتسابهای نرم |
Ward linkage | merge با کمترین افزایش در واریانس درونخوشهای |
کاهش ابعاد و تشخیص: چه زمانی از X استفاده کنیم
دستورها| دستور | کاربرد |
|---|---|
PCA | پیشپردازش و فشردهسازی. سریع، واریانس سراسری |
t-SNE | نمودارهای 2بعدی از همسایگیهای محلی. زیر 10 هزار نمونه |
UMAP | نمودارهای 2بعدی در مقیاس بزرگ. حفظ بخشی از ساختار سراسری |
Kernel PCA | خمینه غیرخطی. ماتریس کرنل n در n است |
Z-score / IQR | یک ویژگی در هر مرحله. بسیار سریع |
Isolation Forest | بدون هیچ فرض اولیه. مناسب برای ابعاد بالا |
LOF | ناهنجاریهای محلی، خوشههایی با چگالی متفاوت. کند |
One-Class SVM | دادههای کوچک تا متوسط. رشد درجهدوم ماتریس کرنل |
پایپلاین تشخیص ناهنجاری
گامبهگام- خط مبناگردآوری بازهای بدون ناهنجاری یا با ناهنجاری بسیار کم.
- ویژگیهاافزودن آمارههای متحرک، ویژگیهای زمانی و نسبتها.
- آموزشبرازش آشکارساز روی خط مبنا؛ یادگیری الگوی نرمال.
- امتیازدهیتخصیص امتیاز ناهنجاری به هر مشاهدهی جدید.
- آستانهتعیین حد مرزی بر اساس هزینهی هشدارهای کاذب و موارد ازدسترفته.
- هشدارارسال نقاط نشانهگذاریشده برای بازبینی انسانی.
- بازخوردثبت ناهنجاریهای واقعی و هشدارهای کاذب؛ تنظیم آستانه.
پیشفرضها و ارقام
پیشفرضها| تنظیم | پیشفرض | توضیح |
|---|---|---|
Z-score `threshold` | 3.0 | 99.7٪ دادههای توزیع گاوسی درون آن قرار دارند |
IQR `factor` | 1.5 | 3.0 نقاط کمتری را نشانهگذاری میکند |
n_estimators | 100 | درختهای انزوا؛ معمولاً کافی است |
max_samples | 256 | تعداد ردیف در هر درخت، طبق مقالهی اصلی |
`predict` threshold | 0.5 | امتیاز بالاتر از آن ناهنجاری محسوب میشود |
contamination | 0.05 | فقط حد مرزی را تعیین میکند، نه امتیازها را |
t-SNE perplexity | 30 | بازه معمول 5 تا 50 |
Variance kept | 0.95 | یا 0.90 به عنوان حد آستانهی PCA |
ایرادها و راهحلها
عیبیابیK-Means شکلهای هلالی را بد تفکیک میکند
- علت
- خوشهها کروی نیستند
- راهحل
- استفاده از DBSCAN با eps=0.3
نتایج K-Means در هر اجرا تغییر میکند
- علت
- مینیمم محلی اینرسی
- راهحل
- ثابت کردن seed یا استفاده از K-Means++
Z-score برخی نقاط را جا میاندازد
- علت
- دادههای چندوجهی یا وجود پرتها در آموزش
- راهحل
- استفاده از IQR یا جنگل انزوا
روشهای تکویژگی یک نقطه را جا میاندازند
- علت
- غیرعادی بودن فقط در فضای توأم
- راهحل
- استفاده از جنگل انزوا
دقت 99.9٪ بدون هیچ شناسایی
- علت
- 0.1٪ ناهنجاری، دقت بیفایده است
- راهحل
- Precision@k و AUPRC
اپراتورها به هشدارها توجه نمیکنند
- علت
- هشدارهای کاذب بسیار زیاد
- راهحل
- شروع با یک آستانهی بالا
میانهی امتیازها رو به بالا دریفت میکند
- علت
- تغییر دادهها یا کهنه شدن مدل
- راهحل
- بازآموزی روی دادههای نرمال اخیر
فاصلهی خوشهها در t-SNE متفاوت است
- علت
- فاصلهی بین خوشهها هیچ معنایی ندارد
- راهحل
- صرفاً بررسی خود خوشهها
اختصارات
اصطلاحها- DBSCAN
- خوشهبندی بر پایهی چگالی؛ نقاط هسته، مرزی و نوفه.
- GMM
- مدل مخلوط گاوسی؛ K توزیع گاوسی با انتساب نرم.
- EM
- امید ریاضی-بیشینهسازی؛ گام E احتمالات، گام M پارامترها.
- PCA
- تحلیل مؤلفههای اصلی؛ محورهای حداکثر واریانس.
- t-SNE
- امبدینگ همسایگی تصادفی با توزیع t؛ حفظ همسایهها.
- UMAP
- تقریب و تصویر یکنواخت خمینه؛ سریعتر، ساختار سراسریتر.
- LOF
- فاکتور دادهی پرت محلی؛ بیشتر از 1.0 یعنی چگالی کمتر از همسایگان.
- AUPRC
- مساحت زیر منحنی دقت-بازخوانی؛ گزینهی بهتر از AUROC در اینجا.
پرسشها
پرسش و پاسخ- چگونه K را انتخاب کنیم؟
- یافتن نقطهی زانویی در اینرسی؛ بررسی امتیاز سیلوئت.
- چرا دادههای نرمال را مدلسازی کنیم؟
- ناهنجاریها نادر و متغیرند؛ انحراف از نرمال شامل انواع نوظهور هم میشود.
- بهترین چیدمان آموزش چیست؟
- نیمهنظارتی: برازش فقط روی یک مجموعهی تمیز از دادههای نرمال.
- ناهنجاریهای برچسبدار اندک را چه کنیم؟
- استفاده برای ارزیابی، نه آموزش.
- چرا جنگل انزوا سریع است؟
- هر درخت از زیرنمونهی کوچکی استفاده میکند.
- چرا کاهش ابعاد انجام میدهیم؟
- در ابعاد بالا فاصلهها همگرا میشوند و جستجوی نزدیکترین همسایه کاراییاش را از دست میدهد.