Data Science
ML boot camp 2016 новичок в ТОП 10
Из физиков в Data Science (Из двигателей науки в офисный планктон)
Вступление
Не так давно, а именно двенадцать месяцев назад, начался мой последний год аспирантуры на физическом факультете ВУЗа под названием University of California, Davis. Вставал законный вопрос — что делать дальше? За преподаванием, движением науки и прочими развлечениями год пройдёт очень быстро. Решать надо было заранее. Основной план был найти позицию постдока, причем где-нибудь в Токио, Рио де Жанейро или Сингапуре, так что вроде как и путешествуешь, а вроде как и работаешь. И по идее под это дело у меня всё было подготовлено: и статьи, и знакомые, и знаний в определённых областях физики конденсированных сред — на троих. Я начал активно гуглить сайты разных вузов, в интересующих меня географически частях мира, написал научно ориентированный CV, подписался на рассылки где публикуются вакансии постдоков, намекнул всем знакомым, что если что — то мне надо сказать в первую очередь. Я даже по скайпу с какими то профессорами общался на тему работы в их научных группах. В общем всё куда-то катилось.
Примерно в то же время к нам в городок заехал один мой знакомый, который в свое время тоже выпустился с нашего доблестного факультета, но на пару лет раньше. Последние пару лет он мыкался и тыкался в разные конторы и вот наконец нашёл работу на позицию под названием Data Scientist. Посидели в баре, потрепались — то, чем он занимается, особенно не зацепило (когда каждый день пытаешься разобраться что и куда квантовать, чтобы описать свойства наноматериалов, рассказы о том, как в некой базе данных что-то куда-то аггрегируется и почему это важно для каких-то продаж офисных принадлежностей, вообще не цепляет), но зацепила зарплата. Для справки, в США грязными, то есть до вычета налогов:
В тени случайного леса
1. Вступление
Это небольшой рассказ о практических вопросах использования машинного обучения для масштабных статистических исследований различных данных в Интернет. Также будет затронута тема применения базовых методов математической статистики для анализа данных.
Небольшое введение в параллельное программирование на R
Причина, по которой стоит об этом задуматься: заставляя компьютер больше работать (выполнять много расчетов одновременно), мы меньше времени ждем результатов наших экспериментов и можем выполнить еще. Это особенно важно для анализа данных (R как платформа обычно используется именно для этой цели), поскольку часто требуется повторить вариации одного и того же подхода, чтобы что-то узнать, вывести значения параметров, оценить стабильность модели.
Обычно, для того, чтобы заставить компьютер больше работать, сначала нужно потрудиться самому аналитику, программисту или создателю библиотеки, чтобы организовать вычисления в виде, удобном для параллелизации. В лучшем случае кто-то уже сделал это за вас:
- Хорошие параллельные библиотеки, например, многопоточные BLAS/LAPACK, включены в Revolution R Open (RRO, сейчас Microsoft R Open) (смотреть здесь).
- Специализированные параллельные расширения, предоставляющие свои собственные высокопроизводительные реализации важных процедур, например, методы rx от RevoScaleR или методы h2o от h2o.ai.
- Фреймворки абстрактной параллелизации, например, Thrust/Rth.
- Использование прикладных библиотек R, связанных с параллелизацией (в частности, gbm, boot и vtreat). (Некоторые из этих библиотек не используют параллельные операции, пока не задано окружение для параллельного выполнения.)
Как я изобретал велосипед, или мой первый MEAN-проект
Сегодня, в период стремительного развития веб-технологий, опытному фронтэнд-разработчику нужно всегда оставаться в тренде, каждый день углубляя свои познания. А что делать, если Вы только начинаете свой путь в мире веб? Вы уже переболели вёрсткой и на этом не хотите останавливаться. Вас тянет в загадочный мир JavaScript! Если это про Вас, надеюсь данная статья придётся к стати.
Scrapy: собираем данные и сохраняем в базу данных
Введение
Меня заинтересовал данный фреймворк для сбора информации с сайтов. Здесь были публикации по Scrapy, но поскольку детальной информации на русском языке мало, то я хотел бы рассказать о своем опыте.
Вести с полей: кто и как применял качественные методы в UX Research для разработки IT-продуктов. Часть 1 из 6
В предыдущей статье «Качественные методы в UX-исследованиях» мы давали практические рекомендации по эффективному использованию качественной методологии (интервью, наблюдения, этнографии) для решения UX-задач. Теперь мы решили обратиться к опыту зарубежных коллег, чтобы понять, в каких ситуациях они использовали качественную методологию и какие были результаты.
Спасибо прекрасному автору за симпатичную картинку.
Почему речь идет о зарубежных компаниях? Качественная методология там давно перестала быть экзотикой и вошла в арсенал IT-продуктологов. Изучение их опыта позволит лучше понять возможности и ограничения этих методов в сфере UX. Для этого мы провели собственное исследование.
IT-студент с жаждой путешествий? Пора в магистратуру
Добрый день, Хабр!
Я IT-студентка, выпускница одного из старейших университетов Москвы, внезапно нашедшая себя в магистратуре в Европе. Не хочу агитировать за "утечку мозгов" или нечто подобное, правда, но по воле случая много знакомых спрашивали о процессе application, поэтому мне показалась интересной идея поделиться годом поисков и наработанными скиллами с более широкой аудиторией. Итак, поехали.
Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением
Байесовская нейронная сеть — теперь апельсиновая (часть 2)
Предлагаю, если есть возможность, пойти на кухню, взять апельсин, очистить и проверить. Если лень или нет под рукой — воспользуемся скучной математикой: объем шара мы помним из школы. Пусть, скажем, толщина кожуры равна от радиуса, тогда , ; вычтем одно из другого, поделим объем кожуры на объем апельсина… получается, что кожуры что-то около 16%. Не так уж мало, кстати.
Как насчет апельсина в тысячемерном пространстве?
Пойти на кухню на этот раз не получится; подозреваю, что формулу наизусть тоже не все знают, но Википедия нам в помощь. Повторяем аналогичные вычисления, и с интересом обнаруживаем, что:
- во-первых, в тысячемерном гиперапельсине кожуры больше, чем мякоти
- а во-вторых, ее больше примерно в 246993291800602563115535632700000000000000 раз
То есть, каким бы странным и противоречивым это ни казалось, но почти весь объем гиперапельсина содержится в ничтожно тонком слое прямо под его поверхностью.
Начнем с этого, пожалуй.
Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)
Если вы что-то знали о нейронных сетях до этого — забудьте это и не вспоминайте, как страшный сон.
Если вы не знали ничего — вам же легче, полпути уже пройдено.
Если вы на «ты» с байесовской статистикой, читали вот эту и вот эту статьи из Deepmind — не обращайте внимания на предыдущие две строчки
Итак, магия:
Слева — обычная и всем знакомая нейронная сеть, у которой каждая связь между парой нейронов задана каким-то числом (весом). Справа — нейронная сеть, веса которой представлены не числами, а демоническими облаками вероятности, колеблющимися всякий раз, когда дьявол играет в кости со вселенной. Именно ее мы в итоге и хотим получить. И если вы, как и я, озадаченно трясете головой и спрашиваете «а нафига все это нужно» — добро пожаловать под кат.
Городской АД: школьники и студенты
Привет, Хабр. В этом году у нас довольно успешно прошли эксперименты по вовлечению юных программистов в АД:
затеяли хакатон, где школьники и студенты соревновались на равных (выиграли школьники), помогли организовать олимпиаду НТИ по большим данным.
открыли направление АДских чудес в летних школах. О том, как школьники написали рекомендательную систему ленты новостей Дождя, освоили параметрическое моделирование, осваивали азы социнженерии по Митнику, расскажем в следующей статье.
- организовали митапы для "укушенных" в Яндексе с Ежом. Ёж (Александр Панин) не устоял перед обаянием юных "датасайнтистов" на хакатоне, с тех пор каждую субботу одна из переговорок превращается в Малый АД под звуки арфы, на которой Ёж играет в перерывах.
Школа
Воодушевленные упорством ребят, решили начать вовлекать студентов постарше. Задумали школу прямо в Москве, пройдет она с 1 по 8 августа на факультете компьютерных наук ВШЭ, к участию приглашаются все желающие возрастом до 22 лет.
Программа школы состоит из двух блоков: интенсива с разбором кейсов от ведущих специалистов отрасли и работы в командах над проектом с опытным куратором.
Отбор
Для участия необходимо пройти отбор – решить реальную задачу, с которой столкнулся наш партнер E-Contenta при разработке рекомендательного движка для Tviz.tv. До 25 июля принимаем решения любым способом – интересно посмотреть на нестандартные идеи, возможно, кто переплюнет решение партнера. Опытные участники имеют возможность заявить о себе и выиграть грант на бесплатное обучение.
Наша цель — дать возможность молодёжи погрузиться в Data Science не за 180 тысяч на "взрослых" курсах. Отбор нацелен прежде всего на проверку мотивации.
Эффективное использование Github
Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.
Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).
Содержание
- Трюки с URL
- Горячие клавиши
- Тикеты и пулл-реквесты
- Github markdown
- Аккаунт
- Работа с репозиториями
- Поиск кода
- Командная строка и Github
- User scripts
- Github-вандализм
- Дополнительные Github-ресурсы
- Полезные ссылки
Отпуск по-программистски, или как я не поучаствовал в конкурсе по программированию на JS. Часть вторая
В первой части этого описания попытки решения интересной конкурсной задачи я рассказал о подготовке данных для анализа и о нескольких экспериментах. Напомню, условие задачи заключалось в том, чтобы с наибольшей вероятностью определить наличие слова в словаре, не имея доступа к этому словарю в момент выполнения программы и с ограничением на объем программы (включая данные) в 64K.
Как и в прошлый раз, под катом много SQL, JS, а также нейронные сети и фильтр Блума.
Отпуск по-программистски, или как я не поучаствовал в конкурсе по программированию на JS. Часть первая
Создание и поддержка в одиночку сложного продукта с большим зоопарком технологий и без финансовых вливаний со стороны — дело хлопотное и утомительное. Поэтому, узнав про конкурс с интересной задачей, мы в Мегаленте я подумал о том, чтобы устроить себе "творческий отпуск" и отвлечься ненадолго от работы над новой версией.
Задача состояла в том, чтобы написать программу на JS, которая будет определять, есть слово с словаре английских слов или нет. Вроде бы просто, но есть пара ограничений, делающих задачу заведомо невыполнимой:
– Словом считается не просто любое правильное слово английского языка, а именно слово, которое есть в предоставленном словаре из 600K+ слов.
– Словаря в момент исполнения программы нет, скачать его нельзя, а размер программы, включая данные, не должен превышать 64К. Внешние библиотеки подключать также нельзя, но файл данных может быть заархивирован.
Благодаря этим условиям вместо однозначного ответа результатом может быть только определение наибольшей вероятности присутствия слова в словаре.
Сразу скажу, что решение я так и не отправил из-за неудовлетворённостью результатом (решение, которое давало хотя бы 80%, я смог поместить только в 120-130К, а без превышения размера в 64К выжал максимум 70%).
Тем не менее опыт считаю достаточно интересным и достойным статьи. Под катом много SQL,JS,Python, нейронные сети, а также печальная правда о производительности CPU на хостинге.
Лучшие IT-курсы западных вузов по версии хабрасообщества 2016 года
Данный пост-опрос − попытка определить лучшие ИТ-курсы западных вузов, которые находятся в открытом доступе. Конечно, по версии нашего хабрасообщества. Ну и, разумеется, с годами предпочтения меняются, поэтому версия 2016 года.
Решаем «Первый открытый контест» от Mail.ru по Data Science с помощью Azure ML (введение в Azure ML)
Meduza.io: а как же лайки?
Как-то раз, читая новости на Медузе, я обратил внимание на то, что у разных новостей разное соотношение лайков из Facebook и ВКонтакте. Какие-то новости мегапопулярны на fb, а другими люди делятся только во ВКонтакте. Захотелось присмотреться к этим данным, попытаться найти в них интересные закономерности. Заинтересовавшихся приглашаю под кат!
Web Scraping с помощью python
Введение
Недавно заглянув на КиноПоиск, я обнаружила, что за долгие годы успела оставить более 1000 оценок и подумала, что было бы интересно поисследовать эти данные подробнее: менялись ли мои вкусы в кино с течением времени? есть ли годовая/недельная сезонность в активности? коррелируют ли мои оценки с рейтингом КиноПоиска, IMDb или кинокритиков?
Но прежде чем анализировать и строить красивые графики, нужно получить данные. К сожалению, многие сервисы (и КиноПоиск не исключение) не имеют публичного API, так что, приходится засучить рукава и парсить html-страницы. Именно о том, как скачать и распарсить web-cайт, я и хочу рассказать в этой статье.
В первую очередь статья предназначена для тех, кто всегда хотел разобраться с Web Scrapping, но не доходили руки или не знал с чего начать.
Off-topic: к слову, Новый Кинопоиск под капотом использует запросы, которые возвращают данные об оценках в виде JSON, так что, задача могла быть решена и другим путем.