Як зменшити кількість помилкових позитивних результатів?


12

Я намагаюся вирішити завдання, яке називається пішохідним виявленням, і треную двійковий клацифер на двох позитивних категоріях - люди, негативи - на тлі.

У мене є набір даних:

  • кількість позитивів = 3752
  • кількість від’ємника = 3800

Я використовую поїзд \ 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 %

Відповіді:


7

Я не фахівець, коли мова йде про випадкові ліси, я читав їх зовсім недавно. Але з того, як мені здається, ви переобладнуєте випадковий ліс. Що я б робив - це використовувати техніку, де ви використовуєте спостереження Out-Of-Bag для прогнозування. Ви можете знайти процедуру на цих слайдах: https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/trees.pdf

Ще одне, що я хотів би запропонувати, також згадується в цих слайдах, які називаються градієнтним прискорювальним пристроєм (ГБМ), також згадуваним у цьому розділі. Я відчуваю, що ГБМ більш інтуїтивний, ніж випадковий ліс.

Edit1 : Я перевірив це ще раз, і здається, завантаження - це перший крок GBM. Крім того, у мене немає проблем із завантаженням, як це добре, це добре. Єдина проблема з цим полягає в тому, що ним можна користуватися дуже погано.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.