Pencilan/Anomali (Outliers

Compiled by: Suprapto van Plaosan

Pencilan adalah data yang tidak termasuk dalam kelompok tertentu dalam populasi. Pencilan merupakan data yang berada jauh dari data yang ada di populasi, sehingga biasanya pencilan terpisah dari data populasi yang berpola atau mempunyai susunan tertentu.

Mengidentifikasi hasil observasi yang hanya berisi sekumpulan kecil angka dan bersifat satu dimensi bisa saja mudah namun bila terdapat ribuan observasi atau data multidimensi, diperlukan cara yang lebih pintar untuk mendeteksi nilai outlier.

Mengapa deteksi pencilan/anomali penting?

Mendeteksi pencilan atau anomali adalah salah satu masalah inti dalam analisis data. Ekspansi yang muncul dan pertumbuhan data yang berkelanjutan, memikirkan kembali cara kami mendeteksi anomali. Jam tangan dan gelang pintar dapat mendeteksi detak jantung setiap beberapa menit. Mendeteksi anomali pada data detak jantung dapat membantu dalam memprediksi penyakit jantung. Anomali pada pola lalu lintas dapat membantu dalam memprediksi kecelakaan. Ini juga dapat digunakan untuk mengidentifikasi kemacetan dalam jaringan dan lalu lintas antar server. Oleh karena itu, penggunaan dan solusi yang dibangun berdasarkan deteksi anomali sangatlah luas.

Alasan lain mengapa mendeteksi anomali penting adalah bahwa saat menyiapkan set data untuk model pembelajaran mesin, sangat penting untuk mendeteksi semua pencilan dan membuang atau menganalisisnya.

Metode 1 — Simpangan Baku:

Dalam statistik, Jika distribusi data mendekati normal maka sekitar 68% dari nilai data berada dalam satu standar deviasi mean dan sekitar 95% berada dalam dua standar deviasi, dan sekitar 99,7% berada dalam tiga standar deviasi

Fracton of values within one SD = 0.6826894921370859
Fracton of values within two SD = 0.9544997361036416
Fracton of values within three SD = 0.9973002039367398

Oleh karena itu, jika terdapat titik data yang lebih dari 3 kali standar deviasi, maka kemungkinan besar titik tersebut anomali atau outlier.

  • upper_limit=rata-rata + 3 * deviasi standar

  • lower_limit=rata-rata - 3 * deviasi standar

upper_limit 3.5165043993295226

lower_limit -3.4035968462399175

Pencilan [5.2, -5.5]

Output dari kode ini adalah daftar nilai di atas 80 dan di bawah -40. Perhatikan bahwa dataset yang saya lewati adalah dataset satu dimensi. Sekarang, mari jelajahi metode yang lebih canggih untuk kumpulan data multi-dimensi.

Metode 2 — Boxplot

Boxplot adalah penggambaran grafis dari data numerik melalui kuantilnya. Ini adalah cara yang sangat sederhana namun efektif untuk memvisualisasikan pencilan. Boxplot memiliki kumis bawah dan atas sebagai batas sebaran data. Setiap poin data yang ditampilkan di atas atau di bawah kumis, dapat dianggap outlier atau anomali.

Segala sesuatu di atas 75 atau di bawah ~ -35 untuk dianggap sebagai pencilan. Hasilnya sangat mirip dengan metode 1 di atas.

Anatomi Boxplot: Konsep Interquartile Range (IQR) digunakan untuk membangun grafik boxplot. IQR adalah konsep dalam statistik yang digunakan untuk mengukur dispersi statistik dan variabilitas data dengan membagi dataset menjadi kuartil.

Dengan kata sederhana, kumpulan data atau kumpulan pengamatan apa pun dibagi menjadi empat interval yang ditentukan berdasarkan nilai data dan bagaimana perbandingannya dengan seluruh kumpulan data. Kuartil adalah yang membagi data menjadi tiga titik dan empat interval.

Interquartile Range (IQR) penting karena digunakan untuk mendefinisikan pencilan. Itu adalah selisih antara kuartil ketiga dan kuartil pertama (IQR = Q3 -Q1). Pencilan dalam hal ini didefinisikan sebagai pengamatan yang berada di bawah (Q1 - 1.5x IQR) atau kumis bawah boxplot atau di atasnya (Q3 + 1.5x IQR) atau kumis atas boxplot.

Q1 -0.6179397363736158

Q3 0.677824802981019

median 0.0640739115622942

max 2.6214716120129715

min -2.561586545405568

Pencilan: nilai > max, nilai < min [array([5.2]), array([-5.5])]

Metode 3— DBScan Clustering:

DBScan adalah algoritme pengelompokan yang menggunakan data kluster menjadi beberapa grup. DBS dapat juga digunakan sebagai metode deteksi anomali berbasis kepadatan dengan data tunggal atau multi-dimensi. Algoritme pengelompokan lainnya seperti k-means dan pengelompokan hierarki juga dapat digunakan untuk mendeteksi pencilan.

DBScan memiliki tiga konsep penting:

  • Poin Inti: Untuk memahami konsep poin inti, kita perlu memahami beberapa hyperparameter yang digunakan untuk menentukan cara kerja DBScan. Hyperparameter pertama (HP) adalah min_samples. Ini adalah jumlah minimum poin inti yang dibutuhkan untuk membentuk sebuah cluster. HP penting kedua adalah eps. eps adalah jarak maksimum antara dua sampel agar dianggap berada dalam cluster yang sama.

  • Border Points, berada dalam cluster yang sama dengan titik inti tetapi lebih jauh dari pusat cluster.

  • Titik Kebisingan, yaitu titik data yang bukan milik cluster mana pun. Data ini dapat menjadi anomali atau non-anomali dan perlu penyelidikan lebih lanjut.

SKLearn memberi label noise sebagai (-1). Kelemahan dari metode ini adalah semakin tinggi dimensinya, semakin kurang akurat jadinya. Beberapa asumsi juga harus dibuat, seperti memperkirakan nilai yang tepat untuk eps.

Sumber: https: //stackoverflow.com/questions/34394641/dbscan-clustering-what-happens-when-border-point-of-one-cluster-is-considered

('Jumlah pencilan', 2)

array([ 5.2, -5.5])

Metode 4— Isolation Forest:

Isolation Forest adalah algoritma pembelajaran tanpa pengawasan yang termasuk dalam keluarga pohon keputusan ensemble. Pendekatan ini berbeda dari semua metode sebelumnya. Semua yang sebelumnya mencoba menemukan wilayah normal dari data kemudian mengidentifikasi apa pun di luar wilayah yang ditentukan ini sebagai pencilan atau anomali.

Cara ini bekerja secara berbeda. Ini secara eksplisit mengisolasi anomali alih-alih membuat profil dan membangun titik dan wilayah normal dengan menetapkan skor ke setiap titik data. Ini mengambil keuntungan dari fakta bahwa anomali adalah titik data minoritas dan memiliki nilai atribut yang sangat berbeda dari contoh normal. Algoritme ini berfungsi baik dengan kumpulan data berdimensi sangat tinggi dan terbukti menjadi cara yang sangat efektif untuk mendeteksi anomali. Karena artikel ini berfokus pada implementasi daripada pengetahuan, saya tidak akan membahas lebih jauh tentang cara kerja algoritme. Namun, detail lengkap tentang cara kerjanya dibahas dalam makalah ini. Sekarang, mari kita pelajari kodenya:

Kode ini akan menampilkan prediksi untuk setiap titik data dalam larik. Jika hasilnya -1, artinya titik data spesifik ini adalah outlier. Jika hasilnya 1, berarti titik datanya bukan outlier

array([-1,  1,  1,  1,  1, -1, -1,  1,  1,  1, -1, -1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1, -1,  1,  1,  1,  1, -1,  1,  1,  1, -1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, -1,
       -1, -1, -1,  1,  1,  1,  1, -1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, -1, -1])

array([ 1.62434536, -2.3015387 ,  1.74481176,  1.46210794, -2.06014071,
        1.65980218,  1.6924546 ,  2.10025514,  1.51981682,  2.18557541,
       -1.39649634, -1.44411381, -2.02220122,  5.2       , -5.5       ])

Kita hidup di dunia di mana datanya semakin besar setiap detik. Nilai data dapat berkurang seiring waktu jika tidak digunakan dengan benar. Menemukan anomali baik secara online dalam streaming atau offline dalam kumpulan data sangat penting untuk mengidentifikasi masalah dalam bisnis atau membangun solusi proaktif untuk kemungkinan menemukan masalah sebelum terjadi atau bahkan dalam fase analisis data eksplorasi (EDA) untuk menyiapkan kumpulan data untuk 'Machine Learning'.

Metode 5 - Uji Smirnov-Grubbs

Uji Grubbs ( Grubbs 1969 dan Stefansky 1972 ) digunakan untuk mendeteksi pencilan tunggal dalam kumpulan data univariat yang mengikuti distribusi yang mendekati normal.

Jika dicurigai ada lebih dari satu pencilan, disarankan untuk menggunakan tes Tietjen-Moore atau generalized extreme studentized deviate test daripada tes Grubbs.

Tes Grubbs juga dikenal sebagai tes residual normed maksimum.

Definisi Tes Grubbs didefinisikan untuk hipotesis:

  • H 0 : Tidak ada pencilan dalam kumpulan data
  • H a : Tepatnya ada satu pencilan dalam kumpulan data

Statistik Uji: Statistik uji Grubbs didefinisikan sebagai:

$$G = \frac{\max{|Y_{i} - \bar{Y}|}} {s}$$

dengan Y¯dan s masing-masing menunjukkan mean sampel dan deviasi standar. Statistik uji Grubbs adalah deviasi absolut terbesar dari mean sampel dalam unit deviasi standar sampel.

Uji Grubbs adalah versi pengujian dua sisi. Tes Grubbs juga dapat didefinisikan sebagai salah satu tes satu sisi berikut:

uji apakah nilai minimumnya adalah pencilan $$G = \frac{\bar{Y} - Y_{min}} {s}$$ dengan Y min menunjukkan nilai minimum.

uji apakah nilai maksimumnya adalah pencilan $$G = \frac{Y_{max} - \bar{Y}} {s}$$ dengan Y max menunjukkan nilai maksimum.

Tingkat Signifikansi: α

Wilayah Kritis: Untuk uji dua sisi, hipotesis tidak ada pencilan ditolak jika $$G > \frac{(N-1)} {\sqrt{N}} \sqrt{\frac{(t_{\alpha/(2N),N-2})^2} {N-2+(t_{\alpha/(2N),N-2})^2}}$$

dengan $t_α/(2N),N-2$ yang menunjukkan nilai kritis dari distribusi t dengan derajat kebebasan $(N-2)$ dan tingkat signifikansi $α/(2N)$.

Untuk uji satu sisi, kita menggunakan tingkat signifikansi tingkat α/N .

array([ 5, 14, 15, 15, 14, 19, 17, 16, 20, 22,  8, 21, 28, 11,  9, 29])

array([-30,  60])

array([-30])

array([60])

[-30]

[60]

Metode 6 - Tes Tietjen-Moore

Pencilan bisa menjadi pencilan global jika nilainya sangat menyimpang dari data lainnya. Disebut pencilan kontekstual jika menyimpang hanya dari titik data yang berasal dari konteks tertentu. Selain itu, sekumpulan titik data dapat secara kolektif menjadi outlier ketika mereka sangat menyimpang dari yang lain.

Tes Tietjen-Moore berguna untuk menentukan beberapa pencilan dalam satu set data. Hipotesis nol untuk pengujian ini adalah - tidak ada data yang outlier.

The outlier were array([-30,  60])