Berbagi teknologi

Mengamati batasan data: teknologi deteksi outlier di sklearn

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Mengamati batasan data: teknologi deteksi outlier di sklearn

Deteksi outlier adalah tugas penting dalam analisis data dan proyek pembelajaran mesin. Outlier, juga dikenal sebagai outlier atau outlier, mengacu pada pengamatan yang berbeda secara signifikan dari data lainnya. Titik-titik ini dapat disebabkan oleh kesalahan pengukuran, kesalahan entri data, atau variabilitas sebenarnya. Mengidentifikasi dan menangani outlier dengan benar sangat penting untuk memastikan kualitas dan akurasi model. scikit-learn (singkatnya sklearn), sebagai pustaka pembelajaran mesin yang kaya fitur di Python, menyediakan berbagai metode deteksi outlier. Artikel ini akan memperkenalkan teknologi deteksi outlier di sklearn secara mendetail dan memberikan contoh kode praktis.

1. Pentingnya deteksi outlier

Deteksi outlier sangat penting di berbagai bidang seperti:

  • Pembersihan data: Mengidentifikasi dan menangani outlier selama tahap prapemrosesan data.
  • Deteksi penipuan: Mengidentifikasi potensi penipuan dalam transaksi keuangan.
  • Pemantauan Proses: Memantau status peralatan dan mencegah kegagalan dalam produksi industri.
2. Metode deteksi outlier di sklearn

sklearn menyediakan beberapa metode untuk mendeteksi outlier. Berikut beberapa teknik yang umum digunakan:

2.1 Z-Score (skor standar)

Metode Z-Score menormalkan data ke distribusi normal berdasarkan mean dan deviasi standar data, dan menghitung Z-Score untuk setiap poin.

from scipy.stats import zscore

data = [[1, 2], [3, 4], [5, 6], [100, 100]]
data = np.array(data)
z_scores = zscore(data)
threshold = 3  # 通常阈值设为3
outliers = np.where((z_scores > threshold) | (z_scores < -threshold))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2.2 IQR (rentang interkuartil)

Metode IQR menggunakan data kuartil pertama (Q1) dan kuartil ketiga (Q3) untuk menentukan kisaran outlier.

Q1 = np.percentile(data, 25, axis=0)
Q3 = np.percentile(data, 75, axis=0)
IQR = Q3 - Q1
threshold = 1.5
outliers = np.where((data < (Q1 - threshold * IQR)) | (data > (Q3 + threshold * IQR)))
  • 1
  • 2
  • 3
  • 4
  • 5
2.3 Metode berbasis kepadatan

Metode berbasis kepadatan, seperti DBSCAN, mengidentifikasi outlier berdasarkan kepadatan titik data, bukan ambang batas tetap.

from sklearn.cluster import DBSCAN

dbscan = DBSCAN(min_samples=5, eps=0.5)
dbscan.fit(data)
core_samples_mask = np.zeros_like(dbscan.labels_, dtype=bool)
core_samples_mask[dbscan.core_sample_indices_] = True
outliers = dbscan.labels_ == -1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
2.4 Hutan Isolasi

Isolation Forest adalah metode pendeteksian outlier berdasarkan hutan acak, yang “mengisolasi” outlier dengan memilih fitur dan titik segmentasi secara acak.

from sklearn.ensemble import IsolationForest

iso_forest = IsolationForest(n_estimators=100, contamination=0.01)
iso_forest.fit(data)
outliers = iso_forest.predict(data) == -1
  • 1
  • 2
  • 3
  • 4
  • 5
3. Evaluasi deteksi outlier

Mengevaluasi kinerja deteksi outlier seringkali sulit karena tidak ada standar yang mutlak. Namun, hal ini dapat dievaluasi dengan cara berikut:

  • Visualisasi: Visualisasikan titik data dan deteksi outlier menggunakan metode seperti plot sebar.
  • Pencilan yang diketahui: Jika terdapat outlier yang diketahui, indikator seperti akurasi deteksi dan tingkat perolehan kembali dapat dihitung.
4. Dikombinasikan dengan aplikasi praktis

Dalam penerapan praktisnya, deteksi outlier dapat membantu kita mengidentifikasi perilaku abnormal dalam kumpulan data untuk melakukan analisis lebih lanjut atau mengambil tindakan pencegahan.

5. Kesimpulan

Deteksi outlier adalah tautan penting dalam analisis data dan pembelajaran mesin. sklearn menyediakan berbagai metode deteksi outlier, masing-masing metode memiliki skenario aplikasi dan keunggulannya masing-masing. Melalui artikel ini, kita mempelajari berbagai teknik deteksi outlier di sklearn dan memberikan contoh kode praktis.

Tujuan artikel ini adalah untuk membantu pembaca lebih memahami deteksi outlier dan menguasai metode penerapan teknik ini di sklearn. Kami berharap pembaca dapat meningkatkan pemahaman mereka tentang deteksi outlier melalui artikel ini dan menerapkan teknik ini secara efektif dalam proyek sebenarnya. Seiring dengan pertumbuhan volume data, deteksi outlier akan terus memainkan peran penting dalam ilmu data.