Dataset Accounts & Cloud: Kaggle, HuggingFace, Numenta, MVTec, NASA — The Anomaly Detection Data Arsenal
Where to download the 18 datasets used in this course, Kaggle API setup, HuggingFace datasets, Numenta NAB, MVTec AD, NASA Turbofan, CWRU bearing, IEEE-CIS Fraud — plus free GPU access via Google Colab and RunPod.
Şükrü Yusuf KAYA
32 min read
Beginner📦 Veri olmadan model olmaz
Bir anomaly detection mühendisinin gerçek silahı algoritma değil veri'dir. Aynı iForest, Credit Card Fraud verisinde %94 AUC verirken, NSL-KDD'de %72'ye düşebilir. Bu yüzden farklı domain'lerin standard datasets'ini elinde tutman şart. Bu derste 18 veri kümesini, nereden indirileceğini, hangi modülde kullanılacağını ve nasıl saklayacağını göreceksin.
Bu Kursta Kullanacağımız 18 Veri Kümesi#
Aşağıdaki tablo kursun veri yol haritasıdır. Hepsi public, hepsi ücretsiz.
| # | Veri Kümesi | Domain | Modül | Boyut | Tip |
|---|---|---|---|---|---|
| 1 | Numenta NAB | Time series benchmark | 4, 15 | 30 MB | Univariate TS, 58 stream |
| 2 | Yahoo S5 | Time series benchmark | 4, 15 | 280 MB | 367 univariate TS |
| 3 | NSL-KDD | Network intrusion | 7, 20 | 25 MB | Tabular, 41 feature |
| 4 | CIC-IDS2017 | Network intrusion | 20 | 8 GB | Tabular, 80 feature |
| 5 | UNSW-NB15 | Network intrusion | 20 | 3 GB | Tabular, 49 feature |
| 6 | Credit Card Fraud (Kaggle) | Finans | 3, 5, 7 | 150 MB | Tabular, 30 feature |
| 7 | IEEE-CIS Fraud | Finans | 19 (Capstone) | 1.5 GB | Tabular, 400+ feature |
| 8 | Elliptic Bitcoin | Graph fraud | 26 (Capstone) | 200 MB | Graph, transactional |
| 9 | HDFS Logs | Log anomaly | 21 | 1.6 GB | Sequence, 11M entry |
| 10 | BGL Logs | Log anomaly | 21 | 1.2 GB | Sequence, 5M entry |
| 11 | MIT-BIH Arrhythmia | Healthcare ECG | 25 | 75 MB | Time series, 48 records |
| 12 | PTB-XL ECG | Healthcare ECG | 25 | 2.5 GB | TS, 21K records |
| 13 | MVTec AD | Vision QC | 24 | 5.2 GB | Image, 5354 görüntü |
| 14 | VisA | Vision QC | 24 | 17 GB | Image, 10K+ görüntü |
| 15 | CWRU Bearing | Predictive maintenance | 23 | 320 MB | Vibration TS |
| 16 | NASA Turbofan | Predictive maintenance | 23 (Capstone) | 50 MB | Multivariate TS, RUL |
| 17 | SWaT (Secure Water Treatment) | ICS multivariate | 17 (Capstone) | 1.1 GB | MTS, 51 sensor |
| 18 | NYC Taxi | TS streaming | 27 (Capstone) | 2 GB | Sequence, geo + ts |
Toplam: ~45 GB. Hepsini birden indirmek zorunda değilsin — modül modül lazım olduğunda alacağız. Bu ders sana sadece kanalları açıyor.
Bölüm 1: Kaggle Hesabı ve API#
Kaggle, anomaly detection için en kritik veri kaynaklarından biri. Credit Card
Fraud, IEEE-CIS Fraud, IDS2017'nin bir kısmı buradan iniyor.
1.1 — Kaggle Hesabı#
Hesabın yoksa: https://www.kaggle.com/account/login — ücretsiz, Google veya
email ile kayıt.
1.2 — API Token Üret#
- https://www.kaggle.com/settings adresine git
- Sayfayı kaydır → "API" bölümü → "Create New Token"
- dosyası indirilir
kaggle.json - Dosyayı uygun yere koy:
# Linux / WSL2 / macOS mkdir -p ~/.kaggle mv ~/Downloads/kaggle.json ~/.kaggle/ chmod 600 ~/.kaggle/kaggle.json
1.3 — Kaggle CLI#
uv pip install kaggle # Test kaggle competitions list
bash
# Credit Card Fraud Detection — Modül 3, 5, 7 içinkaggle datasets download -d mlg-ulb/creditcardfraudunzip creditcardfraud.zip -d data/raw/credit-card-fraud/rm creditcardfraud.zip # IEEE-CIS Fraud — Capstone 1 içinkaggle competitions download -c ieee-fraud-detectionunzip ieee-fraud-detection.zip -d data/raw/ieee-cis-fraud/rm ieee-fraud-detection.zip # NYC Taxi (anomaly streaming)kaggle datasets download -d boltzmannbrain/nyc-taxiunzip nyc-taxi.zip -d data/raw/nyc-taxi/rm nyc-taxi.zipKaggle API ile veri indirme örnekleri
💡 Kaggle rate limit
Kaggle CLI günde yaklaşık 100 API çağrısı, 50 GB indirme limiti var. Kursun tüm Kaggle dataset'leri yaklaşık 4 GB; rahat indirirsin. IEEE-CIS Fraud yarışmasına katılmadan da dataset'i indirebiliyorsun (Kaggle T&C: 'Late Submission' modu) — sadece submit edemezsin, dataset'e erişim sıkıntı değil.
Bölüm 2: HuggingFace Datasets#
Bir o kadar kritik kaynak. Özellikle log anomaly (LogBERT pretrain) ve healthcare
(ECG datasets) için.
2.1 — Hesap ve Token#
- https://huggingface.co/join — ücretsiz hesap
- Settings → Access Tokens → "New Token" (read permission yeter)
- Token'ı sakla
2.2 — datasets ve huggingface_hub#
datasetshuggingface_hubuv pip install datasets huggingface_hub # Login (token'ı yapıştır) huggingface-cli login
python
# HuggingFace datasets — Python kullanımıfrom datasets import load_dataset # Örnek 1: HDFS log anomaly (LogBERT için)hdfs = load_dataset("nielsr/hdfs-logs", split="train")print(f"HDFS satır sayısı: {len(hdfs)}") # Örnek 2: PTB-XL ECGptbxl = load_dataset("PTB-XL/ptbxl", split="train")print(f"PTB-XL kayıt sayısı: {len(ptbxl)}") # Örnek 3: Custom dataset cache yolunu kontrol etimport osprint(f"HF cache: {os.environ.get('HF_HOME', '~/.cache/huggingface')}") # Disk doluyorsa cache'i temizle# huggingface-cli delete-cacheHuggingFace datasets kullanım örneği
⚠️ HuggingFace cache disk dolduruyor
HuggingFace varsayılan olarak altına dataset'leri çekiyor. PTB-XL gibi 2.5 GB dataset'leri cache'leyince hızla şişer. ile farklı bir yere yönlendirebilirsin. WSL2 kullanıyorsan Windows tarafındaki D: drive'a yönlendirmek WSL içinden mümkün: .
~/.cache/huggingface/export HF_HOME=/path/to/big/diskHF_HOME=/mnt/d/hf-cacheBölüm 3: Numenta NAB (Time Series Benchmark)#
NAB (Numenta Anomaly Benchmark) anomaly detection için endüstri standardı
zaman serisi benchmark'ıdır. 58 farklı stream, gerçek dünya etiketli verileri
içerir.
GitHub'dan klonlamak en pratik yol:
bash
mkdir -p data/raw/numentacd data/raw/numentagit clone --depth=1 https://github.com/numenta/NAB.gitcd NAB # Veri burası:# data/realAWSCloudwatch/ — AWS cloud metrics# data/realKnownCause/ — bilinen sebepli gerçek anomaliler# data/realTraffic/ — trafik/araç sayma# data/realTweets/ — tweet volume# data/artificialNoAnomaly/ — kontrol grubu (anomalisiz)# data/artificialWithAnomaly/ — sentetik anomalili # Etiketler:# labels/combined_labels.json — birleşik etiket dosyası# labels/combined_windows.json — anomaly window'larNumenta NAB GitHub klonlama
Neden NAB özel? Çoğu time series benchmark anomaly'leri "noktasal" olarak
işaretler (tek bir t anında). NAB window-based etiketleme yapar — anomaly
bir zaman aralığında olur ve range-based F-score ile değerlendirilir. Bu,
production'a daha yakın bir disiplin.
NAB ile çalışırken range-based metric kullanırsan PR-AUC %20-30 düşebilir —
bu normaldir, anomaly window'lar zor problemdir. Bu kursta hem klasik nokta
metriği hem NAB scoring sistemini öğretiyoruz (Modül 4).
Bölüm 4: MVTec AD (Computer Vision)#
MVTec AD endüstriyel görsel anomaly detection'ın altın standardıdır. 15
kategori (bottle, cable, capsule, leather, ...), her birinde "normal" ve "defektif"
görüntüler.
Kullanım için research-only license:
bash
# Resmi indirme — biraz manuel# 1. https://www.mvtec.com/company/research/datasets/mvtec-ad adresine git# 2. Form doldur (email ile araştırma amaçlı talep)# 3. Onay sonrası link gelir # Alternatif: Hugging Face üzerinden (resmi mirror)uv pip install --upgrade datasets python -c "from datasets import load_datasetds = load_dataset('Voxel51/mvtec-ad', split='train', cache_dir='./data/raw/mvtec')print(f'MVTec train: {len(ds)} sample')" # Veya anomalib ile (Modül 24'te göstereceğiz)python -c "from anomalib.data import MVTecdata = MVTec( root='./data/raw/mvtec', category='bottle', image_size=(256, 256),)data.setup()print(data.train_data)"MVTec AD indirme — Voxel51 mirror veya anomalib
⚖️ MVTec lisans uyarısı
MVTec AD veriseti non-commercial research lisansıyladır. Eğitim, akademik çalışma, kişisel öğrenme — serbest. Ürün geliştirmek (ticari kullanım) için MVTec'ten ek lisans alman gerekiyor. Bu kursta tamamen eğitim amaçlı kullanıyoruz. Daha açık bir alternatif: VisA dataset'i (Amazon Berkeley, daha izinli lisans).
Bölüm 5: MIT-BIH Arrhythmia (Healthcare ECG)#
PhysioNet üzerinden ücretsiz. Modül 25'te ECG anomaly detection için kullanacağız.
bash
# Komut satırından PhysioNetuv pip install wfdb # Tam dataset (~75 MB)python -c "import wfdbwfdb.dl_database('mitdb', dl_dir='./data/raw/mit-bih', records='all')print('İndirme tamam')" # Veya HuggingFacepython -c "from datasets import load_datasetds = load_dataset('lukestanley/mit-bih-arrhythmia-database')print(ds)"MIT-BIH Arrhythmia indirme
Bölüm 6: CWRU Bearing (Predictive Maintenance)#
Case Western Reserve University bearing dataset'i — vibration-based predictive
maintenance'ın klasik benchmark'ı.
CWRU'nun resmi sayfası: https://engineering.case.edu/bearingdatacenter/
İndirme zahmetli (Matlab .mat formatında), Kaggle'da daha temiz mirror var:
bash
# Kaggle mirror (önerilir)kaggle datasets download -d brjapon/cwru-bearing-datasetsunzip cwru-bearing-datasets.zip -d data/raw/cwru/ # .mat dosyalarını okumak içinuv pip install scipy # Python ile okuma örneğipython -c "from scipy.io import loadmatimport numpy as np mat = loadmat('data/raw/cwru/Normal_0.mat')print('Keys:', [k for k in mat.keys() if not k.startswith('__')])# Genelde 'X097_DE_time' gibi anahtarlar — Drive End sensor"CWRU Bearing indirme + okuma
Bölüm 7: NASA Turbofan (Remaining Useful Life)#
NASA Prognostics Center'ın CMAPSS dataset'i. Turbofan motorların sensor verisi
- RUL etiketi.
bash
# NASA resmi — ZIP ilemkdir -p data/raw/nasa-turbofancd data/raw/nasa-turbofanwget -O cmapss.zip 'https://data.nasa.gov/download/ff5v-kuh6/application%2Fzip'unzip cmapss.ziprm cmapss.zip # 4 alt-dataset gelir: FD001, FD002, FD003, FD004ls# train_FD001.txt test_FD001.txt RUL_FD001.txt ... # Kaggle mirror alternatifikaggle datasets download -d behrad3d/nasa-cmapsunzip nasa-cmaps.zip -d data/raw/nasa-turbofan-kaggle/NASA Turbofan CMAPSS indirme
Bölüm 8: SWaT (ICS Multivariate Time Series)#
Singapore Univ. of Tech. & Design'ın SWaT (Secure Water Treatment) dataset'i —
51 sensör, 36 saldırı senaryosu. Industrial Control System (ICS) için ana
benchmark.
Bu erişim sınırlı. Resmi sayfa: https://itrust.sutd.edu.sg/itrust-labs_datasets/dataset_info/
Form doldurman ve onay beklemen gerekiyor (1-3 hafta). Onay öncesi için
TEP (Tennessee Eastman Process) kullanılabilir — benzer karakteristik:
bash
# Tennessee Eastman Process — alternatif olarakkaggle datasets download -d averkij/tennessee-eastman-process-simulation-datasetunzip tennessee-eastman-process-simulation-dataset.zip -d data/raw/tep/TEP — SWaT yerine kısa sürede alternatif
Bölüm 9: HDFS ve BGL Logs (Log Anomaly)#
LogHub repo'su tüm log anomaly benchmark'larını topluyor:
bash
mkdir -p data/raw/loghubcd data/raw/loghubgit clone --depth=1 https://github.com/logpai/loghub.gitcd loghub # Zip'ler genellikle SourceForge / Zenodo'da; LogHub README'de linkler var# Önerilen direkt download (Zenodo mirror) # HDFSwget -O HDFS.zip "https://zenodo.org/records/8196385/files/HDFS_v1.zip"unzip HDFS.zip -d HDFS/rm HDFS.zip # BGLwget -O BGL.zip "https://zenodo.org/records/8196385/files/BGL.zip"unzip BGL.zip -d BGL/rm BGL.zip # Bir göz athead -5 HDFS/HDFS.log# 081109 203518 143 INFO dfs.DataNode$DataXceiver: Receiving block ...LogHub HDFS ve BGL log dataset'leri
Veri Saklama Stratejisi#
Dataset'ler yer kaplar. Aşağıdaki yapı 45 GB'lık total'ı yönetilebilir tutar:
data/ ├── raw/ # ham veri (gitignore!) │ ├── credit-card-fraud/ │ ├── ieee-cis-fraud/ │ ├── numenta/ │ ├── mvtec/ │ ├── nasa-turbofan/ │ ├── ... │ └── loghub/ ├── processed/ # işlenmiş, sınırlı parquet (opsiyonel commit) │ ├── credit-card-fraud.parquet │ └── nab-merged.parquet ├── splits/ # train/val/test indis dosyaları │ └── ... └── meta/ # dataset metadata + manifest └── manifest.yaml
Veri için S3-compatible storage (opsiyonel)#
Eğer evde 50 GB+ ekstra disk yoksa veya birden fazla makineden çalışacaksan
S3-compatible bir storage işine yarayabilir:
| Servis | Ücretsiz Tier | Bandwidth |
|---|---|---|
| Cloudflare R2 | 10 GB storage + ücretsiz egress | Sınırsız |
| Backblaze B2 | 10 GB storage + 1 GB/gün egress | Sınırlı |
| MinIO (self-hosted) | Disk'in kadar | Local |
| AWS S3 | 5 GB / 12 ay | 100 GB egress free |
Bu kursta Cloudflare R2 öneririz — egress (indirme) tamamen ücretsiz,
istediğin kadar pull yapabilirsin.
uv pip install boto3 # R2 endpoint örneği export AWS_ACCESS_KEY_ID=... export AWS_SECRET_ACCESS_KEY=... export AWS_ENDPOINT_URL=https://<account>.r2.cloudflarestorage.com # Veriyi yükle aws s3 cp data/raw/credit-card-fraud/creditcard.csv s3://my-ad-data/ # Başka makineden çek aws s3 cp s3://my-ad-data/creditcard.csv .
Bulut GPU Seçenekleri#
Mac/Windows GPU'n yoksa veya RAM yetmiyorsa, kursun deep learning kısımları
(Part III, Modül 24 vision capstone) için bulut GPU'ya ihtiyacın olur.
Karşılaştırma Tablosu (2026 fiyatlar)#
| Servis | Ücretsiz Tier | RTX 4090 saat | A100 saat | Notlar |
|---|---|---|---|---|
| Google Colab Free | 4-6 saat/gün T4 | – | – | Disconnect frequent |
| Google Colab Pro | $10/ay, A100 quota | – | $0.30 | Sınırlı saat |
| Kaggle Notebook | 30 saat/hafta T4 ücretsiz | – | – | Disk 20 GB |
| RunPod | Yok | $0.34 | $1.19 | Spot fiyat, kredit kart |
| Vast.ai | Yok | $0.30-0.50 | $0.80-1.20 | Marketplace |
| Lambda Cloud | Yok | – | $1.10 | Stabil |
| Paperspace | Yok | $0.42 | $0.78 | Notebook + persistent |
| Modal | $30/ay free | – | $2.99 | Serverless, dakika |
Önerimiz#
- Part I-II için: Kendi CPU'n yeterli.
- Part III için: Kaggle Notebook (haftalık 30 saat T4 ücretsiz) — kursun çoğu Part III lab'ı T4'te 1-2 saatte biter.
- Part VIII büyük capstone'lar için: RunPod RTX 4090 (saatte 1.50-2 maliyet.
Kaggle Notebook ile Çalışmak#
Kaggle Notebook'ta:
- Bir notebook aç
- Sağda "Accelerator" → "GPU T4 x2" veya "GPU P100" seç
- Veri yerlerini "Add data" ile ekle (Kaggle datasets doğrudan)
- Notebook'unu ile başlat
pip install pyod anomalib
Yetersiz olursa Google Colab Free, sonra RunPod.
Google Colab İpuçları#
# Colab notebook'un en üstüne yaz !pip install -q pyod anomalib alibi-detect river darts # GPU doğrulama import torch print(torch.cuda.is_available(), torch.cuda.get_device_name(0)) # Drive'a mount et (sonuçları kaybetmemek için) from google.colab import drive drive.mount('/content/drive') # Sonuçlarını drive'a kaydet import shutil shutil.copy('model.pt', '/content/drive/MyDrive/anomaly-models/')
RunPod İpuçları#
# RunPod template seçimi: "PyTorch 2.5.0 + CUDA 12.4" (resmi) # Veya Pre-installed: # - pytorch:2.5.0-cuda12.4 # - jupyter:latest # Bağlandığında ilk komutlar apt update && apt install -y git # Kursun kodunu klonla git clone https://github.com/<senin-kullanici-adin>/anomaly-detection.git cd anomaly-detection # uv (RunPod default'ta yok) curl -LsSf https://astral.sh/uv/install.sh | sh source ~/.bashrc # Stack uv venv --python 3.12 source .venv/bin/activate uv pip install -r requirements.txt # Notebook jupyter lab --ip=0.0.0.0 --no-browser --allow-root
Maliyet kontrolü: RunPod'da pod'u stop etmek farklı, terminate etmek farklı. Stop etmek diski saklar (saatlik $0.01-0.05); terminate diski siler. Capstone arasında stop kullanırsan veriyi koruyabilirsin.
💰 Sıfır bütçe ile kursu bitirme yolu
Mümkün — birçok öğrenci sıfır harcamayla bitiriyor. Şöyle: (1) Kaggle Notebook'un haftalık 30 saat T4'ünü kullan, (2) Google Colab Free arada destek için, (3) MVTec ve büyük dataset'leri Cloudflare R2'ye yükle (10 GB free), (4) capstone'ları doğrudan Kaggle Notebook üzerinde geliştir — output dosyalarını GitHub'a push et. Sadece bu üç servis ile kurs bitirilebilir.
Veri Etiği: Bu Kursun Sözleşmesi#
Anomaly detection genelde hassas veri ile çalışır: kart işlemleri,
SOC logları, hasta ECG'leri, fabrika sensörleri. Bu kursta kullandığımız
dataset'lerin tamamı public ve anonymized — ama kursdan sonra şirket
verisiyle çalışmaya başlayacaksın. Şimdiden alışman gereken üç kural:
Kural 1: Veri "Just-In-Time" indir#
Tüm dataset'leri bir kez indirip elinde tutma — sadece çalıştığın modülün
dataset'ini al, bitince temizle. Hem disk yer açar, hem KVKK/GDPR ihlali
riskini azaltır.
Kural 2: Sample data ile geliştir#
Yeni bir feature pipeline yazarken production verisi ile başlama — önce
10K-100K satırlık bir örnekle çalış. Production'a giden sample'ları
'a koy (anonim ve küçük).
tests/fixtures/Kural 3: Hiçbir gerçek müşteri verisini commit etme#
.gitignoregit rebase -igit filter-branchBu üç kuralı bu kursta saymıştık ama production'da seni iş kaybından kurtarır.
Modül 0 Özeti#
Bu modülün 4 dersini bitirdin. Elinde şu var:
✅ Ders 0.1 — Anomaly Detection Engineer rolünün ne olduğunu, komşu disiplinlerden farkını, kariyer merdivenini, Türkiye maaş manzarasını ve günlük iş akışlarını biliyorsun.
✅ Ders 0.2 — Kursun neden bu sırada tasarlandığını, 5 temel prensibi, 8 capstone projesini ve çalışma ritmini biliyorsun.
✅ Ders 0.3 — uv + Python 3.12 + PyTorch 2.5+ + PyOD + anomalib + alibi-detect + river + darts + merlion + PyG ile çalışan bir yerel ortamın var. İlk koşmuş.
hello_anomaly.py✅ Ders 0.4 — Kaggle API, HuggingFace datasets, Numenta NAB, MVTec, NASA Turbofan, CWRU, HDFS logs için indirme bilgisi ve cloud GPU stratejilerini biliyorsun.
Şimdi gerçek başlangıç noktasındasın: Modül 1 — Anomali Tanımı, Tipoloji ve Taksonomi. Burada anomali, outlier, novelty ve noise terimlerinin farkını netleştireceğiz, üç anomali tipini (point, contextual, collective) detaylıca öğreneceğiz ve hands-on lab ile bu üç tipi görselleştireceğiz.
👉 Bir sonraki modül
Modül 1 — Anomali Tanımı, Tipoloji ve Taksonomi. Yakında yayınlanacak. Şu an Modül 0 ile başlangıç temellerini attık; sırasıyla matematik temellerine, klasik ML yöntemlerine ve deep learning'e ineceğiz. Modül 1'i takip etmek için /learn/anomali-tespiti sayfasını sık ziyaret et.
Frequently Asked Questions
Hayır. Modül sırasında o derste/modülde lazım olan dataset'leri indireceğiz. Şu an sadece Kaggle ve HuggingFace token'larını ayarlaman yeterli — ders 0.4'ün hedefi 'kanalları açmak'. Gerçek indirme Modül 3'ten itibaren başlar.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Module 0: Course Framework & Workshop Setup
Who Is an Anomaly Detection Engineer? Differences from Fraud, SRE, Quality Engineer Roles and the Turkey Salary Landscape
Start LearningModule 0: Course Framework & Workshop Setup
Course Philosophy: Why This Path, Why This Order — The Anomaly Detection Learning River
Start LearningModule 0: Course Framework & Workshop Setup