Как стать автором
Обновить
14.65
Рейтинг

R *

Язык для статистической обработки данных

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Выбираем логин на Яндекс.Почте

Python *Математика *R *
Из песочницы

Много лет назад я зарегистрировал себе несколько трех- и четырехсимвольных адресов на Яндекс.Почте. Они оказались очень удобными, потому что их легко писать и диктовать, особенно вместе с доменом ya.ru.

Спустя время решил проверить, остались ли еще свободные короткие адреса и есть ли среди них какие-то поинтересней. Я предполагал, что сейчас уже ничего подобного не найти. Но когда начал вбивать разные варианты в форму на странице регистрации, то понял, что шансы пока есть. Не удовлетворившись парой выпавших логинов, решил комплексно изучить вопрос.

В статье вы найдете все, что вряд ли хотели знать, но теперь имеете отличную возможность узнать, о формате и количестве логинов Яндекса, а также датасет, с помощью которого сможете попробовать разобраться с «6-q» аномалией (у меня не получилось).

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 6.1K
Комментарии 21

Новости

Путь, который занял 100* лет: встречаем CatBoost 1.0.0

Блог компании Яндекс Open source *R *Машинное обучение *Распределённые системы *


Всем привет. Меня зовут Станислав Кириллов, я работаю в команде, которая отвечает за развитие библиотеки машинного обучения CatBoost. Мы впервые поделились ей с сообществом четыре года назад — хотя мы привыкли строить бинарные деревья, поэтому и отсчёт лет предпочитаем вести так же. Это шутка, конечно, но «столетие» — хороший повод для выпуска первой «production ready» версии библиотеки с символичным номером 1.0.0.

Сегодня я кратко отвечу, почему мы считаем выпуск версии 1.0.0 важной вехой, и подсвечу главные изменения (и в новой версии, и в целом за год). А уже завтра выступлю с рассказом на встрече, которая будет целиком и полностью посвящена практике применения CatBoost и противостоянию нейросетей и градиентного бустинга. Если эти слова для вас что-то значат, то добро пожаловать под кат.

Читать дальше →
Всего голосов 59: ↑58 и ↓1 +57
Просмотры 16K
Комментарии 7

process mining: 100 строк кода и генератор логов у нас в руках

Python *Data Mining *R *Бизнес-модели


Продакт-менеджерам посвящается...


Заступая на территорию proccess mining, каждый участник рано или поздно будет нуждаться в наборе логов событий, отражающих те или иные специфические моменты в процессах. Эти логи нужны как на этапе демонстрации решения, подсвечивания определенных вопросов, так и для отработки алгоритмов или же тестов на производительность. Оба рекомендуемых сценария «взять с продуктивных систем» или «взять из интернета» терпят фиаско. Как правило, это очень
малые датасеты, слабо удовлетворяющие потребностям как по наполнению, так и по объему.


Остается вариант — написать генератор правдоподобных логов самостоятельно. Тут тоже есть два варианта.


  • Вариант первый — превратить эту задачу в универсальный монстроподобный продукт, содержащий визуальный конструктор в нотации BPMN 2.0, всевозможные визуальные конструкторы формул и атрибутов, полноценную имитационную машину под капотом. Годы работы, миллионы на ветер, на выходе — файл с логами. КПД близок к нулю.
  • Вариант второй — отнестись к этой задаче как к вспомогательной и создать инструментами data science стека упрощенный генератор в 100 строк кода.

Остановимся далее на втором варианте.


Является продолжением серии предыдущих публикаций.

Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.5K
Комментарии 0

Скучно, просто и ограниченно — все это изотоническая регрессия

R *

Обзор пакета cir о достаточно специфическом виде регрессии - изотонической. По сути дела, это больше изотоническая интерполяция, но раз авторы сказали "регрессия" - пусть будет регрессия.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 1.2K
Комментарии 2

Обзор R пакетов для интернет маркетинга, часть 2

API *R *Интернет-маркетинг Контекстная реклама Data Engineering *
Tutorial

Первой моей публикацией на Хабре была "Обзор R пакетов для интернет маркетинга, часть 1", с тех пор прошло почти 3 года. За это время какие-то пакеты стали не актуальны, какие-то сильно изменились и конечно появились новые пакеты, которые могут значительно облегчить жизнь интернет маркетологам и веб аналитикам.

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

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 1.1K
Комментарии 0

Анализ распределения временных интервалов между покупками на R

R *Визуализация данных Статистика в IT
Из песочницы

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

Я представляю:

1. Код на R для анализа любых временных интервалов.

2. Подбор экспоненциального и степенного распределения под данные с помощью метода максимального правдоподобия (MLE). Для экспоненциального я использую fitdistr() из пакета MASS, а для степенного fit_power_law() из пакета igraph.

3. Проверку данных на соответствие подобранному распределению с помощью теста Колмогорова-Смирнова. Я использую функцию ks.test() из пакета stats.

Читать далее
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 2K
Комментарии 11

ETL в анализе данных без перерывов на кофе и курилку

Python *Data Mining *R *Data Engineering *


Кадр из фильма «Индиана Джонс: В поисках утраченного ковчега» (1981)


Наблюдаемая все чаще и чаще картина в задаче анализа данных вызывает удручающее впечатление. Intel, AMD и другие производители непрерывно наращивают вычислительную мощность. Гениальные математики-программисты пишут суперэффективные библиотеки и алгоритмы. И вся эта мощь гасится и распыляется рядовыми аналитиками и разработчиками. Причем начинается это все с нулевого этапа — этап подготовки и загрузки данных для анализа. Многочисленные вопросы и диалоги показывают, что в нынешних программах обучения зияют огромные дыры. Людям просто незнакомы многие концепции и инструменты, уже давно придуманные для этих задач. Для тех, кто хочет увеличить свою продуктивность, далее тезисно будут рассмотрены ряд таких подходов и инструментов в частичной привязке к реальным задачам.


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


Является продолжением серии предыдущих публикаций.

Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 4.1K
Комментарии 4

В глубины регрессии или про пакет frm в R

R *

В статье обозревается оригинальный подход к построению моделей цензурированной регрессии, если зависимая переменная лежит в интервале [0;1] с помощью пакета frm.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 791
Комментарии 3

Мы не идем простыми путями или о применении P-сплайнов в регрессии

R *

Обзор части функционала нового пакета SOP, реализующего алгоритм построения уравнения регрессии с использованием модификаций P-сплайнов.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 749
Комментарии 0

Как в Trello оценить процессные задачи и построить их визуализацию?

Программирование *API *R *Визуализация данных
Tutorial

Если вы задавались вопросом:
- "Как четко (или почти четко) измерить эффективность процессной работы программистов, маркетологов, аналитиков, дизайнеров и на основе этих измерений построить визуализацию?" - то эта статья будет вам интересна.

В решении задачи используем язык программирования R, графики на ggplot и Trello как инструмент таск-менеджмента в том виде в котором ранее скорее всего вы его не использовали.

Разберем подробно
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 1.8K
Комментарии 2

Уходим с Mercurial на Git

Блог компании RUVDS.com Python *Git *R *Управление разработкой *
Tutorial
Кадр из фильма «Красный шар». Режиссер Альбер Ламорис. 1956 год

Так уж случилось, что у меня остался ряд репозиториев на Mercurial, которые захостил на Bitbucket много лет назад. Проекты перешли в полуархивное состояние, поэтому заглядывал в них не так уж и часто. И тут я решил обратиться к материалам, надо было внести правку. С удивлением обнаружил, что репозиториев на битбакете нет, но есть публикация «Sunsetting Mercurial support in Bitbucket».

Не критично, локальные репозитории сохранились же (а там коммитов за 10+ лет). Попробуем переехать на github/gitlab по инструкции из статьи. И, конечно же, эти инструкции работают только с latin-1, русские буквы либо не дают переехать, либо заменяются на ?. Извечная проблема кодировок. Можно ли что-то сделать?

UPDATE по результатам комментариев.
Для «приземления» задачи рассмотрите контекст коммерческой поддержки большой инсталляции ПО, созданного в компании где вы сейчас работаете, которое n лет уже не развивается (выпустили совсем новую ветку), но обязательства по поддержке остались по проданным ранее контрактам. И периодически всплывают баги.

Является продолжением серии предыдущих публикаций.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры 5.8K
Комментарии 34

Большая подборка телеграмм-каналов для аналитиков

Python *SQL *Data Mining *R *Data Engineering *

Работа аналитика требует постоянного пополнения своих знаний - новые инструменты, обновления и методы создаются, как горячие пирожочки. Но перерабатывать такие объемы информации просто нереально, а узнавать что-то новенькое и полезное хочется. И что делать?

Можно, конечно, подписаться на «стоковые» группы и каналы, которые каждый день публикуют по 10-20 постов с «полезным» материалом. Но, признайтесь, это просто самообман: во-первых, столько информации в день просто невозможно пропустить через себя - это только и надо, что статьи читать, а есть же еще работа/учеба. Во-вторых, «полезность» этих статей сомнительна - не каждый пост от умного индуса можно считать полезным, увы :(

Так как же быть? Ответ прост - читать авторские каналы, где реальные специалисты делятся информацией, которую они для себя считают полезной!

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

Сохраняйте себе и подписывайтесь на ребят - они это точно заслужили! :)

Читать далее
Всего голосов 8: ↑3 и ↓5 -2
Просмотры 11K
Комментарии 5

Разработка (dev) и data science в enterprise — битва за ресурсы или эффективное сотрудничество?

Блог компании RUVDS.com Python *Анализ и проектирование систем *R *Управление разработкой *

В подавляющем большинстве случаев, когда речь заходит о «настоящей» разработке продукта или решения enterprise уровня, сразу появляются корпоративные архитекторы и глобальные архитектуры и шаблоны, высокоуровневые модели данных и концепты, попытки охватить всё и вся. Формируется шорт лист из языков и фреймворков, в рамках которых идет вся последующая разработка. Все «только на Java» или «только на C#» или… (впишите на свое усмотрение).
Несомненно, это является отражением предыдущего проектного опыта, лучших мировых практик, готовности подхватить новые запросы бизнеса и в общем случае такой подход оправдан. Но в каждом частном случае подобный глобализм на этапе взлета продукта, в тот момент, когда многое еще находится в состоянии неопределенности, может просто погрести под собой начинание и превратить проект в очередную неудачу. Можно ли что-то изменить, упростить и улучшить не теряя при этом в качестве?
Оказывается что это вполне возможно за счет объединения классической разработки ПО с инструментами и подходами data science (далее просто DS). Как этого можно достичь — разберем по шагам.

Материал является продолжением серии предыдущих публикаций.
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 3K
Комментарии 7

Расчёт полной аэродинамической силы беспилотного летательного аппарата в SimInTech

R *
Из песочницы

В настоящий момент идёт широкое развитие беспилотной авиации ведущими мировыми державами. Каждый разработчик опытного образца создаёт свою уникальную форму летательного аппарата в зависимости от тактико-технических требований. На борту беспилотного летательного аппарата управляемого автономно система управления решает задачу по поиску оптимального маршрута для движения к цели и выработки управляющего воздействия для достижения цели. Для выработки управляющего воздействия необходимо учитывать силы и моменты действующие на летательный аппарат. Полёт беспилотного летательного аппарата (БПЛА) проходит в плотных слоях атмосферы, поэтому важно учитывать аэродинамическую силу и момент создаваемый силой, действующие на летательный аппарат. В данной статье рассмотрен пример расчёта только полной аэродинамической силы БПЛА в системе модельно-ориентированного проектирования систем автоматического управления SimInTech. В качестве примера выберем перспективный многоцелевой БПЛА отечественного разработчика (рис. 1).

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 4.1K
Комментарии 6

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

R *Здоровье
Из песочницы

Если спросить у эндоваскулярного хирурга с 10-летним стажем про стентирование артерий сердца при инфаркте миокарда - он может сказать , “Уверен, что у этого пациента артерия закроется после нашей операции”. Раньше я воспринимал это как данность. В институте мне нравилось это называть интуицией врача, или предчувствие исхода. В аспирантуре захотелось обличить все эти метафизические предсказания в закономерную структуру, поддающуюся логическому объяснению. Опытный хирург обучил свою нейросеть в головном мозге таким образом, что она оценивает несколько параметров пациента и предсказывает вероятность возникновения окклюзии артерии. Сейчас покажу как я сделал то же самое без большого стажа, и программы для расчета статистики.

Как смоделировать "чуйку" хирурга
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.8K
Комментарии 8

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

Блог компании RUVDS.com Python *Алгоритмы *Big Data *R *

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


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


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


Является продолжением серии предыдущих публикаций.

Читать дальше →
Всего голосов 52: ↑51 и ↓1 +50
Просмотры 5.1K
Комментарии 2

extendr: вызываем rust из R (и наоборот)

R *Rust *

R, как и большинство подобных ему высокоуровневых скриптовых языков, часто полагается на код, написанный на более низкоуровневом языке. Библиотеки R - пакеты (packages) - нередко содержат код, написанный на C, C++ или FORTRAN. Нативный код позволяет обойти различные ограничения (например, однопоточность) и ускорить выполнение сложных алгоритмов за счет оптимизаций, попросту недоступных из самого R. Вся эта вычислительная мощь, тем не менее, получает удобный и совместимый с другими инструментами интерфейс на стороне R.

Разработка пакетов с C/ C++ кодом давно налажена благодаря сторонним библиотекам, включая {usethis}, {devtools}, {pkgbuild}, {cpp11} и т.д. Но что насчет других низкоуровневых языков? Ведь R всего-навсего динамически подгружает и вызывает библиотеки, поэтому если соблюсти все необходимые условия, можно, например, создать пакет с кодом, написанном на Rust. Несмотря на то, что на практике это действительно работает, разработка, поддержка и внедрение таких инструментов - довольно трудоемкий процесс. Точнее был трудоемким до этого момента.

Enter extendr, проект, который позволяет соединить R и Rust и с легкостью интегрировать Rust код в пакеты R, одновременно предоставляя возможность хостить R сессию в Rust. extendr находится в разработке довольно давно (больше полугода активной фазы) и представляет собой MVP (minimum viable product), но до сих пор был обделен вниманием. Rust-крейт уже какое-то время доступен на crates.io, а R-пакет ожидает проверки на CRAN.

extendr - отличный способ наладить взаимодействие между разработчиками, пишущими на Rust и R. Если вы знаете один из языков и хотели бы познакомиться со вторым, или же хотите портировать свои R-пакеты с проблематичных C/ C++ на модный Rust, добро пожаловать под cut.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 945
Комментарии 0

Модификация EM-алгоритма для решения задачи кластеризации с выбросами

R *

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

Один из подходов к решению данной задачи (чтобы метод кластеризации автоматически отсеивал выбросы) получил название "optimally tuned robust improper maximum likelihood estimator" и был описан вот в этой статье 2017 года (http://dx.doi.org/10.1080/01621459.2015.1100996), а недавно и получил реализацию на R. Поговорим о нем.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 1K
Комментарии 2

Оценка структуры кредитного портфеля с помощью R

Python *Data Mining *Big Data *R *Визуализация данных

В ходе обсуждений возникла «маленькая» задачка — построить динамику структуры кредитного портфеля (динамика кредитной карты, например). Есть важная специфика — необходимо применять метод FIFO для погашения займов. Т.е. при погашении первыми должны гаситься самые ранние займы. Это накладывает определенные требования на расчет статуса каждого отдельного займа и определения его даты погашения. Задачу решаем честно.


Рассматриваем как олимпиадную задачу. Никаких «кровавых энерпрайзов с корпоративными архитекторами» и педалинга кода, подход исключительно «сначала подумать». Не более одного экрана кода на прототип и никаких циклов (закладные для производительности и читаемости). Ниже приведен код на R с прототипом подхода.


Является продолжением серии предыдущих публикаций.

Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 1.7K
Комментарии 0

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