#42. Введение в бустинг (boosting). Алгоритм AdaBoost при классификации | Машинное обучение

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 พ.ย. 2024

ความคิดเห็น • 26

  • @shapovalentine
    @shapovalentine ปีที่แล้ว +6

    Ай да автор красавчик ☺Много чего пересмотрел, но тут всё схлопнулось👏
    Здоровья тебе добрый человек🙏

  • @СарматПересветов
    @СарматПересветов 2 หลายเดือนก่อน +1

    А так видио очень интересное и полезное, спасибо!

  • @IlliaDagil
    @IlliaDagil 2 ปีที่แล้ว +3

    как раз закончил писать главу в дипломе по adaboost, а тут и ролик вышел)

  • @СарматПересветов
    @СарматПересветов 2 หลายเดือนก่อน +1

    хотелось бы сказать, что код написан не совсем корректно, так как в строке 54 вот она
    N = np.sum(np.abs(train_labels - np.sign(predicted)) / 2)
    в месте
    np.sign(predicted) , в некоторых элементах может получится значение 0. Соответственно, в данном случае это приведет к небольшой ошибке или неточности при вычислении колличества ошибок алгоритмом.
    данная ошибка может возникнуть если у нас будет четное число алгоритмов Т.

  • @ЕвгенийБерловский-з3ш
    @ЕвгенийБерловский-з3ш ปีที่แล้ว +4

    Бедный Айверсон! Этот выскочка Айзерсон присвоил себе все его заслуги!

  • @YbisZX
    @YbisZX ปีที่แล้ว

    @selfedu Вопросы по видео:
    0:22 - Как понять запись E{ai*aj}=0 для признака независимости? Матожидание чего, произведения классификаций? Как там может получиться 0, если классификации хорошие? Что вообще означает зависимость классификаторов в таком контексте - что их обучающие выборки пересекаются?
    7:00 - Это для шага t=T, а что суммировать в показателе wi на предыдущих шагах? Может, имеется в виду сумма всех кроме t: sum(k=1...T, k!=t), а еще не рассчитанные инициализируются wk=1/l?
    8:53 - Здесь же b(x) это отступ, как он сравнивается с классом? Может, надо сравнивать по знаку отступа: sum( wi * [b(xi)*yi < 0] ) ?

  • @dicloniusN35
    @dicloniusN35 หลายเดือนก่อน +1

    Я так понимаю оно само фичи выбирает и потом можно посмотреть какие больше влияют?

  • @nicko6815
    @nicko6815 2 ปีที่แล้ว +2

    очень помогает математическая формулировка задач! возможно уточнить источник?

  • @toostunnedtospeak8048
    @toostunnedtospeak8048 2 ปีที่แล้ว +2

    Здравствуйте. Возможно, Вы уже отвечали на следующий вопрос. Много ли еще видео планируется в этом плейлисте про машинное обучение?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      нет, завершаю

    • @konstantinlisitsa8443
      @konstantinlisitsa8443 2 ปีที่แล้ว +1

      @@selfedu_rus не наадо завершать! Так хорошо идет же! )

  • @Unforevable
    @Unforevable 2 ปีที่แล้ว +1

    Извините за глупый вопрос, пытаюсь найти информацию какой именно раздел математики надо выучить, чтобы понимать именно синтаксис всех этих формул? В первых уроках вы называли разделы, но в них про синтаксис сам не говорится, что каждый этот символ означает.

    • @legiontime9897
      @legiontime9897 2 ปีที่แล้ว +1

      В матанализе много подобных шушиков. Перевёрнутая А означает каждый, для каждого. Например, перевёрнутая Аi,j: ... означает : для каждого i и j таких, что ... после двоеточия поясняется каких.

  • @YbisZX
    @YbisZX ปีที่แล้ว

    @selfedu Еще вопрос по программе с adaboost-алгоритмом:
    На 8:53 формула для N (доли неверных классификаций) - это взвешенная по w сумма. Но в программе, хоть алгоритмы обучаются с учетом весов w, но доля N на 14:42 считается как простое среднее. Получается, что далее в расчете веса алгоритма берется неправильная N, не учитывающая значимость неверных образов...

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      В 39-й строчке вычисляется N как доля неверных классификаций. Не вижу ошибки.

    • @YbisZX
      @YbisZX ปีที่แล้ว

      @@selfedu_rus На 8:53 вы даете формулу для N как *взвешенную* по wi сумму неверных классификаций. А программе как простую долю: отношение количества неверных к общему.

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      @@YbisZX Это одно и то же. Вспомните, как можно определять математическое ожидание, например. Есть формула sum(p_i * x_i), а можно найти просто как среднее арифметическое.

    • @YbisZX
      @YbisZX ปีที่แล้ว +1

      @@selfedu_rus Среднее по выборке считается только для выборки с равнозначными объектами, тогда все вероятности pi равны и выносятся из суммы как коэффициент 1/L. Но вы привели формулу 8:53, где _каждый_ классифицируемый объект из i=1...L имеет свой _индивидуальный_ вес wi, который пересчитывается на каждом шаге. В этом же суть метода AdaBoost - плохо классифицированные объекты имеют большую значимость.

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      @@YbisZX Да, соглашусь, там следует прописать:
      N = np.sum(np.abs(train_labels - predicted) / 2 * w)
      Спасибо!

  • @yoyoshkarus
    @yoyoshkarus 2 ปีที่แล้ว +1

    Знаю немного не по теме , но еслиб выпустили видел про Airflow былоб супер, в частности оч мало материала по грамотной установке через убунти и докер …

  • @LightningTrooper
    @LightningTrooper 2 ปีที่แล้ว +1

    Но Адабуст строится на деревьях глубиной 1, тка называемых "пнях", а в программе у вас глубина 2. разве так правильно?
    и в целом, это больше похоже на градиентный бустинг, а не не на адабуст.

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      формально можно любую глубину брать и разные модели (алгоритмы) включать в адабуст, на практике да, лучше ограничиваться пнями, согласен, так часто делают.

  • @ЕвгенийАртемов-п8в
    @ЕвгенийАртемов-п8в 2 ปีที่แล้ว

    Вопрос немного не по теме. Кто-нибудь знает есть ли в библиотеке Numpy функция которая выполняет: Вычитает первую строку(Массива А) из первого столбца(Массива B) по модулю. Суммирует полученные значения и записывает в массив С в положение 00 и так с каждой строчкой и столбцом(01, 02....). Похоже на умножение, но вместо функции умножения разность по модулю.

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      c = np.sum(np.abs(x[:,1]-y[:,1]))

    • @ЕвгенийАртемов-п8в
      @ЕвгенийАртемов-п8в 2 ปีที่แล้ว

      @@selfedu_rus нет, нет. Вы ищете разницу между двумя столбцами, причем первыми. А нужно найти разницу между элементами 1 строки и элементами 1 столбца, записать ее сумму в ячейку (00). потом разницу между элементами 1 строки и элементами 2 столбца и записать сумму в ячейку 01 и тд. У меня стоит задача реализовать алгоритм KNN. даны 2 массива(тренировочный, он размечанный и тестовый). Мне нужно найти расстояние по L1 норме. Как я предполагаю. Мне нужнем массив растояний между 1 размеченной точкой(из трэина) и всеми неразмеченными точками из тестового, 2 размеченной и всеми неразмеченными и тд... Нужно это сделать в одно действие, то есть без цикла. Благодарю за ответ

  • @deniswolf1846
    @deniswolf1846 2 ปีที่แล้ว +2

    первый