Search
Write a publication
Pull to refresh
17
0.2
Send message

«От категорий к векторам», или нестандартное кодирование категориальных данных. Часть 2

Reading time7 min
Views3.1K

Привет, Хабр! С вами снова Артём, Team Lead Data Scientist из МегаФона. Надеюсь, вам понравилась первая статья серии о нестандартных методах кодирования категориальных данных, где я поделился своим опытом и показал, как с кодированием справляется тематическое моделирование. Во второй части вы узнаете о более сложных подходах. Инсайты могут быть полезны специалистам в Data Science для решения широкого класса задач: от классификации до построения рекомендательных систем.

В путь

3 главных Data-профессии: обзор компетенций и зарплат

Reading time7 min
Views19K

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

Если вы слышите о Data Science из каждого мегафона и утюга — и окончательно запутались, гуглите "Data Science в Excel", или всё понимаете и хотите объяснить науку о данных кому-то простыми словами, эта статья тоже для вас. А для продвинутых и знающих людей у нас есть другие материалы о практической стороне вопроса.

Читать далее

Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только]

Reading time6 min
Views9.1K



В данной статье рассматриваются наиболее интересные преобразования, которые выполняет цепочка из двух транспайлеров (первый переводит код на языке Python в код на новом языке программирования 11l, а второй — код на 11l в C++), а также производится сравнение производительности с другими средствами ускорения/исполнения кода на Python (PyPy, Cython, Nuitka).
Читать дальше →

Как поменять один символ в коде и спасти день

Reading time3 min
Views6.5K

Понедельник, 9 утра, сообщение в рабочем чате: "Всё сломалось, почините". Согласитесь, неприятная ситуация, особенно когда это ваш первый месяц работы, а сломалось что-то в функционале, с которым вы ещё ни разу не контактировали, да и не трогал его уже никто месяцами.

Читать далее

Как Hasty использует автоматизацию и быструю обратную связь для обучения моделей ИИ

Reading time5 min
Views1.2K

CEO Hasty Тристан Руиллар (в центре), сооснователи компании Константин Проскудин (слева) и Александр Веннман (справа)

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

Основанный в 2019 году в Берлине Hasty заявляет сегодня, что ему удалось получить 3,7 миллиона долларов в первом раунде финансирования, проведённом Shasta Ventures. Эта венчурная фирма из Кремниевой долины провела уже множество значимых выводов: Nest (куплен Google), Eero (куплен Amazon) и Zuora (IPO). Другими участниками раунда стали iRobot Ventures и Coparion.
Читать дальше →

Решение задач по JavaScript на bigfrontend (BFE): throttle и debounce

Reading time3 min
Views11K

В этой серии статей я хочу решать BFE задачи (https://bigfrontend.dev) и разбирать решения. BFE - это сайт с задачками, которые позволяют подготовиться к фронтовому интервью и прокачать свои знания в JavaScript.

Сегодня я хочу рассмотреть 2 задачи, это throttle и debounce.

Читать далее

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

Reading time12 min
Views4.5K

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

В свое время Алан Купер сформулировал «метод персон» (или персонажей) — фреймворк, в рамках которого разрабатывается усредненный портрет типичного пользователя какого-либо интерфейса. По мнению автора, только проявив эмпатию, поняв цели и задачи людей, можно придумать какое-либо решение и разработать удобный продукт, который им понравится.

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

Мы считаем, что персоны сейчас более чем актуальны и способны повысить эффективность процесса работы над цифровым продуктом. Далее в статье мы покажем, что данный метод вовсе не противоречит новым подходам, в том числе Jobs-To-Be-Done. Но, наоборот, прекрасно их дополняет, а в некоторых случаях лежит в основе. В общем, обо всем по порядку.

Читать далее

Векторная навигация: как пешеходы выбирают «оптимальный» маршрут

Reading time9 min
Views5.2K


Современные города с высоты птичьего полета напоминают клетчатый плед, с множеством пересекающихся улиц, переулков, проспектов, аллей и бульваров. Каждый из этих элементов градостроения имеет свое название, направление и какие-то примечательные особенности, позволяющие нам лучше ориентироваться в урбанистском муравейнике. Самым коротким путем между точками А и В, естественно, является прямая, но в городской среде это не всегда реализуемый вариант. Тогда возникает вопрос — каким маршрутом нужно идти, чтобы быстрее добраться до места назначения? Ученые из Массачусетского технологического института (США) установили, что человеческий мозг, в отличие от GPS-навигатора, плохо справляется с расчетами кратчайшего пути. Это часто приводит к тому, что человек выбирает путь, направление которого указывает в сторону точки назначения, даже если сам путь оказывается длиннее. Какие данные удалось собрать в ходе исследования, какой алгоритм лежит в основе такой странной работы мозга, и чем его можно объяснить? Ответы на эти вопросы мы найдем в докладе ученых. Пошли Поехали.
Читать дальше →

Семантика и технология Word2Vec

Reading time6 min
Views8.7K

Сегодня поговорим о NLP-методах векторизации слов - Word Embeddings. Векторы слов лежат в основе многих систем обработки естественного языка и повсеместно используются в современном мире. Рассмотрим работу Word Embeddings на примере нейронной сети Word2Vec.

В более общем смысле Word2Vec удобен для работы с категориальными признаками.

Когда мы говорим о смыслах или о лингвистике, мы имеем дело с сотнями тысяч слов-смыслов. И вот, собственно, Word2Vec и есть та самая современная технология, которая позволяет работать с такими категориальными признаками.

Для демонстрации возможностей технологии Word2Vec введем некую обучающую последовательность данных. Эта последовательность будет в виде расстояния на иерархии isa.

Читать далее

О чем расскажут на С++ Russia 2021

Reading time15 min
Views4.6K

Уже скоро стартует С++ Russia. И в преддверии конференции хотим поделиться с хабражителями описаниями докладов.

С++ Russia — это всегда хардкор. В этот раз поговорим про ассемблер, асинхронные движки с корутинами, исключения, GPGPU и многое другое. Будут и низкоуровневые оптимизации, и метапрограммирование, и «кишочки», и конкурентность с многопоточностью.

Среди спикеров будут члены комитета по стандартизации C++, контрибьюторы известных проектов, один из авторов языка Swift (внезапно!), авторы книг и курсов, разработчики из крупных компаний. А также Антон Полухин @antoshkka, сочетающий в себе почти все перечисленное.

Под катом программа с описанием докладов,  для вашего удобства разбили ее на тематические блоки.

Смотреть программу

Наблюдение за Дистанционным Электронным Голосованием 2021 года (система Waves-РосТелеКом, федеральная)

Reading time27 min
Views11K

Привет Хабр, в 2019 году я разбирался в дистанционном электронном голосовании в МГД, в 2020 у нас было голосование по Конституции, где само голосование прошло хорошо, но номера паспортов неудачно попали в сеть. Ну а в этом году мне, как наблюдателю, удалось получить доступ непосредственно к нодам наблюдения всех 4-ех шардов блокчейна, использовавшегося в федеральном голосовании, получить полный дамп транзакций блокчейна голосования, сравнить его с теми транзакциями, что выложены на официальном сайте и начать его исследование. Как это было и что получилось - под катом

Читать далее

Генерация признаков из временных рядов

Reading time8 min
Views13K

Заглянуть в будущее

Когда мы хотим рассчитать количество звонков в колл-центр через час, поставить в пятничную смену достаточно курьеров или предсказать потребление электроэнергии небольшим городком через 5 лет, мы обращаемся к теме обработки временных рядов. На тему обработки timeseries (временной ряд, англ.) написано множество статей и создано несчетное количество часов видео. Но попробуйте задать поисковой системе вопрос: как работать с временными рядами. Уверен, вы закопаетесь в многообразии ссылок, похожих по смыслу и содержанию. Однако, ни одна из них не ответит на вопрос полностью. Авторы выдают два или три метода обработки как панацею от всех проблем в работе со временем.

Мы попробуем собрать в одной статье все классические и современные методы обработки даты и времени.

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

TL:DR

Основная цель статьи – создание новых признаков из временных периодов для решения бизнес-задач. Информация будет полезна новичкам и специалистам, которые редко работают со временными рядами. К тексту прилагается заметка на kaggle. Вы можете изучать статью и одновременно выполнять код. Мы не будем строить графики и рассматривать особенности временных рядов.

Ничего личного – просто бизнес

Читать далее

Подборка бесплатных курсов для тех, кто делает первые шаги в Data Science

Level of difficultyEasy
Reading time3 min
Views80K

Курсы упорядочены по степени необходимости, начиная с базовых знаний, без которых будет тяжело даваться дальнейшее изучение (линейная алгебра, статистика, базовое знание python и т.д.), переходя к более сложным. Старался избавиться от избыточности, оставляя только самые ценные, на мой взгляд, курсы. Эти бесплатные курсы легко заменят вам платные.

Читать далее

Ленивые операции над множествами в C++

Reading time6 min
Views14K

В C++ нет понятия "множество". Есть std::set, но это всё-таки конкретный контейнер. Есть функции для работы с упорядоченными диапазонами: merge, inplace_merge, includes, set_difference, set_intersection, set_symmetric_difference, set_union, но это алгоритмы, они не ленивые, и при вызове сразу вычисляют результат. К тому же они предназначены для работы строго с двумя диапазонами.


Что же делать, если, во-первых, диапазонов много (больше двух), а во-вторых, мы хотим вычислять результат не сразу, а по необходимости?


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


В публикации Ленивые итераторы и диапазоны в C++ я разбирал, что такое ленивые диапазоны.
Читать дальше →

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

Reading time3 min
Views6.9K

Алгоритмы сортировки


В этой статье речь пойдет о сравнении некоторых алгоритмов сортировки, реализованных на C++ для последовательности не упакованных BCD чисел большого размера.

image

Данный анализ я проводил в качестве летней практики в компании «Программные технологии».
Сортируемая последовательность не имеет заголовка, числа в ней имеют различную разрядность и хранятся без выравнивания. Между числами стоят разделители (0xFF).

Для осуществления сортировки с помощью библиотечной функции вводится дополнительный уровень данных – контейнер, содержащий указатели на области памяти, каждая из которых содержит одно BCD число. В сравнении участвуют:

1. Сортировка слиянием;
2. Сортировка слиянием без использования буфера;
3. Естественная сортировка слиянием;
4. Естественная сортировка слиянием без использования буфера;
5. Модифицированная естественная сортировка слиянием;
6. Модифицированная естественная сортировка слиянием без использования буфера;
7. std::sort.
Читать дальше →

Ленивые диапазоны и стирание типов

Reading time5 min
Views6.1K

В публикации Ленивые операции над множествами в C++ я показал, как можно проектировать ленивые операции над несколькими диапазонами. Теперь я хочу подробнее рассказать о важном решении, делающем такие операции удобными в использовании.


Один из основных моментов в интерфейсе ленивых операций над диапазонами — это возможность следующей записи


burst::merge(std::tie(range1, range2, ...));

То есть возможность работать с произвольным набором исходных диапазонов.


В коде это будет выглядеть как-то так:


const auto odd = std::vector{1, 3, 5, 7};
const auto even = std::list{0, 2, 4, 6, 8};

const auto merged_range = burst::merge(std::tie(odd, even));

const auto expected = {0, 1, 2, 3, 4, 5, 6, 7, 8};
assert(merged_range == expected);

Почему же это так важно, и что стоит за этой записью?


Ответ на вопрос "почему это важно" понятен. Во-первых, это красиво. Кроме того, удобно.
А вот что за этим стоит — и есть суть данной публикации.

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

Пишем систему рекомендаций музыки на основе ML

Reading time9 min
Views11K

К старту курса по ML и DL рассказываем, как воспользоваться API Spotify, чтобы создать систему рекомендаций музыки под настроение на основе алгоритмов ML. Благодаря простоте систему легко настроить под ваши нужды: API Spotify возвращает понятные человеку признаки музыкального файла, например тембр. За подробностями приглашаем под кат.

Читать далее

Частотный биграммный анализ на Python

Level of difficultyMedium
Reading time9 min
Views9K

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

Побродив по бескрайним просторам интернета, я с удивлением обнаружил, что исследований на такую базово простую, и в то же время локально востребованную тему преступно мало. Их буквально можно пересчитать по пальцам.

Для английского языка было найдено 12 более или менее достоверных анализов для базовой символьной частотности, из которых только 3 обладают внушительными базовыми выборками, и 5 биграммных анализов (парная частотность), из которых внушительной выборкой могут похвастать лишь 2.

Для русского и того меньше – 7 анализов базовой частотности, из которых 3 без указанного значения выборки, остальные же в пределах х×106 символов. Биграммных – 3, один из которых сделан по единственной книге «Преступление и наказание», а второй на 5.000 символов.

Несложно догадаться, как обстоит дело с менее популярными языками.

Читать далее

Information

Rating
3,856-th
Registered
Activity

Specialization

Specialist
SQL