teknik deteksi anomali

Teknik Deteksi Anomali

Sebagai seorang ilmuwan data, dalam banyak kasus deteksi penipuan di bank untuk transaksi, deteksi anomali meter pintar, bagaimana cara kalian dalam mengidentifikasi anomali atau outlier?

Titik data secara signifikan di luar rata-rata dan, bergantung pada tujuannya, menghapus atau menyelesaikannya dari analisis untuk mencegah kemiringan dikenal sebagai deteksi outlier.

Pernahkah kalian berpikir tentang bank tempat kalian melakukan beberapa transaksi dan bagaimana bank membantu dalam mengidentifikasi penipuan? Seseorang masuk ke akun Anda, dan pesan dikirimkan kepada Anda segera setelah mereka melihat aktivitas mencurigakan di suatu tempat untuk mengonfirmasi apakah itu Anda atau orang lain.

Apa itu deteksi anomali?

Kita sering melihat dataset memiliki anomali atau outlier, biasanya didefinisikan dengan nilai yang berbeda dari dataset lain.

Misalkan kita memiliki perusahaan dan melihat kesalahan data akhir font, meskipun perusahaan kita menyediakan layanan yang sama, tetapi penjualannya menurun. Di sinilah kesalahan, yang disebut anomali atau outlier. Mari kita ambil contoh yang akan memperjelas apa arti anomali.

deteksi anomali

Di sini, dalam contoh ini, seekor burung adalah outlier atau noise. Pernahkah kalian berpikir tentang bank tempat Anda melakukan beberapa transaksi, Bagaimana bank membantu Anda dengan mengidentifikasi deteksi penipuan? Jika manajer bank memperhatikan perilaku yang tidak biasa di akun Anda, kartu tersebut dapat diblokir.

Misalnya, membelanjakan banyak uang dalam satu hari atau jumlah lain di hari lain akan mengirimkan pesan peringatan atau akan memblokir kartu Anda karena tidak terkait dengan pengeluaran Anda sebelumnya. Dua perusahaan AI mendeteksi anomali di dalam bank. Salah satunya adalah perusahaan deteksi Fedzai, dan satu lagi oleh solusi Ayasdi.

Mari kita ambil contoh belanja lainnya. Pada akhir bulan, penjaga toko menjual barang-barang tertentu dan menawarkan skema di mana Anda dapat membeli dua dengan harga lebih murah. Sekarang bagaimana kita menggambarkan data penjualan dibandingkan dengan data awal bulan? Apakah data penjualan memvalidasi data mengenai penjualan bulanan pada awal penjualan? Itu bukan data yang valid adalah kebisingan. Outlier adalah “sesuatu yang harus saya hapus dari kumpulan data sehingga tidak melenceng dari model yang saya buat”.

Outlier paling sering disebabkan oleh:

Disengaja (outlier dummy dibuat untuk menguji metode deteksi)

Kesalahan pemrosesan data (manipulasi data atau kumpulan data mutasi yang tidak diinginkan)

Kesalahan pengambilan sampel (mengekstrak atau mencampur data dari sumber yang salah atau beragam)

Alami (bukan kesalahan, hal baru dalam data)

Kesalahan entri data (kesalahan manusia)

Perbedaan antara anomali dan outlier

Titik data aktual yang secara signifikan berada di luar rata-rata atau median distribusi adalah outlier. Anomali adalah titik data palsu yang dibuat oleh proses yang berbeda dari data lainnya.

Jika Anda membuat model regresi linier, kecil kemungkinan model tersebut menghasilkan poin yang jauh dari garis regresi. Kemungkinan data adalah nama lain untuk itu. Outlier adalah titik data dengan kemungkinan rendah, menurut model Anda. Mereka identik dari perspektif pemodelan. Misalnya, Anda dapat membuat model yang mendeskripsikan tren dalam data dan kemudian secara aktif mencari nilai yang ada atau yang baru dengan kemungkinan yang sangat rendah. Saat orang mengatakan “anomali”, yang mereka maksud adalah hal-hal ini.

Deteksi anomali satu orang adalah outlier dari yang lain! Nilai ekstrem dalam rangkaian data Anda disebut outlier. Seorang siswa bisa jauh lebih cemerlang dari siswa lain di kelas yang sama, dan itu mungkin. Namun, anomali adalah kesalahan yang tidak diragukan lagi. Misalnya, satu juta derajat di luar, atau suhu udara tidak akan tetap sama selama dua minggu. Akibatnya, Anda mengabaikan data ini.

Bagaimana cara membedakan data outlier dan noise?

Outlier adalah titik data yang valid, dan tidak dapat diabaikan atau dihapus, sedangkan noise adalah sampah yang perlu dihapus. Mari kita ambil contoh lain untuk memahami kebisingan. Misalkan Anda ingin mengambil rata-rata gaji karyawan dan di data ditambahkan gaji Ratan Tata atau Bill Gate, semua rata-rata gaji majikan akan menunjukkan kenaikan yang merupakan data yang salah.

Deteksi anomali dapat mengarah pada deteksi penipuan, meningkatkan data Anda, dan mengarah pada analisis data yang benar.

1. Outlier – Outlier adalah titik data ekstrem yang melebihi tipikal jenisnya. Itu bisa berupa kumpulan data tertentu atau seluruh kumpulan data.

2. Uni-variate – Uni-variate variabel dengan nilai yang berbeda dalam dataset.

3. Multi-variasi – Ini ditentukan oleh kumpulan data dengan memiliki lebih dari satu variabel dengan kumpulan nilai yang berbeda.

Berikut adalah berbagai teknik yang akan membantu kita dalam menemukan outlier.

Deteksi Anomali dengan Scikit-learn

Pada tutorial kali ini, kita akan menggunakan dataset titanic yang bersumber dari kaggle. Kalian dapat mendownload datasetnya disini.

Sekarang, kita import terlebih dahulu library yang nantinya akan digunakan.

import seaborn as sns
import pandas as pd

Setelah itu, kita load dataset titanic dan tampilkan 5 data teratas.

titanic=pd.read_csv('titanic.csv')
titanic.head()

Pada dataset terdapatbanyak nilai null sehingga kita akan mengisi nilai nol dengan mode.

titanic['age'].fillna(titanic['age'].mode()[0], inplace=True)
titanic['cabin'].fillna(titanic['cabin'].mode()[0], inplace=True)
titanic['boat'].fillna(titanic['boat'].mode()[0], inplace=True)
titanic['body'].fillna(titanic['body'].mode()[0], inplace=True)
titanic['sex'].fillna(titanic['sex'].mode()[0], inplace=True)
titanic['survived'].fillna(titanic['survived'].mode()[0], inplace=True)
titanic['home.dest'].fillna(titanic['home.dest'].mode()[0], inplace=True)

Mari kita lihat data kita lebih detail. Ketika melihat data dalam statistik, saya lebih suka mengetahui jenis distribusinya, apakah binomial atau distribusi lainnya.

titanic['age'].plot.hist(
  bins = 50,
  title = "Histogram of the age"
)

Distribusi ini adalah distribusi Gaussian dan sering disebut distribusi normal.

Mean dan Standar Deviasi dianggap sebagai dua parameter. Dengan perubahan nilai rata-rata, kurva distribusi berubah ke kiri atau kanan tergantung pada nilai rata-rata.

Distribusi Normal Standar berarti rata-rata (μ = 0) dan standar deviasi (σ) adalah satu. Untuk mengetahui probabilitas Z-tabel sudah tersedia.

Kita dapat menghitung Z – Skor dengan rumus yang diberikan di mana x adalah variabel acak, μ adalah rata-rata, dan σ adalah standar deviasi.

Mengapa kita membutuhkan Z-Score untuk dihitung?

Hal ini membantu untuk mengetahui bagaimana nilai tunggal atau individu terletak di seluruh distribusi.

Misalnya, jika rata-rata nilai mata pelajaran matematika diberikan kepada kita 82, standar deviasi σ adalah 4. Kita memiliki nilai x sebagai 75. Sekarang Z-Score akan dihitung sebagai 82-75/4 = 1,75. Hal ini menunjukkan nilai 75 dengan z-score 1,75 berada di bawah rata-rata. Ini membantu untuk menentukan apakah nilainya lebih tinggi, lebih rendah, atau sama dengan rata-rata dan seberapa jauh.

Sekarang, kita akan menghitung Z-Score dengan python dan melihat outlier. Kita akan mengimpor Skor-Z dari Scipy. Selanjutnya, kita hitung Z-Score dan kemudian memfilter data dengan menerapkan lambda. Ini memberi kita jumlah outlier mulai dari usia 66 hingga 80 tahun.

from scipy.stats import zscore
titanic["age_zscore"] = zscore(titanic["age"])
titanic["outlier"] = titanic["age_zscore"].apply(
  lambda x: x = 2.8
)
titanic[titanic["outlier"]]

Sekarang, kita telah berhasil menerapkan teknik deteksi anomali dengan menggunakan scikit-learn. Jika masih ada pertanyaan, kalian bisa tanyakan langsung di kolom komentar di bawah ini.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top