Search
Write a publication
Pull to refresh
@resetmeread⁠-⁠only

Скромный пастух нулей и единиц…

Send message

Решение систем линейных уравнений с помощью Python

Reading time7 min
Views26K

Как‑то я наткнулась на статью, где говорилось о SymPy, а именно о возможности решения систем уравнений с ее помощью. Если кратко, то это бесплатная библиотека для символьных вычислений на языке Python. В символьных вычислениях компьютер работает с уравнениями и выражениями как с последовательностью символов, тогда как в численных оперирует приближёнными числовыми значениями.

И поскольку линейные уравнения встречаются не только в математике, а также и в физике, и в ифнформатике, и во многих других областях, мне бы хотелось рассмотреть возможность их решения с Python.

Приятного прочтения )

Читать далее

Интеграция Grist и Metabase

Level of difficultyMedium
Reading time11 min
Views4.2K

Привет! Меня зовут Александр Ежков, я Backend-разработчик в AGIMA. Занимаюсь созданием и поддержкой внутренних сервисов для компании. А конкретно сейчас — нашей DWH-системой. Мы построили ее из Open-source продуктов. В этой статье расскажу, какие продукты мы используем, какие хитрости придумали для работы с ними как вся система работает вместе.

Читать далее

Ликбез по методологиям проектирования хранилищ данных

Level of difficultyEasy
Reading time2 min
Views15K

Хранилище данных — это информационная система, в которой хранятся исторические и коммутативные данные из одного или нескольких источников. Он предназначен для анализа, составления отчетов и интеграции данных транзакций из разных источников.

Рассмотрим сильные и слабые стороны самых популярных методологий.

Читать далее

Неизвестно полезный CSS. Часть 2

Level of difficultyMedium
Reading time7 min
Views11K


Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS-фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React-приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

  • загрузку фоновых изображений для экранов с повышенной плотностью пикселя с помощью функции image-set();
  • как с помощью неё же ускорить загрузку страницы;
  • можно ли использовать нестандартный шрифт без его загрузки;
  • чем полезен псевдокласс :focus-within при вёрстке кастомных чекбоксов;
  • мой любимый лайфхак на основе пользовательских CSS-свойств.

Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

Читать дальше →

Хотите присоединить Windows к домену ALD Pro (FreeIPA)? Спросите меня как

Level of difficultyEasy
Reading time26 min
Views22K

Конечная цель проектов импортозамещения в ИТ — полный отказ от операционной системы Windows. Но, как говорится, гладко было на бумаге, да забыли про овраги. Может так оказаться, что быстро заменить какие-то клиентские корпоративные приложения, написанные под эту операционную систему, не получится. В этом случае вам может пригодиться возможность присоединения Windows-компьютеров к домену ALD Pro.

В этой статье я расскажу, как добиться максимальной функциональности от такого сценария развертывания, и презентую утилиту нашей собственной разработки aldpro-join. С ее помощью можно решить проблему настройки рабочих станций всего за пару кликов. Если это именно то, о чем вы хотели узнать, но не знали, кого спросить, — вы на правильном пути. Поехали!

Материал будет полезен даже в том случае, если в вашей инфраструктуре пока еще используется «ванильная» система FreeIPA.

Читать далее

Проджект менеджер свалился под стол с кровавой пеной во рту — что делать?

Level of difficultyEasy
Reading time5 min
Views7.1K

Айтишный труд опасен: можно отравиться соевым латте, словить инфаркт от правок и подраться на корпоративе. Можем ли мы рассчитывать на помощь коллег в случае ЧП? Пока вы врубаете VPN, чтобы спросить совета у ChatGPT, ваш коллега отправится на тот свет. 

В этой статье разобрали несчастные случаи, которые могут настигнуть вас в офисе. Рассказываем, что нужно сделать в таких ситуациях (и что делать ни в коем случае нельзя). Кстати, ВОЗ говорит, что на рабочем месте ежегодно умирает до 600 000 человек. 

Читать далее

Анализ новостей с помощью сегментации и кластеризации временных рядов

Reading time10 min
Views8.8K

В Отусе я прошла курс ML Advanced и открыла для себя интересные темы, связанные с анализом временных рядов, а именно, их сегментацию и кластеризацию. Я решила позаимствовать полученные знания для своей дипломной университетской работы по ивент-анализу социальных явлений и событий и описать часть этого исследования в данной статье.

Шаг 1. Сбор данных

В качестве источника данных я взяла информационно-новостной ресурс Лента.ру, так как с него легко парсить данные, новости разнообразны и пополняются в большом объеме ежедневно. Для теста я спарсила новости за последний год (март 2023 – март 2024) с помощью питоновских BeautifulSoup и requests.

В коде происходит процедура сбора заголовка, даты и тематики новостей:

Читать далее

Введение в нейросети: что, зачем и как?

Level of difficultyMedium
Reading time25 min
Views56K

Это модное слово всё чаще используется в разговорной речи: обывателей плотнее окутывают угрозами бунта искусственного интеллекта и войны с роботами — с одной стороны, и рекламой нейросетевых продуктов — с другой. Отдельный котёл в аду — для тех, кто впаривает «курсы дата‑саентистов». А когда бедный юзернейм в поисках истины обращается к Гуглу своему любимому поисковику — то вместо простого ответа на простой вопрос, получает ещё больше вопросов — таких как тензорфлоу, сигмоида и, не дай Бог, линейная алгебра.

Как же нейросети рисуют картинки?

Эксплуатация кроликов (RabbitMQ) в режиме «Выжить любой ценой»

Reading time16 min
Views33K
«Компания» — оператор связи ПАО «Мегафон»
«Нода» — сервер RabbitMQ.
«Кластер» — совокупность, в нашем случае трех, нод RabbitMQ работающих как единое целое.
«Контур» — совокупность кластеров RabbitMQ, правила работы с которыми определяются на стоящем перед ними балансировщике.
«Балансировщик», «хап» — Haproxy – балансировщик, выполняющий функции переключения нагрузки на кластеры в рамках контура. Для каждого контура используется пара серверов Haproxy, работающих параллельно.
«Подсистема» — публикатор и/или потребитель сообщений, передаваемых через кролика
«СИСТЕМА» — совокупность Подсистем, являющая собой единое программно-аппаратное решение, используемое в Компании, характеризующееся распределённостью по всей территории России, но обладающее несколькими центрами, куда стекается вся информация и где происходят основные расчёты и вычисления.
СИСТЕМА – географически распределённая система – от Хабаровска и Владивостока до Санкт-Петербурга и Краснодара. Архитектурно это несколько центральных Контуров, разделенных по особенностям подсистем, к ним подключённым.
Читать дальше →

Настраиваем CI/CD с GitHub Actions и werf: инструкция для новичков

Level of difficultyEasy
Reading time12 min
Views19K

В этой статье мы рассмотрим, как настроить пайплайн CI/CD в GitHub: подготовим репозиторий, зальём туда приложение, создадим файлы конфигурации GitHub Actions, в которых опишем, как собирать наше приложение и деплоить его в кластер Kubernetes, развёрнутый под управлением Deckhouse Kubernetes Platform. Деплоить будем с помощью Open Source CLI-утилиты werf. Она помогает организовать полный цикл доставки приложений в Kubernetes и рассматривает Git как единый источник истины для состояния развёрнутого приложения. Статья рассчитана на тех, кто только начинает свой путь в мире облаков и кластеризации.

Читать далее

MySQL и JOINы

Reading time6 min
Views149K
Поводом для написания данной статьи послужили некоторые дебаты в одной из групп linkedin, связанной с MySQL, а также общение с коллегами и хабролюдьми :-)

В данной статье хотел написать что такое вообще JOINы в MySQL и как можно оптимизировать запросы с ними.

Читать дальше →

50 оттенков matplotlib — The Master Plots (с полным кодом на Python)

Reading time39 min
Views429K
Те, кто работает с данными, отлично знают, что не в нейросетке счастье — а в том, как правильно обработать данные. Но чтобы их обработать, необходимо сначала проанализировать корреляции, выбрать нужные данные, выкинуть ненужные и так далее. Для подобных целей часто используется визуализация с помощью библиотеки matplotlib.



Встретимся «внутри»!
Читать дальше →

Линейный дискриминантный анализ (LDA). Принцип работы и реализация с нуля на Python

Level of difficultyHard
Reading time7 min
Views15K

Линейный дискриминантный анализ (Linear Discriminant Analysis или LDA) — алгоритм классификации и понижения размерности, позволяющий производить разделение классов наилучшим образом. Основная идея LDA заключается в предположении о многомерном нормальном распределении признаков внутри классов и поиске их линейного преобразования, которое максимизирует межклассовую дисперсию и минимизирует внутриклассовую. Другими словами, объекты разных классов должны иметь нормальное распределение и располагаться как можно дальше друг от друга, а одного класса — как можно ближе.

Читать далее

Наивный байесовский классификатор. Основная идея, модификации и реализация с нуля на Python

Level of difficultyHard
Reading time8 min
Views36K

Наивный байесовский классификатор (Naive Bayes classifier) — вероятностный классификатор на основе формулы Байеса со строгим (наивным) предположением о независимости признаков между собой при заданном классе, что сильно упрощает задачу классификации из-за оценки одномерных вероятностных плотностей вместо одной многомерной.

Помимо теории и реализации с нуля на Python, в данной статье также будет приведён небольшой пример использования наивного Байеса в контексте фильтрации спама со всеми подробными расчётами вручную.

Читать далее

Обзор гибких методологий проектирования DWH

Reading time15 min
Views79K
Разработка хранилища — дело долгое и серьезное.

Многое в жизни проекта зависит от того, насколько хорошо продумана объектная модель и структура базы на старте.

Общепринятым подходом были и остаются различные варианты сочетания схемы “звезда” с третьей нормальной формой. Как правило, по принципу: исходные данные — 3NF, витрины — звезда. Этот подход, проверенный временем и подкрепленный большим количеством исследований — первое (а иногда и единственное), что приходит в голову опытному DWH-шнику при мысли о том, как должно выглядеть аналитическое хранилище.

С другой стороны — бизнесу в целом и требованиям заказчика в частности свойственно быстро меняться, а данным — расти как “вглубь”, так и “вширь”. И вот тут проявляется основной недостаток звезды — ограниченная гибкость.

И если в вашей тихой и уютной жизни DWH-разработчика внезапно:

  • возникла задача “сделать быстро хоть что-то, а потом посмотрим”;
  • появился бурно развивающийся проект, с подключением новых источников и переделкой бизнес-модели минимум раз в неделю;
  • появился заказчик, который не представляет как система должна выглядеть и какие функции выполнять в конечном итоге, но готов к экспериментам и последовательному уточнению желаемого результата с последовательным же приближением к нему;
  • заглянул менеджер проектов с радостной вестью: “А теперь у нас аджайл!”.

Или если вам просто интересно узнать как еще можно строить хранилища — вэлкам под кат!


Читать дальше →

Математика для Data Science и машинного обучения за 8 месяцев. Подробный план обучения

Level of difficultyEasy
Reading time7 min
Views118K

Беспилотные автомобили, продвинутые голосовые ассистенты, рекомендательные системы – это только малая часть тех классных продуктов, которые создаются с помощью инженеров по машинному обучению и, думаю, не для кого не секрет, что за кулисами сего чуда стоит математика. Именно она играет главную роль в понимании алгоритмов машинного и глубокого обучения.

Машинное обучение держится на трёх основных столпах:

Читать далее

Метод главных компонент (PCA). Принцип работы и реализация с нуля на Python

Level of difficultyHard
Reading time8 min
Views31K

Метод главных компонент (Principal Component Analysis или же PCA) — алгоритм обучения без учителя, используемый для понижения размерности и выявления наиболее информативных признаков в данных. Его суть заключается в предположении о линейности отношений данных и их проекции на подпространство ортогональных векторов, в которых дисперсия будет максимальной.

Такие вектора называются главными компонентами и они определяют направления наибольшей изменчивости (информативности) данных. Альтернативно суть PCA можно определить как линейное проецирование, минимизирующее среднеквадратичное расстояние между исходными точками и их проекциями.

Читать далее

Стекинг и блендинг в ML. Ключевые особенности и реализация с нуля на Python

Level of difficultyHard
Reading time11 min
Views12K

Среди всех методов ансамблирования особое внимание заслуживают две очень мощные техники, известные как стекинг (stacked generalization) и блендинг, особенность которых заключается в возможности использования прогнозов не только однородных, но и сразу нескольких разных по природе алгоритмов в качестве обучающих данных для другой модели, на которой будет сделан итоговый прогноз. Например, прогнозы логистической регрессии и градиентного бустинга могут быть использованы для обучения случайного леса, на котором уже будет выполнен итоговый прогноз.

Стекинг и блендинг очень схожи между собой, однако между ними есть существенные различия, заключающиеся в разделении и использовании тренировочных данных. Рассмотрим более подробно как это происходит.

Читать далее

Градиентный бустинг. Реализация с нуля на Python и разбор особенностей его модификаций (XGBoost, CatBoost, LightGBM)

Level of difficultyHard
Reading time28 min
Views25K

На сегодняшний день градиентный бустинг (gradient boosting machine) является одним из основных production-решений при работе с табличными, неоднородными данными, поскольку обладает высокой производительностью и точностью, а если быть точнее, то его модификации, речь о которых пойдёт чуть позже.

В данной статье представлена не только реализация градиентного бустинга GBM с нуля на Python, но а также довольно подробно описаны ключевые особенности его наиболее популярных модификаций.

Читать далее

Бэггинг и случайный лес. Ключевые особенности и реализация с нуля на Python

Level of difficultyHard
Reading time13 min
Views13K

Далее пойдёт речь про бэггинг и мой самый любимый алгоритм — случайный лес. Не смотря на то, что это одни из самых первых алгоритмов среди семейства ансамблей, они до сих пор пользуются большой популярностью за счёт своей простоты и эффективности, зачастую не уступая бустингам в плане точности. О том, что это такое и как работает, далее в статье.

Читать далее

Information

Rating
Does not participate
Registered
Activity