Все потоки
Поиск
Написать публикацию
Обновить
174.77

Алгоритмы *

Все об алгоритмах

Сначала показывать
Порог рейтинга
Уровень сложности

Классика, визуализация и GNN: три решения для ML-модели с графовыми данными

Время на прочтение7 мин
Количество просмотров2.7K


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

Мы задали ее командам-участникам хакатона «Цифровой прорыв в ЦФО», который прошел в сентябре в московском офисе VK. И сейчас покажем три, на наш взгляд, лучших решения и подхода к созданию моделей на основе графов.
Читать дальше →

ChatGPT пройдёт собеседование по Data Science вместо вас

Время на прочтение10 мин
Количество просмотров18K

Привет, чемпион!

Возможно, ты сейчас готовишься к собеседованию в какую-нибудь IT-компанию. Скорее всего, тебе будут задавать технические вопросы, поэтому тебе приходится готовиться. Но, возможно, ты всё равно не сможешь ответить на все вопросы правильно. Как быть?!

А слышал ли ты про новую умную chatGPT? А что, если Я тебе скажу, что больше готовиться к собеседованиям так усердно не нужно! Что?! Задаваемые тебе вопросы можно делегировать chatGPT.

В общем, нет времени объяснять, давай устроим собес для chatGPT по Data Science и узнаем, сможет ли сетка его пройти?! Всё по классике — спрашиваем вопросы по 4 секциям:

  • Программирование — Python и алгоритмы,
  • Написание SQL-запросов,
  • Data Science и статистика,
  • ML System Design.
Читать дальше →

Земля круглая, вода мокрая, JPEG шакалит, небо голубое… Или нет?

Время на прочтение11 мин
Количество просмотров16K

Вы можете сказать, что один факт выбивается из этого ряда в заголовке, потому что он не так очевиден, как остальные. Еще лет 10-15 назад я бы никогда не подумал, что тут могут быть возражения, а сейчас уже и не удивляюсь, что приходится объяснять простые истины: дело в том, что планеты обладают очень большой массой, поэтому гравитация стремится придать им форму шара. Вот и все! Хотел бы на этом закончить статью и поблагодарить за внимание.

Читать далее

Библиотека алгоритмов на графах на языке Go. Часть 1

Время на прочтение5 мин
Количество просмотров11K

Приветствую тебя, дорогой читатель! Мне 21, я студент и младший Go-разработчик, а это - мой первый пост на Хабре. Недавно в компании с одногруппником мы решили взяться за амбициозный проект и я решил, что он, как никакой другой, подходит под первую статью. Проект заключается в создании библиотеки, содержащей основные алгоритмы на графах.

Читать далее

Пишем обобщённую хеш-таблицу с открытой адресацией на чистом C

Время на прочтение28 мин
Количество просмотров25K

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

К решению этой задачи есть несколько подходов. Мы последовательно рассмотрим несколько существующих подходов и их достоинства и недостатки, а затем реализуем структуру данных на языке C и, наконец, устроим тест производительности написанного решения. А в качестве бонуса идёт небольшая библиотека включающая эту структуру данных и некоторые другие, которых так не хватает в стандартной библиотеке C.

К разработке этой библиотеки и написанию статьи меня натолкнуло отсутствие незаброшенной библиотеки эффективных хеш-таблицы для C.

Читать далее

Мое первое серебро на Kaggle или как стабилизировать ML модель и подпрыгнуть на 700 мест вверх

Время на прочтение6 мин
Количество просмотров11K

Привет, чемпион!

Летом прошел чемпионат на Kaggle - "American Express - Default Prediction", требовалось предсказывать - выйдет ли пользователь в дефолт или нет. Табличное соревнование в 5К участников с очень плотным лидербордом.

Вот ведь парадокс, все умеют решать табличные соревнования, все знают, что бустинги "стреляют" точнее всех, но почему-то все равно не все могут забраться в топ лидерборда. В чем проблема?! Мы с командой все-таки смогли забрать серебро? и сейчас я расскажу, как можно было выиграть медаль в этом чемпионате.

Читать далее

Проецирование вершин графа в векторное пространство. Часть 2. Марковская цепь и Word2Vec

Время на прочтение6 мин
Количество просмотров2.7K

И снова здравствуйте! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — вторая часть небольшого цикла, посвящённого алгоритмам вложений вершин графа в векторное пространство. Сегодня рассмотрим главную идею алгоритмов, основанных на случайных блужданиях. Перед прочтением рекомендуем прочитать первую часть.

Читать далее

Пишем мультиметоды из Lisp в С++

Время на прочтение7 мин
Количество просмотров4.3K


В статье разберёмся что такое мультидиспетчеризация и как её можно воссоздать на С++

Читать далее

Валя, как это было… И еще раз о ботах с человеческим именем

Время на прочтение5 мин
Количество просмотров2.2K

Как-то раз в светлые головы разработчиков одного департамента ЛАНИТ закралась мысль: “А не провести ли нам хакатон?”. Казалось бы, уже тысячу раз было. Но мы преследовали коварные корпоративные цели, а значит, отступать было некуда - позади HR.  

Во-первых, планировалось сделать хакатон межрегиональным, то бишь собрать команды со всех офисов и дать им тимбилдинг в полный рост. Во-вторых, реально запустить в жизнь продукт, который покажется рецензентам наиболее жизнеспособным и перспективным. А поскольку в то время только ленивый (или ярый пользователь WhatsApp) не писал собственных ботов, мы подумали: “Ок, так тому и быть. Пусть будет бот, но пусть он приносит много пользы”.

В итоге было предложено аж пять почти готовых ботов для Telegram, в каждом из которых было свое рациональное зерно. Но, как водится, ни один из них не получил какого-либо бурного развития. И тогда за дело взялись два рыцаря джедая… 

Читать далее

Как я писал трекинг парковочных мест

Время на прочтение3 мин
Количество просмотров18K

Рассказываю, как я делал трекинг свободных парковочных мест руками новичка. Получилось интересно :)

Читать далее

Задачка: Сбор дождевой воды 3D

Время на прочтение3 мин
Количество просмотров4.6K

Последнее время я крепко подсел на LeetCode. Нет ничего лучше, чем с утра после чашки кофе зайти на дейлик, быстро придумать решение, с замиранием сердца нажать Submit иии... Accepted! Настроение улучшается и можно спокойно работать. Но так бывает не всегда. Случается, что решения не видно совсем или удается придумать только брутфорсное решение что для LeetCode равносильно тому, что решения нет. Приходится открывать подсказки, смотреть как решили другие. А после некоторых задач вера в возможности собственного ума может и вовсе пошатнуться.

Читать далее

Вы ничего не знаете про SEO, или как подготовиться к неизбежному – тренды онлайн-продвижения ближайших 5-ти лет

Время на прочтение14 мин
Количество просмотров24K

SEO будущего – это уже не про сайты. Это не про развитие бложика на Виси или Хабре. Современное SEO –  это новая парадигма понимания самой сути продвижения в интернете.

Читать далее

Посчитайте сумму n-го ряда пирамиды нечетных чисел

Время на прочтение3 мин
Количество просмотров5.9K

Эта задача преследовала меня на двух интервью подряд, и я решил ее!

Читать далее

Ближайшие события

Big O нотация в Swift (часть 2 — Сокращение)

Время на прочтение3 мин
Количество просмотров3K

 Привет всем, добро пожаловать в раздел о сокращении Big O. В первой части мы познакомились с BigO нотацией, а сегодня вы узнаете, как взять большой сложный алгоритм и свести его до минимального значения Big O. После прочтения данной статьи вы сможете взглянуть на любой алгоритм и определить, что представляют собой различные компоненты в рантайме. Итак, давайте выясним, как на самом деле анализировать и определять Big O любого алгоритма.

Читать далее

Проецирование вершин графа в векторное пространство. Часть 1. Разложение матрицы смежности

Время на прочтение6 мин
Количество просмотров6.7K

Привет, Хабр! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — первая часть небольшого цикла, посвящённого алгоритмам вложения вершин графа в векторное пространство. Сегодня расскажу об алгоритмах, основанных на матричных факторизациях. В качестве примера в статье используется занимательная задача поиска сообществ в графе. Что же, приступим!

Читать далее

Задача коммивояжера (TSP) точное решение — метод динамического программирования

Время на прочтение9 мин
Количество просмотров38K

Задача коммивояжёра – одна из интереснейших подзадач комбинаторной оптимизации. Впервые мне пришлось с ней столкнуться, работая над логистической системой торгового предприятия.

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

Типичный маршрут доставки товара предприятия состоял из пары десятков точек, изредка доходящий до 25-26. Матрица расстояний рассчитывалась с помощью алгоритма Дейкстры. Дальше нужно было выбрать оптимальный маршрут из возможных.

Читать далее

“Вам курицу или рыбу?” – Рекомендательная система на “Своем Родном” знает ответ

Время на прочтение12 мин
Количество просмотров3.1K

Привет, Хабр!

Меня зовут Павел Дудукин, руководитель Data Science команды в Центре развития финансовых технологий Россельхозбанка.

Сегодня мы хотим продолжить цикл статей статей про решенные нами Data Science задачи и рассказать о построении и внедрении рекомендательной системы в одну из наших платформ по продаже фермерских продуктов “Свое Родное”.

А узнать из каких этапов, с какими особенностями мы столкнулись при разработке решения и как мы использовали рецепты для наших рекомендаций можно узнать ниже.

Хочу узнать

Алгоритм поиска цепочки друзей для пользователей соцсети

Время на прочтение4 мин
Количество просмотров2.7K

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

Читать далее

Генерация API сайта на основе заданных пользователем функций

Время на прочтение7 мин
Количество просмотров2.2K

Основная идея

Идея достаточно простая: в определенной директории задаётся API функция в виде файла php которая возвращает анонимную функцию. Функции могут быть четырех типов: Put (изменение значений), Get (кеширование до изменения зависимостей), LifeTime (кеширование по времени), Direct (прямой вызов). При этом в функциях типа Get кешируют своё значения до вызова соответствующего значения Put.

Читать далее

Видеоаналитика на взрывоопасном заводе площадью в 700 футбольных полей

Время на прочтение10 мин
Количество просмотров8.1K

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

Меня зовут Щемелинин Вадим, я четыре года работаю в сфере цифровизации промышленности в компании «СИБУР Диджитал». Моя основная задача — развитие Индустрии 4.0 в холдинге. Одним из продуктов моего направления является видеоаналитика. Сегодня я расскажу про сложности, с которым сталкиваются Python-разработчики, внедряя машинное зрение в нефтехимическую индустрию.

Читать далее

Вклад авторов