⚙️ 9 концепций, которые вы должны изучить для своих интервью по науке о данных
С появлением Интернета бесконечные ресурсы доступны всего одним щелчком мыши, и в результате мы можем получить доступ к любой логике и синтаксисам, которые мы ищем, но это может быть как благословением, так и проклятием. Если не использовать разумно, чрезмерная зависимость от Интернета может замедлить нас. Мы склонны чрезмерно полагаться на Интернет для простой логики и синтаксиса Python, и поэтому мы не тренируем свой мозг запоминать эти концепции. Итак, каждый раз, когда мы используем даже часто используемые синтаксисы, мы привыкаем их гуглить — это нас тормозит, и другие видят в нас дилетантов.
Итак, каково решение?
Вы ищете синтаксис/концепцию в Google первые 2-3 раза, когда вы ее используете, а затем пытаетесь реализовать ее самостоятельно на 4-й раз.
В этом блоге я познакомлю вас с некоторыми из наиболее эффективных концепций науки о данных, которые вам следует изучить, чтобы сэкономить время и стать более продуктивным специалистом по науке о данных. Если вы уже знакомы с этими концепциями, вы можете использовать этот блог, чтобы освежить свое понимание
➡️ Читать дальше
@machinelearning_interview
С появлением Интернета бесконечные ресурсы доступны всего одним щелчком мыши, и в результате мы можем получить доступ к любой логике и синтаксисам, которые мы ищем, но это может быть как благословением, так и проклятием. Если не использовать разумно, чрезмерная зависимость от Интернета может замедлить нас. Мы склонны чрезмерно полагаться на Интернет для простой логики и синтаксиса Python, и поэтому мы не тренируем свой мозг запоминать эти концепции. Итак, каждый раз, когда мы используем даже часто используемые синтаксисы, мы привыкаем их гуглить — это нас тормозит, и другие видят в нас дилетантов.
Итак, каково решение?
Вы ищете синтаксис/концепцию в Google первые 2-3 раза, когда вы ее используете, а затем пытаетесь реализовать ее самостоятельно на 4-й раз.
В этом блоге я познакомлю вас с некоторыми из наиболее эффективных концепций науки о данных, которые вам следует изучить, чтобы сэкономить время и стать более продуктивным специалистом по науке о данных. Если вы уже знакомы с этими концепциями, вы можете использовать этот блог, чтобы освежить свое понимание
➡️ Читать дальше
@machinelearning_interview
Что делать, если классы не сбалансированы?
Я бы тут уточнил вопрос: кому и когда делать? Причины дисбаланса бывают разные, иногда он устраним на этапе постановки задачи, иногда он совсем неустраним и надо продумать подходящую метрику качества, а если уже всё продумано, то часто ничего не надо делать.
Впрочем, совсем полный ответ на этот вопрос должен затронуть и особенности локального тестирования: при разбиении на фолды надо сохранять пропорцию классов, т.н. StratifiedKFold.
Есть куча искусственных приёмов для восстановления баланса классов, например SMOTE. Но как показывает практика, лучше с ними не связываться, гораздо важнее подобрать правильную модель и корректно преобразовать её результаты (например, с помощью калибровки). В крайнем случае, можно использовать пересемплирование (resampling) данных, например, дублирование объектов малого класса. Для желающих сказать побольше при ответе на этот вопрос — вот ссылка.
@machinelearning_interview
Я бы тут уточнил вопрос: кому и когда делать? Причины дисбаланса бывают разные, иногда он устраним на этапе постановки задачи, иногда он совсем неустраним и надо продумать подходящую метрику качества, а если уже всё продумано, то часто ничего не надо делать.
Впрочем, совсем полный ответ на этот вопрос должен затронуть и особенности локального тестирования: при разбиении на фолды надо сохранять пропорцию классов, т.н. StratifiedKFold.
Есть куча искусственных приёмов для восстановления баланса классов, например SMOTE. Но как показывает практика, лучше с ними не связываться, гораздо важнее подобрать правильную модель и корректно преобразовать её результаты (например, с помощью калибровки). В крайнем случае, можно использовать пересемплирование (resampling) данных, например, дублирование объектов малого класса. Для желающих сказать побольше при ответе на этот вопрос — вот ссылка.
@machinelearning_interview
Как вы обрабатываете пропуски? Какие методы подстановки вы рекомендуете?
Существует несколько способов обработки пропущенных данных:
- удаление строк с пропущенными данными;
- подстановка среднего значения, медианы или моды;
- присваивание уникального значения;
- предсказание пропущенных значений;
- использование алгоритма, допускающего пропуски – например, случайный лес.
Лучший метод – удалить строки с пропусками, поскольку это гарантирует, что мы не добавим никаких ошибок или сдвигов, и, в конечном счете, получим точную и надежную модель. Однако, этот метод можно использовать лишь в тех случаях, когда данных много, а процент пропусков невысок.
@machinelearning_interview
Существует несколько способов обработки пропущенных данных:
- удаление строк с пропущенными данными;
- подстановка среднего значения, медианы или моды;
- присваивание уникального значения;
- предсказание пропущенных значений;
- использование алгоритма, допускающего пропуски – например, случайный лес.
Лучший метод – удалить строки с пропусками, поскольку это гарантирует, что мы не добавим никаких ошибок или сдвигов, и, в конечном счете, получим точную и надежную модель. Однако, этот метод можно использовать лишь в тех случаях, когда данных много, а процент пропусков невысок.
@machinelearning_interview
Дайте простой пример того, как постановка экспериментов может помочь ответить на вопрос о поведении. Как экспериментальные данные контрастируют с данными наблюдений?
Ответ
Данные наблюдений получаются от исследования наблюдений, когда мы наблюдаем значения нескольких переменных и определяем, есть ли между ними корреляция.
Экспериментальные данные получаются от исследования экспериментов, когда мы контролируем некоторые переменные и сохраняем их значения неизменными, определяя их влияние на результат.
Вот пример постановки эксперимента: разбейте группу на две части. Контрольная группа живет, как обычно. Тестовую группу просят выпивать по бокалу вина каждый вечер на протяжении 30 дней. После этого можно исследовать, как вино влияет на сон.
@machinelearning_interview
Ответ
Данные наблюдений получаются от исследования наблюдений, когда мы наблюдаем значения нескольких переменных и определяем, есть ли между ними корреляция.
Экспериментальные данные получаются от исследования экспериментов, когда мы контролируем некоторые переменные и сохраняем их значения неизменными, определяя их влияние на результат.
Вот пример постановки эксперимента: разбейте группу на две части. Контрольная группа живет, как обычно. Тестовую группу просят выпивать по бокалу вина каждый вечер на протяжении 30 дней. После этого можно исследовать, как вино влияет на сон.
@machinelearning_interview
Для тестирования новой и старой систем сортировки пациентов неотложной помощи исследователи выбрали 20 ночей и случайным образом назначили новую систему сортировки на 10 из них, в остальных оставив старую. Они рассчитали среднее время ожидания (СВО) доктора для каждой ночи. Для новой системы СВО = 3 часа с отклонением 0.60, тогда как для старой было 5 часов с отклонением 0.68. Оцените 95% доверительный интервал для разницы в среднем СВО между системами. Считайте дисперсию постоянной.
Воспользуемся формулой нахождения доверительного интервала для двух независимых выборок (используем t-таблицу для n1+n2-2 степеней свободы)
Доверительный интервал – это среднее +/- t-оценка * стандартную ошибку.
Среднее значение = новое среднее – старое среднее = 3-5 = -2.
t-оценка равна 2.101, учитывая 18 степеней свободы (20-2) и 95% доверительный интервал (смотри Картинку).
Стандартная ошибка = sqrt(0.62*9+0.682*9)/(10+10–2)) * sqrt(1/10+1/10) = 0.352. Доверительный интервал = [-2.75, -1.25].
@machinelearning_interview
Воспользуемся формулой нахождения доверительного интервала для двух независимых выборок (используем t-таблицу для n1+n2-2 степеней свободы)
Доверительный интервал – это среднее +/- t-оценка * стандартную ошибку.
Среднее значение = новое среднее – старое среднее = 3-5 = -2.
t-оценка равна 2.101, учитывая 18 степеней свободы (20-2) и 95% доверительный интервал (смотри Картинку).
Стандартная ошибка = sqrt(0.62*9+0.682*9)/(10+10–2)) * sqrt(1/10+1/10) = 0.352. Доверительный интервал = [-2.75, -1.25].
@machinelearning_interview
Вы баллотируетесь на пост, и ваш социолог опросил 100 избирателей, 60 из которых сказали, что собираются голосовать за вас. Можете ли вы быть уверены в победе?
Ответ
Примем для простоты, что у вас только один соперник.
Также примем, что желаемый доверительный интервал составляет 95%. Это даст нам z-оценку 1.96. Формула на картинке.
В нашей задаче p = 0.6, z = 1.96, n = 100, что дает доверительный интервал [50.4, 69.6].
Таким образом, при доверительном интервале 95% вы можете расслабиться, только если ничего не имеете против победы с минимальным перевесом. В противном случае придется добиться 61 голоса из 100 опрошенных, чтобы не беспокоиться.
@machinelearning_interview
Ответ
Примем для простоты, что у вас только один соперник.
Также примем, что желаемый доверительный интервал составляет 95%. Это даст нам z-оценку 1.96. Формула на картинке.
В нашей задаче p = 0.6, z = 1.96, n = 100, что дает доверительный интервал [50.4, 69.6].
Таким образом, при доверительном интервале 95% вы можете расслабиться, только если ничего не имеете против победы с минимальным перевесом. В противном случае придется добиться 61 голоса из 100 опрошенных, чтобы не беспокоиться.
@machinelearning_interview
🔥 Полезнейшая Подборка каналов
🖥 Machine learning
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
🖥 Python
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
🖥 Java
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
🖥 Javascript / front
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
👣 Golang
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
🖥 Linux
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
🖥 SQL
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
📢 English for coders
@english_forprogrammers - Английский для программистов
🖥 Github
@github_code
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
@english_forprogrammers - Английский для программистов
@github_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Какими способами можно сделать модель более устойчивой к выбросам?
Ответ
Выбросы обычно определяются по отношению к распределению. Они могут быть удалены на этапе предварительной обработки (до любого этапа обучения)…
Странно задавать вопрос именно в такой форме, чтобы услышать именно такой ответ! Как СДЕЛАТЬ МОДЕЛЬ устойчивой — надо до её использования повозиться с данными. Если бы вопрос был «как решить проблему выбросов», то ответ был бы корректным, причём я бы его разнёс по пунктам:
- удаление выбросов на этапе подготовки данных (в том числе, нахождение аномальных значений, винзоризация, стат. критерии, преобразование признаков и т.п.),
- применение т.н. робастных моделей (например, линейных с настройкой не на сумму квадратов ошибки, а на сумму модулей),
- удаление выбросов и переобучение моделей (например, удаляя объекты, на которых модель ошибается сильнее).
А вообще, я бы попросил уточнить вопрос: хотелось бы немного знать природу выбросов, чтобы выбрать правильную стратегию решения.
@machinelearning_interview
Ответ
Выбросы обычно определяются по отношению к распределению. Они могут быть удалены на этапе предварительной обработки (до любого этапа обучения)…
Странно задавать вопрос именно в такой форме, чтобы услышать именно такой ответ! Как СДЕЛАТЬ МОДЕЛЬ устойчивой — надо до её использования повозиться с данными. Если бы вопрос был «как решить проблему выбросов», то ответ был бы корректным, причём я бы его разнёс по пунктам:
- удаление выбросов на этапе подготовки данных (в том числе, нахождение аномальных значений, винзоризация, стат. критерии, преобразование признаков и т.п.),
- применение т.н. робастных моделей (например, линейных с настройкой не на сумму квадратов ошибки, а на сумму модулей),
- удаление выбросов и переобучение моделей (например, удаляя объекты, на которых модель ошибается сильнее).
А вообще, я бы попросил уточнить вопрос: хотелось бы немного знать природу выбросов, чтобы выбрать правильную стратегию решения.
@machinelearning_interview
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ
Поскольку мы анализируем количество событий (заражений), произошедших за определенный интервал времени, нужно использовать распределение Пуассона.
произошлособытий
Нуль-гипотеза: 1 заражение на 100 человеко-дней или меньше
Альтернативная гипотеза: больше 1 заражения на 100 человеко-дней.
k (фактическое) = 10 заражений.
Лямбда (теоретическое) = 1/100 * 1787.
P = 0.032372 или 3.2372% (можно рассчитать с помощью using.poisson() в Excel, ppois в R или scipy.stats.poisson в Python)
Поскольку значение P меньше альфы (при уровне значимости 5%), мы отвергаем нулевую гипотезу, и делаем вывод, что больница не соответствует стандарту.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Зачем нужна разметка данных для нейросети?
Ответ
Качество проекта машинного обучения напрямую зависит от того, как вы подходите к решению 3-х основных задач: сбор данных, их предобработка и разметка.
Разметка обычно представляет собой сложный и трудоемкий процесс. Например, системы распознавания изображений часто предполагают рисование ограничивающих рамок вокруг объектов, в то время как системы рекомендаций по продуктам и системы анализа настроений могут потребовать знания культурного контекста. Не забывайте также, что массив данных может содержать десятки и более тысяч образцов, нуждающихся в разметке.
===========================
Таким образом, подход к созданию проекта машинного обучения будет зависеть от сложности поставленной задачи, масштаба проекта и графика его реализации. Учитывая эти факторы, мы выделили 5 основных подходов к разметке данных и привели аргументы за и против каждого из них.
Различные способы разметки данных для машинного обучения делятся на следующие категории:
===========================
Аутсорсинг: это хороший способ в тех случаях, когда команда на разметку данных нужна на определенный период времени. Разместив объявление на рекрутинговых сайтах или в своих социальных сетях, вы сможете сформировать базу потенциальных исполнителей. Далее в ходе собеседования и тестирования будут определены те, кто обладает необходимыми навыками. Это отличный вариант для формирования временной команды, но это требует четкого планирования и организации; новые сотрудники должны быть обучены, чтобы участвовать и выполнять работу по мере необходимости. Кроме того, если у вас еще нет инструмента разметки данных, вам необходимо его приобрести.
============================
Краудсорсинг: краудсорсинговые платформы — это способ решения конкретной задачи с помощью большого количества исполнителей. Так как в краудсорсинге участвуют исполнители из самых разных стран и можно фильтровать по уровню, получается быстрый и достаточно бюджетный метод. При этом краудсорсинговые платформы сильно различаются по квалификации исполнителей, контролю качества и инструментам управления проектами. Поэтому при выборе краудсорсинговой площадки нужно учитывать все эти параметры.
=============================
Синтетический метод: синтетическая разметка означает создание или генерацию новых данных, содержащих атрибуты, необходимые для вашего конкретного проекта. Одним из способов создания синтетической разметки является использование генеративно-состязательной сети (GAN). GAN использует две нейронные сети (генератор и дискриминатор), которые конкурируют друг с другом, создавая ложные данные и различая настоящие данные от ложных. В результате получаются очень реалистичные новые данные. GAN и другие методы синтетической разметки позволяют получать совершенно новые данные из существующих массивов. Этот метод очень экономичен по времени и отлично подходит для получения высококачественных данных. Однако в настоящее время синтетические методы разбиения требуют больших вычислительных мощностей, что делает их очень дорогими.
===============================
«Программный метод»: предусматривает использование скриптов для автоматической разметки данных. Этот процесс позволяет автоматизировать задачи, в том числе разметку изображений и текстов, что позволяет значительно сократить количество исполнителей. Кроме того, компьютерная программа не будет делать перерывов на отдых, а значит, вы сможете получить результаты гораздо быстрее. Однако этот метод все еще далек от совершенства, а при программной разметке часто требуется группа контроля качества, которая попутно следит за правильностью разметки данных.
@machinelearning_interview
Ответ
Качество проекта машинного обучения напрямую зависит от того, как вы подходите к решению 3-х основных задач: сбор данных, их предобработка и разметка.
Разметка обычно представляет собой сложный и трудоемкий процесс. Например, системы распознавания изображений часто предполагают рисование ограничивающих рамок вокруг объектов, в то время как системы рекомендаций по продуктам и системы анализа настроений могут потребовать знания культурного контекста. Не забывайте также, что массив данных может содержать десятки и более тысяч образцов, нуждающихся в разметке.
===========================
Таким образом, подход к созданию проекта машинного обучения будет зависеть от сложности поставленной задачи, масштаба проекта и графика его реализации. Учитывая эти факторы, мы выделили 5 основных подходов к разметке данных и привели аргументы за и против каждого из них.
Различные способы разметки данных для машинного обучения делятся на следующие категории:
===========================
Аутсорсинг: это хороший способ в тех случаях, когда команда на разметку данных нужна на определенный период времени. Разместив объявление на рекрутинговых сайтах или в своих социальных сетях, вы сможете сформировать базу потенциальных исполнителей. Далее в ходе собеседования и тестирования будут определены те, кто обладает необходимыми навыками. Это отличный вариант для формирования временной команды, но это требует четкого планирования и организации; новые сотрудники должны быть обучены, чтобы участвовать и выполнять работу по мере необходимости. Кроме того, если у вас еще нет инструмента разметки данных, вам необходимо его приобрести.
============================
Краудсорсинг: краудсорсинговые платформы — это способ решения конкретной задачи с помощью большого количества исполнителей. Так как в краудсорсинге участвуют исполнители из самых разных стран и можно фильтровать по уровню, получается быстрый и достаточно бюджетный метод. При этом краудсорсинговые платформы сильно различаются по квалификации исполнителей, контролю качества и инструментам управления проектами. Поэтому при выборе краудсорсинговой площадки нужно учитывать все эти параметры.
=============================
Синтетический метод: синтетическая разметка означает создание или генерацию новых данных, содержащих атрибуты, необходимые для вашего конкретного проекта. Одним из способов создания синтетической разметки является использование генеративно-состязательной сети (GAN). GAN использует две нейронные сети (генератор и дискриминатор), которые конкурируют друг с другом, создавая ложные данные и различая настоящие данные от ложных. В результате получаются очень реалистичные новые данные. GAN и другие методы синтетической разметки позволяют получать совершенно новые данные из существующих массивов. Этот метод очень экономичен по времени и отлично подходит для получения высококачественных данных. Однако в настоящее время синтетические методы разбиения требуют больших вычислительных мощностей, что делает их очень дорогими.
===============================
«Программный метод»: предусматривает использование скриптов для автоматической разметки данных. Этот процесс позволяет автоматизировать задачи, в том числе разметку изображений и текстов, что позволяет значительно сократить количество исполнителей. Кроме того, компьютерная программа не будет делать перерывов на отдых, а значит, вы сможете получить результаты гораздо быстрее. Однако этот метод все еще далек от совершенства, а при программной разметке часто требуется группа контроля качества, которая попутно следит за правильностью разметки данных.
@machinelearning_interview
Объясните дилемму смещения-дисперсии (bias-variance tradeoff) и приведите примеры алгоритмов с высоким и низким смещением. (Тема: Алгоритмы)
Ответ
Смещение (bias) – это ошибка, внесенная в вашу модель из-за чрезмерного упрощения алгоритма машинного обучения, которое может привести к недообучению. В процессе обучения модели делаются упрощенные предположения, чтобы сделать целевую функцию более простой для понимания. Алгоритмы машинного обучения с низким смещением включают деревья решений, KNN и SVM. Высоким смещением, в частности, отличаются линейная и логистическая регрессия.
Дисперсия (variance) – это ошибка, внесенная в вашу модель сложным алгоритмом машинного обучения, при котором модель усваивает также и шум из тренировочного набора данных, что приводит к плохой точности на тестовом наборе данных. Это может привести к высокой чувствительности и переобучению.
Обычно, по мере усложения модели вы увидите снижение ошибки вследствие уменьшения смещения модели. Однако, это происходит только до определенной точки – и если вы будете усложнять свою модель дальше, в конце концов вы ее переобучите.
@machinelearning_interview
Ответ
Смещение (bias) – это ошибка, внесенная в вашу модель из-за чрезмерного упрощения алгоритма машинного обучения, которое может привести к недообучению. В процессе обучения модели делаются упрощенные предположения, чтобы сделать целевую функцию более простой для понимания. Алгоритмы машинного обучения с низким смещением включают деревья решений, KNN и SVM. Высоким смещением, в частности, отличаются линейная и логистическая регрессия.
Дисперсия (variance) – это ошибка, внесенная в вашу модель сложным алгоритмом машинного обучения, при котором модель усваивает также и шум из тренировочного набора данных, что приводит к плохой точности на тестовом наборе данных. Это может привести к высокой чувствительности и переобучению.
Обычно, по мере усложения модели вы увидите снижение ошибки вследствие уменьшения смещения модели. Однако, это происходит только до определенной точки – и если вы будете усложнять свою модель дальше, в конце концов вы ее переобучите.
@machinelearning_interview
Ответ
P-значение используется для проверки значимости результатов после статистического теста гипотезы. P-значения помогают анализирующему делать выводы и всегда находятся в диапазоне между 0 и 1.
- P-значение, превышающее 0.05, обозначает недостаточные доказательства против нулевой гипотезы – а это значит, что нулевая гипотеза не может быть отвергнута.
- P-значение, меньшее 0.05, обозначает сильные доказательства против нулевой гипотезы – это значит, что нулевая гипотеза может быть отвергнута.
- P-значение, равное 0.05, находится на границе, то есть мы не можем сделать уверенного вывода о том, можно ли отвергнуть нулевую гипотезу.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Как бы вы справились с разными формами сезонности
Ответ
В реальных данных временных рядов (например, количества плюшевых мишек, закупаемых на фабрике игрушек) часто встречаются различные виды сезонности, которые могут пересекаться друг с другом. Годичная сезонность, вроде пика перед Рождеством и летнего спада, может сочетаться с месячной, недельной или даже дневной сезонностью. Это делает временной ряд нестационарным, поскольку среднее значение переменной различно для разных периодов времени.
Лучший способ удаления сезонности из данных – это дифференцирование временного ряда. Это процесс получения разности между датой x и x минус период сезонности, которым может быть год, месяц, или что-нибудь другое. При этом первый период сырых данных теряется, поскольку из них нечего вычитать.
@machinelearning_interview
Ответ
В реальных данных временных рядов (например, количества плюшевых мишек, закупаемых на фабрике игрушек) часто встречаются различные виды сезонности, которые могут пересекаться друг с другом. Годичная сезонность, вроде пика перед Рождеством и летнего спада, может сочетаться с месячной, недельной или даже дневной сезонностью. Это делает временной ряд нестационарным, поскольку среднее значение переменной различно для разных периодов времени.
Лучший способ удаления сезонности из данных – это дифференцирование временного ряда. Это процесс получения разности между датой x и x минус период сезонности, которым может быть год, месяц, или что-нибудь другое. При этом первый период сырых данных теряется, поскольку из них нечего вычитать.
@machinelearning_interview
This media is not supported in your browser
VIEW IN TELEGRAM
Всегда ли методы градиентного спуска сходятся в одной и той же точке?
Ответ
Нет, методы градиентного спуска не всегда сходятся в одной и той же точке. Поскольку пространство ошибок может иметь несколько локальных минимумов, различные методы градиентного спуска могут сходиться в разных точках, в зависимости от их характеристик вроде момента или веса.
Здесь и в посте показаны GIF'ы разных оптимизаторов (методов градиентного спуска) с демонстрацией их работы в пространстве ошибок.
@machinelearning_interview
Ответ
Нет, методы градиентного спуска не всегда сходятся в одной и той же точке. Поскольку пространство ошибок может иметь несколько локальных минимумов, различные методы градиентного спуска могут сходиться в разных точках, в зависимости от их характеристик вроде момента или веса.
Здесь и в посте показаны GIF'ы разных оптимизаторов (методов градиентного спуска) с демонстрацией их работы в пространстве ошибок.
@machinelearning_interview
На пустынном шоссе вероятность появления автомобиля за 30-минутный период составляет 0.95. Какова вероятность его появления за 10 минут?
Это вопрос труден только потому, что та информация, которую вы получили, не является той, которую вы хотели бы иметь. Однако в реальной жизни такое часто встречается.
Ответ
@machinelearning_interview
Это вопрос труден только потому, что та информация, которую вы получили, не является той, которую вы хотели бы иметь. Однако в реальной жизни такое часто встречается.
Ответ
@machinelearning_interview
Ответ
Данные из реального мира часто имеют пропуски. Есть множество методов для их заполнения. Полное «лечение» – это процесс удаления каждой строки, содержащей значение NA. Это допустимо, если значений NA не очень много, они задевают не очень много строк, и данных достаточно – в противном случае, мы можем потерять что-нибудь важное. В данных из реального мира удаление любых строк, содержащих NA, может привести к потере наблюдаемых паттернов в данных.
Если полное удаление пропусков невозможно, существует множество методов их заполнения – такие, как заполнение средним значением, медианой или модой. Какой из них лучше, зависит от контекста.
Другой метод – это использовать k ближайших соседей (KNN), чтобы определить ближайших соседей строки с пропущенными данными и использовать среднее значение, медиану или моду для этих соседей. Это обеспечивает большую настраиваемость и управляемость, чем можно добиться использованием статистических значений.
Если метод заполнения пропусков реализован неаккуратно, оно может привести к ошибке выборки – любая модель хороша настолько, насколько хороши ее исходные данные, и если данные отклоняются от реальности, то же самое будет с моделью.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие приемущества даёт слой батч нормализации.
Ответ
➡️ Возможность использовать больший learning rate. Батч нормализация сглаживает ландшафт функции ошибки, тем самым позволяя использовать бо́льший lr без опаски проскочить локальный минимум.
➡️ Ускорение обучения. За счёт сохранения распределения фичей между слоями, нейронная сеть обучается быстрее.
➡️ Регуляризация. Статистики считаются на батче и экспоненциального сглаживаются — появляется эффект регуляризации.
➡️ Ёмкость сети не тратится понапрасну. Так как для основных слоёв сети распределение фичей практически не меняется, им не нужно тратить ману на заучивание распределений, а можно сконцентрироваться на поиске новых важных фичей.
@machinelearning_interview
Ответ
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое Hadoop MapReduce?
Hadoop MapReduce — программный каркас для программирования распределённых вычислений в рамках парадигмы MapReduce. Разработчику приложения для Hadoop MapReduce необходимо реализовать базовый обработчик, который на каждом вычислительном узле кластера обеспечит преобразование исходных пар «ключ — значение» в промежуточный набор пар «ключ — значение» (класс, реализующий интерфейс Mapper, назван по функции высшего порядка Map), и обработчик, сводящий промежуточный набор пар в окончательный, сокращённый набор (свёртку, класс, реализующий интерфейс Reducer). Каркас передаёт на вход свёртки отсортированные выводы от базовых обработчиков, сведе́ние состоит из трёх фаз:
shuffle (тасовка, выделение нужной секции вывода)
sort (сортировка, группировка по ключам выводов от распределителей — досортировка, требующаяся в случае, когда разные атомарные обработчики возвращают наборы с одинаковыми ключами, при этом, правила сортировки на этой фазе могут быть заданы программно и использовать какие-либо особенности внутренней структуры ключей)
reduce (свёртка списка) — получения результирующего набора. Для некоторых видов обработки свёртка не требуется, и каркас возвращает в этом случае набор отсортированных пар, полученных базовыми обработчиками.
Hadoop MapReduce позволяет создавать задания как с базовыми обработчиками, так и со свёртками, написанными без использования Java: утилиты Hadoop streaming позволяют использовать в качестве базовых обработчиков и свёрток любой исполняемый файл, работающий со стандартным вводом-выводом операционной системы (например, утилиты командной оболочки UNIX), есть также SWIG-совместимый прикладной интерфейс программирования Hadoop pipes на C++. Также, в состав дистрибутивов Hadoop входят реализации различных конкретных базовых обработчиков и свёрток, наиболее типично используемых в распределённой обработке.
В первых версиях Hadoop MapReduce включал планировщик заданий (JobTracker), начиная с версии 2.0 эта функция перенесена в YARN, и начиная с этой версии модуль Hadoop MapReduce реализован поверх YARN. Программные интерфейсы по большей части сохранены, однако полной обратной совместимости нет (то есть для запуска программ, написанных для предыдущих версий API, для работы в YARN в общем случае требуется их модификация или рефакторинг, и лишь при некоторых ограничениях возможны варианты обратной двоичной совместимости).
@machinelearning_interview
Hadoop MapReduce — программный каркас для программирования распределённых вычислений в рамках парадигмы MapReduce. Разработчику приложения для Hadoop MapReduce необходимо реализовать базовый обработчик, который на каждом вычислительном узле кластера обеспечит преобразование исходных пар «ключ — значение» в промежуточный набор пар «ключ — значение» (класс, реализующий интерфейс Mapper, назван по функции высшего порядка Map), и обработчик, сводящий промежуточный набор пар в окончательный, сокращённый набор (свёртку, класс, реализующий интерфейс Reducer). Каркас передаёт на вход свёртки отсортированные выводы от базовых обработчиков, сведе́ние состоит из трёх фаз:
shuffle (тасовка, выделение нужной секции вывода)
sort (сортировка, группировка по ключам выводов от распределителей — досортировка, требующаяся в случае, когда разные атомарные обработчики возвращают наборы с одинаковыми ключами, при этом, правила сортировки на этой фазе могут быть заданы программно и использовать какие-либо особенности внутренней структуры ключей)
reduce (свёртка списка) — получения результирующего набора. Для некоторых видов обработки свёртка не требуется, и каркас возвращает в этом случае набор отсортированных пар, полученных базовыми обработчиками.
Hadoop MapReduce позволяет создавать задания как с базовыми обработчиками, так и со свёртками, написанными без использования Java: утилиты Hadoop streaming позволяют использовать в качестве базовых обработчиков и свёрток любой исполняемый файл, работающий со стандартным вводом-выводом операционной системы (например, утилиты командной оболочки UNIX), есть также SWIG-совместимый прикладной интерфейс программирования Hadoop pipes на C++. Также, в состав дистрибутивов Hadoop входят реализации различных конкретных базовых обработчиков и свёрток, наиболее типично используемых в распределённой обработке.
В первых версиях Hadoop MapReduce включал планировщик заданий (JobTracker), начиная с версии 2.0 эта функция перенесена в YARN, и начиная с этой версии модуль Hadoop MapReduce реализован поверх YARN. Программные интерфейсы по большей части сохранены, однако полной обратной совместимости нет (то есть для запуска программ, написанных для предыдущих версий API, для работы в YARN в общем случае требуется их модификация или рефакторинг, и лишь при некоторых ограничениях возможны варианты обратной двоичной совместимости).
@machinelearning_interview
Часто разметка данных оказывается самой серьёзной преградой для машинного обучения — сбор больших объёмов данных, их обработка и разметка для создания достаточно производительной модели могут занимать недели или даже месяцы. Активное обучение позволяет обучать модели машинного обучения на гораздо меньшем количестве размеченных данных. Лучшие компании в сфере ИИ, например, Tesla, уже используют активное обучение. Мы считаем, что и вам тоже оно необходимо.
В этом посте мы расскажем, что такое активное обучение, рассмотрим инструменты для его практического применения и продемонстрируем, как мы сами упрощаем внедрение активного обучения в процесс NLP.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM