Size: a a a

R (язык программирования)

2021 January 26

ДВ

Дмитрий Володин... in R (язык программирования)
То есть условно у вас сейчас модель: кто уйдёт в ЭТОМ месяце. Тогда и данные ей надо кормить текущего месяца, если хотите узнать, кто в этом месяце уйдёт))
источник

E

Eкатерина in R (язык программирования)
Дмитрий Володин
Добавлю, что кажется, что лучше примерно так: модель на позапрошлом месяце, при этом зависимая переменная за этот месяц (как вёл себя клиент в позапрошлом месяце и что произошло с ним в итоге: 1/0). Обучаете модель, всё по пунктам.

Предикт на датасете прошлого месяца с клиентами, которые ещё не ушли. Как-то так вроде.
да, я это понимаю. но данных за позапрошлый месяц нет
источник

ДВ

Дмитрий Володин... in R (язык программирования)
Eкатерина
да, я это понимаю. но данных за позапрошлый месяц нет
Тогда нужны данные за текущий))
источник

AS

Alexander Semenov in R (язык программирования)
Нужно взять выборку по данным текущего месяца и, обучившись на ней, предсказать остальные данные по текущему месяцу.
источник

E

Eкатерина in R (язык программирования)
Alexander Semenov
Нужно взять выборку по данным текущего месяца и, обучившись на ней, предсказать остальные данные по текущему месяцу.
за этот месяц пока нет данных. клиент  подписывает контракт на месяц. если он уходит, то мы узнаем об этом в конце месяца. поэтому вопрос и состоит в том, что есть данные только за прошлый месяц (кто ушел, а кто остался) и надо на основе этого выделить тех, кто потенциально мог бы уйти в этом месяце и принять какие-то меры
источник

AS

Alexander Semenov in R (язык программирования)
Тогда обучайтесь на прошлом месяце и предсказывайте этот
источник

E

Eкатерина in R (язык программирования)
Alexander Semenov
Тогда обучайтесь на прошлом месяце и предсказывайте этот
т.е можно применить пункты 5-7, которые я указывала выше?
источник

AS

Alexander Semenov in R (язык программирования)
Нет. Вам не потребуется что-то убирать для тех, кто ушёл, т.к. у вас просто нет этой информации и появится она только в виде результатов предсказания + факта (через месяц).
источник

AS

Alexander Semenov in R (язык программирования)
Т.е. вместо 5-7 вы просто запускаете predict на данных текущего месяца.
источник

E

Eкатерина in R (язык программирования)
Alexander Semenov
Нет. Вам не потребуется что-то убирать для тех, кто ушёл, т.к. у вас просто нет этой информации и появится она только в виде результатов предсказания + факта (через месяц).
тогда еще вопрос. в связи с тем, что я в модель запускаю данные на которых модель обучалась, то получается что модель выдает, что практически никто не уйдет при указанных данных. корректно ли в данном случае понижать cutoff ниже 0.5, чтобы увидеть больше людей, которые могли бы уйти?
источник

AS

Alexander Semenov in R (язык программирования)
А какое у вас соотношение ушедших к оставшимся?
источник

E

Eкатерина in R (язык программирования)
94% остались, 6% ушли
источник

AS

Alexander Semenov in R (язык программирования)
Работа с имбалансными классами -- отдельное искусство. Начните с "классики": http://www.svds.com/learning-imbalanced-classes/
https://www.svds.com/imbalanced-classes-faq/
источник

E

Eкатерина in R (язык программирования)
все оказалось гораздо сложнее, чем я предполагала)
Большое спасибо за ваши ответы!
источник

AB

Alexey Burnakov in R (язык программирования)
Eкатерина
94% остались, 6% ушли
Я бы сказал, что после того, как модель построена (и проверена на тесте) надо решить с порогом вероятности для выбора единичек. Вы это как-то делали?
источник

AB

Alexey Burnakov in R (язык программирования)
Eкатерина
все оказалось гораздо сложнее, чем я предполагала)
Большое спасибо за ваши ответы!
GLM в принципе справляется с разбалансировкой классов, использовать доп.навороты - вопрос факультативный. В GLM за балансировку отвечает свободный член уравнения (intercept).
источник

E

Eкатерина in R (язык программирования)
Alexey Burnakov
Я бы сказал, что после того, как модель построена (и проверена на тесте) надо решить с порогом вероятности для выбора единичек. Вы это как-то делали?
Я поставила cutoff 0.3. Потому что если я ставлю 0.5, то то все клиенты остануться
источник

AB

Alexey Burnakov in R (язык программирования)
Eкатерина
Я поставила cutoff 0.3. Потому что если я ставлю 0.5, то то все клиенты остануться
Не очень....
источник

AB

Alexey Burnakov in R (язык программирования)
Eкатерина
Я поставила cutoff 0.3. Потому что если я ставлю 0.5, то то все клиенты остануться
Вам надо сделать матрицу ошибок
источник

AB

Alexey Burnakov in R (язык программирования)
Eкатерина
Я поставила cutoff 0.3. Потому что если я ставлю 0.5, то то все клиенты остануться
И использовать какую-то евристику для максимизации (или минизации) ошибок первого и второго рода
источник