Apa yang membuat classifier salah mengklasifikasikan data? [Tutup]

9

Mungkinkah itu dari data itu sendiri? Atau apakah itu karena model tidak dapat mendeteksi secara efisien kesamaan antara data, atau adakah alasan lain untuk kesalahan klasifikasi?

Sofia693
sumber
13
Menurut saya, pertanyaannya kalau terlalu kabur. Apakah ada masalah yang Anda hadapi secara khusus?
jpmuc
1
Seperti yang ditulis, ini dapat dibaca sebagai "kesalahan klasifikasi [data] data". Dalam hal ini, hal itu dapat terjadi bahkan jika model merupakan cerminan sempurna dari proses pembuatan data, selama DGP bersifat stokastik / tidak deterministik. Artinya, beberapa tingkat kesalahan klasifikasi harus diharapkan karena adanya kebisingan.
gung - Reinstate Monica
@ung bukankah itu terlalu pas?
theGD
3
@theGD, Anda dapat memiliki penggolong sempurna yang salah mengklasifikasikan beberapa data, jika prosesnya tidak deterministik. Seperti itulah adanya.
gung - Reinstate Monica

Jawaban:

19

Mari kita asumsikan Anda berbicara tentang kesalahan klasifikasi pada data pelatihan, yaitu, sulit untuk meminimalkan kerugian pada set data pelatihan, tidak ada data pengujian yang melibatkan masalah yang terlalu pas.

Anda benar bahwa, dalam kebanyakan kasus, kesalahan klasifikasi dapat berasal dari "model terlalu sederhana" atau "datanya terlalu berisik". Saya ingin memberikan dua contoh untuk ilustrasi lebih lanjut.

  1. Model ini "terlalu sederhana" untuk menangkap "pola dalam data".

    • Contohnya ditunjukkan pada gambar kiri. Misalkan kita ingin menggunakan regresi logistik / garis untuk memisahkan dua kelas, tetapi dua kelas tidak dapat dipisahkan secara linier.

    • Dalam hal ini, masih ada "pola penting dalam data", dan jika kita mengubah model, kita mungkin menjadi lebih baik. Misalnya, jika kita menggunakan pengklasifikasi KNN, alih-alih regresi logistik, kita dapat memiliki kinerja yang sangat baik.

  2. Data memiliki terlalu banyak noise, sehingga sangat sulit untuk melakukan tugas klasifikasi.

    • Contohnya ditunjukkan pada gambar kanan, di mana, jika Anda memeriksa kode, Anda akan melihat dua kelas sangat mirip (dua kelas adalah 2D Gaussian, artinya adalah 0,01×2 terpisah, tetapi standar deviasi untuk setiap kelas adalah 1.0). Ini pada dasarnya adalah tugas yang sangat menantang.

Kumpulan data contoh, satu dengan dua spiral menyatu, satu dengan distribusi Gaussian yang sangat tumpang tindih

Perhatikan bahwa kedua contoh itu sepele, karena kita dapat memvisualisasikan data dan penggolongnya. Di dunia nyata, bukan itu masalahnya, ketika kita memiliki jutaan titik data dan pengklasifikasi super rumit.

Kode:

library(mlbench)
set.seed(0)
par(mfrow=c(1,2))
d=mlbench.spirals(500)
plot(d)
lg_fit=glm(d$classes~d$x[,1]+d$x[,2]-1,family=binomial())
abline(0,-lg_fit$coefficients[1]/lg_fit$coefficients[2])

d2=mlbench.2dnormals(500,r=0.01)
plot(d2)
Haitao Du
sumber
Anda menyebutkan KNN, harap dicatat bahwa saya berbicara tentang klasifikasi dan bukan pengelompokan, maksud saya ketika kita memiliki data pelatihan dan pengujian. Apa yang membuat saya sedikit bingung adalah bahwa misalnya jika kita memiliki dua jenis data yang berarti fitur berbeda untuk setiap data, apa yang membuat classifier salah memberi label pada data pengujian dalam proses pengujian? Saya pikir ini membawa saya ke contoh kedua Anda yang berarti bahwa data saya memiliki begitu banyak kebisingan dan modelnya sedang berjuang karena itu, tetapi mari kita asumsikan bahwa kita telah menyelesaikannya dengan pemilihan fitur, apakah masih ada noise di luar sana bahkan setelah pemilihan fitur?
Sofia693
atau mungkin saya bisa memikirkan alasan lain yang mana kedua tipe data saya sebenarnya berbagi kesamaan dalam fitur mereka dan yang dapat "menipu" model, mungkinkah ini satu kasus?
Sofia693
@ Sofia693 1. KNN BUKAN Kmeans, ini adalah model klasifikasi. 2. Saya tidak benar-benar mengikuti komentar Anda.
Haitao Du
Maksud saya jika kita memiliki dua kelompok (misalnya 50 pasien autisme dan 50 subjek sehat dan data diekstraksi dari MRI di mana masing-masing subjek direpresentasikan sebagai vektor fitur), saya melatih classifier dan menggunakan teknik Leave One Out. Sekarang model dapat mengklasifikasikan subjek pengujian karena noise (seperti yang Anda sebutkan pada contoh kedua) tetapi kita dapat menggunakan pemilihan fitur untuk mengurangi noise, bukan? mengapa model masih salah mengelompokkan subjek pengujian? mungkin masih ada noise bahkan setelah pemilihan fitur?
Sofia693
Asumsi kedua saya adalah bahwa kedua kelompok tersebut sebenarnya berbagi kesamaan dalam vektor fitur mereka sehingga model tersebut benar-benar berjuang untuk menetapkan subjek pengujian ke salah satu kelompok.
Sofia693
11

Selain @ hxd1011 (+1).

  1. Ketidakseimbangan kelas secara relatif atau absolut. Dalam kedua kasus tersebut, kami membangun representasi kelas minat yang tidak memadai. Biasanya yang belakangan lebih sulit diatasi. (Contoh referensi: Belajar dari Data yang Tidak Seimbang oleh He and Garcia)
  2. Kriteria klasifikasi yang tidak tepat. Kami melatih classifier kami menggunakan fungsi evaluasi yang tidak sesuai dan / atau menggunakan kriteria yang tidak tepat untuk mendapatkan solusi akhir kami. Masalah yang sangat umum saat menggunakan "solusi kalengan". (Contoh referensi: Kerusakan yang disebabkan oleh Keakuratan Klasifikasi dan Aturan Penilaian Akurasi Tidak Tepat Tidak Terputus Lainnya oleh Harrell)
  3. Tidak ada kelas dalam kenyataan. Kami berharap ada sesuatu di sana tetapi sebenarnya tidak ada apa-apa. Biasanya keahlian domain mengarahkan orang menjauh dari ini tetapi sebagai pendatang baru ini selalu menjadi masalah. (Contoh referensi: Kehidupan kita sehari-hari. Bias publikasi mungkin juga menjadi masalah di sini ...)
  4. Overfitting. Kami memiliki model yang layak dan dataset yang layak, tetapi kami gagal untuk melatih pembuatan model yang tidak realistis. Biasanya ini berkaitan dengan poin 2. (Poin ekstra untuk pemasangan di bawah!) (Contoh referensi: Masalah Overfitting oleh Hawkings)
  5. Konsep melayang. Banyak hal berubah dan kami tidak berlatih kembali. Pengklasifikasi kami memiliki kinerja yang sangat baik dalam sampel pemasaran "penjualan Natal" - ya, menggunakan model ini pada bulan Juli mungkin akan menyebalkan ... (Contoh referensi: Survei tentang Adaptasi Drift Konsep oleh Gama et al.)
  6. Kebocoran data / fitur Magic. Kami berlatih dari informasi yang tidak akan tersedia pada saat prediksi. Biasa terjadi ketika memiliki event / time-series like data. (Referensi contoh: Kebocoran dalam Penambangan Data: Formulasi, Deteksi, dan Penghindaran oleh Kaufman et al.)
usεr11852
sumber
1
Saya tidak mengerti poin 3. Pertanyaan ini mengasumsikan beberapa gagasan tentang "kelas" untuk memiliki classifier yang salah mengklasifikasikan beberapa data. Apakah maksud Anda pelabelan tidak konsisten ("kelas" tidak didefinisikan dengan baik)? Atau bahwa fitur tidak mengandung informasi yang relevan dengan tugas klasifikasi?
Charles Staats
@CharlesStaats: "fitur-fitur tidak mengandung informasi yang relevan dengan tugas klasifikasi" adalah kegagalan jenis kedua, "kriteria klasifikasi yang tidak tepat".
MSalters
Apakah Anda pikir label yang buruk akan jatuh ke 2, atau apakah pantas masuk terpisah?
Jonas
@CharlesStaats: Dengan asumsi " beberapa gagasan kelas " tidak berarti bahwa itu benar-benar ada dan / atau jika dapat didukung oleh data yang ada. Itulah sebabnya keahlian domain sangat membantu dalam kasus ini; ini membantu kita membedakan antara "masalah sebenarnya" dan mencoba "menyesuaikan kebisingan". Ada kasus-kasus di mana label mencerminkan hipotesis (misalnya potensi untuk mengembangkan penyakit yang disebabkan oleh mutasi acak) daripada gagasan yang terukur (misalnya pasien memiliki penyakit yang disebabkan oleh mutasi acak).
usεr11852
@Jonas: Ini poin bagus; Saya pikir mislabelling harus menjadi entri yang terpisah. Ini berpotensi terkait dengan poin tentang "data terlalu berisik" yang diajukan oleh hxd1011.
usεr11852