💡 Как в условиях недостатка данных улучшить качества классификатора
Одна из основных проблем человека, который занимается машинным обучением, — данные. Исследователи сталкиваются с плохим качеством данных и/или их отсутствием. Рассмотрим способы улучшение метрик классификатора в условиях малого количества признаков.
В машинном обучении одним из основных критериев успеха является правильная предобработка данных. В условиях отсутствия дополнительных факторов качество классификатора можно улучшить за счет обеспечения монотонности целевой переменной от признаков, а также за счет увеличения порядка пространства признаков.
Цель кейса: определить, куда доставлялся заказ, основываясь на двух признаках: времени размещения и времени доставки.
Что делаем:
- Преобразовываем время к удобному формату
- Строим графики для генерации гипотез
- Строим классификатор №1 и визуализируем результаты
- Обеспечиваем монотонность целевой переменной, строим классификатор №2.1. Увеличиваем порядок пространства признаков, строим классификатор №2.2.
- Обеспечиваем монотонность целевой переменной и увеличиваем порядок пространства признаков одновременно, строим классификатор №3, наблюдаем улучшение метрик.
➡️ Читать дальше
@data_analysis_ml
Одна из основных проблем человека, который занимается машинным обучением, — данные. Исследователи сталкиваются с плохим качеством данных и/или их отсутствием. Рассмотрим способы улучшение метрик классификатора в условиях малого количества признаков.
В машинном обучении одним из основных критериев успеха является правильная предобработка данных. В условиях отсутствия дополнительных факторов качество классификатора можно улучшить за счет обеспечения монотонности целевой переменной от признаков, а также за счет увеличения порядка пространства признаков.
Цель кейса: определить, куда доставлялся заказ, основываясь на двух признаках: времени размещения и времени доставки.
Что делаем:
- Преобразовываем время к удобному формату
- Строим графики для генерации гипотез
- Строим классификатор №1 и визуализируем результаты
- Обеспечиваем монотонность целевой переменной, строим классификатор №2.1. Увеличиваем порядок пространства признаков, строим классификатор №2.2.
- Обеспечиваем монотонность целевой переменной и увеличиваем порядок пространства признаков одновременно, строим классификатор №3, наблюдаем улучшение метрик.
➡️ Читать дальше
@data_analysis_ml
👍17🔥1
🌍 Создание приложения на Python для систематизации фото по геолокации и дате
Как-то я переустановил ОС на ноутбуке и собрал всевозможные резервные копии фотографий с разных устройств в одном месте. Получившийся каталог заслуживал только одного определения — полный бардак. Он включал резервные копии с различных телефонов и других устройств, при этом некоторые из них отличались очень сложной структурой папок. За исключением нескольких тематических названий папок, все фотографии были совершенно не отсортированы.
О сортировке вручную не могло быть и речи. Зато представился превосходный случай написать приложение для систематизации фотографий, о котором я давно подумывал. Приложение должно:
принимать аргументы командной строки, позволяя использовать его в bash-скриптах;
основываться на базе данных (БД) для хранения необходимой информации;
сортировать и находить фотографии по дате и местоположению;
распознавать людей, объекты на фото и проводить выборку изображений по этим категориям.
Из материала статьи вы узнаете, как извлекать необходимые метаданные из фотографий, создавать и заполнять БД PostGIS, а также запрашивать изображения по местоположению.
➡️ Читать дальше
⚙️ Код
@data_analysis_ml
Как-то я переустановил ОС на ноутбуке и собрал всевозможные резервные копии фотографий с разных устройств в одном месте. Получившийся каталог заслуживал только одного определения — полный бардак. Он включал резервные копии с различных телефонов и других устройств, при этом некоторые из них отличались очень сложной структурой папок. За исключением нескольких тематических названий папок, все фотографии были совершенно не отсортированы.
О сортировке вручную не могло быть и речи. Зато представился превосходный случай написать приложение для систематизации фотографий, о котором я давно подумывал. Приложение должно:
принимать аргументы командной строки, позволяя использовать его в bash-скриптах;
основываться на базе данных (БД) для хранения необходимой информации;
сортировать и находить фотографии по дате и местоположению;
распознавать людей, объекты на фото и проводить выборку изображений по этим категориям.
Из материала статьи вы узнаете, как извлекать необходимые метаданные из фотографий, создавать и заполнять БД PostGIS, а также запрашивать изображения по местоположению.
➡️ Читать дальше
⚙️ Код
@data_analysis_ml
👍20❤1🔥1
🚀 Статистический анализ данных с помощью SKLEARN
Основная цель работы – это проведение регрессионного и корреляционного анализа на основе 10000 входных данных, которые являются файлами в формате json многоуровневой вложенности.
➡️ Читать дальше
@data_analysis_ml
Основная цель работы – это проведение регрессионного и корреляционного анализа на основе 10000 входных данных, которые являются файлами в формате json многоуровневой вложенности.
➡️ Читать дальше
@data_analysis_ml
👍11🔥2❤1
Сжатие текстовых данных методом арифметического кодирования
АРИФМЕТИЧЕСКОЕ КОДИРОВАНИЕ
Арифметическое кодирование (АК) — это статистический метод сжатия данных, работающий по принципу кодирования одного символа за один раз. Длина закодированного выходного кода каждого символа может варьироваться в зависимости от вероятности частоты появления символа. Меньшее количество битов используется для кодирования символов, которые встречаются с высокой вероятностью, а большее количество – с низкой вероятностью.
Идея алгоритма АК:
При арифметическом кодировании слово представляется в виде интервала действительных чисел от 0 до 1. С увеличением длины слова, уменьшается интервал для его представления и увеличивается число бит для его определения. Более вероятные символы уменьшают интервал на меньшую величину, чем маловероятные символы, и, следовательно, добавляют меньше битов к слову.
➡️ Читать дальше
⚙️ Код
@data_analysis_ml
АРИФМЕТИЧЕСКОЕ КОДИРОВАНИЕ
Арифметическое кодирование (АК) — это статистический метод сжатия данных, работающий по принципу кодирования одного символа за один раз. Длина закодированного выходного кода каждого символа может варьироваться в зависимости от вероятности частоты появления символа. Меньшее количество битов используется для кодирования символов, которые встречаются с высокой вероятностью, а большее количество – с низкой вероятностью.
Идея алгоритма АК:
При арифметическом кодировании слово представляется в виде интервала действительных чисел от 0 до 1. С увеличением длины слова, уменьшается интервал для его представления и увеличивается число бит для его определения. Более вероятные символы уменьшают интервал на меньшую величину, чем маловероятные символы, и, следовательно, добавляют меньше битов к слову.
➡️ Читать дальше
⚙️ Код
@data_analysis_ml
👍8❤1🥰1
⌚ Gluon Time Series – библиотека от Amazon для работы с временными рядами
Данные временных рядов, то есть наборы данных, которые индексированы по времени, присутствуют в различных областях и отраслях. Например, розничный торговец может подсчитывать и сохранять количество проданных единиц для каждого продукта в конце каждого рабочего дня. Для каждого продукта это приводит к временному ряду ежедневных продаж. Электроэнергетическая компания может измерять количество электроэнергии, потребляемой каждым домохозяйством за фиксированный интервал, например, каждый час. Это приводит к сбору временных рядов потребления электроэнергии. Клиенты могут использовать данные для записи различных показателей, относящихся к их ресурсам и услугам, что приводит к сбору данных, которые основаны на временных рядах.
К распространенным задачам машинного обучения, относящимся к временным рядам, являются:
экстраполяция (прогнозирование),
интерполяция (сглаживание),
обнаружение (например, выбросы, аномалии),
классификация.
Временные ряды возникают во многих различных приложениях и процессах, обычно путем измерения значения некоторого базового процесса за фиксированный интервал времени.
➡️ Читать дальше
⚙️ Код
🗒 Документация по GluonTS
✔️ Информация по модели DeepAR Forecasting Algorithm
@data_analysis_ml
Данные временных рядов, то есть наборы данных, которые индексированы по времени, присутствуют в различных областях и отраслях. Например, розничный торговец может подсчитывать и сохранять количество проданных единиц для каждого продукта в конце каждого рабочего дня. Для каждого продукта это приводит к временному ряду ежедневных продаж. Электроэнергетическая компания может измерять количество электроэнергии, потребляемой каждым домохозяйством за фиксированный интервал, например, каждый час. Это приводит к сбору временных рядов потребления электроэнергии. Клиенты могут использовать данные для записи различных показателей, относящихся к их ресурсам и услугам, что приводит к сбору данных, которые основаны на временных рядах.
К распространенным задачам машинного обучения, относящимся к временным рядам, являются:
экстраполяция (прогнозирование),
интерполяция (сглаживание),
обнаружение (например, выбросы, аномалии),
классификация.
Временные ряды возникают во многих различных приложениях и процессах, обычно путем измерения значения некоторого базового процесса за фиксированный интервал времени.
➡️ Читать дальше
⚙️ Код
🗒 Документация по GluonTS
✔️ Информация по модели DeepAR Forecasting Algorithm
@data_analysis_ml
👍10🔥4❤1
🔍 Data Quality: новые правила
В нашем мире проблемы с данными делятся на два типа: предсказуемые (известные неизвестные) и непредсказуемые (неизвестные неизвестные). Вот какой комплексный подход применяют лучшие специалисты по работе с данными для решения этих проблем в крупномасштабных системах. Это статья о новых способах повышения качества данных с помощью тестирования и наблюдаемости (observability).
В последние годы команды по анализу данных стали использовать аналог юнит-тестирования для обнаружения проблем с качеством данных. В 2021 году на фоне все увеличивающегося потока обрабатываемых данных пайплайны становятся сложнее, — и подход, основанный на выявлении единой точки отказа, перестал работать.
Тестировать самые важные данные надо — без этого нельзя выявить конкретные, лежащие на поверхности известные проблемы в пайплайне. Для этой задачи есть прекрасные инструменты. Например, данные из того же Segment или Salesforce извлекаются с помощью Fivetran, поступают в хранилище данных Snowflake, трансформируются с помощью dbt и в конечном счете оказываются на дашборде Looker, который ваш CEO использует для просмотра квартальных финансовых отчетов. Сразу же, без всяких проверок.
Но даже если вы автоматизировали тестирование, у вас все равно остается немало задач: обновлять имеющиеся тесты и пороговые значения, писать новые и удалять старые — потому что экосистема данных развивается, а данные меняются. Со временем этот процесс становится утомительным, занимает все больше времени и приводит к образованию технического долга, по которому придется расплачиваться позже.
➡️ Читать дальше
@data_analysis_ml
В нашем мире проблемы с данными делятся на два типа: предсказуемые (известные неизвестные) и непредсказуемые (неизвестные неизвестные). Вот какой комплексный подход применяют лучшие специалисты по работе с данными для решения этих проблем в крупномасштабных системах. Это статья о новых способах повышения качества данных с помощью тестирования и наблюдаемости (observability).
В последние годы команды по анализу данных стали использовать аналог юнит-тестирования для обнаружения проблем с качеством данных. В 2021 году на фоне все увеличивающегося потока обрабатываемых данных пайплайны становятся сложнее, — и подход, основанный на выявлении единой точки отказа, перестал работать.
Тестировать самые важные данные надо — без этого нельзя выявить конкретные, лежащие на поверхности известные проблемы в пайплайне. Для этой задачи есть прекрасные инструменты. Например, данные из того же Segment или Salesforce извлекаются с помощью Fivetran, поступают в хранилище данных Snowflake, трансформируются с помощью dbt и в конечном счете оказываются на дашборде Looker, который ваш CEO использует для просмотра квартальных финансовых отчетов. Сразу же, без всяких проверок.
Но даже если вы автоматизировали тестирование, у вас все равно остается немало задач: обновлять имеющиеся тесты и пороговые значения, писать новые и удалять старые — потому что экосистема данных развивается, а данные меняются. Со временем этот процесс становится утомительным, занимает все больше времени и приводит к образованию технического долга, по которому придется расплачиваться позже.
➡️ Читать дальше
@data_analysis_ml
👍11❤1🔥1
✔️ Как прокачать свой SQL до уровня больших данных
Чем отличается SQL в больших данных от обычного SQL? В больших данных используются распределённые вычисления.
Вычисления распределяются между несколькими серверами. Одна база данных находится сразу на нескольких серверах. Результат запроса тоже вычисляется одновременно несколькими серверами. Алгоритмы распределённых вычислений описывает парадигма MapReduce. Давайте разберём, на что это влияет и как прокачать свой SQL до уровня больших данных.
Предупреждение: в данной статье рассматриваются канонические архитектуры обработки данных. Многие современные СУБД и фреймворки построены на их основе и содержат в себе множество доработок и улучшений. Однако набор оптимизаций может отличаться. Поэтому реальная обработка данных на вашем проекте может отличаться в лучшую сторону благодаря именно вашему инструменту. Важно понимать, какие именно оптимизации способен выполнять ваш фреймворк, чтобы правильно контролировать эффективность алгоритмов.
➡️ Читать дальше
@data_analysis_ml
Чем отличается SQL в больших данных от обычного SQL? В больших данных используются распределённые вычисления.
Вычисления распределяются между несколькими серверами. Одна база данных находится сразу на нескольких серверах. Результат запроса тоже вычисляется одновременно несколькими серверами. Алгоритмы распределённых вычислений описывает парадигма MapReduce. Давайте разберём, на что это влияет и как прокачать свой SQL до уровня больших данных.
Предупреждение: в данной статье рассматриваются канонические архитектуры обработки данных. Многие современные СУБД и фреймворки построены на их основе и содержат в себе множество доработок и улучшений. Однако набор оптимизаций может отличаться. Поэтому реальная обработка данных на вашем проекте может отличаться в лучшую сторону благодаря именно вашему инструменту. Важно понимать, какие именно оптимизации способен выполнять ваш фреймворк, чтобы правильно контролировать эффективность алгоритмов.
➡️ Читать дальше
@data_analysis_ml
👍11❤3🔥2
English for Developers - канал для тех, кто хочет учить технический английский.
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
📎 Потери данных при репликации в аналитическое хранилище — автоматические сверки и мониторинг качества данных
Данные из боевых баз в нашей архитектуре асинхронно попадают в аналитическое хранилище (Clickhouse), где уже аналитики создают дашборды для продуктовых команд и делают выборки. Базы здоровые и под ощутимой нагрузкой: мы в день отправляем флот самолётов средней авиакомпании, несколько поездов и кучу автобусов. Поэтому взаимодействий с продуктом много.
ETL-процесс (извлечение данных, трансформация и загрузка в хранилище) часто подразумевает сложную логику переноса данных, и изначально нет уверенности в том, что данные доставляются без потерь и ошибок. Мы используем Kafka как шину данных, промежуточные сервисы на Benthos для трансформации записей и отправки в Clickhouse. На этапе создания пайплайна нужно было убедиться в отсутствии потерь с нашей стороны и корректной логике записи в шину данных.
Проверять вручную расхождения каждый раз не хотелось, кроме того мы нуждались в сервисе, который умел бы сверять новые данные по расписанию и показывать наглядно, где и какие имеются расхождения. Поэтому мы сделали сервис сверок, о котором я и расскажу, потому что готовых решений не нашёл.
➡️ Читать дальше
@data_analysis_ml
Данные из боевых баз в нашей архитектуре асинхронно попадают в аналитическое хранилище (Clickhouse), где уже аналитики создают дашборды для продуктовых команд и делают выборки. Базы здоровые и под ощутимой нагрузкой: мы в день отправляем флот самолётов средней авиакомпании, несколько поездов и кучу автобусов. Поэтому взаимодействий с продуктом много.
ETL-процесс (извлечение данных, трансформация и загрузка в хранилище) часто подразумевает сложную логику переноса данных, и изначально нет уверенности в том, что данные доставляются без потерь и ошибок. Мы используем Kafka как шину данных, промежуточные сервисы на Benthos для трансформации записей и отправки в Clickhouse. На этапе создания пайплайна нужно было убедиться в отсутствии потерь с нашей стороны и корректной логике записи в шину данных.
Проверять вручную расхождения каждый раз не хотелось, кроме того мы нуждались в сервисе, который умел бы сверять новые данные по расписанию и показывать наглядно, где и какие имеются расхождения. Поэтому мы сделали сервис сверок, о котором я и расскажу, потому что готовых решений не нашёл.
➡️ Читать дальше
@data_analysis_ml
👍9❤1🔥1🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
⚜️ Руководство по созданию интерактивных визуализаций на Python
Визуализация данных — один из важнейших этапов проекта в области науки о данных и аналитики данных. Она помогает как изучать и понимать данные, так и эффективно обмениваться результатами.
Самыми распространенными библиотеками для создания визуализаций на Python являются Matplotlib и Seaborn, но существует и множество других инструментов.
В этом руководстве мы изучим инструменты HoloViz, а точнее Panel и hvPlot — библиотеки с открытым исходным кодом, которые используются для создания интерактивных диаграмм и контрольных панелей. Также узнаем, как легко развернуть и поделиться контрольной панелью с помощью Jupyter Notebook.
В этом проекте мы будем использовать данные о различных покемонах, доступные на Kaggle и Wikipedia, а также данные о продажах игр про покемонов.
Краткий обзор
Мы выполним следующие задачи.
Создадим простой интерактивный график, используя hvPlot и Pandas.
Построим более сложные визуализации, используя Panel для создания виджетов, которые будут фильтровать данные, и hvPlot для отображения этих данных.
Создадим контрольную панель, показывающую табличные данные, информацию о проекте, а также различные интерактивные диаграммы.
Узнаем, как развертывать контрольную панель на Heroku, чтобы проектом можно было делиться.
➡️ Читать дальше
⚙️ Код
@data_analysis_ml
Визуализация данных — один из важнейших этапов проекта в области науки о данных и аналитики данных. Она помогает как изучать и понимать данные, так и эффективно обмениваться результатами.
Самыми распространенными библиотеками для создания визуализаций на Python являются Matplotlib и Seaborn, но существует и множество других инструментов.
В этом руководстве мы изучим инструменты HoloViz, а точнее Panel и hvPlot — библиотеки с открытым исходным кодом, которые используются для создания интерактивных диаграмм и контрольных панелей. Также узнаем, как легко развернуть и поделиться контрольной панелью с помощью Jupyter Notebook.
В этом проекте мы будем использовать данные о различных покемонах, доступные на Kaggle и Wikipedia, а также данные о продажах игр про покемонов.
Краткий обзор
Мы выполним следующие задачи.
Создадим простой интерактивный график, используя hvPlot и Pandas.
Построим более сложные визуализации, используя Panel для создания виджетов, которые будут фильтровать данные, и hvPlot для отображения этих данных.
Создадим контрольную панель, показывающую табличные данные, информацию о проекте, а также различные интерактивные диаграммы.
Узнаем, как развертывать контрольную панель на Heroku, чтобы проектом можно было делиться.
➡️ Читать дальше
⚙️ Код
@data_analysis_ml
👍24🔥4❤3
💻 Типы таблиц в PostgreSQL: clustered, foreign, partitioned и inherited tables
В статье речь пойдёт про кластеризованные, внешние, партицированные и наследуемые таблицы. Посмотрим на примеры их создания, области применения, плюсы и минусы их использования.
Clustered tables — кластеризованные таблицы
Мало кто любит хаос, всем нравится порядок. В рамках реляционных баз данных понятие хаоса тесно переплетено с хранением информации, потому что на протяжении своего жизненного цикла таблица постоянно видоизменяется.
В процессе работы с РСУБД на уровне диска происходит постоянное изменение содержимого таблицы. Например, вы обновили данные и ваша обновлённая строка попала на другую страницу таблицы (тут надо оговориться про FILLFACTOR) с появлением мёртвой записи (dead tuple) в текущей позиции. Затем autovacuum-процесс удалил мёртвую запись, и освободившийся слот заполнился вновь поступившей строкой.
➡️ Читать дальше
@data_analysis_ml
В статье речь пойдёт про кластеризованные, внешние, партицированные и наследуемые таблицы. Посмотрим на примеры их создания, области применения, плюсы и минусы их использования.
Clustered tables — кластеризованные таблицы
Мало кто любит хаос, всем нравится порядок. В рамках реляционных баз данных понятие хаоса тесно переплетено с хранением информации, потому что на протяжении своего жизненного цикла таблица постоянно видоизменяется.
В процессе работы с РСУБД на уровне диска происходит постоянное изменение содержимого таблицы. Например, вы обновили данные и ваша обновлённая строка попала на другую страницу таблицы (тут надо оговориться про FILLFACTOR) с появлением мёртвой записи (dead tuple) в текущей позиции. Затем autovacuum-процесс удалил мёртвую запись, и освободившийся слот заполнился вновь поступившей строкой.
➡️ Читать дальше
@data_analysis_ml
👍10🔥2❤1
🧩 FILL-MASK моделирование!
Fill-mask моделирование – это задача маскирования некоторых слов в предложении и дальнейшее предсказание, какие слова должны заменить данные маски. Подобный тип задач используется для обучения больших моделей, направленных на решение специфических проблем. Например, данные модели применяются для извлечения информации из узкоспециализированных источников, что в дальнейшем позволит исследовать данные по заданной теме, извлекать необходимые объекты или классифицировать их.
Fill-mask максимально полезен в том случае, когда необходимо получить статистическое понимание языка, на котором обучалась или будет обучаться модель.
Принцип работы MLM (маскированное языковое моделирование)
Для того, чтобы обучить модель определять и адекватно предлагать слова, которые можно будет вставить в пропуск, ей необходимо случайным образом маскировать 15% слов на входе до тех пор, пока она не сможет предсказать маскированные в предложении слова.
Этот принцип значительно отличается от традиционных рекуррентных нейронных сетей, которые видят слова одно за другим, или от авторегрессионых GPT-моделей, которые внутри себя маскируют будущие лексемы.
Fill-mask моделирование позволяет изучать двунаправленное представление предложения, иными словами, выражает объектные, определительные, обстоятельственные синтаксические отношения.
➡️ Читать дальше
⚙️ Модель
@data_analysis_ml
Fill-mask моделирование – это задача маскирования некоторых слов в предложении и дальнейшее предсказание, какие слова должны заменить данные маски. Подобный тип задач используется для обучения больших моделей, направленных на решение специфических проблем. Например, данные модели применяются для извлечения информации из узкоспециализированных источников, что в дальнейшем позволит исследовать данные по заданной теме, извлекать необходимые объекты или классифицировать их.
Fill-mask максимально полезен в том случае, когда необходимо получить статистическое понимание языка, на котором обучалась или будет обучаться модель.
Принцип работы MLM (маскированное языковое моделирование)
Для того, чтобы обучить модель определять и адекватно предлагать слова, которые можно будет вставить в пропуск, ей необходимо случайным образом маскировать 15% слов на входе до тех пор, пока она не сможет предсказать маскированные в предложении слова.
Этот принцип значительно отличается от традиционных рекуррентных нейронных сетей, которые видят слова одно за другим, или от авторегрессионых GPT-моделей, которые внутри себя маскируют будущие лексемы.
Fill-mask моделирование позволяет изучать двунаправленное представление предложения, иными словами, выражает объектные, определительные, обстоятельственные синтаксические отношения.
➡️ Читать дальше
⚙️ Модель
@data_analysis_ml
👍6❤1🔥1
Как использовать MSE в науке о данных
В большинстве описаний среднеквадратичной ошибки (mean square errore, MSE) упускается один важнейший нюанс: метрики и функции потерь — это не совсем одно и то же. Для оценки и оптимизации производительности модели в машинном обучении нужны две отдельные функции потерь. MSE может быть либо тем, либо другим, либо третьим — выбор за исследователем.
Чтобы было понятнее, что имеется в виду под оценкой производительности и оптимизацией, вместо отвлеченных рассуждений обратимся к конкретным примерам. Для демонстрации будем использовать среднеквадратичную ошибку (MSE), но имейте в виду: MSE — это полезная метрика, но не панацея. Итак, погрузимся в тему!
Что такое MSE?
Среднеквадратичная ошибка (MSE) — одна из множества метрик, которые используются для оценки эффективности модели. Для расчета MSE необходимо возвести в квадрат количество обнаруженных ошибок и найти среднее значение.
Зачем вычислять MSE?
Это можно сделать для 2 целей.
Оценка производительности — визуальное определение того, насколько хорошо работает модель. Другими словами, это возможность быстро понять, с чем предстоит работать.
Оптимизация модели позволяет выяснить, достигнуто ли наилучшее из возможных соответствий или же требуются улучшения. Другими словами, определить, какая модель максимально подходит для работы с выбранными точками данных.
➡️ Читать дальше
🎞 MSE
@data_analysis_ml
В большинстве описаний среднеквадратичной ошибки (mean square errore, MSE) упускается один важнейший нюанс: метрики и функции потерь — это не совсем одно и то же. Для оценки и оптимизации производительности модели в машинном обучении нужны две отдельные функции потерь. MSE может быть либо тем, либо другим, либо третьим — выбор за исследователем.
Чтобы было понятнее, что имеется в виду под оценкой производительности и оптимизацией, вместо отвлеченных рассуждений обратимся к конкретным примерам. Для демонстрации будем использовать среднеквадратичную ошибку (MSE), но имейте в виду: MSE — это полезная метрика, но не панацея. Итак, погрузимся в тему!
Что такое MSE?
Среднеквадратичная ошибка (MSE) — одна из множества метрик, которые используются для оценки эффективности модели. Для расчета MSE необходимо возвести в квадрат количество обнаруженных ошибок и найти среднее значение.
Зачем вычислять MSE?
Это можно сделать для 2 целей.
Оценка производительности — визуальное определение того, насколько хорошо работает модель. Другими словами, это возможность быстро понять, с чем предстоит работать.
Оптимизация модели позволяет выяснить, достигнуто ли наилучшее из возможных соответствий или же требуются улучшения. Другими словами, определить, какая модель максимально подходит для работы с выбранными точками данных.
➡️ Читать дальше
🎞 MSE
@data_analysis_ml
👍14🔥3❤2👎1
✔️ PANDAS VS SQL для работы с данными.
Еще порядка 10 лет назад для работы по исследованию данных было достаточно SQL как инструмента для выборки данных и формирования отчетов по ним. Но время не стоит на месте, и примерно в 2012 году стала стремительно набирать популярность Python-библиотека Pandas. И вот сегодня уже сложно представить работу Data Scientist’а без данного модуля.
Не буду подробно углубляться в то, что предоставляют из себя оба инструмента ввиду их популярности среди аналитиков и исследователей данных, но небольшую справку все-таки оставим:
Итак, SQL (язык структурированных запросов — от англ. Structed Query Language) — это декларативный язык программирования, применяемый для получения и обработки данных с помощью создания запросов внешне похожих по синтаксису на предложения, написанные на английском языке.
Pandas — это модуль для обработки и анализа данных в табличном формате и формате временн́ых рядов на языке Python. Библиотека работает поверх математического модуля более низкого уровня NumPy. Название модуля происходит от эконометрического понятия «панельные данные» (или как его еще называют «лонгитюдные данные» — это данные, которые состоят из повторяющихся наблюдений одних и тех же выбранных единиц, при этом наблюдения производятся в последовательные периоды времени).
➡️ Читать дальше
@data_analysis_ml
Еще порядка 10 лет назад для работы по исследованию данных было достаточно SQL как инструмента для выборки данных и формирования отчетов по ним. Но время не стоит на месте, и примерно в 2012 году стала стремительно набирать популярность Python-библиотека Pandas. И вот сегодня уже сложно представить работу Data Scientist’а без данного модуля.
Не буду подробно углубляться в то, что предоставляют из себя оба инструмента ввиду их популярности среди аналитиков и исследователей данных, но небольшую справку все-таки оставим:
Итак, SQL (язык структурированных запросов — от англ. Structed Query Language) — это декларативный язык программирования, применяемый для получения и обработки данных с помощью создания запросов внешне похожих по синтаксису на предложения, написанные на английском языке.
Pandas — это модуль для обработки и анализа данных в табличном формате и формате временн́ых рядов на языке Python. Библиотека работает поверх математического модуля более низкого уровня NumPy. Название модуля происходит от эконометрического понятия «панельные данные» (или как его еще называют «лонгитюдные данные» — это данные, которые состоят из повторяющихся наблюдений одних и тех же выбранных единиц, при этом наблюдения производятся в последовательные периоды времени).
➡️ Читать дальше
@data_analysis_ml
👍14🔥4❤2
⚙️ 9 концепций, которые вы должны изучить для своих интервью по науке о данных
С появлением Интернета бесконечные ресурсы доступны всего одним щелчком мыши, и в результате мы можем получить доступ к любой логике и синтаксисам, которые мы ищем, но это может быть как благословением, так и проклятием. Если не использовать разумно, чрезмерная зависимость от Интернета может замедлить нас. Мы склонны чрезмерно полагаться на Интернет для простой логики и синтаксиса Python, и поэтому мы не тренируем свой мозг запоминать эти концепции. Итак, каждый раз, когда мы используем даже часто используемые синтаксисы, мы привыкаем их гуглить — это нас тормозит, и другие видят в нас дилетантов.
Итак, каково решение?
Вы ищете синтаксис/концепцию в Google первые 2-3 раза, когда вы ее используете, а затем пытаетесь реализовать ее самостоятельно на 4-й раз.
В этом блоге я познакомлю вас с некоторыми из наиболее эффективных концепций науки о данных, которые вам следует изучить, чтобы сэкономить время и стать более продуктивным специалистом по науке о данных. Если вы уже знакомы с этими концепциями, вы можете использовать этот блог, чтобы освежить свое понимание
➡️ Читать дальше
@data_analysis_ml
С появлением Интернета бесконечные ресурсы доступны всего одним щелчком мыши, и в результате мы можем получить доступ к любой логике и синтаксисам, которые мы ищем, но это может быть как благословением, так и проклятием. Если не использовать разумно, чрезмерная зависимость от Интернета может замедлить нас. Мы склонны чрезмерно полагаться на Интернет для простой логики и синтаксиса Python, и поэтому мы не тренируем свой мозг запоминать эти концепции. Итак, каждый раз, когда мы используем даже часто используемые синтаксисы, мы привыкаем их гуглить — это нас тормозит, и другие видят в нас дилетантов.
Итак, каково решение?
Вы ищете синтаксис/концепцию в Google первые 2-3 раза, когда вы ее используете, а затем пытаетесь реализовать ее самостоятельно на 4-й раз.
В этом блоге я познакомлю вас с некоторыми из наиболее эффективных концепций науки о данных, которые вам следует изучить, чтобы сэкономить время и стать более продуктивным специалистом по науке о данных. Если вы уже знакомы с этими концепциями, вы можете использовать этот блог, чтобы освежить свое понимание
➡️ Читать дальше
@data_analysis_ml
👍11👎3❤2🔥2
📓 Алгоритмы обработки текста: 125 задач с решениями
Сопоставление строк - одна из самых старых тем в теории алгоритмов, но по-прежнему занимает важное место в информатике. За прошедшие 20 лет мы видели технологические прорывы в таких разных приложениях, как информационный поиск и сжатие информации. Эта книга, представляющая собой богатое собрание задач и упражнений по важнейшим вопросам алгоритмов обработки текстов и комбинаторных свойств слов, предлагает студентам и исследователям приятный и прямой путь к изучению и практическому освоению концепций повышенного уровня. Задачи взяты из многочисленных научных публикаций - как уже ставших классическими, так и сравнительно новых. Начав с основ, авторы рассматривают все более сложные задачи по комбинаторным свойствам слов (включая слова Фибоначчи и Туэ-Морса), поиску строк в тексте (включая алгоритмы Кнута-Морри-са-Пратта и Бойера-Мура), эффективным структурам данных для представления текстов (включая суффиксные деревья и суффиксные массивы) и сжатия текста (включая методы Хаффмана, Лемпеля-Зива и Барроуза-Уилера). Издание будет полезно в качестве пособия для подготовки к олимпиадам по информатике.
➡️ Книга
@data_analysis_ml
Сопоставление строк - одна из самых старых тем в теории алгоритмов, но по-прежнему занимает важное место в информатике. За прошедшие 20 лет мы видели технологические прорывы в таких разных приложениях, как информационный поиск и сжатие информации. Эта книга, представляющая собой богатое собрание задач и упражнений по важнейшим вопросам алгоритмов обработки текстов и комбинаторных свойств слов, предлагает студентам и исследователям приятный и прямой путь к изучению и практическому освоению концепций повышенного уровня. Задачи взяты из многочисленных научных публикаций - как уже ставших классическими, так и сравнительно новых. Начав с основ, авторы рассматривают все более сложные задачи по комбинаторным свойствам слов (включая слова Фибоначчи и Туэ-Морса), поиску строк в тексте (включая алгоритмы Кнута-Морри-са-Пратта и Бойера-Мура), эффективным структурам данных для представления текстов (включая суффиксные деревья и суффиксные массивы) и сжатия текста (включая методы Хаффмана, Лемпеля-Зива и Барроуза-Уилера). Издание будет полезно в качестве пособия для подготовки к олимпиадам по информатике.
➡️ Книга
@data_analysis_ml
👍12❤1🔥1
🧬 Основы биоинформатики. Работаем с биологическими данными.
Каждый, кто слышит словосочетание "язык программирования", наверняка представляет себе код или скрипт, который выполняет строгий порядок действий для решения сложной технической задачи. Если спросить прохожего, для каких целей используются языки программирования, первое, что придет ему на ум - разработка, а любой гуманитарий скажет, что это скучно и совершенно не интересно. Однако, мне хотелось бы развеять эти стереотипы. Учитывая современные тенденции роста научно-технического прогресса, важно отметить, что программирование перестало быть чисто "техническим" инструментом.
Сегодня программирование позволяет не только создавать алгоритмы для управления техникой, но и делать научные открытия, например в биологии. Оно позволяет понять, как устроена биоинженерная машина внутри наших клеток, какие функции выполняет каждый отдельно взятый ген, какие гены ответственны за наши болезни, как вирусы и бактерии влияют на нас на молекулярном уровне, как создать новый фармацевтический препарат и множество других вопросов.
Языков программирования в современном мире довольно много. Однако, для аналитических и научных задач самым распространенным является Python. Я думаю, что сейчас каждый хотя бы примерно представляет, что такое Python. Поэтому, я не буду останавливаться здесь подробно на его определении, скажу лишь следующее.
Python - высокоуровневый язык программирования, который широко применяется в самых разных сферах деятельности: в разработке, в тестировании, в администрировании, в анализе данных, в моделировании, а также в науке. Широкое распространение он получил не только, благодаря своей простоте и лаконичности, но и в силу своей модульности, возможности интегрироваться с другими языками программирования и наличия большого количества пакетов для анализа больших данных и научных расчетов.
Давайте посмотрим теперь, какие задачи биологии Python способен решить
➡️ Читать дальше
@data_analysis_ml
Каждый, кто слышит словосочетание "язык программирования", наверняка представляет себе код или скрипт, который выполняет строгий порядок действий для решения сложной технической задачи. Если спросить прохожего, для каких целей используются языки программирования, первое, что придет ему на ум - разработка, а любой гуманитарий скажет, что это скучно и совершенно не интересно. Однако, мне хотелось бы развеять эти стереотипы. Учитывая современные тенденции роста научно-технического прогресса, важно отметить, что программирование перестало быть чисто "техническим" инструментом.
Сегодня программирование позволяет не только создавать алгоритмы для управления техникой, но и делать научные открытия, например в биологии. Оно позволяет понять, как устроена биоинженерная машина внутри наших клеток, какие функции выполняет каждый отдельно взятый ген, какие гены ответственны за наши болезни, как вирусы и бактерии влияют на нас на молекулярном уровне, как создать новый фармацевтический препарат и множество других вопросов.
Языков программирования в современном мире довольно много. Однако, для аналитических и научных задач самым распространенным является Python. Я думаю, что сейчас каждый хотя бы примерно представляет, что такое Python. Поэтому, я не буду останавливаться здесь подробно на его определении, скажу лишь следующее.
Python - высокоуровневый язык программирования, который широко применяется в самых разных сферах деятельности: в разработке, в тестировании, в администрировании, в анализе данных, в моделировании, а также в науке. Широкое распространение он получил не только, благодаря своей простоте и лаконичности, но и в силу своей модульности, возможности интегрироваться с другими языками программирования и наличия большого количества пакетов для анализа больших данных и научных расчетов.
Давайте посмотрим теперь, какие задачи биологии Python способен решить
➡️ Читать дальше
@data_analysis_ml
👍7🔥2❤1
📊 Как создавать дашборды, которыми будут пользоваться
Зачем нужен дашборд?
Дашборды – экранные формы информационно-аналитических систем — это современные отчёты, позволяющие принять управленческое решение быстро и обосновано. Классический вариант – это бумажное сообщение в определенной форме, где изложены данные, характеризующие процессы и события. Сотрудники, принимающие решения, изучают материал – и решают, что делать или от чего воздержаться. Дашбордами пользуются в продажах, маркетинге, политике, производстве, охране природы, путешествиях и так далее. Современный цифровой дашборд работает быстрее своего бумажного аналога, может быть интерактивным и содержать данные для разных категорий пользователей.
На тактическом уровне причины создания дашбордов могут быть разными:
Оцифровка бумажных отчетных форм. Например, в компании для руководства регулярно готовилась презентация со вполне определенной информацией. Эту презентацию перевели в цифровой вид, автоматизировали сбор и обработку данных — и получили экранную форму в системе.
Осознанная необходимость мониторинга в ходе развития. Компания проанализировала бизнес, выработала ряд гипотез, нуждающихся в проверке цифрами; описала ряд ключевых процессов — и сформулировала для них важные метрики (KPI). Для их визуализации и отслеживания построили дашборд.
Обобщение или детализация информации. Дашборд по конкретному процессу уже был, но стало важно получить больше данных – или посмотреть на них под другим углом. Если появляются новые пользователи с новыми запросами – возможно, будет логичнее сделать для них новый дашборд на основе работающего, а не дополнять старый данными и функциями для управления их визуализацией.
Копирование работающих решений из другой области. Взяли дашборд одного отдела — и внедрили его для других (с изменениями или без таковых); или же — посмотрели на конкурентов или партнеров и т.п.
➡️ Читать дальше
@data_analysis_ml
Зачем нужен дашборд?
Дашборды – экранные формы информационно-аналитических систем — это современные отчёты, позволяющие принять управленческое решение быстро и обосновано. Классический вариант – это бумажное сообщение в определенной форме, где изложены данные, характеризующие процессы и события. Сотрудники, принимающие решения, изучают материал – и решают, что делать или от чего воздержаться. Дашбордами пользуются в продажах, маркетинге, политике, производстве, охране природы, путешествиях и так далее. Современный цифровой дашборд работает быстрее своего бумажного аналога, может быть интерактивным и содержать данные для разных категорий пользователей.
На тактическом уровне причины создания дашбордов могут быть разными:
Оцифровка бумажных отчетных форм. Например, в компании для руководства регулярно готовилась презентация со вполне определенной информацией. Эту презентацию перевели в цифровой вид, автоматизировали сбор и обработку данных — и получили экранную форму в системе.
Осознанная необходимость мониторинга в ходе развития. Компания проанализировала бизнес, выработала ряд гипотез, нуждающихся в проверке цифрами; описала ряд ключевых процессов — и сформулировала для них важные метрики (KPI). Для их визуализации и отслеживания построили дашборд.
Обобщение или детализация информации. Дашборд по конкретному процессу уже был, но стало важно получить больше данных – или посмотреть на них под другим углом. Если появляются новые пользователи с новыми запросами – возможно, будет логичнее сделать для них новый дашборд на основе работающего, а не дополнять старый данными и функциями для управления их визуализацией.
Копирование работающих решений из другой области. Взяли дашборд одного отдела — и внедрили его для других (с изменениями или без таковых); или же — посмотрели на конкурентов или партнеров и т.п.
➡️ Читать дальше
@data_analysis_ml
👍12❤1🔥1
✔️ Продвинутая работа с большими объемами данных
Как часто вы сталкиваетесь с необходимостью выгрузить в MS Excel более миллиона строк? Все фильтры на выгрузку уже были наложены ранее, но, увы, она до сих пор «не проходит по габаритам». Перед нами встает дилемма – делить, или … воспользоваться готовыми решениями для python, не изучая python!
Речь сегодня пойдет о трех библиотеках, которые позволяют писать код и при этом не писать его, а также оперировать внушительными объемами данных с минимальными знаниями английского языка или синтаксиса пресловутых «панд» (здесь и далее «панды»: pandas – open-source библиотека для python для работы с табличными данными – прим. автора). Для примера будем использовать объявления о продаже автомобилей Toyota с известного сайта.
Первая библиотека, с которой хотелось бы Вас познакомить – Bamboolib. Не секрет, что панды питаются бамбуком, и, как за всякое пропитание, за него нужно платить. Да, у Bamboolib есть платная версия, в которой реализована поддержка Apache Spark, а также есть возможность использовать свои внутренние библиотеки и нет ограничения по плагинам, в остальном же достаточно бесплатной версии.
➡️ Читать дальше
@data_analysis_ml
Как часто вы сталкиваетесь с необходимостью выгрузить в MS Excel более миллиона строк? Все фильтры на выгрузку уже были наложены ранее, но, увы, она до сих пор «не проходит по габаритам». Перед нами встает дилемма – делить, или … воспользоваться готовыми решениями для python, не изучая python!
Речь сегодня пойдет о трех библиотеках, которые позволяют писать код и при этом не писать его, а также оперировать внушительными объемами данных с минимальными знаниями английского языка или синтаксиса пресловутых «панд» (здесь и далее «панды»: pandas – open-source библиотека для python для работы с табличными данными – прим. автора). Для примера будем использовать объявления о продаже автомобилей Toyota с известного сайта.
Первая библиотека, с которой хотелось бы Вас познакомить – Bamboolib. Не секрет, что панды питаются бамбуком, и, как за всякое пропитание, за него нужно платить. Да, у Bamboolib есть платная версия, в которой реализована поддержка Apache Spark, а также есть возможность использовать свои внутренние библиотеки и нет ограничения по плагинам, в остальном же достаточно бесплатной версии.
➡️ Читать дальше
@data_analysis_ml
👍9🔥4❤1