• Моя музыка 2020 года в картинках и графиках

      Я взял плейлист «Мой 2020», который сделала Яндекс-музыка, добавил туда немного метаданных о песнях, а потом посчитал статистику и узнал, какие у меня любимые группы и жанры, песни каких лет мне больше всего нравятся и какие слова встречаются в текстах наиболее часто. Нарисовал результаты на графиках, а ещё оформил статью так, как будто это серьёзное исследование. Помогали мне язык программирования R с пакетами ggplot2, tm и wordcloud2.

      Узнать результаты исследования
      • +30
      • 5.8k
      • 3
    • Фантастика 2020 года, которую стоит почитать



        Под конец года принято подводить итоги и кажется стоит вспомнить, что же было в этом непростом году хорошего. Например, я читал много отличных книг (что еще делать дома?). Вот немного про самые примечательные из них или, по крайней мере, те, которые сильнее всего запомнились мне.
        Читать дальше →
      • Логирование выполнения скриптов на языке R, пакет lgr

        • Tutorial

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


        По умолчанию скрипты которые запускаются командой R CMD BATCH логируются в одноимённые файлы с расширением .Rout. Но такие логи неудобно читать, а анализировать невозможно.


        Есть целый ряд пакетов, которые берут на себя процесс логирования. В этой статье мы рассмотрим один из наиболее функциональных и новых пакетов — lgr.


        Читать дальше →
      • Опыт внедрения Shiny в качестве корпоративной отчетности

          Всем привет! Меня зовут Сергей, я аналитик в ГК «Везёт». Исторически так сложилось, что в нашей компании было множество систем отчетности: от платных в виде Looker и Qlick – до самописных веб-сервисов. Однажды решив, что так дальше жить нельзя, мы стали выбирать единую систему, на которой будет все, и в итоге остановились на Shiny. В этой статье я расскажу про наш опыт внедрения Shiny в качестве корпоративного BI. Эта статья будет полезна всем, кто только выбирает инструмент для корпоративной отчетности.

          Читать дальше →
          • +10
          • 1.3k
          • 4
        • ООП в языке R (часть 2): R6 классы

          • Tutorial

          В прошлой публикации мы разобрали S3 классы, которые являются наиболее популярными в языке R.


          Теперь разберёмся с R6 классами, которые максимально приближённые к классическому объектно ориентированному программированию.


          Читать дальше →
        • Как в enterprise приручить при помощи R технологии process mining?

            Как-то так получилось, что в 2020 году возник всплеск интереса к тематике Process Mining. Не исключено, что новая реальность удаленного режима потребовала более пристальной оценки эффективности технологических и бизнес-процессов. Это же как с кривыми и косыми деревянными рамами. Сквозит из всех щелей, а счетчик накручивает мегаватты на обогрев.


            В целом, видны несколько популярных запросов по применению технологии process mining:


            • хочется что-то улучшить, но кроме модного слова больше ничего не слышали;
            • получить или сэкономить «живые деньги» путем оптимизации классического процесса «order-to-cash» и ему подобных;
            • системный аудит всего и вся собственной командой аудиторов;
            • построение операционной аналитики и мониторинга на основе показателей процессов, а не ИТ метрик.

            В 99% случаев начинают читать Gartner/Forrester и попадают на 4-ку вендоров (Celonis/Minit/Software AG/UiPath), которые как-то присутствуют в России. И до того, как начать получать какую-либо выгоду, тут же получают немаленький ценник за лицензии и последующую ежегодную поддержку. При этом экономическое обоснование шито белыми нитками.


            А действительно ли нужно идти таким путем? Особенно, когда задачи и цели не до конца понятны самим постановщикам. Не стоит забывать, что вендоры требуют специально подготовленный лог событий, а его подготовка может вылиться в головную боль и многие месяцы интеграционной работы в классическом enterprise ландшафте.


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

            Читать дальше →
          • «Жизнь» на PostgreSQL

              Недавно на Хабре была опубликована статья Морской бой в PostgreSQL. Должен признаться: я обожаю решать на SQL задачи, для SQL не предназначенные. Особенно одним SQL-оператором. И полностью согласен с авторами:

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

              И еще. Будем честны: всегда использовать SQL по назначению — тоска зеленая. Вспомните, какие примеры приводятся во всех учебниках, начиная с той самой статьи Кодда? Поставщики да детали, сотрудники да отделы… А где же удовольствие, где же фан? Для меня один из источников вдохновения — сравнение процедурных решений с декларативными.

              Я, позвольте, не буду объяснять, что такое Жизнь Джона Конвея. Скажу только, что — оказывается — используя клеточный автомат Жизни, можно построить универсальную машину Тьюринга. Мне кажется, это грандиозный факт.

              Так вот, можно ли реализовать игру Жизнь одним оператором SQL?
              Конечно можно
            • Анализируй это: оценки игр на Metacritic

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

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

              Предыстория


              Многие из нас весной-летом этого года получили в своё распоряжение несколько свободных часов в день – работа на дому, спад деловой активности и другие причины всем известны. Своё свободное время я решил обратить на пользу – подтянуть R, которым не пользовался с университетских времён, а заодно и попрактиковаться на реальных данных (грош цена сертификатам без реальных проектов).

              Почему я выбрал именно эту базу? Потому, что люблю игры. А ещё, потому что в июне случился скандал вокруг игры The Last of Us. Part II, которая получила практически полное признание критиков, и была крайне негативно воспринята частью игрового сообщества.

              Мне было интересно найти ответ на несколько вопросов:

              1. Насколько соответствуют друг другу оценки прессы и игроков?
              2. Существует ли значимая динамика в а) оценках прессы; б) оценках игроков; в) разности оценок?

              И я приступил к поиску ответов.
              Читать дальше →
            • Пишем telegram бота на языке R (часть 1): Создаём бота, и отправляем с его помощью сообщения в telegram

              • Tutorial

              Аудитория telegram ежедневно растёт с геометрической прогрессией, этому способствует удобство мессенджера, наличие каналов, чатов, и конечно возможность создавать ботов.


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


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


              Я планирую написать серию статей, о том, как на языке R работать с telegram bot API, и писать ботов под свои нужды.



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

              Читать дальше →
            • «Storytelling with Data», Cole Nussbaumer Knaflic: неформальный обзор-конспект книги

                «Наши сайнтисты сгенерировали кучу графиков, а мы совершенно не знаем, куда их девать. Давайте попробуем их хоть как-то пристроить». (с) подслушано

                «Плохие графики везде. В моей работе я постоянно встречаю крайне сомнительные визуализации данных. Никто не делает плохие графики намеренно. Но это происходит. Опять и опять. В каждой компании во всех отраслях экономики сотрудниками всех уровней. Это происходит в СМИ. Это происходит там, где вы ожидаете, что люди должны уметь визуализировать данные». (с) автор книги

                Это происходит и здесь, на Хабре: просматривая статьи в потоке «Визуализация данных», часто ловлю себя на мысли, что не понимаю и не могу схватить суть того, что отображено. В статье рассмотрим несколько примеров. И что самое неприятное для меня, это происходит и в моей работе тоже. Не постоянно, но чаще, чем хотелось бы.



                Название книги «Storytelling with Data» звучало убедительно. Выбрал её для вечернего чтения и не пожалел. В книге нет формул, хитрых и необычных графиков, сложных кейсов. Понятный английский. Качественная печать. Читается как художественная литература. Книга будет полезна всем, кому приходится делать презентации на основе данных. Думаю, что особенную пользу она принесёт тем, кто занимается аналитикой данных.

                Этот обзор очень неформальный: вперемешку идут мысли автора книги, мои мысли, ситуации из моей работы, а также шпаргалки по matplotlib по ссылкам. Будет много картинок. Почти все иллюстрации перерисованы из книги на Python.
                Читать дальше →
                • +18
                • 7.7k
                • 1
              • Пакеты-пакеты-пакеты… Насколько эффективно вы используете R?

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


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


                  R образца 2020 года очень сильно отличается от R даже 2018 года. В самом базовом коде были внесены достаточно значимые изменения для повышения эффективности и стабильности работы (скорость и потребление памяти). Но более динамичная часть экосистемы — это пакеты. Их коллекцию полезно периодически пересматривать с тем, чтобы перейти на более удобные и производительные реализации. С момента прошлой публикации «Джентельменский набор пакетов R для автоматизации бизнес-задач» и сами пакеты претерпели серьезные модернизации и спектр их достаточно сильно расширился и лидеры многократно менялись местами.


                  Не секрет, что мейнстрим не означает максимальную эффективность и универсальность. Придерживаясь рамок мейнстрима очень легко пропустить пакеты, которые являются жемчужинами. Особенно удобно открывать их на R конференциях UseR!, Rconf, eRum, и т.д.


                  Ниже приведен список пакетов общего применения, который оказывается весьма полезным при решении повседневных задач (x пакетов из >10K на CRAN). Часто оказывается так, что многие новинки оказываются неизвестны собеседникам. Для сводного ознакомления по срезу на июль 2020 публикую в виде подборки. Ссылки, в большинстве случаев, ведут на страницу с подборкой функций. Уверен, что каждый найдет для себя что-то полезное.

                  Читать дальше →
                • Как клеить по 13 девушек в час, используя машинное обучение и Tinder

                    *Исключительно ради изучения Machine Learning, разумеется. Под немного недовольным взглядом любимой жены.

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

                    Я решил, что это неплохой способ немного пощупать машинное обучение на новой видеокарте. Останется только объяснить жене, что мне не нужна новая женщина потолще, а я просто тренирую нейросети.


                    Читать дальше →
                  • Как я использую AirDrop вместо Тиндера



                      В устройствах Apple есть прекрасная функция Airdrop — она сделана для пересылки данных между устройствами. При этом никакой настройки и предварительного сопряжения устройств не требуется, все работает из коробки в два клика. Для передачи данных используется надстройка над Wi-Fi, и поэтому данные передаются с огромными скоростями. При этом используя некоторые трюки, можно не просто пересылать файлы, но и узнать телефонный номер человека, находящегося с тобой в одном вагоне метро.

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

                      Под катом я расскажу за всю хурму.
                      Читать дальше →
                    • Как американцы становятся миллионерами: принципы FIRE

                      Пару лет назад на Хабре уже была статья про движение FIRE (Financial Independence / Retire Early). Она хорошо описала суть явления, но мало углублялась в детали, поэтому у многих читателей сложилось впечатление, что это не применимо в российских реалиях, или же ведет к очень ограниченной и несчастливой жизни по мере достижения финансовой независимости. Эти аргументы регулярно используют и американцы, в том числе неплохо зарабатывающие, которые знакомы с FIRE лишь понаслышке. Поэтому мне кажется полезным рассказать о принципах и способах достижения финансовой независимости, используемых американцами, а дальше уже каждый сам решит что из этого инструментария им доступно в их ситуации и их стране.

                      Один из частых мифов про последователей FIRE — это то, что они хотят бездельничать, и потому спешат “выйти на пенсию”. Как правило, это не так. Основное, чего стремятся избежать люди из этой группы — зависимость от работодателя. Одна из первых важных точек отсчета — это “fuck you money”. Такое количество денег, которое позволяет развернуться и хлопнуть дверью перед носом своего работодателя, если тот решит хамить или эксплуатировать зависимого (как ему кажется) сотрудника. Большинство людей любят работать и создавать, но хотели бы иметь возможность выбирать ту работу, что нравится, даже если там мало платят или не платят вообще. Многие “уволившиеся” создают свои подкасты, блоги, начинают консультировать, и иногда это довольно неожиданно превращается в успешный бизнес, позволяющий им перестать пользоваться своими накоплениями.

                      Для некоторых профессий, включая программистов, стандартный возраст выхода на пенсию еще и слишком высок с учетом возрастной дискриминации при приеме на работу. Многие сталкивались с тем, что после 50 лет работу найти все сложнее, и решать задачи на leetcode при подготовке к интервью все труднее. Поэтому желание обеспечить себе пенсию на 10-20 лет раньше официального ее наступления вполне понятно.
                      Читать дальше →
                    • Простой пример кластерного анализа алкогольных предпочтений по странам на R

                        Привет, Хабр! Сегодня хочу поделиться небольшим примером того, как можно проводить кластерный анализ. В этом примере читатель не найдет нейронных сетей и прочих модных направлений. Данный пример может служить точкой отсчета для того, чтобы сделать небольшой и полный кластерный анализ для других данных. Всем заинтересованным — добро пожаловать под кат.

                        Читать дальше →
                      • Как стать долларовым миллионером за 30 лет, лежа на диване



                          На Хабре недавно вышел пост ״Новичкам фондового рынка: честные разговоры о трейдинге״. Этот пост, опубликованный в одном из самых читаемых блогов Хабра, вводит людей в заблуждение и создает у них ложное представление о том, что игра на бирже — хороший способ заработка. Это вынудило меня написать комментарий, постепенно переросший в целую статью, с детальным разбором того, почему трейдинг — это не способ разбогатеть, а способ потерять деньги, и о том, как на самом деле заработать на инвестициях.
                          Поехали!
                        • Сравнение российской рэп сцены используя R и техники Text Mining. Noize Mc and Kasta vs Pharaoh and Morgenshtern

                          R. Text Mining. Rap


                          Популярность многих современных рэп исполнителей остается для меня и других приверженцев “старой школы” большой загадкой. Постоянные споры о том, кто лучше, чьи тексты интереснее, чья музыка разнообразнее занимают умы многих интернет-пользователей. Чтобы подтвердить эти споры не просто словами, а фактами я проанализировал тексты четырех российских рэп исполнителей, используя для этого язык программирования R.
                          Читать дальше →
                        • Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

                          • Translation
                          Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%.

                          С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по анализу данных в более чем десятке компаний. После очередного неудачного интервью в 2017 году — когда я запутался в сложных вопросах по SQL — я начал составлять задачник с вопросами по SQL средней и высокой сложности, чтобы лучше готовиться к собеседованиям. Этот справочник очень пригодился в последнем цикле собеседований 2019 года. За последний год я поделился этим руководством с парой друзей, а благодаря дополнительному свободному времени из-за пандемии отшлифовал его — и составил этот документ.

                          Есть множество отличных руководств по SQL для начинающих. Мои любимые — это интерактивные курсы Codecademy по SQL и Select Star SQL от Цзы Чон Као. Но в реальности первые 70% из курса SQL довольно просты, а настоящие сложности начинаются в остальных 30%, которые не освещаются в руководствах для начинающих. Так вот, на собеседованиях для аналитиков данных и специалистов по анализу данных в технологических компаниях часто задают вопросы именно по этим 30%.

                          Удивительно, но я не нашёл исчерпывающего источника по таким вопросам среднего уровня сложности, поэтому составил данное руководство.
                          Читать дальше →
                        • Язык R для пользователей Excel (бесплатный видео курс)

                            В связи с карантином многие сейчас львиную долю времени проводят дома, и это время можно, и даже нужно провести с пользой.


                            В начале карантина я решил довести до ума некоторые проекты начатые несколько месяцев назад. Одним из таких проектов был видео курс "Язык R для пользователей Excel". Этим курсом я хотел снизить порог вхождения в R, и немного восполнить существующий дефицит обучающих материалов по данной теме на русском языке.


                            Если всю работу с данными в компании, в котороый вы работаете принято по-прежнему вести в Excel, то предлагаю вам познакомится с более современным, и при этом совершенно бесплатным инструментом анализа данных.


                            Читать дальше →
                            • +16
                            • 20.5k
                            • 2
                          • Умирает ли RuTracker? Анализируем раздачи

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


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


                            У вас есть свой бизнес? Или может… хотя, не важно. Сам процесс добычи данных бесконечен и увлекателен. И даже просто хорошо покопавшись в интернете можно найти себе поле для деятельности.


                            Вот, что мы имеем сегодня – Неофициальная XML-база раздач сайта RuTracker.ORG. База обновляется раз в полгода и содержит в себе информацию о всех раздачах за историю существования данного торрент-трекера.


                            Что она может рассказать владельцам рутрекера? А непосредственным пособникам пиратства в интернете? Или обычному юзеру, увлекающемуся аниме, например?

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