• Как дата-сайентист машину покупал

    • Translation
    После многих лет жизни и работы в Нидерландах мне с семьёй пришло время возвращаться в Штаты и менять велосипеды на автомобили.



    В Америке очень сложно жить без машины, и, так как мы наши машины продали перед переездом, теперь нам надо было купить новое семейное средство передвижения. Я решил подойти к решению этой задачи так, как подошёл бы любой хороший специалист по обработке и анализу данных. Я решил воспользоваться данными.
    Читать дальше →
  • Довольно вычурные «Начала» Евклида в TeX-е



      «какая-то странная антикварная х██ня, написанная ирландским кулибиным в 1847 ну, хорошо, что и такая бывает, конечно» Миша Вербицкий

      В 16-м году мне на глаза попались «Начала» Евклида в интерпретации Оливера Бирна. Фишка этой книги в том, что вместо буквенных обозначений навроде «треугольник ABC» там прямо в текст помещаются миниатюры частей построения, то есть, например, картинка с соответствующим треугольником. Насколько сделать такую книгу, как можно представить, было адовой работой в середине XIX века, настолько же легко, с правильными инструментами, это должно бы быть теперь. И, в общем, решил я в этом убедиться наверняка.
      Читать дальше →
    • Как не стать Python-разработчиком

      Как выглядит трек обучения программированию на Python с нуля? С чего стоит начать? На чем сделать акцент? Как не потерять интерес?

      Полгода я искал ответы на эти вопросы, тщательно исследуя предметную область. Я обнаружил много полезных советов. Особенно в заметке Василия Большакова и на Хекслете. Но мне не хватало структуры. Знания нарастали со всех сторон и превращались в кучу. Чтобы структурировать процесс обучения и оценить его масштаб, я собрал план.
      Читать дальше →
    • Python изнутри. Объекты. Голова

      • Translation
      • Tutorial
      1. Введение
      2. Объекты. Голова
      3. Объекты. Хвост
      4. Структуры процесса

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

      Как я и писал в предыдущем эпизоде (который, кстати, оказался успешным; спасибо всем, ваши просмотры и комментарии буквально заставляют меня двигаться дальше!) – сегодняшний пост посвящён реализации объектов в Python 3.x. Поначалу я думал, что это простая тема. Но даже когда я прочитал весь код, который нужно было прочитать перед тем, как написать пост, я с трудом могу сказать, что объектная система Питона… гхм, «простая» (и точно не могу сказать, что до конца разобрался в ней). Но я ещё больше убедился, что реализация объектов — хорошая тема для начала. В следующих постах мы увидим, насколько она важна. В то же время, я подозреваю, мало кто, даже среди ветеранов Питона, в полной мере в ней разбирается. Объекты слабо связаны со всем остальным Питоном (при написании поста я мало заглядывал в ./Python и больше изучал ./Objects и ./Include). Мне показалось проще рассматривать реализацию объектов так, будто она вообще не связана со всем остальным. Так, будто это универсальный API на языке C для создания объектных подсистем. Возможно, вам тоже будет проще мыслить таким образом: запомните, всё это всего лишь набор структур и функций для управления этими структурами.
      Читать дальше →
    • Другой GitHub: репозитории по Data Science, визуализации данных и глубокому обучению


        (с)

        Гитхаб — это не просто площадка для хостинга и совместной разработки IT-проектов, но и огромная база знаний, составленная сотнями экспертов. К счастью, сервис предоставляет не просто инструменты для работы с открытым исходным кодом, но и качественные материалы для обучения. Мы выбрали некоторые популярные репозитории и отсортировали их по количеству звезд в порядке убывания.

        Эта подборка поможет разобраться, на какие именно репозитории стоит обратить внимание, если вас интересует работа с данными и сфера глубокого обучения.
        Читать дальше →
      • Другой Github 2: машинное обучение, датасеты и Jupyter Notebooks



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

          В этой подборке собраны репозитории по машинному обучению, датасетам и Jupyter Notebooks, ранжированные по количеству звезд. В предыдущей части мы рассказывали о популярных репозиториях для изучения работ по визуализации данных и глубокому обучению.
          Читать дальше →
          • +43
          • 14.6k
          • 1
        • Библиотеки для глубокого обучения Theano/Lasagne

          • Tutorial

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


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


          Я открою этот цикл статьёй о Theano — библиотеке, которая используется для разработки систем машинного обучения как сама по себе, так и в качестве вычислительного бекэнда для более высокоуровневых библиотек, например, Lasagne, Keras или Blocks.


          Theano разрабатывается с 2007 года главным образом группой MILA из Университета Монреаля и названа в честь древнегреческой женщины-философа и математика Феано (предположительно изображена на картинке). Основными принципами являются: интеграция с numpy, прозрачное использование различных вычислительных устройств (главным образом GPU), динамическая генерация оптимизированного С-кода.

          Читать дальше →
        • Геометрия данных 3. Скалярное произведение пар

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



            Читать дальше →
            • +16
            • 7.4k
            • 6
          • Чтение на выходных: 17 независимых блогов по математике, алгоритмам и языкам программирования

              Сегодня мы подготовили очередную [наш IaaS-дайджест и материалы по структурированию кода] подборку полезных источников. На этот раз мы решили изучить тематическую ветку на Hacker News и рассказали о блогах, которые могут хорошо дополнить чтение «Хабра».

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

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

              Читать дальше →
              • +17
              • 55k
              • 1
            • Основы языка программирования Python за 10 минут

              • Translation
              Python Logo

              На сайте Poromenos' Stuff была
              опубликована статья, в которой, в сжатой форме,
              рассказывают об основах языка Python. Я предлагаю вам перевод этой статьи. Перевод не дословный. Я постарался подробнее объяснить некоторые моменты, которые могут быть непонятны.

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


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

              • Translation


              Введение


              Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


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


              Задача


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


              Читать дальше →
            • Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas



                Курс состоит из:


                • 10 статей на Хабре (и то же самое на Медиуме на англ.)
                • 10 лекций (Youtube-канал на русском + более свежие лекции на англ.), подробное описание каждой темы – в этой статье
                • воспроизводимых материалов (Jupyter notebooks) в репозитории mlcourse.ai и в виде Kaggle Dataset (нужен только браузер)
                • отличных соревнований Kaggle Inclass (не на "стаканье xgboost-ов", а на построение признаков)
                • домашних заданий по каждой теме (в репозитории — список демо-версий заданий)
                • мотивирующего рейтинга, обилия живого общения и быстрой обратной связи от авторов

                Текущий запуск курса – с 1 октября 2018 года на английском языке (ссылка на опрос для участия, заполняйте на английском). Следите за объявлениями в группе ВК, вступайте в сообщество OpenDataScience.

                Читать дальше →
              • Наркоманов и алкоголиков вычислили по поведению в соцсети


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

                  По американской статистике, 10% населения США в возрасте 12 лет и старше страдают от той или иной формы зависимости — в официальной терминологии это называется substance use disorder (SUD) (зависимость). Вероятно, в РФ этот показатель гораздо выше. По оценке РБК, здесь 10% населения принимают суррогатные напитки (медицинские лосьоны, «боярышник», омыватели стекла, паленка и др.), а легальный алкоголь употребляют многократно большее количество людей.

                  В последние годы люди стали проводить огромное количество времени в социальных сетях, где общаются, обмениваются мыслями и т. д. Это огромный объём информации, достаточный для системы машинного обучения. И зависимых людей в социальных сетях тоже очень много. Благодаря достижениям учёных стало возможным автоматически выявлять наркоманов, алкоголиков и курильщиков табака по их лексике и культурным интересам (музыка, фильмы).

                  Возможно, в будущем начнётся даже автоматическая фильтрация наркоманов в Интернете. Например, им запретят регистрацию на некоторых сайтах или будет присваиваться особенный значок в профиле.
                  Читать дальше →
                • Yet Another Conference 2017

                    Сегодня началась традиционная конференция Яндекса. Андрей Себрант будет вести поток про маркетинг, Иван Ямщиков — онлайн-канал, а Григорий Бакунов откроет новую секцию «Технологии медицины». Для всех, кто не может лично посетить конференцию, Яндекс ведет онлайн-трансляцию.

                    Атлас подготовил для зрителей и участников YaC большую программу — двух спикеров, бесплатное генотипирование и небольшой сюрприз. Сейчас расскажем обо всем подробнее.



                    Автор фото — Очир Манджиков
                    Читать дальше →
                  • Библиотека глубокого обучения Tensorflow

                      Здравствуй, Хабр! Цикл статей по инструментам для обучения нейронных сетей продолжается обзором популярного фреймворка Tensorflow.


                      Tensorflow (далее — TF) — довольно молодой фреймворк для глубокого машинного обучения, разрабатываемый в Google Brain. Долгое время фреймворк разрабатывался в закрытом режиме под названием DistBelief, но после глобального рефакторинга 9 ноября 2015 года был выпущен в open source. За год с небольшим TF дорос до версии 1.0, обрел интеграцию с keras, стал значительно быстрее и получил поддержку мобильных платформ. В последнее время фреймворк развивается еще и в сторону классических методов, и в некоторых частях интерфейса уже чем-то напоминает scikit-learn. До текущей версии интерфейс менялся активно и часто, но разработчики пообещали заморозить изменения в API. Мы будем рассматривать только Python API, хотя это не единственный вариант — также существуют интерфейсы для C++ и мобильных платформ.


                      Читать дальше →
                    • Открытый курс машинного обучения. Тема 4. Линейные модели классификации и регрессии


                        Всем привет!


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


                        Пример такой задачи – это соревнование Kaggle Inclass по идентификации пользователя в Интернете по его последовательности переходов по сайтам.


                        UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.


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

                        Читать дальше →
                      • Визуализация алгоритмов сортировки обменом на JavaScript

                        Доброго времени суток всем читателям и авторам habrahabr.ru. Речь в данной статье будет идти о визуализации простейших алгоритмов сортировки.




                        На выполнение данной работы меня вдохновил Timo Bingmann – аспирант из Института теоретической информатики и алгоритмов при Технологическом институте Карлсруэ (Германия) [1]. Тимом была написана отличная статья, где можно почитать немного о истории визуализаций и аудификаций алгоритмов [2]. Программисты, как никто знают, как тяжело идет процесс понимания абстрактных сущностей, и как сильно в этом помогают метафоры и методы визуализации. Когда какому-либо объекту из реальной жизни аналогично присваиваются свойства и методы виртуальных объектов.

                        Читать дальше →
                      • Парсим на Python: Pyparsing для новичков

                        Парсинг (синтаксический анализ) представляет собой процесс сопоставления последовательности слов или символов — так называемой формальной грамматике. Например, для строчки кода:

                        import matplotlib.pyplot  as plt
                        

                        имеет место следующая грамматика: сначала идёт ключевое слово import, потом название модуля или цепочка имён модулей, разделённых точкой, потом ключевое слово as, а за ним — наше название импортируемому модулю.

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

                        { 'import': [ 'matplotlib', 'pyplot' ], 'as': 'plt' }
                        

                        Данное выражение представляет собой словарь Python, который имеет два ключа: 'import' и 'as'. Значением для ключа 'import' является список, в котором по порядку перечислены названия импортируемых модулей.

                        Для парсинга как правило используют регулярные выражения. Для этого имеется модуль Python под названием re (regular expression — регулярное выражение). Если вам не доводилось работать с регулярными выражениями, их вид может вас испугать. Например, для строки кода 'import matplotlib.pyplot as plt' оно будет иметь вид:

                        r'^[ \t]*import +\D+\.\D+ +as \D+'
                        

                        К счастью, есть удобный и гибкий инструмент для парсинга, который называется Pyparsing. Главное его достоинство — он делает код более читаемым, а также позволяет проводить дополнительную обработку анализируемого текста.

                        В данной статье мы установим Pyparsing и создадим на нём наш первый парсер.

                        Читать дальше →
                      • «Hello, (real) world!» на php в 2017 году

                          Вы наверняка думаете, что писать на php — это просто. И «hello, world» выглядит примерно так так:

                          <?php
                          echo 'Hello, world!';
                          

                          Конечно, чего еще ожидать от языка с низким порогом входа. Ну да, именно так и было раньше. Много лет назад. Но теперь, в 2017 году никто так уже не делает. Давайте рассмотрим, почему, и попробуем построить наше более реалистичное hello-world приложение по шагам, а их, скажу сразу, получилось не мало.

                          Читать дальше →
                        • 15 лучших JavaScript-библиотек для построения диаграмм и сводных таблиц

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

                          В этой статье я покажу вам некоторые из лучших JavaScript библиотек для построения диаграмм/схем (и сводных таблиц). Эти библиотеки помогут вам в создании красивых и настраиваемых графиков для ваших будущих проектов.

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

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