Klasifikasi hanya untuk satu kelas

10

Dalam klasifikasi sederhana, kami memiliki dua kelas: kelas-0 dan kelas-1. Dalam beberapa data saya hanya memiliki nilai untuk kelas-1, jadi tidak ada untuk kelas-0. Sekarang saya berpikir untuk membuat model untuk memodelkan data untuk kelas-1. Jadi, ketika data baru datang, model ini diterapkan pada data baru dan menemukan probabilitas yang mengatakan seberapa besar kemungkinan data baru tersebut cocok dengan model ini. Kemudian membandingkan dengan ambang, saya bisa memfilter data yang tidak pantas.

Pertanyaan saya adalah:

  • Apakah ini cara yang baik untuk mengatasi masalah seperti itu?
  • Bisakah classifier RandomForest digunakan untuk kasus ini? Apakah saya perlu menambahkan data buatan untuk kelas-0 yang saya harap dianggap sebagai noise?
  • Ada ide lain yang bisa membantu untuk masalah ini?
Pencinta Data Besar
sumber

Jawaban:

9

Ini dimungkinkan menggunakan beberapa pendekatan dan tentu saja merupakan pendekatan yang valid. Saya tidak yakin apakah hutan acak bisa melakukan ini.

Menghasilkan data buatan berarti membuat asumsi tambahan, jangan lakukan itu jika Anda tidak perlu.

Salah satu teknik yang Anda mungkin ingin lihat adalah apa yang disebut SVM satu kelas. Ia melakukan persis apa yang Anda cari: ia mencoba membangun model yang menerima poin pelatihan dan akan menolak poin dari distribusi lain.

Beberapa referensi tentang SVM satu kelas:

  1. Schölkopf, Bernhard, et al. "Memperkirakan dukungan distribusi dimensi tinggi." Komputasi saraf 13,7 (2001): 1443-1471. Makalah ini memperkenalkan pendekatan.

  2. Pajak, David MJ, dan Robert PW Duin. "Dukung deskripsi data vektor." Pembelajaran mesin 54.1 (2004): 45-66. Cara berbeda untuk melakukan hal yang sama, mungkin lebih intuitif.

Kedua pendekatan ini terbukti setara. Yang pertama memperkirakan hyperplane yang memisahkan semua data pelatihan dari asal di ruang fitur dengan jarak maksimal. Yang kedua memperkirakan hypersphere dengan jari-jari minimal dalam ruang fitur yang berisi instance pelatihan.

SVM satu kelas tersedia dalam banyak paket SVM, termasuk libsvm , scikit-learn (Python) dan kernlab (R).

Marc Claesen
sumber
3
Tesis PhD pajak "Klasifikasi satu kelas - Pembelajaran konsep dengan tidak adanya contoh tandingan" juga tersedia: homepage.tudelft.nl/n9d04/thesis.pdf
cbeleites tidak senang dengan SX
Pendek dan tepat! (+1) "Kedua pendekatan ini telah terbukti setara." - dapatkah Anda menentukan referensi / kutipan untuk itu? Apakah scholar.google.de/...
Boern
6

Biarkan saya menambahkan beberapa kemungkinan:

Gagasan umum adalah bahwa menetapkan ambang batas untuk jarak dari kelas memungkinkan Anda untuk memutuskan apakah sampel termasuk dalam kelas itu atau tidak, dan terlepas dari apakah ada kelas lain atau tidak.

  • Mahalanobis-Distance => QDA
  • SIMCA (Soft Independent Modeling of Class Analogies) menggunakan jarak dalam ruang skor PCA.
    SIMCA umum dalam literatur chemometrik (meskipun jarang benar-benar diatur dalam cara satu kelas).
  • (SVM sudah diperlakukan dalam jawaban @Marc Claesen)

Richard G. Brereton: Chemometrics for Pattern Recognition (Wiley, 2009) memiliki seluruh bab tentang klasifikasi satu kelas.

cbeleites tidak senang dengan SX
sumber