Марат
Марат личный блог
14 ноября 2019, 20:23

ML - to be or not to be. Part 3.

Оценки для RF получили, под капот заглянули, хотелось бы теперь и ручками все проверить-посмотреть. Тем более что косяк у RF есть, он единственную смысловую фичу ставил не в вершине дерева, а только второй а порой и третьей после случайно сгенерированной. То есть примерно половина событий сразу криво отсекалось.
  Выгрузил в excell  сгруппировал и получил примерно такое:

Названия строк

 Коли

   target

1

40861

0,52

-1

355

0,53

Общий итог

41216

0,52


  А это, кто не понял-крах! Это как нейросетка которая в качестве прогноза завтрашней цены показывает последнюю цену из теста. Вот и здесь та же история-RF просто 40861 раз из 41216 (99% случаев) спрогнозировал 1, потому что единица в выборке встречалась в 52% случаях. То есть RF поступил как поц на рынке, который увидел что рынок в среднем чаще растет и решил постоянно ставить на рост, при том что у меня был зашита вполне конкретная зависимость. 
  Но горевать не будем, потому что насколько убого себя показал RF, настолько блестяще показал себя GradientBoostingClassifier:

Названия строк

 Коли

   target

1

27818

0,53

-1

13398

0,50

Общий итог

41216

0,52

 
Сразу видно что GradientBoosting тупо не ставит постоянно на единичку, он явно что то нащупал. С дополнительной разбивкой по дням недели:

Названия строк

 Коли

   target

1

27818

0,53

1

4891

0,49

2

4947

0,50

3

4739

0,49

4

5017

0,51

5

8224

0,60

-1

13398

0,50

1

3363

0,51

2

3259

0,50

3

3406

0,50

4

3363

0,50

5

7

0,43

Общий итог

41216

0,52

 
Видно что GradientBoosting четко отнес все пятницы к событиям 1 (8224 раза против 7), а все остальные дни недели оценил как 60 на 40 в пользу события 1. Верно было бы если он оценил 50 на 50, но по сравнению с идиотом RF это огромный прогресс. Если взять порог в >55%, то получится еще красивей: 

Названия строк

           Коли

1

7053

2

1

4

2

5

7050

Общий итог

7053


  То есть с таким порогом у нас точность прогноза составит 99,5% пр полноте 85,72%. То есть мы выловили 85,72% осмысленных событий, и при этом делая прогноз, были точны в 99,5% случаев. Можно констатировать что GradientBoosting  без особых настроек выловил практически все. А вот RF запутался в 100 случайных фичах и делал наивные прогнозы.  Думаю именно в этом причина того что RF, на реальных данных и с осмысленными фичами, показавший себя лучше GradientBoosting, при засланных казачках потерялся и не смог решить заданную ему головоломку. Если помочь RF, и уменьшить число рандомных фичей и использовать порог, то он оживает и показывает вразумительные результаты.

to be continued…
7 Комментариев
  • SergeyJu
    15 ноября 2019, 11:11
    По логике, правильно в пятницу лонг, в остальные дни аут. А я такого что-то не вижу!
    Врут все пациенты. (доктор Хауз).
  • whoitare
    17 ноября 2019, 15:31
    Марат, здравствуйте, есть пара вопросов, рейтинга не хватает в ЛС написать, можете почтой поделиться?

    Буду благодарен

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн