Всё кажется супер-простым. И это так : ) А теперь…
Байес в машинном обучении. Наивный Байесовский классификатор.
Если вы чуть устали к этому моменту — не переживайте. Буквально 5 минут и совсем знакомые вам вещи.
На чём основан наивный Байес?
Пусть у нас есть целевая переменная С, и вектор признаков Fi. Дружной гурьбой они образовывают одно большое событие (CF1F2F3…Fn).
Какова вероятность С, при условии, что вектор признаков F1F2F3…Fn определился определенным образом?) (надеюсь здесь вы улыбаетесь)
Байес в машинном обучении. Наивный Байесовский классификатор.
Если вы чуть устали к этому моменту — не переживайте. Буквально 5 минут и совсем знакомые вам вещи.
На чём основан наивный Байес?
Пусть у нас есть целевая переменная С, и вектор признаков Fi. Дружной гурьбой они образовывают одно большое событие (CF1F2F3…Fn).
Какова вероятность С, при условии, что вектор признаков F1F2F3…Fn определился определенным образом?) (надеюсь здесь вы улыбаетесь)
В чём наивность наивного Байеса?
В предположении о независимости, не влиянии друг на друга признаков. Это в свою очередь, не учитывает вероятность каждой фичи, при условии, что другие выглядят каким-то образом и предполагает зависимости Fi для любой i только от класса С.
Так ли работают Байесовские модели?
Нет. Они в том числе, как минимум, учитывают и влияние признаков друг на друга, как максимум — иные параметры. Отсюда мы получаем приближения поразительно близкие к реальным.
А вот какие — как только буду компетентна, напишу обязательно!
Такой воскресный дата-пост, друзья! С опозданием, зато большущий и богатый на информацию (надеюсь)!
Точных вам классификаций,
Ваш дата-автор! : )
В предположении о независимости, не влиянии друг на друга признаков. Это в свою очередь, не учитывает вероятность каждой фичи, при условии, что другие выглядят каким-то образом и предполагает зависимости Fi для любой i только от класса С.
Так ли работают Байесовские модели?
Нет. Они в том числе, как минимум, учитывают и влияние признаков друг на друга, как максимум — иные параметры. Отсюда мы получаем приближения поразительно близкие к реальным.
А вот какие — как только буду компетентна, напишу обязательно!
Такой воскресный дата-пост, друзья! С опозданием, зато большущий и богатый на информацию (надеюсь)!
Точных вам классификаций,
Ваш дата-автор! : )
🔥6
Привет, друзья!
Поговорим о матрицах?
и я завела тэг #Математика
Задумавшись, с чем ассоциировать матрицы я почему-то вспомнила не фильм, а свою бабушку, которая в поезда часто берет судоку.
Что интересно, потом меня чуть-чуть унесло в википедию, и я обнаружила, что игра судоку вдохновлена структурой, внесенной математиком Леонард Эйлером. Называлась эта структура латинский квадрат.
И улыбнул меня не просто факт привязанности судоку, таблицы чисел, к миру математиков. История матриц гласит, что по некоторым данным, первые из них упоминались ещё в древнем Китае и назывались квадратом волшебным.
Вот так. Латинский и волшебный квадраты.
Похоже история структуры, которую мы называем матрицей, началась с тяги людей к идеально-ровной фигуре, с идеальным рядом чисел, а сейчас, в 21 веке, матрица, совершенно не ровная, с численно-хаотичным заполнением, и даже далеко не квадратная, не менее прекрасна и волшебна, чем древний магический квадрат.
Матрицей А размерности m строк на n столбцов называется таблица, в которой на пересечении каждой строки и каждого столбца стоят в частном случае числа, а в общем случае элементы (смотрите картинку 1).
Это определение никогда не приводило меня в восторг. Хоть и формально всё в нём верно, оно как будто обижает матрицы. Поэтому я сходу предлагаю вам другое. Как обезумевший математик, залетевший в аудиторию с ноги и со стопкой листов А4.
Линейным отображением векторного пространства V над полем чисел в векторное пространство W над тем же полем чисел называется отображение, f: V -> W.
Запись действия линейного отображения на объект векторного пространства W выражается матрицей линейного отображения (смотрите картинку 2).
Много линейности, правда? Но я-то знаю, что мы с вами хороши и мощны, ведь с одним из героев этого определения мы уже знакомы. Это вектор. И значат все эти “слова на математическом” ровно то, что:
1. У нас есть два векторных пространства;
2. Мы переходим из одного в другое или исследуем как это сделать;
На картинке это выглядит так (картинка 3).
Поговорим о матрицах?
и я завела тэг #Математика
Задумавшись, с чем ассоциировать матрицы я почему-то вспомнила не фильм, а свою бабушку, которая в поезда часто берет судоку.
Что интересно, потом меня чуть-чуть унесло в википедию, и я обнаружила, что игра судоку вдохновлена структурой, внесенной математиком Леонард Эйлером. Называлась эта структура латинский квадрат.
И улыбнул меня не просто факт привязанности судоку, таблицы чисел, к миру математиков. История матриц гласит, что по некоторым данным, первые из них упоминались ещё в древнем Китае и назывались квадратом волшебным.
Вот так. Латинский и волшебный квадраты.
Похоже история структуры, которую мы называем матрицей, началась с тяги людей к идеально-ровной фигуре, с идеальным рядом чисел, а сейчас, в 21 веке, матрица, совершенно не ровная, с численно-хаотичным заполнением, и даже далеко не квадратная, не менее прекрасна и волшебна, чем древний магический квадрат.
Матрицей А размерности m строк на n столбцов называется таблица, в которой на пересечении каждой строки и каждого столбца стоят в частном случае числа, а в общем случае элементы (смотрите картинку 1).
Это определение никогда не приводило меня в восторг. Хоть и формально всё в нём верно, оно как будто обижает матрицы. Поэтому я сходу предлагаю вам другое. Как обезумевший математик, залетевший в аудиторию с ноги и со стопкой листов А4.
Линейным отображением векторного пространства V над полем чисел в векторное пространство W над тем же полем чисел называется отображение, f: V -> W.
Запись действия линейного отображения на объект векторного пространства W выражается матрицей линейного отображения (смотрите картинку 2).
Много линейности, правда? Но я-то знаю, что мы с вами хороши и мощны, ведь с одним из героев этого определения мы уже знакомы. Это вектор. И значат все эти “слова на математическом” ровно то, что:
1. У нас есть два векторных пространства;
2. Мы переходим из одного в другое или исследуем как это сделать;
На картинке это выглядит так (картинка 3).
❤4
Что ж. Я обещала сделать дата-пост с привязкой с машинному обучению и слово держу. Перейдем от абстракции к делу и представим, что у нас есть набор данных из 6 наблюдений, по каждому из которых известны 2 параметра и целевой признак.
Поставщик данных (пусть он будет нашим китайским товарищем) убежден, что признаки связаны с целевой переменной как-то линейно, но как — он не знает и предлагает нам решить задачу.
Представим также, что доступ к sklearn нам заблокирован (не дай Боже), а задачу надо решить здесь и сейчас.
Вздохнем, возьмем бумажку и перепишем ситуацию (картинка).
Поставщик данных (пусть он будет нашим китайским товарищем) убежден, что признаки связаны с целевой переменной как-то линейно, но как — он не знает и предлагает нам решить задачу.
Представим также, что доступ к sklearn нам заблокирован (не дай Боже), а задачу надо решить здесь и сейчас.
Вздохнем, возьмем бумажку и перепишем ситуацию (картинка).
❤2
Обратите внимание в правый верхний угол картинки..: ) Систему уравнений, которую дал нам товарищ и задачу, которую он поставил, можно переформулировать так:
В результате действия линейного отображения А на каждый объект пространства X, измеренный по двум координатам, получаются значения из пространства Y.
Необходимо: найти правило, которое определяет действие линейного отображения.
Что также эквивалентно системе уравнений: X*x = y.
Во избежание дублирования, изменим обозначение x малое, на малое w. Получается такая задача:
X*w = y
где найти необходимо в точности вектор w.
Теперь перейдем к языку классического алгоритма машинного обучения — линейной регрессии и заметим, что задача обращается в
найти вектор весов w, который для каждого наблюдения X обеспечит его сопоставление с целевой координатой y.
Чувствуете? Только что, бодро и весело, мы перешли с вами к системе линейных уравнений в матричном виде.
Как её решить?
Ответ: Избавиться от X справа равным соотношением, иначе говоря, получить перед w единицу. Сделать это можно при помощи обратного элемента. Не пугайтесь, обратные ребята знакомы нам из школы, например обратный к 5 — это 1/5, обратный к 1/7 — 7. Иными словами, обратными друг к другу называются элементы, дающие в произведении единицу.
В случае матриц единицей считается матрица единичная — матрица, у которой на главной диагонали стоят единицы, а все остальные элементы равны 0.
И так, нам нужно найти такую матрицу, которая в произведении с исходной даст единицу, то есть матрицу, обратную к данной.
Обратные матрицы существуют только у квадратных матриц. Но это не проблема, поскольку при помощи операций умножения матриц и транспонирования мы можем преобразовать нашу матрицу к квадратной и уже к этой квадратной отыскать обратную. Тогда наше решение будет выглядеть так:
В результате действия линейного отображения А на каждый объект пространства X, измеренный по двум координатам, получаются значения из пространства Y.
Необходимо: найти правило, которое определяет действие линейного отображения.
Что также эквивалентно системе уравнений: X*x = y.
Во избежание дублирования, изменим обозначение x малое, на малое w. Получается такая задача:
X*w = y
где найти необходимо в точности вектор w.
Теперь перейдем к языку классического алгоритма машинного обучения — линейной регрессии и заметим, что задача обращается в
найти вектор весов w, который для каждого наблюдения X обеспечит его сопоставление с целевой координатой y.
Чувствуете? Только что, бодро и весело, мы перешли с вами к системе линейных уравнений в матричном виде.
Как её решить?
Ответ: Избавиться от X справа равным соотношением, иначе говоря, получить перед w единицу. Сделать это можно при помощи обратного элемента. Не пугайтесь, обратные ребята знакомы нам из школы, например обратный к 5 — это 1/5, обратный к 1/7 — 7. Иными словами, обратными друг к другу называются элементы, дающие в произведении единицу.
В случае матриц единицей считается матрица единичная — матрица, у которой на главной диагонали стоят единицы, а все остальные элементы равны 0.
И так, нам нужно найти такую матрицу, которая в произведении с исходной даст единицу, то есть матрицу, обратную к данной.
Обратные матрицы существуют только у квадратных матриц. Но это не проблема, поскольку при помощи операций умножения матриц и транспонирования мы можем преобразовать нашу матрицу к квадратной и уже к этой квадратной отыскать обратную. Тогда наше решение будет выглядеть так:
❤1
Решив всё численно найдем зависимость и, умножив всё это дело для новых точек, визуально получим следующее:
Привет, друзья!
В картинках — официальные результаты хакатона. Довольна — это моё первое личное участие🐒
Завтра по следам напишу пост и скину ссылку на решение и презентацию!
В картинках — официальные результаты хакатона. Довольна — это моё первое личное участие🐒
Завтра по следам напишу пост и скину ссылку на решение и презентацию!
🔥9❤5
По следам хакатона. Цифровой прорыв 2022.
Привет и доброго вам вечера, друзья!
Долго думала, как назвать формат сегодня. “Делюсь опытом” мне не нравилось, как не крутила, и я выбрала Делюсь соревновательными дата-наблюдениями.
Надеюсь, они будет вам полезны! Поехали!
Моя история с хакатонами начиналась и не заканчивалась даже загрузкой одного результата не один раз. Моими проблемами здесь были такие:
1. Командные нюансы. Здесь стоп-факторы:
- неравномерное распределение обязанностей внутри команды — когда коэффициенты нагрузки не равны даже приближенно. Да, иногда на хакатон важно просто добрать до заветного числа участников в команде, но здесь надо быть трезво готовым к самостоятельной (парной/тройной/etc) работе и оговорить, с теми, кто не участвует в решении, взятие дизайнерских или представительных обязанностей.
- недостаточно разнообразное множество навыков внутри команды;
По набитому — хорошо, когда в команде специалисты разных сфер, особенно если хакатон многоэтапный (частный чемпионат, полуфинал, финал). Иной раз после привычной задачи, например обучения модели и анализа данных, можно столкнуться с задачей непривычной — например, сделать веб-сервис, в котором она будет работать.
Что могу посоветовать:
Собирайте команду друзей, друзья! Разных, прекрасных в своём, друзей. Разговаривайте внутри команды, разделяйте задачи и подкрепляйте соревновательный дух друг друга.
2. Самооценка.
Здесь стоп-факторы в точности только поведенческие и связанные с личным самовосприятием. Они звучат, как “я одна всё равно не приведу качественного решения”, “а что если решение моё будет смешным”, “а я этого давно не делала”.
Кто читает меня в инстаграм, знают, что я работаю над собой и к текущей точке почти уже не слышу этих мыслей внутри. Хакатон — это прежде всего извлекаемый опыт. Это возможность погрузиться в новую историю, описанную цифрами, буквами и распределениями. Это шанс стать лучше и возможность провести время с тем, что любишь. И здесь мне очень нравятся строки из песни:
На табличке надпись - "весь мир — это репетиция"...
…
Пока я думал, что подумают они
Люди думали о том, что подумал я о них
От создания всей человеческой возни
Не было чистовика тут, бесконечный черновик…
Поэтому танцуй, не жалея ног
Счастье может быть мимо ритмов и нот
Слова любви никак не утратят надежду
Оттого, что нацарапаны коряво и небрежно
В этом соревновании я участвовала максимально так, как умею и писала решение так, как его ощущала. И я довольна — кроме хорошего места, у меня теперь есть важные наблюдения, и даже если место было бы ниже, я бы вряд ли расстроилась — ценность знаний и анализа ошибок выше, чем категория цифровой грамоты.
Привет и доброго вам вечера, друзья!
Долго думала, как назвать формат сегодня. “Делюсь опытом” мне не нравилось, как не крутила, и я выбрала Делюсь соревновательными дата-наблюдениями.
Надеюсь, они будет вам полезны! Поехали!
Моя история с хакатонами начиналась и не заканчивалась даже загрузкой одного результата не один раз. Моими проблемами здесь были такие:
1. Командные нюансы. Здесь стоп-факторы:
- неравномерное распределение обязанностей внутри команды — когда коэффициенты нагрузки не равны даже приближенно. Да, иногда на хакатон важно просто добрать до заветного числа участников в команде, но здесь надо быть трезво готовым к самостоятельной (парной/тройной/etc) работе и оговорить, с теми, кто не участвует в решении, взятие дизайнерских или представительных обязанностей.
- недостаточно разнообразное множество навыков внутри команды;
По набитому — хорошо, когда в команде специалисты разных сфер, особенно если хакатон многоэтапный (частный чемпионат, полуфинал, финал). Иной раз после привычной задачи, например обучения модели и анализа данных, можно столкнуться с задачей непривычной — например, сделать веб-сервис, в котором она будет работать.
Что могу посоветовать:
Собирайте команду друзей, друзья! Разных, прекрасных в своём, друзей. Разговаривайте внутри команды, разделяйте задачи и подкрепляйте соревновательный дух друг друга.
2. Самооценка.
Здесь стоп-факторы в точности только поведенческие и связанные с личным самовосприятием. Они звучат, как “я одна всё равно не приведу качественного решения”, “а что если решение моё будет смешным”, “а я этого давно не делала”.
Кто читает меня в инстаграм, знают, что я работаю над собой и к текущей точке почти уже не слышу этих мыслей внутри. Хакатон — это прежде всего извлекаемый опыт. Это возможность погрузиться в новую историю, описанную цифрами, буквами и распределениями. Это шанс стать лучше и возможность провести время с тем, что любишь. И здесь мне очень нравятся строки из песни:
На табличке надпись - "весь мир — это репетиция"...
…
Пока я думал, что подумают они
Люди думали о том, что подумал я о них
От создания всей человеческой возни
Не было чистовика тут, бесконечный черновик…
Поэтому танцуй, не жалея ног
Счастье может быть мимо ритмов и нот
Слова любви никак не утратят надежду
Оттого, что нацарапаны коряво и небрежно
В этом соревновании я участвовала максимально так, как умею и писала решение так, как его ощущала. И я довольна — кроме хорошего места, у меня теперь есть важные наблюдения, и даже если место было бы ниже, я бы вряд ли расстроилась — ценность знаний и анализа ошибок выше, чем категория цифровой грамоты.
👍3
Теперь к тем самым формальным и специфическим наблюдениям.
1. Лидерборд, финальный тестовый набор данных и лучшая модель.
Если лидерборд разделен на публичную и приватную части, вторая из названных открывается только после соревнования, не всегда стоит ориентироваться на метрику поданной загрузки.
Чтобы понять, как она может повести себя потом, при вычислении на всех данных, релевантно рассмотреть распределения признаков на всем обучающем+валидационном (1) и финальном тестовом (2) датасете.
Если в спроектированных вами признаках виден сильный distribution shift (несогласованность распределений), то нужно либо ресемплировать набор данных 1, либо продумать другие features.
Кроме того, лучшую модель релевантно выбирать таким образом, чтобы она была наиболее точной при кросс-валидации уже после коррекции согласия распределений в вашем личном ноутбуке.
Такая модель не обязательно будет отдавать лучшую метрику по лидерборду (потому что не понятно, каково разбиение финального тестового набора на public и private части), но она будет известно устойчива к полной части, отработав ближе к валидационным метрикам.
2. Личная эффективность.
Не стоит настраивать себя на участие за призом, предпосылка решить реальную задачу и получить реальный результат своего решения помогает быть продуктивнее и на пике возможностей.
Кроме того, отличным пунктом к повышению интереса может быть запуск baseline-модели. Всё-таки, когда вот, они перед тобой, и ты видишь одни цифры метрики, запал получить другие кратно растёт : )
Вот так, друзья! Сегодня почти что кратко.
Решение прилагаю, презентацию решения тоже, хотя по причине моего шаткого пункта 2 части поста 1, скрипя сердцем) Но! Во благо =)
Буду рада конструктивным оценкам или если решение вам что-то напомнит - на пункте лидерборда, лучшей модели и согласия распределения признаков, я, как вы можете там увидеть, точно попалась.
Будьте смелыми, друзья! Пробуйте и идите вперёд.
Со всем самым тёплым,
Ваш дата-автор.
1. Лидерборд, финальный тестовый набор данных и лучшая модель.
Если лидерборд разделен на публичную и приватную части, вторая из названных открывается только после соревнования, не всегда стоит ориентироваться на метрику поданной загрузки.
Чтобы понять, как она может повести себя потом, при вычислении на всех данных, релевантно рассмотреть распределения признаков на всем обучающем+валидационном (1) и финальном тестовом (2) датасете.
Если в спроектированных вами признаках виден сильный distribution shift (несогласованность распределений), то нужно либо ресемплировать набор данных 1, либо продумать другие features.
Кроме того, лучшую модель релевантно выбирать таким образом, чтобы она была наиболее точной при кросс-валидации уже после коррекции согласия распределений в вашем личном ноутбуке.
Такая модель не обязательно будет отдавать лучшую метрику по лидерборду (потому что не понятно, каково разбиение финального тестового набора на public и private части), но она будет известно устойчива к полной части, отработав ближе к валидационным метрикам.
2. Личная эффективность.
Не стоит настраивать себя на участие за призом, предпосылка решить реальную задачу и получить реальный результат своего решения помогает быть продуктивнее и на пике возможностей.
Кроме того, отличным пунктом к повышению интереса может быть запуск baseline-модели. Всё-таки, когда вот, они перед тобой, и ты видишь одни цифры метрики, запал получить другие кратно растёт : )
Вот так, друзья! Сегодня почти что кратко.
Решение прилагаю, презентацию решения тоже, хотя по причине моего шаткого пункта 2 части поста 1, скрипя сердцем) Но! Во благо =)
Буду рада конструктивным оценкам или если решение вам что-то напомнит - на пункте лидерборда, лучшей модели и согласия распределения признаков, я, как вы можете там увидеть, точно попалась.
Будьте смелыми, друзья! Пробуйте и идите вперёд.
Со всем самым тёплым,
Ваш дата-автор.
❤1
Привет, друзья!
Сегодня не о теории вероятностей.
Я часто копаюсь в научных статьях, связанных с data science (и не только). На днях наткнулась на особенно-любопытную — Explainable Machine Learning for Scientific Insights and Discoveries.
Статья посвящена подходу к оценке качества алгоритмов машинного и глубокого обучения с точки зрения науки.
Авторы статьи приводят три критерия качества алгоритмов с точки зрения научной ценности — прозрачность, интерпретируемость и объяснимость.
Прозрачностью авторы называют возможность описать ход работы модели. Кроме того, в статье предлагается проводить различие между прозрачностью модели, прозрачностью дизайна и алгоритмической прозрачностью.
Интерпретируемостью авторы называют возможность ответа на вопрос: “Можем ли мы понять, на чем алгоритм ML основывает свое решение?”. Интерпретируемость авторы разбивают по интерпретируемости самой модели и по интерпретируемости соотношения входных и выходных данных.
Объяснимостью авторы называют возможность показать совокупность признаков рассматриваемой предметной области (то есть domain knowlenge), которые в данном примере способствовали принятию решения. Она (объяснимость) разделена в статье на 4 группы: объяснимость по модели, объяснимость по результатам, объяснимость по дизайну модели и объяснимость с точки зрения post-hoc проверки (проверки на основе статистических тестов, например сравнение математического ожидания т-критерием Стьюдента).
На основе данных критериев, в статье приведены примеры научных статей, где часть результатов работы была получена при помощи ИИ.
Для меня остался спорными смутным момент примеров, которые авторы приводят в соответствии с данными определениями прозрачности, интерпретируемости и объяснимости.
Однако система оценки алгоритмов кажется мне полезной, даже с точки зрения повседневных бизнес-решений.
Даже в соревновательных историях, в первую очередь я отдаю предпочтение обучению простых моделей, потому как, опять же по моему мнению, интерпретируемость важнее сотых в качестве.
А что думаете вы, какие критерии алгоритмов машинного обучения с точки зрения ценности наиболее важны на ваш взгляд?
И был ли этот пост интересен/полезен для вас?
Дайте, пожалуйста, знать реакциями и/или также комментариями!🙏
#XAI
Чудного вечера,
Ваш дата-автор!
Сегодня не о теории вероятностей.
Я часто копаюсь в научных статьях, связанных с data science (и не только). На днях наткнулась на особенно-любопытную — Explainable Machine Learning for Scientific Insights and Discoveries.
Статья посвящена подходу к оценке качества алгоритмов машинного и глубокого обучения с точки зрения науки.
Авторы статьи приводят три критерия качества алгоритмов с точки зрения научной ценности — прозрачность, интерпретируемость и объяснимость.
Прозрачностью авторы называют возможность описать ход работы модели. Кроме того, в статье предлагается проводить различие между прозрачностью модели, прозрачностью дизайна и алгоритмической прозрачностью.
Интерпретируемостью авторы называют возможность ответа на вопрос: “Можем ли мы понять, на чем алгоритм ML основывает свое решение?”. Интерпретируемость авторы разбивают по интерпретируемости самой модели и по интерпретируемости соотношения входных и выходных данных.
Объяснимостью авторы называют возможность показать совокупность признаков рассматриваемой предметной области (то есть domain knowlenge), которые в данном примере способствовали принятию решения. Она (объяснимость) разделена в статье на 4 группы: объяснимость по модели, объяснимость по результатам, объяснимость по дизайну модели и объяснимость с точки зрения post-hoc проверки (проверки на основе статистических тестов, например сравнение математического ожидания т-критерием Стьюдента).
На основе данных критериев, в статье приведены примеры научных статей, где часть результатов работы была получена при помощи ИИ.
Для меня остался спорными смутным момент примеров, которые авторы приводят в соответствии с данными определениями прозрачности, интерпретируемости и объяснимости.
Однако система оценки алгоритмов кажется мне полезной, даже с точки зрения повседневных бизнес-решений.
Даже в соревновательных историях, в первую очередь я отдаю предпочтение обучению простых моделей, потому как, опять же по моему мнению, интерпретируемость важнее сотых в качестве.
А что думаете вы, какие критерии алгоритмов машинного обучения с точки зрения ценности наиболее важны на ваш взгляд?
И был ли этот пост интересен/полезен для вас?
Дайте, пожалуйста, знать реакциями и/или также комментариями!🙏
#XAI
Чудного вечера,
Ваш дата-автор!
🔥5