Здравствуйте, гость ( Вход | Регистрация )
7.07.2020 - 16:18
Сообщение
#1
|
|
|
Группа: Пользователи Сообщений: 7 Регистрация: 2.07.2020 Пользователь №: 39533 |
Добрый день.
Есть очень большая выборка для бинарной классификации. Нужно предсказать 2 класса(0/1) Есть огромная куча предикторов(независимых переменных), все они категориальные, и известно, что выборка содержит в себе несколько сегментов, в которых поведение предсказываемых классов будет существенно отличаться. Количество сегментов неизвестно. Как грамотно найти эти сегменты и поделить выборку для дальнейшего предсказания? Сообщение отредактировал smeilz - 7.07.2020 - 16:19 |
|
|
![]() |
![]() |
![]() |
8.07.2020 - 11:30
Сообщение
#2
|
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 |
Уважаемый smeilz.
Что-то вы начинаете "путаться в показаниях". На другом форуме вы пишете: Есть датасет с одним бинарным признаком(зависимой переменной) 0 или 1. Распределение 57/43 На этом: Есть очень большая выборка для бинарной классификации. Нужно предсказать 2 класса(0/1) Это как бы две совершенно разные задачи. В одном случае - обучение с учителем (т.е. датасет с признаком) , в другом - обучение без учителя (признака изначально нет). Кроме того, вы так и не пояснили, что означает поведение предсказываемых классов будет существенно отличаться. как вы себе представляете "поведение класса"? В чем оно у час выражается? Что такое "сегмент" и чем он в вашем представлении отличается от "класса". Подчеркну - "предсказываемых классов" ?? Что означает Как грамотно найти эти сегменты и поделить выборку для дальнейшего предсказания? Если вы разбиваете выборку на то-ли сегменты, то-ли классы, то что вы собираетесь предсказывать дальше? Про кластеризацию, и ее возможное использование как предварительный этап классификации вам сказали что тут, что там. Но ясности как не было, так и нет. И я еще раз повторю: Поставьте четко задачу, а то создается все более уверенное впечатление, что вы вообще не очень понимаете, а что в итоге вам надо? Сообщение отредактировал passant - 8.07.2020 - 11:32 |
|
|
![]() |
![]() |
10.07.2020 - 15:09
Сообщение
#3
|
|
|
Группа: Пользователи Сообщений: 7 Регистрация: 2.07.2020 Пользователь №: 39533 |
Уважаемый smeilz. Что-то вы начинаете "путаться в показаниях". На другом форуме вы пишете: Есть датасет с одним бинарным признаком(зависимой переменной) 0 или 1. Распределение 57/43 На этом: Есть очень большая выборка для бинарной классификации. Нужно предсказать 2 класса(0/1) Это как бы две совершенно разные задачи. В одном случае - обучение с учителем (т.е. датасет с признаком) , в другом - обучение без учителя (признака изначально нет). Кроме того, вы так и не пояснили, что означает поведение предсказываемых классов будет существенно отличаться. как вы себе представляете "поведение класса"? В чем оно у час выражается? Что такое "сегмент" и чем он в вашем представлении отличается от "класса". Подчеркну - "предсказываемых классов" ?? Что означает Как грамотно найти эти сегменты и поделить выборку для дальнейшего предсказания? Если вы разбиваете выборку на то-ли сегменты, то-ли классы, то что вы собираетесь предсказывать дальше? Про кластеризацию, и ее возможное использование как предварительный этап классификации вам сказали что тут, что там. Но ясности как не было, так и нет. И я еще раз повторю: Поставьте четко задачу, а то создается все более уверенное впечатление, что вы вообще не очень понимаете, а что в итоге вам надо? Спасибо за вопросы и ответы. Хорошо. Есть датасет. В нем примерно 70-80 категориальных признаков(независимых переменных или предикторов) и 1 категориальная(зависимая), которую я и буду предсказывать. Распределение этой переменной 43%/57%. Вот 2 класса, которые уже присутствуют, соответственно я их и предсказываю. Получается у нас датасет с признаком и обучение с учителем. Про поведение я пожалуй не совсем корректно выразился. Я имел ввиду, что по каким-то кускам нашей выборки прогноз будет не очень точным. Например 55% вероятность, что это класс 1 и 45% вероятность, что класс 0, их большинство. Такие прогнозы мне не очень нужны, так как я буду часто ошибаться. Моя задача предполагает возможность отбросить куски данных и не давать по ним прогноза, если он не очень точный. А есть куски, где прогнозы будут 65/35 или даже 70/30, они более точные, и я бы хотел брать те сегменты, где вероятность принадлежности к классу1 или классу0 больше определенного порога. Соответственно у меня уже есть 3 сегмента. 1) Там, где прогноз класса0>65% 2) Там, где прогноз класса1> 65% 3) Остальные Корректно ли так делать? Если нет, то как грамотно? В данный момент, я сделал так. 1) Взял пакет Catboost на python 2) Исключил оттуда признак, который мы предсказываем 3) Получил модель accuracy=63.5% 4) Провел на валидационной выборке, получил accuracy=62.5% 5) По тому, что качество модели упало незначительно, исключил Overfitting 6) Опытным путем нашел ту границу выбора класса0 и класса1, при которой процент ошибочных прогнозов не более 65% (там можно автоматически задавать процент ошибки FPR и FNR, то я предпочел разобраться вручную) В итоге что я хочу: 1)Более осознанно подходить к выбору признаков, например изучить их визуально при помощи визуализации на R. Возможно они дадут дополнительную информацию и буду точно понимать с каким признаками я имею дело. Меня ранее учили, что нельзя выбрасывать данные, даже если на первый взгляд кажется, что их влияние на целевую переменную очень маленькое, и даже если признаки скоррелированы. 2)Работать с данными не по принципу чёрного ящика, а лучше понимать, что я делаю, так как задача для меня интересная и хотелось бы повысить свой уровень понимания процесса 3)Понять какие ошибки я допустил в процессе и узнать, нужно ли балансировать данные, чтобы предсказываемые классы были в соотношении 50 на 50. Сообщение отредактировал smeilz - 10.07.2020 - 15:20 |
|
|
![]() |
![]() |
smeilz Как грамотно поделить выборку на несколько сегментов перед предсказанием? 7.07.2020 - 16:18
ogurtsov Кластеризацию нужно сделать, а уж какую - тут мног... 7.07.2020 - 20:07
100$ ЦитатаКроме того, вы так и не пояснили, что означа... 8.07.2020 - 19:41
ogurtsov Цитата(smeilz @ 10.07.2020 - 15:09) ... 10.07.2020 - 18:23
smeilz Цитата(ogurtsov @ 10.07.2020 - 18:23... 10.07.2020 - 22:23
100$ А мне очень интересно, как скоро в этой теме появ... 8.07.2020 - 18:42
ogurtsov Цитата(100$ @ 8.07.2020 - 18:42... 8.07.2020 - 19:05
passant Нет, коллеги. В данном случае - вы ошибаетесь. Это... 8.07.2020 - 21:31
100$ passant,
поскольку Андрей (Огурцов) ничего ошибо... 9.07.2020 - 00:17
passant Цитата(100$ @ 9.07.2020 - 00:17... 9.07.2020 - 10:55
nokh Цитата(smeilz @ 7.07.2020 - 18:18) Д... 9.07.2020 - 21:11
100$ Цитата(nokh @ 9.07.2020 - 21:11) Бол... 9.07.2020 - 21:50

nokh Цитата(100$ @ 9.07.2020 - 23:50... 10.07.2020 - 08:10

100$ Цитата(nokh @ 10.07.2020 - 08:10) Да... 10.07.2020 - 10:48
smeilz Цитата(nokh @ 9.07.2020 - 21:11) Ваш... 10.07.2020 - 15:13
comisora Всем добрый день.
Самая первая/последняя книга по... 10.07.2020 - 15:28
100$ Ну вот, господа кластеризаторы и примкнувшие к ним... 10.07.2020 - 18:32
ogurtsov Цитата(100$ @ 10.07.2020 - 18:3... 10.07.2020 - 19:14

100$ Цитата(ogurtsov @ 10.07.2020 - 19:14... 10.07.2020 - 20:30

smeilz Цитата(ogurtsov @ 10.07.2020 - 19:14... 10.07.2020 - 21:57
smeilz Цитата(100$ @ 10.07.2020 - 18:3... 10.07.2020 - 21:53

100$ Цитата(smeilz @ 10.07.2020 - 21:53) ... 10.07.2020 - 22:56
smeilz Цитата(100$ @ 10.07.2020 - 18:3... 10.07.2020 - 22:42
passant Цитата(smeilz @ 10.07.2020 - 22:42) ... 10.07.2020 - 23:18![]() ![]() |