Apa itu anomali dan outlier?

Deteksi Anomali dengan Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Inlier vs. outlier

  • Deteksi anomali: mendeteksi titik data yang tidak normal
  • Inlier:
    • Titik data “normal”
    • Mewakili mayoritas
  • Outlier:
    • Sangat jarang terjadi
    • Berbeda secara statistik

Dua contoh outlier: pertama tulip merah di ladang hijau, kedua satu stik hitam terpisah dari kumpulan stik putih

Deteksi Anomali dengan Python

Bumi sebagai anomali

Semua planet adalah inlier

Gambar Galaksi Bima Sakti dari jarak sangat jauh.

Hanya Bumi yang outlier

Gambar Bumi yang menunjukkan adanya kehidupan melalui atmosfer seperti lensa.

Deteksi Anomali dengan Python

Definisi statistik

  • Sangat berbeda secara abnormal
  • Memiliki fitur yang jauh berbeda
  • Penilai menentukan apakah titik data adalah outlier
Deteksi Anomali dengan Python

Aplikasi deteksi anomali

Gambar teks "security" dengan penunjuk mouse di atasnya.

Deteksi Anomali dengan Python

Aplikasi deteksi anomali

Gambar tangan bersarung biru memegang wadah kimia kecil berisi cairan biru.

Deteksi Anomali dengan Python

Aplikasi deteksi anomali

Gambar seorang pria menyerahkan kartu Visa kepada wanita yang memegang alat pembayaran.

Deteksi Anomali dengan Python

Contoh data

import pandas as pd

numbers = pd.Series([24, 46, 30, 28, 1289, 25, 21, 31, 48, 47])
Deteksi Anomali dengan Python

Rata-rata dan varians terpengaruh

Data tanpa outlier

numbers_a = pd.Series([24, 46, ...])
numbers_a.mean()
33.33
numbers_a.var()
114.5

Data dengan outlier

numbers_b = pd.Series([1289, 24, ...])
numbers_b.mean()
158.9
numbers_b.var()
157771.65
Deteksi Anomali dengan Python

Anomali di data pelatihan

  • Anomali menambah noise
  • Bisa keliru dianggap subkelompok baru
  • Mengaburkan pola sebenarnya
Deteksi Anomali dengan Python

Outlier vs. novelty detection

Deteksi outlier

  • Outlier hanya ada di data pelatihan

Deteksi novelty

  • Novelty hanya ada di data baru
Deteksi Anomali dengan Python

Ringkasan 5-angka

import pandas as pd

big_mart = pd.read_csv("big_mart.csv")
sales = big_mart['sales']
sales.describe()
count     8523.000000
mean      2181.288914
std       1706.499616
min         33.290000
25%        834.247400
50%       1794.331000
75%       3101.296400
max      13086.964800
Deteksi Anomali dengan Python

Plot histogram

import numpy as np
import matplotlib.pyplot as plt

# Find the square root of the length of sales
n_bins = np.sqrt(len(sales))
# Cast to an integer
n_bins = int(n_bins)


# Plot plt.figure(figsize=(8, 4)) plt.hist(sales, bins=n_bins, color='red')
Deteksi Anomali dengan Python

Histogram hasilnya

Histogram penjualan produk dengan batang merah dan ekor kanan panjang.

Deteksi Anomali dengan Python

Plot scatterplot

integers = range(len(sales))

plt.figure(figsize=(16, 8))
plt.scatter(integers, sales, c='red', alpha=0.5)
Deteksi Anomali dengan Python

Scatterplot hasilnya

Scatterplot menampilkan kumpulan titik padat di bagian bawah dan makin jarang ke atas.

Deteksi Anomali dengan Python

Ayo berlatih!

Deteksi Anomali dengan Python

Preparing Video For Download...