Masalah dengan akurasi
Akurasi standar didefinisikan sebagai rasio klasifikasi yang benar dengan jumlah klasifikasi yang dilakukan.
a c c u r a c y: = klasifikasi yang benarjumlah klasifikasi
Oleh karena itu, ini adalah ukuran keseluruhan dari semua kelas dan karena kita akan segera melihat itu bukan ukuran yang baik untuk mengatakan ramalan selain dari tes yang berguna sebenarnya. Oracle adalah fungsi klasifikasi yang mengembalikan tebakan acak untuk setiap sampel. Demikian juga, kami ingin dapat menilai kinerja klasifikasi dari fungsi klasifikasi kami. Akurasi \ textit {bisa} menjadi ukuran yang berguna jika kita memiliki jumlah sampel yang sama per kelas tetapi jika kita memiliki set sampel yang tidak akurat, akurasi sampel tidak berguna sama sekali. Terlebih lagi, tes dapat memiliki akurasi tinggi tetapi sebenarnya berkinerja lebih buruk daripada tes dengan akurasi lebih rendah.
Jika kita memiliki distribusi sampel sedemikian rupa sehingga 90 \% sampel milik kelas SEBUAH , 5 \% milik B dan 5 \% milik C maka fungsi klasifikasi berikut akan memiliki akurasi 0,9 :
c l a s s i fy( s a m p l e ) : = { Ajika ⊤
Namun, jelas mengingat bahwa kita tahu bagaimana c l a s s i fy bekerja bahwa ini tidak dapat memberitahu kelas terpisah sama sekali. Demikian juga, kita dapat membangun fungsi klasifikasi
c l a s s i fy( s a m p l e ) : = tebak ⎧⎩⎨SEBUAHBCdengan p = 0,96dengan p = 0,02dengan p = 0,02
yang memiliki akurasi 0.96⋅0.9+0.02⋅0.05⋅2=0.866 dan tidak akan selalu memprediksi
A tapi masih mengingat bahwa kita tahu bagaimana classify bekerja jelas bahwa ia tidak dapat memberitahu kelas terpisah. Akurasi dalam hal ini hanya memberi tahu kita seberapa bagus fungsi klasifikasi kita dalam menebak. Ini berarti bahwa keakuratan bukanlah ukuran yang baik untuk menceritakan oracle selain dari tes yang bermanfaat.
Akurasi per Kelas
Kita bisa menghitung akurasi secara individual per kelas dengan memberikan fungsi klasifikasi kami hanya sampel dari kelas yang sama dan mengingat dan menghitung jumlah klasifikasi yang benar dan klasifikasi yang salah kemudian menghitung accuracy:=correct/(correct+incorrect) . Kami ulangi ini untuk setiap kelas. Jika kita memiliki fungsi klasifikasi yang dapat secara akurat mengenali kelas
A tetapi akan menghasilkan perkiraan acak untuk kelas-kelas lain maka ini menghasilkan akurasi 1.00 untuk
A dan akurasi 0.33untuk kelas lainnya. Ini sudah memberi kami cara yang jauh lebih baik untuk menilai kinerja fungsi klasifikasi kami. Sebuah oracle selalu menebak kelas yang sama akan menghasilkan akurasi per kelas 1.00 untuk kelas itu, tetapi 0.00 untuk kelas lainnya. Jika pengujian kami bermanfaat, semua akurasi per kelas harus >0.5 . Kalau tidak, tes kami tidak lebih baik dari kebetulan. Namun, akurasi per kelas tidak memperhitungkan false positive. Meskipun fungsi klasifikasi kami memiliki akurasi 100 \% untuk kelas A akan ada juga false positive untuk A (seperti B salah diklasifikasikan sebagai A ).
Sensitivitas dan Spesifisitas
Dalam tes medis sensitivitas didefinisikan sebagai rasio antara orang yang diidentifikasi dengan benar memiliki penyakit dan jumlah orang yang benar-benar memiliki penyakit. Spesifisitas didefinisikan sebagai rasio antara orang yang diidentifikasi dengan benar sebagai sehat dan jumlah orang yang sebenarnya sehat. Jumlah orang yang benar-benar menderita penyakit ini adalah jumlah hasil tes positif sejati ditambah jumlah hasil tes negatif palsu. Jumlah orang yang benar-benar sehat adalah jumlah hasil tes negatif yang sebenarnya ditambah jumlah hasil tes positif palsu.
Klasifikasi Biner
Dalam masalah klasifikasi biner ada dua kelas P dan N . Tn mengacu pada jumlah sampel yang benar diidentifikasi sebagai milik kelas n dan Fn mengacu pada jumlah sampel yang werey palsu diidentifikasi sebagai milik kelas n . Dalam hal ini sensitivitas dan spesifisitas didefinisikan sebagai berikut:
sensitivity:=TPTP+FNspecificity:=TNTN+FP
TPFNTNFPαβαTααTα+FβαTβαTβ+FααββTββTβ+FαβTαβTα+Fβ
sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ
sensitivityα=specificityβspecificityα=sensitivityβ. Ini berarti bahwa jika kita hanya memiliki dua kelas kita tidak perlu sensitivitas dan spesifisitas per kelas.
Klasifikasi N-Ary
Sensitivitas dan spesifisitas per kelas tidak berguna jika kita hanya memiliki dua kelas, tetapi kita dapat memperluasnya ke beberapa kelas. Sensitivitas dan spesifisitas didefinisikan sebagai:
sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives
Tn∑i(Fn,i)∑i(Fi,n)n∑saya( Tsaya) - T( n )nn∑saya( ∑k( Fsaya , k) )nn∑saya( Fn , aku)n∑saya( Fsaya , n)∑saya( Tsaya) - T( n ) + ∑saya( ∑k( Fn , aku) ) - Âsaya( Fn , aku) - ∑saya( Fsaya , n). Sebagai ringkasan, kami memiliki:
true positive : = Tnnegatif yang benar : = Σsaya( Tsaya) - T( n ) + ∑saya( ∑k( Fn , aku) ) - Âsaya( Fn , aku) - ∑saya( Fsaya , n)false positive : = ¢saya( Fsaya , n)false negative : = ¢saya( Fn , aku)
sensitivity(n):=TnTn+∑i(Fn,i)specificity(n):=∑i(Ti)−Tn+∑i(∑k(Fi,k))−∑i(Fn,i)−∑i(Fi,n)∑i(Ti)−Tn+∑i(∑k(Fi,k))−∑i(Fn,i)
Memperkenalkan Keyakinan
confidence⊤Tn+∑i(Fi,n)nTn
confidence⊤(n):=TnTn+∑i(Fi,n)
confidence⊥nn
∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn∑i(Fn,i)
confidence⊥(n)=∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn−∑i(Fn,i)∑i(∑k(Fi,k))−∑i(Fi,n)+∑i(Ti)−Tn