При выборе баз данных для текущего проекта (или при замене тех, которые не отвечают вашим текущим потребностям) количество возможных вариантов очень велико. Это и хорошо, и плохо, ведь нужны какие-то критерии фильтрации.
Сегодня есть гораздо больше баз данных, чем когда-либо. В декабре 2012 года, когда DB-Engines.com впервые начал ранжировать базы данных, у него получился список из 73 систем (существенный рост по сравнению с самым первым списком из 18 систем). Спустя десять лет, на декабрь 2022 года в списке было уже почти четыреста систем. За последнее десятилетие произошёл настоящий кембрийский взрыв технологий баз данных.
Нужно ориентироваться в обширном пространстве вариантов: SQL, NoSQL, множество «многомодельных» баз данных, которые могут быть сочетанием SQL и NoSQL, или множественные модели данных NoSQL (сочетающие две или более опций: документы, ключи-значения, широкие столбцы, графы и так далее).
Кроме того, пользователи не должны путать популярность с применимостью для них. Хотя сетевой эффект имеет свои преимущества («Все пользуются X, поэтому не ошибусь, если выберу её»), он также может привести к групповому мышлению, торможению инноваций и конкуренции.
▪ Читать статью
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1😱1
erid: LjN8KUZML
50 000 ₽ за хорошего аналитика
Присмотритесь к своим друзьями и знакомым — вдруг среди них есть Android-аналитик который ищет работу мечты. А тут Финтех Яндекса как раз нанимает, обещает ценить и хорошо платить, да ещё и даёт 50 000 ₽ за рекомендацию.
Всё что нужно — заполнить короткую анкету на сайте Финтеха Яндекса. И все будут в плюсе: у знакомого — хорошая работа, у Яндекса — крутой специалист, а у вас — бонус за рекомендацию
Реклама, ООО «Яндекс»
50 000 ₽ за хорошего аналитика
Присмотритесь к своим друзьями и знакомым — вдруг среди них есть Android-аналитик который ищет работу мечты. А тут Финтех Яндекса как раз нанимает, обещает ценить и хорошо платить, да ещё и даёт 50 000 ₽ за рекомендацию.
Всё что нужно — заполнить короткую анкету на сайте Финтеха Яндекса. И все будут в плюсе: у знакомого — хорошая работа, у Яндекса — крутой специалист, а у вас — бонус за рекомендацию
Реклама, ООО «Яндекс»
👍8🤩3❤1🤨1
🔢 Как аугментация помогает нейронным сетям решать уравнения в частных производных
Обширные явления реального мира, такие как турбулентность, атмосферная циркуляция и напряжение деформируемых материалов и т.д., описываются лежащими в их основе дифференциальными уравнениями в частных производных (PDEs).
Следовательно, решение PDEs является общей фундаментальной проблемой для многих научных и инженерных областей и может принести дальнейшую пользу важным приложениям реального мира. Например, моделирование воздушного потока для проектирования аэродинамического профиля крыла летательного аппарата, моделирование атмосферы для прогнозирования погоды, молекулярная динамика и т.д.
Традиционный подход к численному решению PDEs основан на использовании различных солверов, которые используют те или иные классические методы. Например, метод конечных элементов (FEM) или метод конечных разностей (FDM), которые решают PDEs путем дискретизации расчетной области. Однако, в этом случае точность численного решения сильно зависит от дискретизации расчетной сетки: грубые сетки работают быстро, но менее точно; мелкие — точны, но медленны. В реальных приложениях решение PDEs обычно требует очень хорошей дискретизации и, следовательно, очень сложны, времязатратны и трудоемки для традиционных солверов.
В последние несколько лет на решение этой проблемы направлены усилия ученых, занимающихся нейронными сетями (NNs). Широко известно, что NNs являются универсальными аппроксиматорами непрерывных функций. Более важным фактом является то, что NN с одним скрытым слоем может точно аппроксимировать любой нелинейный непрерывный оператор. Недавно в рамках нового направления было предложено изучение бесконечномерных операторов с помощью NNs. Нейронный оператор устраняет зависящую от сетки дискретизацию, создавая единый набор параметров NN, которые можно использовать с различными дискретизациями расчетной сетки.
В этом случае мы имеем возможность передавать решения между расчетными сетками. Кроме того, нейронный оператор нужно обучить только один раз. Наконец, нейронный оператор не требует знания лежащего в основе PDE, только данные, полученные экспериментально или с помощью солверов.
📌 Читать дальше
@data_analysis_ml
Обширные явления реального мира, такие как турбулентность, атмосферная циркуляция и напряжение деформируемых материалов и т.д., описываются лежащими в их основе дифференциальными уравнениями в частных производных (PDEs).
Следовательно, решение PDEs является общей фундаментальной проблемой для многих научных и инженерных областей и может принести дальнейшую пользу важным приложениям реального мира. Например, моделирование воздушного потока для проектирования аэродинамического профиля крыла летательного аппарата, моделирование атмосферы для прогнозирования погоды, молекулярная динамика и т.д.
Традиционный подход к численному решению PDEs основан на использовании различных солверов, которые используют те или иные классические методы. Например, метод конечных элементов (FEM) или метод конечных разностей (FDM), которые решают PDEs путем дискретизации расчетной области. Однако, в этом случае точность численного решения сильно зависит от дискретизации расчетной сетки: грубые сетки работают быстро, но менее точно; мелкие — точны, но медленны. В реальных приложениях решение PDEs обычно требует очень хорошей дискретизации и, следовательно, очень сложны, времязатратны и трудоемки для традиционных солверов.
В последние несколько лет на решение этой проблемы направлены усилия ученых, занимающихся нейронными сетями (NNs). Широко известно, что NNs являются универсальными аппроксиматорами непрерывных функций. Более важным фактом является то, что NN с одним скрытым слоем может точно аппроксимировать любой нелинейный непрерывный оператор. Недавно в рамках нового направления было предложено изучение бесконечномерных операторов с помощью NNs. Нейронный оператор устраняет зависящую от сетки дискретизацию, создавая единый набор параметров NN, которые можно использовать с различными дискретизациями расчетной сетки.
В этом случае мы имеем возможность передавать решения между расчетными сетками. Кроме того, нейронный оператор нужно обучить только один раз. Наконец, нейронный оператор не требует знания лежащего в основе PDE, только данные, полученные экспериментально или с помощью солверов.
📌 Читать дальше
@data_analysis_ml
👍13❤3🔥1
Сегодня я рассмотрю алгоритм чтения и парсинга .
pst
файлов, написанный на python. Для работы с одним файлом и оставлю в стороне параллельную обработку, которую стоит использовать при работе с большим числом архивов.Для открытия и чтения .pst файлов воспользуюсь pypff – python оберткой для библиотеки libpff, написанной на C. Эта библиотека позволяет работать с форматами PFF (Personal Folder File) и OFF (Offline Folder File), в которые как раз и входит формат .pst, наряду с форматами .pab (Personal Address Book) и .ost (Offline Storage Table).
# Установка библиотеки
pip install libpff-python
# Импортирование библиотеки
import pypff
Работа с файлом будет подобна работе с древовидным архивом. Поэтому в первую очередь после чтения файла необходимо получить корневую папку:
pst = pypff.file()
pst.open(“example.pst”)
root = pst.get_root_folder()
Дальше порядок действий будет отличаться в зависимости от задач. Например, вы можете посмотреть список дочерних писем или папок и выбрать из них нужные и обработать только их.
В случае с задачей поиска идентификаторов, буду вынужден обрабатывать все письма из всех папок, так как обрабатываемые почтовые ящики имеют разную структуру папок (в первую очередь разные названия и степени вложенности).
Для получения списка всех писем воспользуюсь рекурсивным методом, который проходит по папке и собирает содержимое из нее и её дочерних папок:
def parse_folder(base):
messages = []
for folder in base.sub_folders:
if folder.number_of_sub_folders:
# Извлечение писем из дочерней папки
messages += parse_folder(folder)
# Обработка писем в текущей папке
for message in folder.sub_messages:
messages.append({
"folder": folder.name,
"subject": message.subject,
"sender_name": message.sender_name,
"sender_email": get_sender_email(message),
"datetime": message.client_submit_time,
"body_plain": get_body(message)
})
return messages
# Извлечение всех писем из файла
messages = parse_folder(root)
Для анализа была необходима следующая информация: тема письма, тело письма, папка, дата и время и данные об отправителе. Большую часть этой информации можно получить, просто взяв сами атрибуты объекта, но такой вариант не сработает для тела письма и почтового адреса отправителя.
Как можно видеть из списка атрибутов
pff.message
, письмо может иметь тело в трех форматах (plain_text, html, rtf), а точнее в одном из этих трех. Для задачи меня будет интересовать получение тела письма в формате текста, поэтому необходимо конвертировать html строки (которых оказалось больше всего). Для этого воспользуемся библиотекой BeautilfulSoup: создадим объект bs на основе нашего html_body и воспользуемся методом get_text(), чтобы получить очищенный от
html
тегов текст письма. На этом можно было бы остановится, но в результирующих строках оставались комментарии с описанием стилей и шрифтов, поэтому дополнительно производится их удаление с помощью регулярных выражений, а также замена двойных символов перевода строки на одинарные.📌Читать дальше
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2🔥2
⚡ Data Cleaning and Preprocessing for data science beginners
В этом руководстве рассмотрены все важнейшие этапы с примера кода по очистке и предварительной обработке данных.
В книге описано, как качество данных может напрямую влиять на эффективность прогностических моделей и выводы, которые можно сделать на основе проведенного анализа. Понимание этих основополагающих процессов позволит превратить беспорядочные данные реального мира в золотую жилу надежных выводов.
📚Скачать книгу
@data_analysis_ml
В этом руководстве рассмотрены все важнейшие этапы с примера кода по очистке и предварительной обработке данных.
В книге описано, как качество данных может напрямую влиять на эффективность прогностических моделей и выводы, которые можно сделать на основе проведенного анализа. Понимание этих основополагающих процессов позволит превратить беспорядочные данные реального мира в золотую жилу надежных выводов.
📚Скачать книгу
@data_analysis_ml
👍10🔥4❤1
Эмбеддинг - это как переводчик, преобразующий слова в числа, чтобы алгоритмы могли их понять.
Chroma позволяет легко создавать эмбеддинги из документов и находить похожие результаты, используя всего нескольких строк кода.
▪Github
▪Colab
@data_analysis_ml
Chroma позволяет легко создавать эмбеддинги из документов и находить похожие результаты, используя всего нескольких строк кода.
▪Github
▪Colab
@data_analysis_ml
👍19❤1🔥1🤔1
Яндекс уже применяет нейросеть YandexGPT в браузере и в Алисе, голосовом помощнике. Какие профессии нужны, чтобы нейросеть становилась умнее, и как отбирают данные для обучения — расскажут сотрудники, работающие над YandexGPT.
→ Бесплатно, 21 августа в 19:00 Мск
Наши спикеры:
◾️Николай Зинов
Руководитель группы YaLM Alignment в Яндексе
◾️Ирина Барская
Руководитель службы аналитики и исследований в Яндексе
Вы узнаете:
— что такое нейросетевые языковые модели;
— как модель предобучают на гигантском наборе текстов, а затем учат делать то, что попросит человек;
— кто в этом участвует: разработчики, аналитики и другие специалисты;
— как аналитики собирают данные и почему эти данные так важны.
→ Зарегистрируйтесь на вебинар
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid:LjN8JvPzS
→ Бесплатно, 21 августа в 19:00 Мск
Наши спикеры:
◾️Николай Зинов
Руководитель группы YaLM Alignment в Яндексе
◾️Ирина Барская
Руководитель службы аналитики и исследований в Яндексе
Вы узнаете:
— что такое нейросетевые языковые модели;
— как модель предобучают на гигантском наборе текстов, а затем учат делать то, что попросит человек;
— кто в этом участвует: разработчики, аналитики и другие специалисты;
— как аналитики собирают данные и почему эти данные так важны.
→ Зарегистрируйтесь на вебинар
Реклама АНО ДПО "Образовательные технологии Яндекса", ИНН:7704282033, erid:LjN8JvPzS
👍5👎2
✔ Redis Explained
Глубокое техническое погружение во все тонкости Redis.
В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов.
Отличная иллюстрированная статья для глубокого понимания Redis.
▪Читать
@data_analysis_ml
Глубокое техническое погружение во все тонкости Redis.
В статье рассматриваются различные топологии Redis, персистентность данных и форкинг процессов.
Отличная иллюстрированная статья для глубокого понимания Redis.
▪Читать
@data_analysis_ml
👍10🔥2❤1
Для решения задачи мониторинга данных в голландском банке ING была разработана библиотека Popmon для Python, название которой является сокращением от «population monitoring» — «наблюдение за популяцией».
В качестве датасета для демонстрации я буду использовать данные ежедневных замеров метеорологических сенсоров с 1961 по 1978 год: показания трех датчиков, минимальная и максимальная температура воздуха, минимальная температура травы, количество осадков и скорость ветра. Целью датасета является предсказание скорости ветра. Источник находится здесь.
Данная библиотека позволяет найти отклонения по входным и выходным данным в датасетах. Также имеется возможность провести сравнительный анализ датасета на основе статистики из другого.
Popmon умеет работать с датафреймами из библиотек Pandas и PySpark. В целях демонстрации я буду использовать Pandas.
▪Читать дальше
▪Github
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🥰1
🟡 Дайджест полезных материалов из мира : Data Science за неделю
Почитать:
— Опыт работы с данными или с чем может столкнуться аналитик
— Кто, как и ради чего создаёт онлайн-образование в IT-сфере: истории пяти экспертов
— Тестирование грамматики Llama Cpp, основанной на ограничениях выборки
— 2 ВИЗУАЛИЗАЦИИ, КОТОРЫЕ ЛЕГЧЕ С ПИТОНОМ (по сравнению с TABLEAU)
— Как получить real-time данные смарт-контракта, используя The Graph (пишем свой сабграф)
— Apache Spark 3.4 для Databricks Runtime 13.0
— ML-искусство переживать проблемы: как избегать разочарований и находить аналоги товаров в периоды out-of-stock
— Enhancing Database Performance: In-Depth Query Optimization with ApacheAGE
— Step by step guide to becoming a Data Scientist in 2023
— Visual Language Processing: Bridging Vision and Language with Transformers
— Guia Avançado do Método `merge` no Pandas com Exemplos
— 8 Completely FREE Big Data Resources
— CV-based self-diagnosis telemedicine application
— A Powerful Tool for Data Engineers: Apache Doris 2.0.0 is Production-Ready!
— Embracing Modularity: Template for Structuring Machine Learning Projects
— ⛏ Get Mining into Data with These Top 5 Resources
— Python Data Type
Посмотреть:
🌐 Универсальный рецепт по написанию и аннотированию декораторов Python.
🌐 NVIDIA Omniverse: Virtual Worlds Come Alive
🌐 Lightning Interview "Hands-On Generative AI Applications"
Хорошего дня!
@data_analysis_ml
Почитать:
— Опыт работы с данными или с чем может столкнуться аналитик
— Кто, как и ради чего создаёт онлайн-образование в IT-сфере: истории пяти экспертов
— Тестирование грамматики Llama Cpp, основанной на ограничениях выборки
— 2 ВИЗУАЛИЗАЦИИ, КОТОРЫЕ ЛЕГЧЕ С ПИТОНОМ (по сравнению с TABLEAU)
— Как получить real-time данные смарт-контракта, используя The Graph (пишем свой сабграф)
— Apache Spark 3.4 для Databricks Runtime 13.0
— ML-искусство переживать проблемы: как избегать разочарований и находить аналоги товаров в периоды out-of-stock
— Enhancing Database Performance: In-Depth Query Optimization with ApacheAGE
— Step by step guide to becoming a Data Scientist in 2023
— Visual Language Processing: Bridging Vision and Language with Transformers
— Guia Avançado do Método `merge` no Pandas com Exemplos
— 8 Completely FREE Big Data Resources
— CV-based self-diagnosis telemedicine application
— A Powerful Tool for Data Engineers: Apache Doris 2.0.0 is Production-Ready!
— Embracing Modularity: Template for Structuring Machine Learning Projects
— ⛏ Get Mining into Data with These Top 5 Resources
— Python Data Type
Посмотреть:
🌐 Универсальный рецепт по написанию и аннотированию декораторов Python.
🌐 NVIDIA Omniverse: Virtual Worlds Come Alive
🌐 Lightning Interview "Hands-On Generative AI Applications"
Хорошего дня!
@data_analysis_ml
👍8🔥4❤3
Если вы хотите автоматически спарить веб-сайт за несколько строк кода на #Python, попробуйте autoscraper.
С помощью autoscraper можно извлекать элементы с определенными шаблонами, просто предоставив текст с этим шаблоном.
$ pip install autoscraper
▪Github
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥4❤1
Парсинг или веб-скрапинг — это автоматизированный сбор и структурирование информации из открытых источников при помощи специальной программы, называемой парсером. Технически получить доступ к открытой информации можно с помощью API, но как правило доступ ограничен или требует вложения денежных средств.
Рассмотрим принцип работы парсинга. Данный процесс происходит в несколько этапов:
1. Отправка HTTP-запроса на сервер.
2. Поиск необходимых данных.
3. Трансформация полученных данных.
При отправке HTTP-запроса на сервер у нас есть два варианта:
• отправить запрос и ждать, пока сервер даст ответ (синхронный запрос);
• отправить запрос и продолжить работу. Когда данные будут получены, программа вызовет функцию обработчик события (асинхронный запрос).
У каждой из представленных реализаций есть свои плюсы и минусы. Так, например, асинхронный запрос значительно увеличивает производительность кода, поскольку позволяет обрабатывать несколько запросов одновременно, но его довольно сложно реализовать. В свою очередь, синхронный запрос прост в разработке и отладке, но имеет низкую эффективность за счёт последовательной отправки HTTP-запросов.
Основные проблемы парсинга
Парсинг, как и любая технология, сталкивается с рядом проблем. Перечислим наиболее актуальные:
• блокировка доступа к данным: использование CAPTCHA, блокирование IP-адресов и другое;
• скорость выполнения: большой объем данных требует много ресурсов и времени;
• сложность обработки ошибок: ошибки соединения, ошибки синтаксиса и другие;
• работа с динамическим контентом: необходимо разрабатывать специальные инструменты для анализа сайтов, использующих технологии ajax и javascript.
Реализация парсера на основе Beautiful Soup. Обзор возможностей.
Beautiful Soup — это библиотека Python для извлечения данных из файлов форматов HTML и XML. Beautiful Soup (или BS4) использует DOM-модель (Document Object Model) для трансформации и извлечения данных.
Основными возможностями BS4 являются:
• поиск элементов на странице по тегу, классу, id и другим атрибутам;
• извлечение текста и атрибутов элементов;
• навигация по дереву элементов страницы;
• манипуляции с HTML-кодом, такие как добавление, удаление или изменение элементов.
Для извлечения данных из HTML-кода необходимо использовать конструктор BeautifulSoup(), который принимает два аргумента: разметку (HTML-код) и анализатор (необходим для обработки HTML-кода). BS4 поддерживает различные библиотеки для синтаксического анализа, включая стандартные html.parser, а также более быстрые, такие как lxml и html5lib. В нашем случае будем использовать lxml. Также, для отправки запросов на сайт воспользуемся библиотекой requests.
Реализация кода на базе Beautiful Soup
Для начала установим и импортируем библиотеки.
# установка
pip install beautifulsoup4
pip install requests
pip install lxml
# импорт
from bs4 import BeautifulSoup
import requests
📌 Продолжение
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍5🔥2
☝️Низкое качество #данных может привести к неверным выводам и плохой работе модели.
pandera предоставляет гибкий и удобный API для выполнения проверки данных на объектах типа
▪Github
▪Документация
@data_analysis_ml
pandera предоставляет гибкий и удобный API для выполнения проверки данных на объектах типа
dataframe
, чтобы сделать конвейеры обработки данных более читаемыми и надежными.▪Github
▪Документация
@data_analysis_ml
👍9❤2🔥2
👩🎓Получаем степень в области Data Science с лучшими бесплатными курсами.
📂 Python:
https://cs50.harvard.edu/python/2022/
📂 Machine Learning:
https://developers.google.com/machine-learning/crash-course
📂 Deep Learning
https://introtodeeplearning.com
📂 Data Analysis
https://pll.harvard.edu/course/data-analysis-life-sciences-4-high-dimensional-data-analysis
📂 Линейная Алгебра
https://pll.harvard.edu/course/data-analysis-life-sciences-2-introduction-linear-models-and-matrix-algebra
📂 Excel и PowerBI
https://learn.microsoft.com/training/paths/modern-analytics/
📂 Визуализация данных:
https://pll.harvard.edu/course/data-science-visualization
📂 PowerBI
https://learn.microsoft.com/users/collinschedler-0717/collections/m14nt4rdwnwp04
📂 Tableau:
https://tableau.com/learn/training
📂 Statistics:
https://cognitiveclass.ai/courses/statistics-101…
📂 SQL:
https://online.stanford.edu/courses/soe-ydatabases0005-databases-relational-databases-and-sql
@data_analysis_ml
📂 Python:
https://cs50.harvard.edu/python/2022/
📂 Machine Learning:
https://developers.google.com/machine-learning/crash-course
📂 Deep Learning
https://introtodeeplearning.com
📂 Data Analysis
https://pll.harvard.edu/course/data-analysis-life-sciences-4-high-dimensional-data-analysis
📂 Линейная Алгебра
https://pll.harvard.edu/course/data-analysis-life-sciences-2-introduction-linear-models-and-matrix-algebra
📂 Excel и PowerBI
https://learn.microsoft.com/training/paths/modern-analytics/
📂 Визуализация данных:
https://pll.harvard.edu/course/data-science-visualization
📂 PowerBI
https://learn.microsoft.com/users/collinschedler-0717/collections/m14nt4rdwnwp04
📂 Tableau:
https://tableau.com/learn/training
📂 Statistics:
https://cognitiveclass.ai/courses/statistics-101…
📂 SQL:
https://online.stanford.edu/courses/soe-ydatabases0005-databases-relational-databases-and-sql
@data_analysis_ml
❤15👍12🔥9
Неявные связи в графах. Что это и как с ними работать, разберу на примерах.
Граф — множество узлов, объединенных множеством ребер.
С узлами все понятно, взяли города России, клиентов банка или компьютеры в сети, и получили множество объектов, которые и будут узлами для графа.
Что же с ребрами? На первый взгляд все просто: города соединены дорогами, клиенты совершают переводы денежных средств, а компьютеры постоянно обмениваются информацией. Все, что было перечислено, относится к явным типам связей.
Существует факт взаимосвязи между объектами: если дороги нет, то ребро между узлами отсутствует.
Что же относится к неявным связям? Неявные связи сложнее, они могут зависеть от явных связей или же быть самостоятельными.
Например, возьмем двух людей, которые работают на абсолютно разных работах, живут в разных концах города. На первый взгляд, они не имеют ничего общего, но при этом они оба по выходным приходят на матч любимой команды – это и есть неявная связь.
Теперь перейдем к практическому примеру.
Есть 2 файла:
Следующим этапом будет создание графа. Для этой задачи понадобятся следующие python-библиотеки:
Перед созданием графа взглянем на данные, с которыми нам предстоит работать.
Описание данных:
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤2🔥2