보행자 감지 라는 작업을 해결하려고 노력하고 있으며 사람, 부정-배경이라는 두 가지 범주의 긍정적 인 이진 clasifer를 훈련시킵니다.
데이터 세트가 있습니다.
- 긍정 수 = 3752
- 음수 = 3800
train \ test split 80 \ 20 % 및 RandomForestClassifier 양식 scikit-learn 을 매개 변수와 함께 사용합니다.
RandomForestClassifier(n_estimators=100, max_depth=50, n_jobs= -1)
점수를 얻습니다 : 95.896757 %
훈련 데이터에 대한 테스트 (완벽하게 작동) :
true positive: 3005
false positive: 0
false negative: 0
true negative: 3036
테스트 데이터 테스트 :
true positive: 742
false positive: 57
false negative: 5
true negative: 707
내 질문은 오 탐지를 줄이는 방법 (사람으로 분류 된 배경)입니까? 또한 왜 거짓 부정보다 잘못된 긍정적 오류가 있습니까?
class_weight
매개 변수 를 사용하려고했지만 어느 시점에서 성능이 저하됩니다 (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 %
또한 RandomForest가 불균형 데이터 세트로 고통받지 않는 것 같습니다.
위치 = 3752 부정 = 10100
class_weight = {0 : 1,1 : 1} 참 긍정적 : 3007 거짓 긍정적 : 0 거짓 부정 : 0 참 부정 : 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 %