✍️ Воскресный разбор сложных задач недели
1️⃣ L2-регрессия добавляет штраф к функции потерь, пропорциональный квадрату нормы коэффициентов. А L1-регрессия добавляет штраф, пропорциональный норме коэффициентов без возведения в квадрат. Таким образом, первый метод регуляризации стремится уменьшить влияние менее значимых признаков, уменьшая их коэффициенты, но редко приводит к тому, что они становятся строго равными нулю. А вот во втором случае может произойти зануление.
Поэтому если мы понимаем, что нам важны все признаки и не хотим избавляться от каких-то из них, лучше использовать L2-регрессию.
2️⃣ Давайте рассмотрим все методы трансформации данных из вопроса:
▫️Z-score — хороший выбор, если выбросы в данных не экстремальные. Однако по графику видно, что аномалии довольно значительные.
▫️Биннинг с квантильными границами — мог бы подойти, если бы данные были асимметричны, но в данном случае асимметрия частично вызвана несколькими экстремальными выбросами. Кроме того, мы хотим, чтобы модель обучилась линейной зависимости. Поэтому следует оставить показатель roomsPerPerson числовым, а не преобразовывать его в категории.
▫️Логарифмическое масштабирование — подошло бы, если бы данные подчинялись степенному закону. Однако эти данные подчиняются нормальному распределению.
▫️Clipping — подойдёт для начала анализа, так как в наборе данных присутствуют экстремальные выбросы. Можно убрать их перед применением других методов нормализации.
#разбор_задач
1️⃣ L2-регрессия добавляет штраф к функции потерь, пропорциональный квадрату нормы коэффициентов. А L1-регрессия добавляет штраф, пропорциональный норме коэффициентов без возведения в квадрат. Таким образом, первый метод регуляризации стремится уменьшить влияние менее значимых признаков, уменьшая их коэффициенты, но редко приводит к тому, что они становятся строго равными нулю. А вот во втором случае может произойти зануление.
Поэтому если мы понимаем, что нам важны все признаки и не хотим избавляться от каких-то из них, лучше использовать L2-регрессию.
2️⃣ Давайте рассмотрим все методы трансформации данных из вопроса:
▫️Z-score — хороший выбор, если выбросы в данных не экстремальные. Однако по графику видно, что аномалии довольно значительные.
▫️Биннинг с квантильными границами — мог бы подойти, если бы данные были асимметричны, но в данном случае асимметрия частично вызвана несколькими экстремальными выбросами. Кроме того, мы хотим, чтобы модель обучилась линейной зависимости. Поэтому следует оставить показатель roomsPerPerson числовым, а не преобразовывать его в категории.
▫️Логарифмическое масштабирование — подошло бы, если бы данные подчинялись степенному закону. Однако эти данные подчиняются нормальному распределению.
▫️Clipping — подойдёт для начала анализа, так как в наборе данных присутствуют экстремальные выбросы. Можно убрать их перед применением других методов нормализации.
#разбор_задач
👍5❤3
✍️ Разбор задач
Сегодня разберёмся, чем стохастический градиентный спуск (SGD) отличается от мини-пакетного (mini-batch).
Оба — оптимизационные алгоритмы, которые являются вариациями классического градиентного спуска. Для начала вспомним, как он работает.
У нас есть вектор признаков и вектор весов w. Допустим, мы выбрали какую-нибудь функцию потерь. Нам необходимо минимизировать её. Выберем для весов какое-то начальное приближение и вычислим результат на основе этого. По функции потерь посчитаем градиент, то есть вектор частных производных функции потерь по каждому из весов. Именно он поможет нам скорректировать веса w в нужно направлении. Иными словами, мы будем вычитать из вектора весов градиент, домноженный на какой-то шаг обучения.
🔹 В стохастическом градиентном спуске градиент функции считается на каждом шаге не как сумма градиентов от каждого элемента выборки, а как градиент от одного, случайно выбранного элемента.
🔹 В мини-пакетном градиентном спуске (mini-batch) градиент функции считается на каждом шаге как градиент от небольшой, случайно выбранной партии элементов (мини-пакета).
#разбор_задач
Сегодня разберёмся, чем стохастический градиентный спуск (SGD) отличается от мини-пакетного (mini-batch).
Оба — оптимизационные алгоритмы, которые являются вариациями классического градиентного спуска. Для начала вспомним, как он работает.
У нас есть вектор признаков и вектор весов w. Допустим, мы выбрали какую-нибудь функцию потерь. Нам необходимо минимизировать её. Выберем для весов какое-то начальное приближение и вычислим результат на основе этого. По функции потерь посчитаем градиент, то есть вектор частных производных функции потерь по каждому из весов. Именно он поможет нам скорректировать веса w в нужно направлении. Иными словами, мы будем вычитать из вектора весов градиент, домноженный на какой-то шаг обучения.
🔹 В стохастическом градиентном спуске градиент функции считается на каждом шаге не как сумма градиентов от каждого элемента выборки, а как градиент от одного, случайно выбранного элемента.
🔹 В мини-пакетном градиентном спуске (mini-batch) градиент функции считается на каждом шаге как градиент от небольшой, случайно выбранной партии элементов (мини-пакета).
#разбор_задач
👍6🔥3
✍️ Разбор сложных задач недели
1️⃣ Метод numpy.bincount используется для подсчёта количества вхождений каждого значения в массив неотрицательных целых чисел. Возвращает массив, где индекс соответствует числу, а значение по этому индексу — количеству раз, которое это число встречается в исходном массиве. То есть если исходный массив был таким — [0, 1, 1, 2, 2, 2, 3], numpy.bincount вернёт [1 2 3 1]. Это означает, что число 0 встречается один раз, число 1 — два раза, число 2 — три раза, число 3 — один раз.
2️⃣ Разберём задачку про игральные карты.
В целом, при таком условии у нас могут возникнуть несколько ситуаций.
▫️Первая.
Когда мы достали первый туз, он оказался пиковым, а двойка треф нам ещё не попадалась. Тогда вероятность достать пиковый туз далее окажется равна нулю, а двойку треф — единице (ведь мы точно её рано или поздно достанем).
▫️Вторая.
На момент когда мы добрались до первого туза, он не пиковый, а двойка треф уже вышла из колоды. Соответственно, вероятность встретить её дальше равна нулю, а вероятность встретить пиковый туз — единице.
▫️Третья.
Когда мы достали первый туз, он оказался пиковым, а двойка треф вышла раньше. Поэтому вероятность встретить дальше обе карты равна нулю.
▫️Четыре.
Озвученные выше три варианта при многократном повторении эксперимента дают нам одинаковые шансы на то, что следующей картой, которую мы найдём, будет как пиковый туз, так и трефовая двойка. Поэтому нас больше всего интересует ситуация, когда первый туз не пиковый и двойка треф ещё есть в колоде.
Будем считать, что мы уже вытянули n карт, включая первого туза. Так в колоде осталось (52 − n) карт. Вероятность вытянуть пикового туза тогда составляет 1 / (52 − n). То же самое происходит с трефовой двойкой — 1 / (52 − n). В результате, вероятности равны.
#разбор_задач
1️⃣ Метод numpy.bincount используется для подсчёта количества вхождений каждого значения в массив неотрицательных целых чисел. Возвращает массив, где индекс соответствует числу, а значение по этому индексу — количеству раз, которое это число встречается в исходном массиве. То есть если исходный массив был таким — [0, 1, 1, 2, 2, 2, 3], numpy.bincount вернёт [1 2 3 1]. Это означает, что число 0 встречается один раз, число 1 — два раза, число 2 — три раза, число 3 — один раз.
2️⃣ Разберём задачку про игральные карты.
В целом, при таком условии у нас могут возникнуть несколько ситуаций.
▫️Первая.
Когда мы достали первый туз, он оказался пиковым, а двойка треф нам ещё не попадалась. Тогда вероятность достать пиковый туз далее окажется равна нулю, а двойку треф — единице (ведь мы точно её рано или поздно достанем).
▫️Вторая.
На момент когда мы добрались до первого туза, он не пиковый, а двойка треф уже вышла из колоды. Соответственно, вероятность встретить её дальше равна нулю, а вероятность встретить пиковый туз — единице.
▫️Третья.
Когда мы достали первый туз, он оказался пиковым, а двойка треф вышла раньше. Поэтому вероятность встретить дальше обе карты равна нулю.
▫️Четыре.
Озвученные выше три варианта при многократном повторении эксперимента дают нам одинаковые шансы на то, что следующей картой, которую мы найдём, будет как пиковый туз, так и трефовая двойка. Поэтому нас больше всего интересует ситуация, когда первый туз не пиковый и двойка треф ещё есть в колоде.
Будем считать, что мы уже вытянули n карт, включая первого туза. Так в колоде осталось (52 − n) карт. Вероятность вытянуть пикового туза тогда составляет 1 / (52 − n). То же самое происходит с трефовой двойкой — 1 / (52 − n). В результате, вероятности равны.
#разбор_задач
👍8❤2
Что такое расстояние Махаланобиса?
Это мера расстояния между векторами случайных величин. В отличие от Евклидова расстояния, которое просто измеряет прямое расстояние между двумя точками в пространстве, метрика Махаланобиса учитывает взаимосвязь между признаками.
Расстояние Махаланобиса нормализует данные относительно ковариационной матрицы, что позволяет учитывать различную дисперсию признаков. Математически расстояние Махаланобиса можно определить как меру несходства между двумя случайными векторами 𝑥 и 𝑦 из одного распределения вероятностей с матрицей ковариации 𝑆. Если матрица ковариации является единичной матрицей, то расстояние Махаланобиса становится равным расстоянию Евклида.
Эта метрика используется, например, для нахождения выбросов. Точка, имеющая наибольшее расстояние Махаланобиса до остального множества заданных точек, считается имеющей наибольшую значимость, так как она имеет наибольшее влияние на кривизну и на коэффициенты уравнения регрессии.
#разбор_задач
Это мера расстояния между векторами случайных величин. В отличие от Евклидова расстояния, которое просто измеряет прямое расстояние между двумя точками в пространстве, метрика Махаланобиса учитывает взаимосвязь между признаками.
Расстояние Махаланобиса нормализует данные относительно ковариационной матрицы, что позволяет учитывать различную дисперсию признаков. Математически расстояние Махаланобиса можно определить как меру несходства между двумя случайными векторами 𝑥 и 𝑦 из одного распределения вероятностей с матрицей ковариации 𝑆. Если матрица ковариации является единичной матрицей, то расстояние Махаланобиса становится равным расстоянию Евклида.
Эта метрика используется, например, для нахождения выбросов. Точка, имеющая наибольшее расстояние Махаланобиса до остального множества заданных точек, считается имеющей наибольшую значимость, так как она имеет наибольшее влияние на кривизну и на коэффициенты уравнения регрессии.
#разбор_задач
👍4❤2
✍️ Какой метод заполнения пропущенных значений выбрать для модели логистической регрессии?
Это был вопрос без определённого правильного ответа. Действительно, выбор метода заполнения пропусков будет зависеть от характера данных и количества этих самых пропущенных значений. Однако в большинстве случаев, особенно когда данные имеют сложные структуры и количество пропущенных значений значительное, можно использовать множественную импутацию (multiple imputation). Рассмотрим все методы:
▪️Простое удаление всех записей с пропущенными значениями.
Этот метод может привести к значительному сокращению размера выборки. Однако, если вы понимаете, что можете без ущерба пожертвовать частью данных, то можно выбрать этот вариант.
▪️Заполнение средним.
Этот метод может исказить распределение данных и снизить дисперсию, что приводит к смещению оценок.
▪️Множественная импутация.
Этот метод более сложен. Он использует информацию из имеющихся данных для предсказания пропущенных значений. По сути, он позволяет сгенерировать якобы полные наборы данных. Это должно уменьшать смещение.
▪️Попарное удаление (pairwise deletion).
Этот метод использует всю доступную информацию для каждой пары переменных, но он может привести к несоответствиям и сложностям в интерпретации результатов, особенно в контексте многомерного анализа.
#разбор_задач
Это был вопрос без определённого правильного ответа. Действительно, выбор метода заполнения пропусков будет зависеть от характера данных и количества этих самых пропущенных значений. Однако в большинстве случаев, особенно когда данные имеют сложные структуры и количество пропущенных значений значительное, можно использовать множественную импутацию (multiple imputation). Рассмотрим все методы:
▪️Простое удаление всех записей с пропущенными значениями.
Этот метод может привести к значительному сокращению размера выборки. Однако, если вы понимаете, что можете без ущерба пожертвовать частью данных, то можно выбрать этот вариант.
▪️Заполнение средним.
Этот метод может исказить распределение данных и снизить дисперсию, что приводит к смещению оценок.
▪️Множественная импутация.
Этот метод более сложен. Он использует информацию из имеющихся данных для предсказания пропущенных значений. По сути, он позволяет сгенерировать якобы полные наборы данных. Это должно уменьшать смещение.
▪️Попарное удаление (pairwise deletion).
Этот метод использует всю доступную информацию для каждой пары переменных, но он может привести к несоответствиям и сложностям в интерпретации результатов, особенно в контексте многомерного анализа.
#разбор_задач
❤5🤩2
✍️ Разбираем задачу про преобразование данных
В этой задаче представлен график, отражающий распределение количества оценок на фильм. Это распределение имеет длинный хвост, что указывает на наличие значительного количества фильмов с небольшим количеством оценок и небольшого количества фильмов с большим количеством оценок. Для более информативного представления данных можно применить логарифмическое преобразование к количеству оценок.
Логарифмическое преобразование сгладит большие различия между фильмами с малым и большим количеством оценок. Кроме того, оно уменьшит влияние фильмов с очень большим количеством оценок, которые сейчас создают длинный хвост. Это сделает гистограмму более симметричной и поможет лучше увидеть детали распределения для фильмов с малым количеством оценок.
#разбор_задач
В этой задаче представлен график, отражающий распределение количества оценок на фильм. Это распределение имеет длинный хвост, что указывает на наличие значительного количества фильмов с небольшим количеством оценок и небольшого количества фильмов с большим количеством оценок. Для более информативного представления данных можно применить логарифмическое преобразование к количеству оценок.
Логарифмическое преобразование сгладит большие различия между фильмами с малым и большим количеством оценок. Кроме того, оно уменьшит влияние фильмов с очень большим количеством оценок, которые сейчас создают длинный хвост. Это сделает гистограмму более симметричной и поможет лучше увидеть детали распределения для фильмов с малым количеством оценок.
#разбор_задач
👍5🔥2
✍️ Воскресный разбор задач прошедшей недели
Сегодня поговорим об ошибках первого и второго рода.
▪️Допустить ошибку первого рода это отвергнуть нулевую гипотезу, при условии, что именно она верна.
Нулевая гипотеза — это гипотеза, предполагающая, что никаких изменений не произошло/влияния нет
▪️Допустить ошибку второго рода это принять нулевую гипотезу, при условии, что верна альтернативная гипотеза.
Альтернативная гипотеза — это гипотеза, предполагающая, что изменения произошли/есть влияние.
А теперь вернёмся к нашей задаче. Для антиспам-фильтра нулевая гипотеза — это предположение, что новое входящее письмо является обычным письмом, не спамом. Альтернативная гипотеза тогда — это предположение, что письмо является спамом. В нашей ситуации, верна именно альтернативная гипотеза, но антиспам-фильтр принимает нулевую гипотезу. Это пример ошибки второго рода.
#разбор_задач
Сегодня поговорим об ошибках первого и второго рода.
▪️Допустить ошибку первого рода это отвергнуть нулевую гипотезу, при условии, что именно она верна.
▪️Допустить ошибку второго рода это принять нулевую гипотезу, при условии, что верна альтернативная гипотеза.
А теперь вернёмся к нашей задаче. Для антиспам-фильтра нулевая гипотеза — это предположение, что новое входящее письмо является обычным письмом, не спамом. Альтернативная гипотеза тогда — это предположение, что письмо является спамом. В нашей ситуации, верна именно альтернативная гипотеза, но антиспам-фильтр принимает нулевую гипотезу. Это пример ошибки второго рода.
#разбор_задач
👍7
✍️ Воскресный разбор задач
Сегодня разберёмся с архитектурами GPT и BERT.
▪️GPT (Generative Pretrained Transformer)
Она появилась раньше, чем BERT. Её архитектура представляет собой последовательность слоёв декодера трансформера.
Декодер — это ключевой компонент, который использует механизм self-attention для предсказания следующего токена в последовательности, основываясь на предыдущих. Он генерирует текст, шаг за шагом, добавляя токены до тех пор, пока не будет достигнут конец последовательности.
На каждом шаге GPT обучается предсказывать следующий токен на основе уже предсказанных. Поэтому модель хорошо подходит для задач генерации текста.
▪️BERT (Bidirectional Encoder Representations from Transformers)
Эта архитектура появилась чуть позже. От GPT её отличает то, что в ней реализована двунаправленность внимания. Так при обработке входной последовательности все токены могут использовать информацию друг о друге.
Благодаря этому BERT более удобна для задач, где нужно сделать предсказание относительно всего входа целиком без генерации, например, при классификации или поиске пар похожих документов.
#разбор_задач
Сегодня разберёмся с архитектурами GPT и BERT.
▪️GPT (Generative Pretrained Transformer)
Она появилась раньше, чем BERT. Её архитектура представляет собой последовательность слоёв декодера трансформера.
На каждом шаге GPT обучается предсказывать следующий токен на основе уже предсказанных. Поэтому модель хорошо подходит для задач генерации текста.
▪️BERT (Bidirectional Encoder Representations from Transformers)
Эта архитектура появилась чуть позже. От GPT её отличает то, что в ней реализована двунаправленность внимания. Так при обработке входной последовательности все токены могут использовать информацию друг о друге.
Благодаря этому BERT более удобна для задач, где нужно сделать предсказание относительно всего входа целиком без генерации, например, при классификации или поиске пар похожих документов.
#разбор_задач
👍2🔥2
✍️ Разбор задач прошедшей недели
Сегодня вспомним, что такое bias (смещение) и variance (разброс).
✅ Итак, представим, что вы каким-то образом обучили модель и хотите оценить, насколько хорошо она справляется со своей задачей предсказания целевого значения. Вы даёте ей данные и получаете некоторый результат. Теперь его можно использовать, чтобы понять некоторые вещи про модель.
Так, смещением называют матожидание разности между истинным значением и тем, что было выдано моделью. Разброс же — это дисперсия ответов модели, то есть мера того, насколько эти ответы варьируются в зависимости от данных.
Легко догадаться, что чем меньше смещение, тем более близкие к истинным результаты выдаёт модель. А чем меньше разброс, тем стабильнее модель, тем выше её обобщающая способность. Например, глубокие деревья способны безошибочно выучить обучающую выборку и потому будут иметь высокий разброс в зависимости от выборки, однако их предсказания в среднем будут точнее.
Что касается нейросети с большим числом нейронов в каждом скрытом слое, то такая модель, аналогично глубокому дереву, может зазубрить обучающую выборку, а значит иметь низкое смещение и высокий разброс.
#разбор_задач
Сегодня вспомним, что такое bias (смещение) и variance (разброс).
✅ Итак, представим, что вы каким-то образом обучили модель и хотите оценить, насколько хорошо она справляется со своей задачей предсказания целевого значения. Вы даёте ей данные и получаете некоторый результат. Теперь его можно использовать, чтобы понять некоторые вещи про модель.
Так, смещением называют матожидание разности между истинным значением и тем, что было выдано моделью. Разброс же — это дисперсия ответов модели, то есть мера того, насколько эти ответы варьируются в зависимости от данных.
Легко догадаться, что чем меньше смещение, тем более близкие к истинным результаты выдаёт модель. А чем меньше разброс, тем стабильнее модель, тем выше её обобщающая способность. Например, глубокие деревья способны безошибочно выучить обучающую выборку и потому будут иметь высокий разброс в зависимости от выборки, однако их предсказания в среднем будут точнее.
Что касается нейросети с большим числом нейронов в каждом скрытом слое, то такая модель, аналогично глубокому дереву, может зазубрить обучающую выборку, а значит иметь низкое смещение и высокий разброс.
#разбор_задач
❤2👍1
✍️ Воскресный разбор задач
Сегодня разберём вопрос про зависимость смещения и дисперсии от параметра lambda в линейной регрессии с регуляризацией.
🔹Регуляризация — это способ добавить к модели дополнительное ограничение на вектор весов. Обычно для этого используются L1- и L2-нормы. Их смысл заключается в добавлении к формуле линейной регрессии регуляризационного члена, который состоит из суммы весов, умноженной на lambda — коэффициент регуляризации.
Нетрудно догадаться, что lambda довольно сильно влияет на качество итогового решения. Если этот параметр, например, равен 1, то мы не прибавляем к формуле ничего кроме суммы весов, а если он равен 10, то прибавка, соответственно, становится десятикратной суммой весов.
👀 А теперь, держа это знание в голове, подумаем: что будет со смещением и дисперсией, когда мы увеличиваем lambda?
Напомним, смещение — это матожидание разности между истинным значением и тем, что было выдано моделью. Дисперсия — это разброс ответов модели, то есть мера того, насколько эти ответы варьируются в зависимости от данных.
Если мы прибавляем к ответу модели сумму весов, да ещё и умноженную на 10, то матожидание между этим ответом и истинным значением, конечно, станет больше. То есть смещение увеличится. Но при этом модель будет, вероятно, лучше обобщать данные, и её дисперсия уменьшится. Поэтому стоит помнить, что что слишком большое значение lambda может привести к тому, что модель начнёт недообучаться.
#разбор_задач
Сегодня разберём вопрос про зависимость смещения и дисперсии от параметра lambda в линейной регрессии с регуляризацией.
🔹Регуляризация — это способ добавить к модели дополнительное ограничение на вектор весов. Обычно для этого используются L1- и L2-нормы. Их смысл заключается в добавлении к формуле линейной регрессии регуляризационного члена, который состоит из суммы весов, умноженной на lambda — коэффициент регуляризации.
Нетрудно догадаться, что lambda довольно сильно влияет на качество итогового решения. Если этот параметр, например, равен 1, то мы не прибавляем к формуле ничего кроме суммы весов, а если он равен 10, то прибавка, соответственно, становится десятикратной суммой весов.
👀 А теперь, держа это знание в голове, подумаем: что будет со смещением и дисперсией, когда мы увеличиваем lambda?
Если мы прибавляем к ответу модели сумму весов, да ещё и умноженную на 10, то матожидание между этим ответом и истинным значением, конечно, станет больше. То есть смещение увеличится. Но при этом модель будет, вероятно, лучше обобщать данные, и её дисперсия уменьшится. Поэтому стоит помнить, что что слишком большое значение lambda может привести к тому, что модель начнёт недообучаться.
#разбор_задач
👍3
✍️ Разбор задач прошедшей недели
1️⃣ KNN — это параметрический метод машинного обучения?
Метод k -ближайших соседей (KNN) считается непараметрическим, потому что он не делает предположений о распределении данных и не имеет фиксированного набора параметров, которые обучаются заранее.
В параметрических методах (например, линейной регрессии или логистической регрессии) модель на этапе обучения оценивает параметры, которые затем используются для получения предсказаний. В KNN модель не «учится» в традиционном смысле: нет фиксированной функции, описывающей взаимосвязь между признаками и целевой переменной.
2️⃣ Какая оценка дисперсии считается смещённой?
Оценка дисперсии считается смещённой, если её математическое ожидание не совпадает с истинным значением дисперсии генеральной совокупности. Когда мы делим на n (размер выборки), а не на n-1, то систематически занижаем дисперсию, так как не учитываем факт того, что среднее вычислено по той же выборке и поэтому менее точно приближает истинное среднее генеральной совокупности.
В случае деления на n-1 мы компенсируем «потерю одной степени свободы» из-за использования выборочного среднего вместо истинного.
#разбор_задач
1️⃣ KNN — это параметрический метод машинного обучения?
Метод k -ближайших соседей (KNN) считается непараметрическим, потому что он не делает предположений о распределении данных и не имеет фиксированного набора параметров, которые обучаются заранее.
В параметрических методах (например, линейной регрессии или логистической регрессии) модель на этапе обучения оценивает параметры, которые затем используются для получения предсказаний. В KNN модель не «учится» в традиционном смысле: нет фиксированной функции, описывающей взаимосвязь между признаками и целевой переменной.
2️⃣ Какая оценка дисперсии считается смещённой?
Оценка дисперсии считается смещённой, если её математическое ожидание не совпадает с истинным значением дисперсии генеральной совокупности. Когда мы делим на n (размер выборки), а не на n-1, то систематически занижаем дисперсию, так как не учитываем факт того, что среднее вычислено по той же выборке и поэтому менее точно приближает истинное среднее генеральной совокупности.
В случае деления на n-1 мы компенсируем «потерю одной степени свободы» из-за использования выборочного среднего вместо истинного.
#разбор_задач
👍4