Saya mencoba untuk menyelesaikan tugas yang disebut deteksi pejalan kaki dan saya melatih clasifer biner pada dua kategori positif - orang, negatif - latar belakang.
Saya punya dataset:
- jumlah positif = 3752
- jumlah negatif = 3800
Saya menggunakan train \ test split 80 \ 20% dan bentuk RandomForestClassifier scikit-pelajari dengan parameter:
RandomForestClassifier(n_estimators=100, max_depth=50, n_jobs= -1)
Saya mendapat skor: 95.896757%
tes pada data pelatihan (bekerja dengan sempurna):
true positive: 3005
false positive: 0
false negative: 0
true negative: 3036
tes pada data pengujian:
true positive: 742
false positive: 57
false negative: 5
true negative: 707
Pertanyaan saya adalah bagaimana cara mengurangi jumlah positif palsu (latar belakang diklasifikasikan sebagai orang)? Juga mengapa saya memiliki lebih banyak kesalahan positif palsu daripada negatif palsu?
Saya mencoba menggunakan class_weight
parameter, tetapi pada beberapa titik kinerja menurun (seperti yang Anda lihat di class_weight = {0: 1,1: 4}).
class_weight= {0:1,1:1}
true positive: 3005
false positive: 0
false negative: 0
true negative: 3036
true positive: 742
false positive: 55
false negative: 5
true negative: 709
score: 96.029120 %
class_weight= {0:1,1:2}
true positive: 3005
false positive: 0
false negative: 0
true negative: 3036
true positive: 741
false positive: 45
false negative: 6
true negative: 719
score: 96.624752 %
class_weight= {0:1,1:3}
true positive: 3005
false positive: 0
false negative: 0
true negative: 3036
true positive: 738
false positive: 44
false negative: 9
true negative: 720
score: 96.492389 %
class_weight= {0:1,1:4}
true positive: 3005
false positive: 13
false negative: 0
true negative: 3023
true positive: 735
false positive: 46
false negative: 12
true negative: 718
score: 96.161482 %
class_weight= {0:1,1:5}
true positive: 3005
false positive: 31
false negative: 0
true negative: 3005
true positive: 737
false positive: 48
false negative: 10
true negative: 716
score: 96.161482 %
class_weight= {0:1,1:6}
true positive: 3005
false positive: 56
false negative: 0
true negative: 2980
true positive: 736
false positive: 51
false negative: 11
true negative: 713
score: 95.896757 %
class_weight= {0:1,1:7}
true positive: 3005
false positive: 87
false negative: 0
true negative: 2949
true positive: 734
false positive: 59
false negative: 13
true negative: 705
score: 95.234944 %
Juga patut dicatat bahwa RandomForest tampaknya tidak mengalami dataset yang tidak seimbang:
pos = 3752 neg = 10100
class_weight = {0: 1,1: 1} benar positif: 3007 positif palsu: 0 negatif negatif: 0 benar negatif: 8074
true positive: 729
false positive: 71
false negative: 16
true negative: 1955
score: 96.860339 %
class_weight= {0:1,1:2}
true positive: 3007
false positive: 0
false negative: 0
true negative: 8074
true positive: 728
false positive: 59
false negative: 17
true negative: 1967
score: 97.257308 %
class_weight= {0:1,1:3}
true positive: 3007
false positive: 0
false negative: 0
true negative: 8074
true positive: 727
false positive: 58
false negative: 18
true negative: 1968
score: 97.257308 %