2016-04-02 14 views
1

2 farklı sınıf arasında sınıflandırmak için patternnet sınıflandırıcı kullanıyorum - 0, etiketli 1. Desennet kullanılarak üretilen bazı veriler için Roc Eğri grafikleri oluşturmak için MATLAB kullanmaya çalışıyorum ama koşması gereken parametreleri anlamakta zorlanıyorum.arsa perfcurve kullanarak nöronal ağ sınıflandırıcı için ROC eğrisi

[xTr, yTr, TTr, aucTr] = perfcurve(t, results.Data.y, 1); 

I varsayalım: t etiket vektör verilerim ait olduğu sınıf içine durumları (madeni 0 ile 1 arasında oluşur ve boyut olarak 2x834 olan) puanları 'olarak adlandırılan patternnet tarafından oluşturulan değişken olduğunu üretilmesidir results.Data.y '(2x834 boyutunda) posclass 1'dir. Ancak puanlar bir vektör (1x834 boyutunda) olmalı ve hangi satırı seçeceğimi bilmiyorum?

cevap

0

Perfcurve işlevi hakkında ayrıntılar şu adreste bulunabilir: http://in.mathworks.com/help/stats/perfcurve.html Örnekler oldukça faydalıdır. Özel durumda İlişkin

t vektörü tahmin edilmez, ama kendini oluşturmak vektör besbelli 1xN olacağını test verilerinizi, etiketlemek (dava için n = 834).

Puanınız matrisi m * n olur, burada m verilerinizdeki sınıf sayısıdır (sizin durumunuz için 2'dir). 1'inden beri sizin pozitif sınıfınız olduğunu söylediğinizden, pozitif sınıfınızın puanını içeren sütunu seçeceksiniz. Bir şey gibi:

[xTr, yTr, TTr, aucTr] = perfcurve(t, results.Data.y(:,1), 1); 
plot(xTr, yTr); 
+0

Teşekkürler. Daha sonra, aşağıdaki kodun bir kısmını açıklayabiliyor olsaydım çok memnun olurum: (http://lamda.nju.edu.cn/code_CSNN.ashx) LableFormatConvertion.m dosyasındaki satır 50: 'tahmin = ClassType (İD);'. @ArchitTaneja – ebrahimi

+0

@ebrahimi Girişte tam olarak ne 'etiket' bulunduğumdan emin değilim, ancak sorunuzu yanıtlamak için: max (Etiket) kullanarak 'id' öğesini bulduğunuzda, , maksimum öğenin göründüğü Satır etiketlerini alırsınız. : örn .: A = [1 9 -2; 8 4 -5], id [2, 1, 1] olur, bu da ilk sütunda 8, maksimumdur ve satır indeksi 2'dir. Artık 'id' olarak bir tuple sahipsiniz. 'Id' deki değerleri kullanarak ClassType'ın dizi elemanlarına erişirsiniz. Örneğin: Eğer 'id' iseniz [2,1,1] ve ClassType [0,1] 'tahmin' olacaktır [1,0,0]. i.e id (1) = 2, ClassType (2) = 1, id (2) = 1, ClassType (1) = 0 vb. alır. –

+0

Teşekkürler. Aslında, dengesiz sınıflama ile başa çıkmak için altı algoritma vardır. Örneğin, fazla örneklemeyi düşünün ve daha sonra sample_oversampling'e bakın. m dosyası, bu yüzden etiketin ne olduğu açık. Test verileri için simüle edilmiş çıktıdır. Benim sorunum, eğer ClassType'ı [1,0] olarak değiştirirsek, sonuç terstir ve hangisinin [0, 1] veya [1, 0] 'ın hangisinin doğru olduğu bilinir. @ArchitTaneja – ebrahimi

İlgili konular