aimclub/BAMT

Отзыв по использованию примера example_socio.ipynb для знакомства в Bamt

fingoldo opened this issue · 3 comments

Здравствуйте, моя попытка потестировать Bamt провалилась. Возможно, мой отзыв окажется полезен. В руководстве (https://github.com/aimclub/BAMT/blob/master/tutorials/example_socio.ipynb) приведён пример предсказания байесовской сетью наличия питомца по профилю vk юзера. Получили точность 94% и на том посчитали пример завершённым. При более детальном рассмотрении оказалось:

  1. питомец был всего у 5% пользователей, и bamt ВСЕГДА предсказывала класс 0 (те ничему не училась)
  2. из 80+ фичей авторы взяли лишь 8. казалось бы, почему? Ответ: библиотека работает ОЧЕНЬ МЕДЛЕННО. 30k примеров, 8 фичей обучается примерно секунд 50. с мультипроцессингом.
  3. в примере авторы обучались на train set и потом предсказывали на ... sample(100) от того же train set.
  4. катбуст и особенно xgboost обучались за доли секунды. но даже они не смогли ничему научиться, что было видно на CV, потому что.. отобранные авторами 8 фичей были нерелевантными.
  5. предсказывать наличие питомца всё же было можно, и с хорошей точностью, надо было просто взять все фичи. доказано бустингами. но bamt над всеми фичами сожрал всю память на ноуте. а на компе питон младше 3.9, bamt не поставился.
  6. гауссовы смеси в bamt постоянно вылетали с fitting the mixture model failed because some components have ill-defined empirical covariance (for instance caused by singleton or collapsed samples). Try to decrease the number of components, or increase reg_covar. В MathUtils.py к вызовам GaussianMixture(n_components=i, random_state=0) пришлось добавить с потолка reg_covar=1e-1, чтобы оно просто запускалось. Хотя как это влияет на качество решения - вопрос.

Я начал переделку блокнота, но так и не смог обучить Bamt, даже на половине признаков - не хватило 16gb ноутбучной памяти. Возможно, в будущем у уважаемых авторов получится провести ревизию данного примера в свете выявленных недостатков.

Здравствуйте!
Наверное, в примере создалось ложное впечатление, что мы хотим показать высокое предсказательное качество БС, однако это не совсем так, пример был просто для того, чтобы показать, как запускаются те или иные функции нашей библиотеки. Предсказание мажоритарного класса тоже вполне понятно, так как БС – это вывод на основе условных вероятностей. Что касается скорости работы БС, то вероятностные модели действительно не всегда быстры, однако для больших БС (с большим количеством узлов) в нашей библиотеки предусмотрен отдельный класс сетей - BigBraveBN.

Тем не менее, спасибо большое за комментарии, мы уже приняли их во внимание, это позволит нам улучшить прикладные примеры и в целом проект. Следите за обновлениями😊

Здравствуйте! Наверное, в примере создалось ложное впечатление, что мы хотим показать высокое предсказательное качество БС, однако это не совсем так, пример был просто для того, чтобы показать, как запускаются те или иные функции нашей библиотеки. Предсказание мажоритарного класса тоже вполне понятно, так как БС – это вывод на основе условных вероятностей. Что касается скорости работы БС, то вероятностные модели действительно не всегда быстры, однако для больших БС (с большим количеством узлов) в нашей библиотеки предусмотрен отдельный класс сетей - BigBraveBN.

Тем не менее, спасибо большое за комментарии, мы уже приняли их во внимание, это позволит нам улучшить прикладные примеры и в целом проект. Следите за обновлениями😊

Так а я -то хотел с корыстной точки зрения посмотреть, чем байесовские сети смогут улучшить мои предсказания в реальных проектах ) Спасибо за ответ.

Да, этот запрос и натолкнул нас на идею переработки примеров, скоро добавим)