Berarti (skor) vs Skor (gabungan) dalam validasi silang

15

TLDR:

Dataset saya cukup kecil (120) sampel. Saat melakukan validasi silang 10 kali lipat, haruskah saya:

  1. Kumpulkan output dari setiap lipatan tes, gabungkan menjadi vektor, dan kemudian hitung kesalahan pada vektor prediksi penuh ini (120 sampel)?

  2. Atau saya harus bukannya menghitung kesalahan pada output saya mendapatkan pada setiap kali lipat (dengan 12 sampel per kali lipat), dan kemudian mendapatkan perkiraan kesalahan akhir saya sebagai rata-rata dari 10 perkiraan error kali lipat?

Adakah tulisan ilmiah yang membantah perbedaan antara teknik ini?


Latar Belakang: Potensi Hubungan dengan skor Makro / Mikro dalam klasifikasi multi-label:

Saya pikir pertanyaan ini mungkin terkait dengan perbedaan antara rata-rata mikro dan Makro yang sering digunakan dalam tugas klasifikasi multi-label (misalnya, 5 label).

Dalam pengaturan multi-label, skor rata-rata mikro dihitung dengan membuat tabel kontingensi gabungan dari true positive, false positive, true negative, false negative untuk semua 5 prediksi classifier pada 120 sampel. Tabel kontingensi ini kemudian digunakan untuk menghitung presisi mikro, penarikan kembali mikro dan pengukuran mikro. Jadi ketika kita memiliki 120 sampel dan lima pengklasifikasi, ukuran mikro dihitung berdasarkan 600 prediksi (120 sampel * 5 label).

Saat menggunakan varian Makro , satu menghitung langkah-langkah (presisi, penarikan, dll.) Secara independen pada setiap label dan akhirnya, langkah-langkah ini dirata-ratakan.

Ide di balik perbedaan antara mikro vs Makro perkiraan dapat diperpanjang untuk apa yang dapat dilakukan dalam pengaturan K-kali lipat dalam masalah klasifikasi biner. Untuk 10 kali lipat kita dapat rata - rata lebih dari 10 nilai ( ukuran Makro ) atau menggabungkan 10 percobaan dan menghitung ukuran mikro .

Latar Belakang - Contoh yang diperluas:

Contoh berikut menggambarkan pertanyaan. Katakanlah kita memiliki 12 sampel uji dan kami memiliki 10 lipatan:

  • Lipat 1 : TP = 4, FP = 0, TN = 8 Presisi = 1.0
  • Lipat 2 : TP = 4, FP = 0, TN = 8 Presisi = 1.0
  • Lipat 3 : TP = 4, FP = 0, TN = 8 Presisi = 1.0
  • Lipat 4 : TP = 0, FP = 12, Presisi = 0
  • Lipat 5 .. Lipat 10 : Semua memiliki TP yang sama = 0, FP = 12 dan Presisi = 0

tempat saya menggunakan notasi berikut:

TP = # True Positive, FP = # False Positive, TN = # True Negatives

Hasilnya adalah:

  • Presisi rata-rata di 10 lipatan = 3/10 = 0,3
  • Presisi pada rangkaian prediksi 10 lipatan = TP / TP + FP = 12/12 + 84 = 0,125

Perhatikan bahwa nilai 0,3 dan 0,125 sangat berbeda !

pengguna13420
sumber
CV sebenarnya bukan ukuran yang bagus untuk memprediksi kinerja masa depan. Perbedaannya terlalu kecil. Lebih baik menggunakan bootstrap untuk memvalidasi model Anda.
user765195
2
@ user765195: dapatkah Anda mencadangkan klaim Anda dengan beberapa kutipan?
Zach
Saya telah mencari tetapi saya belum menemukan literatur tentang metode CV agregat. Tampaknya menjadi cara yang lebih tepat untuk menghitung ukuran karena memiliki varian yang lebih sedikit.
user13420
1
@Zach, ada beberapa diskusi di sini, dalam buku Harrell: tinyurl.com/92fsmuv (lihat paragraf terakhir di halaman 93 dan paragraf pertama di halaman 94.) Saya akan mencoba mengingat referensi lain yang lebih eksplisit.
user765195
1
k

Jawaban:

3

Perbedaan yang dijelaskan adalah IMHO palsu.

Anda akan mengamatinya hanya jika distribusi kasus yang benar-benar positif (yaitu metode referensi mengatakan itu adalah kasus positif) sangat tidak sama pada lipatan (seperti pada contoh) dan jumlah kasus uji yang relevan (penyebut ukuran kinerja) yang sedang kita bicarakan, di sini yang benar-benar positif) tidak diperhitungkan ketika rata-rata lipatan rata-rata.

412=13 (karena ada 4 kasus uji di antara total 12 kasus yang relevan untuk perhitungan presisi), dan 6 rata-rata lipatan terakhir dengan 1 (semua kasus uji yang relevan untuk perhitungan presisi), rata-rata tertimbang adalah persis sama dengan yang Anda inginkan. dapatkan dari mengumpulkan prediksi 10 lipatan dan kemudian menghitung presisi.


sunting: pertanyaan awal juga ditanyakan tentang mengulangi / mengulangi validasi:

ya , Anda harus menjalankan iterasi secara keseluruhankProsedur validasi silang berlipat:
Dari situ, Anda bisa mendapatkan gagasan tentang stabilitas prediksi model Anda

  • Berapa banyak perubahan prediksi jika data pelatihan terganggu dengan menukar beberapa sampel pelatihan?
  • Yaitu, seberapa banyak prediksi model "pengganti" berbeda untuk sampel uji yang sama?

Anda meminta makalah ilmiah :

Meremehkan varians Pada akhirnya, set data Anda memiliki ukuran sampel yang terbatas (n = 120), terlepas dari berapa banyak iterasi bootstrap atau validasi silang yang Anda lakukan.

  • Anda memiliki (setidaknya) 2 sumber varian dalam hasil validasi resampling (validasi silang dan keluar dari bootstrap):

    • varians karena jumlah sampel (tes) yang terbatas
    • varians karena ketidakstabilan prediksi model pengganti
  • Jika model Anda stabil, maka

    • iterasi dari k-validasi silang berlipat tidak diperlukan (mereka tidak meningkatkan estimasi kinerja: rata-rata setiap kali menjalankan validasi silang adalah sama).
    • Namun, perkiraan kinerja masih dapat bervariasi karena jumlah sampel uji yang terbatas.
    • Jika struktur data Anda "sederhana" (yaitu satu vektor pengukuran tunggal untuk setiap kasus yang independen secara statistik), Anda dapat mengasumsikan bahwa hasil pengujian adalah hasil dari proses Bernoulli (melempar koin) dan menghitung varians uji-terbatas hingga.
  • out-of-bootstrap melihat perbedaan antara prediksi masing-masing model pengganti. Itu mungkin dengan hasil validasi silang juga, tetapi tidak umum. Jika Anda melakukan ini, Anda akan melihat varians karena ukuran sampel yang terbatas di samping ketidakstabilan. Namun, perlu diingat bahwa beberapa pooling (biasanya) sudah terjadi: untuk validasi silang biasanyankhasilnya dikumpulkan, dan untuk out-of-bootstrap sejumlah sampel yang ditinggalkan dikumpulkan.
    Yang membuat saya pribadi lebih suka validasi silang (untuk saat ini) karena lebih mudah untuk memisahkan ketidakstabilan dari ukuran sampel uji yang terbatas.

Cbeleites mendukung Monica
sumber
Juga, saya melakukan klasifikasi multi-label dengan empat pengklasifikasi. Jadi saya ingin melihat langkah-langkah Mikro dan Makro di 4 tugas. Saya berasumsi bahwa validasi silang "gabungan" akan diperlukan dalam kasus ini? Juga saya tidak yakin apakah out-of-bootstrap sama dengan metode CV "gabungan" yang saya sebutkan di atas. Ada juga beberapa diskusi di stats.stackexchange.com/questions/4868/…
user13420
@ user13420: saya juga tidak yakin apa yang Anda maksud dengan CV gabungan ... Inilah jawaban di mana saya menuliskan apa artinya out-of-bootstrap dan cross validation bagi saya: stats.stackexchange.com/a/26548/4598
cbeleites mendukung Monica
@ user13420: Terminologi sangat berbeda di berbagai bidang. Bisakah Anda memperbarui jawaban Anda dengan informasi apa langkah-langkah Mikro dan Makro? Namun, validasi silang adalah teknik yang sangat umum: ini adalah skema untuk menghitung hasil pengujian model. Anda dapat menghitung ukuran kinerja apa pun yang diperlukan sebagai input nilai referensi untuk setiap kasus dan nilai prediksi untuk setiap kasus.
cbeleites mendukung Monica
gabungan CV berarti Anda mengumpulkan prediksi setiap ketidaksepakatan dan menghitung pengukuran setelah semua 10 ketidaksesuaian. Jadi, jika saya mengukur presisi, mengingat untuk tugas klasifikasi, itu akan memiliki presisi tunggal, mengingat sebagai kebalikan dari 10 nilai dan rata-rata (yang merupakan kasus dalam CV biasa)
user13420
2
Terima kasih cbeleites - Saya menambahkan klarifikasi karena saya menemukan kata-kata dari pertanyaan awal agak membingungkan. Saya harap hasil edit saya menjadi lebih baik - saya mencoba menyoroti dilema dengan lebih baik - tapi tolong beri tahu saya sebaliknya. Semua yang mengatakan, ketika Anda menyebutkan bahwa Anda menemukan perbedaan palsu - Saya ingin mencatat bahwa @ user13420 mendapat dua hasil yang sangat berbeda di bagian bawah OP-nya ketika mengikuti pendekatan 1 atau 2 . Saya menemukan diri saya sendiri menghadapi dilema ini. Saya percaya pendekatan kedua lebih umum, tetapi akan lebih baik jika Anda menerimanya.
Josh
1

Anda harus melakukan skor (penggabungan). Ini adalah kesalahpahaman umum di lapangan yang berarti (skor) adalah cara terbaik. Ini dapat memperkenalkan lebih banyak bias ke dalam estimasi Anda, terutama pada kelas langka, seperti dalam kasus Anda. Berikut ini makalah yang mendukung ini:

http://www.kdd.org/exploration_files/v12-1-p49-forman-sigkdd.pdf

Di koran, mereka menggunakan "Favg" sebagai pengganti "rata-rata (skor)" dan "Ftp, fp" sebagai pengganti "skor (gabungan)" Anda

Contoh mainan:

Bayangkan bahwa Anda memiliki validasi silang 10 kali lipat dan kelas yang muncul 10 kali, dan kebetulan ditugaskan sehingga muncul sekali di setiap lipatan. Juga kelas selalu diprediksi dengan benar tetapi ada satu false-positive dalam data. Lipatan uji yang mengandung false positive akan memiliki akurasi 50%, sedangkan semua lipatan lainnya akan memiliki 100%. Jadi rata-rata (skor) = 95%. Di sisi lain, skor (gabungan) adalah 10/11, sekitar 91%.

Jika kita mengasumsikan bahwa populasi sebenarnya terwakili dengan baik oleh data, dan bahwa 10 pengklasifikasi lintas-validasi dengan baik mewakili penggolong akhir, maka akurasi dunia nyata akan menjadi 91%, dan rata-rata (skor) estimasi 95% adalah cara yang bias .

Dalam praktiknya, Anda tidak akan ingin membuat asumsi-asumsi itu. Alih-alih, Anda dapat menggunakan statistik distribusi untuk memperkirakan kepercayaan diri, dengan secara acak mengubah data dan menghitung kembali skor (penggabungan) beberapa kali, serta bootstrap.

pengguna2255970
sumber
Ini kertas yang bagus! Saya pikir hasil dalam bahasa pertanyaan asli (tidak digunakan di koran) adalah bahwa ketika menghitung skor F, gunakan pendekatan "rata-rata mikro"; khusus, jumlah TP, TN, FP, FN dari semua lipatan, untuk mendapatkan matriks kebingungan tunggal, dan kemudian menghitung skor F (atau metrik yang diinginkan lainnya).
travelingbones