Category: Data Science

19
Янв
2021

📊 Проверьте свои навыки: еще 26 вопросов с собеседований по Data Science с ответами

Статья продолжает тему первой публикации («26 вопросов и ответов с собеседований») и предлагает 26 новых вопросов для проверки навыков в Data Science.

Сможете ли вы ответить на все…

18
Янв
2021

📊 Проверьте свои навыки: 26 вопросов и ответов с собеседований по Data Science

Если вы уже освоили основы профессии, стоит проверить свои шансы на трудоустройство. Публикуем 26 вопросов и ответов с реальных собеседований на позиции в Data Science.

В этой стат…

13
Янв
2021

Базовые знания Data Science: что и где нужно изучить новичку

Область Data Science сейчас популярна и есть везде. Разбираемся, что нужно знать для минимального входа в эту сферу.
— Читать дальше «Базовые знания Data Science: что и где нужно изучить новичку»

12
Янв
2021

Data Science для начинающих: 12 проектов на Python за 3 часа

Если только начинаете путь в Data Science, попробуйте сделать эти проекты для начинающих. Они научат вас собирать и визуализировать данные.
— Читать дальше «Data Science для начинающих: 12 проектов на Python за 3 часа»

10
Янв
2021

📊 Обучение Data Science: 11 необходимых специалисту по анализу данных концепций из статистики

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

Статистика …

31
Дек
2020

📊 ТОП-10 необходимых для специалиста по Big Data навыков

Рассказываем о необходимом наборе технических и карьерных навыков для специалиста по Big Data.

О работе специалистов по анализу больших данных и необходимых для освоения перспективной профессии ресурсах мы уже писали. В этой статье речь пойдет о самых необходимых специалисту по Big Data навыках.

Big Data – это термин, используемый для обозначения значительного объема как структурированных, так и неструктурированных данных, который слишком велик для обработки традиционными методами. Аналитик больших данных – это специалист, который выявляет и исследует закономерности в данных с помощью специальных программных средств. Большие данные – перспективное направление в сфере Data Science. По мере того, как компании внедряют соответствующие методы, владеющие ими сотрудники будут становиться все более востребованными.

<a href="https://www.valtira.com/wp-content/uploads/2020/01/analytics.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

, <a href="https://www.valtira.com/wp-content/uploads/2020/01/analytics.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
, Источник

Аналитические навыки

Аналитические способности и навыки одни из самых важных для работы с большими данными. Без них нельзя стать экспертом в данной области. Аналитические инструменты необходимы для решения проблем в бизнесе или других сферах, а для глубокого понимания их возможностей необходимо обладать как математическими знаниями, так и методами количественного анализа данных, вроде описательной статистики и статистики умозаключений. Это помогает инженерам Big Data курировать большое количество неструктурированных данных, обобщать их и находить закономерности для прогнозного анализа

Достижения в области технологий за последние пять лет вывели интеллектуальный анализ на ошеломляющие высоты. Профессионалы с релевантным опытом пользуются большим спросом во всех технологических сферах. Получить его можно, изучая инструменты, вроде RapidMiner, KNIME или Apache Mahout.

Машинное обучение и искусственный интеллект

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

Машинное обучение является важным инструментом для инженеров, поскольку оно позволяет им сортировать и обрабатывать большие объемы данных за короткий промежуток времени. Кроме того, Big Data являются частью построения алгоритмов машинного обучения. Специалист должен быть с ним знаком: требуется знать, как писать алгоритмы и как использовать их.

<a href="https://www.bsebti.com/blog/wp-content/uploads/2020/08/expert-talk-data-science-data-analytics-machine-learning.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Бизнес-аналитика

Методы Big Data применяются в различных отраслях для принятия решений и оптимизации деятельности. Многие компании используют инсайты из массивных наборов данных, которые они получают с помощью специальных инструментов. Чтобы лучше понять задачи и цели анализа, специалисту необходимо развивать соответствующие навыки и познакомиться с предметной областью. Прежде чем начинать разработку модели и делать выводы, аналитик данных должен понимать все аспекты и бизнес-цели организации. Эксперт должен иметь представление о процессах бизнес-потока, а также иметь знания в области статистики, навыки презентации и коммуникации.

Интерпретация и визуализация данных

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

Данные должны быть четко и ясно представлены для передачи в понятном для широкой публике формате. Важно, чтобы вы хорошо понимали бизнес-среду и предметную область, а также умели четко донести идею до аудитории. Придется развивать навыки коммуникации и презентации. Можно начать с изучения визуализации данных с помощью специальных инструментов и программного обеспечения: Tableau, Data Wrapper, Plotly и т. д.

Навыки программирования

Чтобы стать специалистом по большим данным, необходимо знать основы алгоритмов, структур данных, а также объектно-ориентированных языков программирования. Профессионал должен уметь проводить количественный и статистический анализ. Необходимо изучить основные понятия кодирования и уметь исправлять ошибки в существующем коде, который является частью массивной базы данных. Основные языки, в которые стоит инвестировать свое время включают Python, SQL, Java и C++. Нет никакой необходимости изучать все существующие языки, но если вы не ограничите себя только одним, это значительно повысит шансы на трудоустройство и карьерный рост. Например, знание статистических языков, таких как R и Python, даст кандидату преимущества в области аналитики.

Навыки решения проблем

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


Базы данных SQL и NoSQL

Базы данных это ядро хранения, организации и поиска информации, поэтому важно знать их структуру и язык. Существует два основных типа баз данных:

  1. Хранящие информацию в виде записей в таблицах и позволяющие использовать для доступа к ней структурированный язык запросов (SQL). SQL формирует основу движения больших данных и занимает центральное место в хранилищах Hadoop Scala.
  1. Подход NoSQL (от англ. not only SQL) становится все более популярным, поэтому специалисты по Big Data должны быть знакомы и с ним. Распределенные базы данных NoSQL, вроде MongoDB, быстро заменяют сболее традиционные аналоги SQL, включая DB2 и Oracle. Зачастую они обеспечивают более эффективные возможности хранения и доступа. Серверы NoSQL работают в полной гармонии с Hadoop, а наличие навыков работы с ними существенно повысит ваши шансы на трудоустройство.

Знакомство с технологиями

Профессионалы в области больших данных должны быть знакомы с целым рядом технологий и инструментов, помогающих проводить анализ и делать выводы. Всегда лучше работать с максимально широким технологическим стеком: Scala, Hadoop, Linux, MatLab, R, SAS, SQL, Excel, SPSS и т.д. Это существенно повысит ваши шансы на трудоустройство и быстрый карьерный рост.

Фреймворки, вроде Hadoop и Apache Spark помогают в потоковой передаче моделей больших данных, а различные компоненты Apache Hadoop (MapReduce, HIVE, HDFS и Pig) пользуются большим спросом у специалистов и работодателей.

Навыки работы с публичными и гибридными облаками

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

Некоторые из общедоступных облаков, которые нужно знать: Amazon Web Services (AWS), Microsoft Azure, Alibaba Cloud. К внутренним облачным технологиям относятся OpenStack, Vagrant, Openshift, Docker, Kubernetes и др.

Практические навыки

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

***

Если вы только начинаете свой путь в профессии, хотите получить диплом и помощь в трудоустройстве, обратите внимание на курс Факультета Аналитики Big Data онлайн-университета GeekBrains. Помимо основ математики, языка Python и систем управления базами данных, в программу включена работа с Apache Hadoop и Apache Spark. Обучение ориентировано на применение навыков машинного обучения в бизнесе и построено по принципу практической работы над проектами с ведущими специалистами отрасли и личным помощником-куратором. Успешно окончившие курс студенты получат диплом о профессиональной подготовке и помощь в трудоустройстве.

30
Дек
2020

📊 Что такое Big Data простыми словами

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

О тенденция развития больших данных мы писали в статье «Почему Big Data так быстро развивается?». В новой статье расскажем о применениях больших данных простыми словами.

Что такое большие данные?

Big Data – область, в которой рассматриваются различные способы анализа и систематического извлечения больших объемов данных. Она включает применение механических или алгоритмических процессов получения оперативной информации для решения сложных бизнес-задач. Специалисты по Big Data работают с неструктурированными данными, результаты анализа которых используются для поддержки принятия решений в бизнесе.

<a href="https://thinkandsell.com/wp-content/uploads/2017/07/big-data-marketing.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

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

Как классифицируются большие данные?

Выделим три категории:

  • Структурированные данные, имеющие связанную с ними структуру таблиц и отношений. Например, хранящаяся в СУБД информация, файлы CSV или таблицы Excel.
  • Полуструктурированные (слабоструктурированные) данные не соответствуют строгой структуре таблиц и отношений, но имеют другие маркеры для отделения семантических элементов и обеспечения иерархической структуры записей и полей. Например, информация в электронных письмах и файлах журналов.
  • Неструктурированные данные вообще не имеют никакой связанной с ними структуры, либо не организованы в установленном порядке. Обычно это текст на естественном языке, файлы изображений, аудиофайлы и видеофайлы.
<a href="https://www.google.com/url?sa=i&amp;url=https%3A%2F%2Fwww.msab.com%2F2020%2F03%2F09%2Fbig-data-in-digital-forensics-the-challenges-impact-and-solutions%2F&amp;psig=AOvVaw3LtOCEJLprXk_tb1j89SAW&amp;ust=1609341125999000&amp;source=images&amp;cd=vfe&amp;ved=0CAIQjRxqFwoTCPjK6oS98-0CFQAAAAAdAAAAABAD" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Характеристики больших данных

Большие данные характеризуются четырьмя правилами (англ. 4 V’s of Big Data: Volume, Velocity, Variety, Veracity):

  1. Объем: компании могут собирать огромное количество информации, размер которой становится критическим фактором в аналитике.
  2. Скорость, с которой генерируется информация. Практически все происходящее вокруг нас (поисковые запросы, социальные сети и т. д.) производит новые данные, многие из которых могут быть использованы в бизнес-решениях.
  3. Разнообразие: генерируемая информация неоднородна и может быть представлена в различных форматах, вроде видео, текста, таблиц, числовых последовательностей, показаний сенсоров и т. д. Понимание типа больших данных является ключевым фактором для раскрытия их ценности.
  4. Достоверность: достоверность относится к качеству анализируемых данных. С высокой степенью достоверности они содержат много записей, которые ценны для анализа и которые вносят значимый вклад в общие результаты. С другой стороны данные с низкой достоверностью содержат высокий процент бессмысленной информации, которая называется шумом.

Традиционный подход к хранению и обработке больших данных

При традиционном подходе данные, которые генерируются в организациях, подаются в систему ETL (от англ. Extract, Transform and Load). Система ETL извлекает информацию, преобразовывает и загружает в базу данных. Как только этот процесс будет завершен, конечные пользователи смогут выполнять различные операции, вроде создание отчетов и запуска аналитических процедур.

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

  • Дорогостоящая система, которая требует больших инвестиций при внедрении или модернизации, и которую малые и средние компании не смогут себе позволить.
  • По мере роста объема данных масштабирование системы становится сложной задачей.
  • Для обработки и извлечения ценной информации из данных требуется много времени, поскольку инфраструктура разработана и построена на основе устаревших вычислительных систем.
<a href="https://www.d3vtech.com/assets/images/insights/what-is-data-science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Термины

Облачные Вычисления

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

Прогнозная Аналитика

Технология, которая учится на опыте (данных) предсказывать будущее поведение индивидов с помощью прогностических моделей. Они включают в себя характеристики (переменные) индивида в качестве входных данных и производит оценку в качестве выходных. Чем выше объясняющая способность модели, тем больше вероятность того, что индивид проявит предсказанное поведение.

Описательная Аналитика

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

Базы данных

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

Хранилище Данных

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

Бизнес-аналитика

Бизнес-аналитика (BI) – это набор инструментов, технологий и концепций, которые поддерживают бизнес, предоставляя исторические, текущие и прогнозные представления о его деятельности. BI включает в себя интерактивную аналитическую обработку (англ. OLAP, online analytical processing), конкурентную разведку, бенчмаркинг, отчетность и другие подходы к управлению бизнесом.

Apache Hadoop

Apache Hadoop – это фреймворк с открытым исходным кодом для обработки больших объемов данных в кластерной среде. Он использует простую модель программирования MapReduce для надежных, масштабируемых и распределенных вычислений.

Apache Spark

Apache Spark – это мощный процессорный движок с открытым исходным кодом, основанный на скорости, простоте использования и сложной аналитике, с API-интерфейсами на Java, Scala, Python, R и SQL. Spark запускает программы в 100 раз быстрее, чем Apache Hadoop MapReduce в памяти, или в 10 раз быстрее на диске. Его можно использовать для создания приложений данных в виде библиотеки или для выполнения специального анализа в интерактивном режиме. Spark поддерживает стек библиотек, включая SQL, фреймы данных и наборы данных, MLlib для машинного обучения, GraphX для обработки графиков и потоковую передачу.

Интернет вещей

Интернет вещей (IoT) – это растущий источник больших данных. IoT – это концепция, позволяющая осуществлять интернет-коммуникацию между физическими объектами, датчиками и контроллерами.

Машинное Обучение

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

Интеллектуальный Анализ Данных

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

<a href="https://cdn.datafloq.com/cache/blog_pictures/878x531/big-data-analytics-paving-path-businesses-decision.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Где применяются большие данные

Аналитика больших данных применяется в самых разных областях. Перечислим некоторые из них:

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

Если вы хотите освоить новую профессию или повысить квалификацию в сфере Big Data, стоит обратить внимание на курс факультета аналитики Big Data онлайн-университета GeekBrains. Программа включает основательную математическую подготовку, изучение языка Python и получение навыков практической работы с базами данных. Также изучаются Hadoop и Apache Spark – востребованные инструменты для работы с большими данными. Курс ориентирован на применение машинного обучения в бизнесе и построен по принципам практической работы над проектами с ведущими специалистами отрасли и личным помощником-куратором.

29
Дек
2020

📊 Big Data и Data Science в некоммерческом секторе

Если вы планируете карьеру в Big Data или Data Science, необязательно сразу ориентироваться на крупные ИТ-компании. Методы науки о данных используются в различных отраслях, включая некоммерческие организации и государственные образовательные учреждения.

О специфике работы с большими данными мы уже рассказывали. Если вы освоили основы профессии или только собираетесь это сделать, планировать карьеру нужно с самого начала: в зависимости от выбранного вами направления применения своих знаний программа обучения может меняться. Сложнее всего устроиться в крупные ИТ-компании. Там самые большие зарплаты, но и требования даже к кандидатам уровня Junior чрезвычайно высоки.

Есть и хорошая новость: методы Big Data и Data Science применяются в различных отраслях для принятия решений и оптимизации деятельности. Начать карьеру в некоммерческом секторе или в государственном образовательном учреждении будет намного проще, чем сразу после обучения пытаться рассылать резюме в ответ на опубликованные ИТ-гигантами вакансии. Попробуем разобраться, как и зачем в этих отраслях используют науку о данных.

<a href="https://sloanreview.mit.edu/wp-content/uploads/2020/09/EG2-Redman-Davenport-Serious-Data-Science-2400x1260-1-1200x630.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Нужны ли в НКО Data Scientists?

Как и многие компании, некоммерческие организации собирают данные, но редко используют их в полной мере из-за отсутствия специальных команд Data Scientists. Некоторые организации выделяют бюджеты на изучение и внедрение технологий Big Data и Data Science, а значит испытывают и потребность в кадрах. Большая часть талантов сосредоточена в бизнес-секторе, но в НКО также существует пробел в трудовых ресурсах, который необходимо заполнить специалистами с разными интересами. Учитывая относительно невысокий (по сравнению с корпоративным) уровень заработных плат, средняя планка требований к кандидатам здесь пониже.

<a href="https://crampete-staticfiles.s3.ap-south-1.amazonaws.com/images/blog/Data-Science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Роль Data Scientist в НКО

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

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

Маркетинг и сбор средств

Маркетинг важен для некоммерческих организаций точно так же, как и для бизнеса. Data Scientist может определить целевой рынок и сделать усилия по сбору средств более эффективными. Отношения с донорами являются одним из наиболее важных факторов в работе НКО, а методы Big Data и Data Science нужны для принятия решений в области сбора средств для повышения видимости, а также для стимулирования взносов. Как и бизнес, НКО зависят от отношений с партнерами. Наука о данных помогает эти взаимоотношения развить и предлагает правильные стимулы для их поддержания.

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

Финансирование и оптимизация фондов

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

Например, если организация доставляет продукты питания в обеденное время в государственные школы в бедном районе, она должна использовать оптимальные маршруты доставки. В противном случае школьники останутся голодными, репутация НКО окажется под риском. Специалист по Big Data и Data Science поможет определить, какие маршруты обеспечат быструю доставку с наименьшими расходами.

Мониторинг и внедрение

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

<a href="https://crampete-staticfiles.s3.ap-south-1.amazonaws.com/images/blog/Data-Science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Примеры проектов Data Science в НКО

Amnesty International

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

Бельгийское отделение Amnesty International недавно заключило соглашение с платформой анализа данных RapidMiner для модернизации возможностей отчетности и аналитики. Amnesty International интегрировала программное обеспечение RapidMiner с системой управления взаимоотношениями с клиентами (CRM). CRM предназначен для повышения доходов и обычно используется компаниями для увеличения прибыли, но он также может играть определенную роль в сборе средств для некоммерческих организаций.

Khan Academy

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

DataKind

DataKind‎ – это НКО, которое объединяет ведущих мировых специалистов по обработке данных с известными организациями по социальным изменениям для сотрудничества в области аналитики и математических алгоритмов для максимизации социального воздействия. На сайте DataKind‎ представлены волонтерские возможности, раздел для подачи идей и примеры завершенных гуманитарных проектов. В DataKind‎, к примеру, построили прогностическую модель, чтобы иметь возможность идентифицировать студентов, которые были подвержены риску отсева, и предложить им своевременную поддержку.

Заключение

Если вы хотите построить карьеру в Data Science и Big Data, лучше начать прямо сейчас. Эти области постоянно расширяются, генерируя новые вакансии. Если вы уже работаете в некоммерческой организации или в государственном образовательном учреждении – отлично. Подумайте, как можно применить новые технологии. Вполне вероятно, что ваша инициатива по их использованию встретит полное понимание у руководства. Тем более, что такие организации охотно отправляют сотрудников на различные курсы. Для освоения необходимых навыков с нуля запишитесь на курсы факультета Аналитики Big Data онлайн-университета GeekBrains. Учебные программы основаны на практической работе над проектами с ведущими специалистами отрасли и личным помощником-куратором.

26
Дек
2020

📈 Инфлюенсеры в Big Data и Machine Learning: за кем следить в 2021 году?

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

Инфлюенсеры – это лидеры мнений. Обычно пользователи социальных сетей, которые имеют обширную и лояльную аудиторию. Big Data и ML – одни из самых быстро развивающихся сфер в ИТ, поэтому специалистам важно следить за инфлюенсерами и влиятельными сообществами. Ведущие профессионалы отрасли регулярно делятся с широкой аудиторией опытом, а также последними разработками и новостями.

О работе специалистов по анализу больших данных мы писали в статье «Стать аналитиком Big Data: пошаговое руководство». Продолжая тему, мы собрали в одной публикации влиятельных инфлюенсеров в сфере Big Data и ML, а также сообщества, на которые стоит подписаться в 2021 году.

Предлагаем вашему вниманию подборку самых влиятельных сообществ и инфлюенсеров в сфере Big Data и Machine Learning.

<a href="https://rismedia.com/wp-content/uploads/2020/06/social_media_strategy_1153737066.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Сообщества

Big Data and Analytics

Сообщество LinkedIn, в котором собраны не только курсы и офферы для аналитиков Big Data, но и вся актуальная информация от ведущих экспертов области. Сообщества на LinkedIn – одно из лучших мест для энтузиастов данных и начинающих ученых, желающих овладеть искусством работы с большими данными. Активное участие в дискуссиях и собственные публикации дают возможность укрепить знания, найти наставника и расширить сеть профессиональных контактов.

Data Science Central

Твиттер-аккаунт одного из самых известных сообществ Data Science, где вы найдете новости о последних технологиях Big Data, машинного обучения, AI, Deep Learning, dataviz, Hadoop, IoT, и BI. Data Science Central объединяет пользователей, которые хотят получить уникальный опыт участия в дискуссиях на темы сбора и интеграции, а также аналитики и визуализации данных. Построенное на инновационной платформе сообщество включает технические форумы и сведения о рыночных тенденциях, а также дает возможности социального взаимодействия и трудоустройства.

DataDriven

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

<a href="https://t4.ftcdn.net/jpg/02/61/98/23/360_F_261982331_9P4vDtQz8briwqDPIs7f94LW7IUuXHiX.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Инфлюенсеры

Ronald Van Loon

Ronald Van Loon, директор Advertisement компании, которая предлагает партнерам и клиентам консалтинговые, технологические, информационные и автоматизированные решения. Известный инфлюенсер в сфере Data Science, Ronald публикует статьи и посты на темы больших данных, искусственного интеллекта, автономных автомобилей, аналитики и многого другого.

Kenneth Cukier

Kenneth Cukier – редактор данных в The Economist и соавтор книги «Big Data: A Revolution That Will Transform How We Live, Work, and Think», а также популярный спикер и член совета по развитию на основе данных World Economic Forum. Cukier является постоянным гостем на BBC, CNN и NPR. С 2002 по 2004 год он был научным сотрудником Гарвардской школы управления имени Кеннеди. Он также является стипендиатом Оксфордской бизнес-школы, где проводит исследования в области авиации.

Ganapathi Pulipaka

Ganapathi Pulipaka – главный Data Scientist в Accenture. Он разработал ряд программ Deep Learning и машинного обучения и продолжает публиковать новые идеи на GitHub и Medium. Советуем подписаться тем, кто заинтересован в математическом моделировании, нейросетях и визуализации данных в TensorFlow.

Kirk Borne

Kirk Borne является советником и главным специалистом по обработке данных в Booz Allen Hamilton. Kirk – астрофизик и консультант по большим данным, он также специализируется на интеллектуальном анализе данных, машинном обучении и вычислительной астрофизике. Kirk уже более 20 лет участвует в нескольких проектах NASA, включая его астрономический центр и операции с данными космической науки. В своем аккаунте в Твиттер он публикует множество ресурсов по машинному обучению и делится опытом работы.

Iain Brown

Dr. Ian Brown – консультант по большим данным и руководитель научных данных для SAS UK&I. За последние десять лет он работал в нескольких секторах, обеспечивая лидерство по темам риска, искусственного интеллекта и машинного обучения. Ian активно публикует посты в Твиттер и рассказывает о проектах в сфере искусственного интеллекта.

Yves Mulkers

Yves Mulkers – стратег данных и основатель популярного цифрового издания 7wData. Как специалист по интеграции, Yves в постах фокусируется на организации данных и возможностях архитектуры данных в организации. Он публикует свое видение проблем бизнес-аналитики и связанных с данными вопросов.

Mike Quindazzi

Mike Quindazzi – лидер продаж цифровых альянсов в PWC. Он помогает управлять бизнес-результатами, предлагая консультации по новым технологиям, вроде беспилотных летательных аппаратов, 3D-печати, блокчейна, IoT, больших данных и робототехники. Mike работал с такими брендами, как Microsoft, SAP, Amazon и Oracle, и помог сформировать инновационные подходы к решению их проблем. Он часто публикует свое мнение о развитии сферы больших данных и рассуждения на темы, связанные с AI и машинным обучением.

Evan Kirstel

Evan Kirstel является ведущим технологическим влиятельным лицом в сегменте B2B и соавтором eVira Health, которая предлагает консультации, а также разработку продуктов и стратегий развития бизнеса для сообщества медицинских технологий. Он работал с такими известными брендами, как IBM, Intel и AT&T, среди прочих, чтобы максимизировать их видимость и масштабирование в 5G, blockchain, AI, cloud, IoT, AR, VR, Big Data и analytics.

Marcus Borba

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

Bill Schmarzo

Инфлюенсер и автор книги «The art of thinking like a Data Scientist». Он очень активен и на LinkedIn: прочтите пост «Will AI force Humans to become more Human» и подпишитесь, если хотите стать «Data Science Think Tank».

<a href="https://image.freepik.com/free-vector/blog-authors-writing-articles_179970-1523.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Michael Fisher

Michael Fisher – технический евангелист и старший системный аналитик в Whitcraft Group. Он считается ведущим специалистом в области IoT, 5G, VR и FinTech, и пишет о таких областях, как кибербезопасность, консалтинг и архитектура больших данных.

Srivatsan Srinivasan

Srivatsan Srinivasan – Chief Data Scientist/Architect в Cognizant. Его опыт в построении сложных аналитических конвейеров, моделей машинного обучения для бизнес-процессов и помощи компаниям в преобразовании пространства данных и аналитики, сможет помочь расширить понимание многих областей больших данных, облаков и искусственного интеллекта. Советуем обратить внимание на его посты в LinkedIn, которые точно будут полезны тем, кто хочет быть в курсе новейших технологий AI и лучших практик в области Data Science.

Nando de Freitas

Nando de Freitas – ученый, который возглавляет команду машинного обучения Google DeepMind. Профессор компьютерных наук Оксфордского университета, Nando de Freitas является специалистом в области машинного обучения с фокусом на нейронные сети, байесовскую оптимизацию и вывод, а также Deep Learning. Как главный ученый в Google DeepMind, он помогает в организации ее миссии – использовать технологии для широкой общественной пользы и научных открытий, обеспечивая при этом безопасность и соблюдение этических норм.

David Langer

Если вы регулярно читаете учебные публикации по теме Data Science на LinkedIn, скорее всего вы уже знакомы с David Langer. Помимо того, что он является VP of Analytics в Schedulicity, он также известен как инструктор и YouTube-блогер. У него слава одного из самых выдающихся педагогов в области Data Science. David Langer создает образовательный контент для всех заинтересованных в развитии навыков работы с данными.

Andrew Ng

Основатель и генеральный директор Landing AI, а также основатель Deeplearning.ai. Andrew работал главным научным сотрудником Baidu Research, был профессором Стэнфордского университета, основателем и председателем правления Coursera, поэтому его считают пионером в области онлайн-образования. Он основал проект Google Brain, который разработал крупномасштабные искусственные нейронные сети, в том числе ту, которая научилась распознавать кошек на видео. Andrew специализируется на Deep Learning и часто делает публикации на связанные с машинным обучением темы.

Kristen Kehrer

Kristen Kehrer является преподавателем Data Science в UC Berkeley Extension и основателем Data Moves Me. С 2010 года Kristen предлагает инновационные и эффективные решения для машинного обучения в различных отраслях промышленности, включая коммунальное хозяйство, здравоохранение и электронную коммерцию. Kristen является инфлюенсером и наставником, у которого можно многому научиться благодаря ее опыту и знаниям в области SQL и аналитики больших данных.

***

Без чтения публикаций ведущих специалистов отрасли сложно освоить развивающиеся так быстро профессии. Если же вы только планируете карьеру в этой области, стоит обратить внимание на курс Факультета Аналитики Big Data онлайн-университета GeekBrains. Программа обучения включает основательную математическую и подготовку, изучение основ языка Python и работы с базами данных, а также работу с Hadoop и Apache Spark. Курс ориентирован на применение навыков машинного обучения в бизнесе и построен на основе практической работы над проектами с ведущими специалистами отрасли и личным помощником-куратором. Успешно окончившим его студентам онлайн-университет помогает с трудоустройством.

24
Дек
2020

📈 Обучение Data Science: какие знания по математике нужны специалисту по анализу данных?

Рассказываем про ключевые математические знания для Data Scientist, а также про книги, курсы и видеолекции в помощь обучающимся. Материал будет полезен не только осваивающим профессию с нуля новичкам, опытные специалисты также могут почерпнуть в нем что-то интересное.

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

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

<a href="https://miro.medium.com/max/3080/0*BR949eNWL2i-Sj4R" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Классический математический анализ

Дифференциальное и интегральное исчисление лежат в основе Data Science и машинного обучения. Они скрывается за простым на вид аналитическим решением обычной задачи наименьших квадратов в линейной регрессии или встроены в каждое обратное распространение, которое ваша нейронная сеть делает, чтобы узнать новый паттерн. Это ценные разделы, которые стоит добавить в свой набор навыков. Темы для изучения:

  • Функции одной переменной, пределы, лимиты, дифференцируемость;
  • Теоремы о средних значениях, неопределенные формы, теорема Лопиталя;
  • Максимумы и минимумы;
  • Правило продукта и цепочки;
  • Ряд Тейлора, концепции суммирования бесконечных рядов/интегрирования;
  • Фундаментальные и средние значения, теоремы интегрального исчисления, оценка определенных и неправильных интегралов;
  • Бета-и гамма-функции;
  • Функции множественных переменных, предел, непрерывность, частные производные;
  • Основы обыкновенных и дифференциальных уравнений в частных производных.

Где применяется?

Если вы когда-нибудь задумывались, как работает логистическая регрессия, то вам понадобятся знания о градиентном спуске (с англ. gradient descent) и понятия из исчисления: производные, пределы и цепное правило.

Линейная алгебра

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

  • Основные свойства матриц и векторов: скалярное умножение, линейное преобразование, транспонирование, сопряженность, ранг, детерминант;
  • Внутренние и внешние произведения, правило умножения матриц и различные алгоритмы, обратные матрицы;
  • Специальные матрицы: квадратная, единичная и треугольная матрицы, представление о разреженной и плотной матрице, единичные векторы, симметричная матрица, Эрмитова матрица, Антиэрмитова и унитарная матрицы;
  • Концепция матричного факторизации, LU-разложение, Метод Гаусса, решение линейной системы уравнений Ax=b;
  • Векторное пространство, базис, промежуток, ортогональность, ортонормированность, линейный наименьший квадрат;
  • Собственный вектор, диагонализация, сингулярное разложение.

Где применяется?

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

Функции, переменные, уравнения и графики

Эта область математики включает все основы для Data Scientist, от уравнения прямой до биномиальной теоремы, а также:

  • Логарифм, экспоненциальные, полиномиальные функции, рациональные числа;
  • Основы геометрии и теоремы, тригонометрические тождества;
  • Вещественные и комплексные числа (с англ. real and complex numbers), основные свойства;
  • Ряды, суммы, неравенства;
  • Построение графиков, декартовых и полярных координат, конических сечений.

Где применяются?

Если вы хотите понять, как выполнить поиск из миллиона элементов после сортировки в базе данных быстрее, вы столкнетесь с понятием двоичный поиск (с англ. binary search). Чтобы понять его динамику, вам необходимо знать как устроены логарифмы и рекуррентные уравнения. Или, например, если вы хотите проанализировать временной ряд, вы можете столкнуться с такими понятиями, как периодические функции и экспоненциальный распад.

<a href="https://cdn.lynda.com/course/495322/495322-637286195691969467-16x9.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Статистика

Для Data Scientists важно понимание основных понятий статистики и теории вероятностей. Многие специалисты в этой области считают классическое (не нейронное сетевое) машинное обучение ничем иным, как статистическим обучением. Данная тема очень обширна, поэтому обратите внимание на наиболее важные концепции:

  • Обобщение данных и описательная статистика, центральная тенденция, дисперсия, ковариация, корреляция;
  • Базовая вероятность: основная идея, математическое ожидание, вероятностное исчисление, теорема Байеса, условная вероятность;
  • Функции распределения вероятностей: равномерные, нормальные, биномиальные, хи-квадрат, t-распределение Стьюдента, центральная предельная теорема;
  • Выборка, измерение, погрешность, генерация случайных чисел;
  • Проверка гипотез, A/B testing, доверительные интервалы, p-values;
  • ANOVA, t-тест;
  • Линейная регрессия, регуляризация.

Где применяется?

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

Дискретная математика

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

  • Наборы, подмножества, наборы мощности;
  • Счетные функции, комбинаторика, счетность;
  • Основные методы доказательства: индукция, доказательство противоречием;
  • Основы индуктивной, дедуктивной и пропозициональной логики;
  • Основные структуры данных: стеки, очереди, графики, массивы, хэш-таблицы, деревья;
  • Свойства графа: связные компоненты, степень, концепции максимального потока/минимального разреза, раскраска графа;
  • Рекуррентные соотношения и уравнения;
  • Функция роста.

Где применяется?

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

Исследование операций

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

  • Основы оптимизации и как сформулировать задачу;
  • Максимумы, минимумы, выпуклая функция, глобальное решение;
  • Линейное программирование, Симплекс-метод;
  • Целочисленное программирование;
  • Программирование в ограничениях, задача о рюкзаке (с англ. knapsack problem);
  • Рандомизированные методы оптимизации.

Где применяется?

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

<a href="https://www.wellesley.edu/news/2017/stories/node/120511" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Курсы

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

Статистика

  1. Основы статистики
  2. Intro to Descriptive Statistics (англ.)
  3. Basic Statistics (англ.)
  4. Bayesian Statistics: From Concept to Data Analysis (англ.)
  5. Probability Theory, Statistics and Exploratory Data Analysis (англ.)

Анализ

  1. Введение в математический анализ
  2. Data Science Math Skills (англ.)
  3. Mathematics for Data Science (англ.)
  4. Data Science Math Skills (англ.)
  5. Mathematics for Machine Learning: Linear Algebra (англ.)

Математика с Python и R

  1. Практикум по математике и Python
  2. Introduction to Probability and Data with R (англ.)

Видеолекции

Лекции онлайн-курса по математике в Data Science от Proglib

Линейная алгебра для начинающих с примерами

Какая математика нужна для Data Science? Интервью с преподавателями МГУ

Комбинаторика для начинающих с примерами

Какая математика нужна в анализе данных? Для обучения нейронной сети?

Mathematics for Machine Learning | Mathematics for Data Science by Intellipaat

Statistics And Probability Tutorial | Statistics And Probability for Data Science by Edureka

Книги

Essential Math for Data Science: Take Control of Your Data with Fundamental Calculus, Linear Algebra, Probability, and Statistics by Hadrien Jean


Practical Statistics for Data Scientists: 50+ Essential Concepts Using R and Python (второе издание на английском) by Peter C. Bruce, Andrew Bruce, Peter Gedeck


Практическая статистика для специалистов Data Science (первое издание на русском языке) от Брюса Эндрю и Брюса Питер


Mathematics for Machine Learning by A. Aldo Faisal, Cheng Soon Ong, and Marc Peter Deisenroth


Doing Bayesian Data Analysis: A Tutorial with R, JAGS, and Stan 2nd Edition by John Kruschke


***

Желающим освоить профессию аналитика данных стоит обратить внимание курс по Data Science Факультета Искусственного интеллекта GeekBrains. Программа включает основательную математическую подготовку: введение в математический анализ, теорию вероятностей и математическую статистику, линейную алгебру и алгоритмы анализа данных. Много внимания уделяется программированию и выработке навыков работы в команде. Кроме того, онлайн-университет не только дает студентам необходимые знания, но и помогает им с трудоустройством.

22
Дек
2020

Интенсив «Профессия Data Scientist: учимся обработке и анализу данных за 3 дня»

Cможете примерить на себя роль Data Scientist: поработаете с основными инструментами профессии, визуализируете данные, построите формулы и выявите зависимости на Python.
— Читать дальше «Интенсив «Профессия Data Scientist: учимся обработке и анализу да…

21
Дек
2020

📈 Обучение Data Science: основы науки о данных за 10 минут

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

Мы уже писали о выборе специализации и обучении разным профессиям в сфере Data Science с нуля. В подготовленной при поддержке Факультета Искусственного интеллекта онлайн-университета GeekBrains статье постараемся ответить на самые часто задаваемые вопросы о Data Science, которые волнуют новичков.

Что такое Data Science?

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

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

<a href="https://content.techgig.com/thumb/msid-77132328,width-860,resizemode-4/Top-programming-projects-that-can-add-value-to-your-resume.jpg?140622" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник
Если вы хотите овладеть какой-либо профессией в сфере Data Science с нуля, рекомендуем прочесть статью «Научиться Data Science онлайн».

Применение Data Science

Существует множество применений и преимуществ использования анализа данных в различных сферах. Например, следующие:

  • Информация – один из главных ресурсов современного мира. С помощью правильных инструментов, технологий и алгоритмов, компании и организации могут получать и использовать данные для получения социальных и экономических преимуществ.
  • Наука о данных может помочь обнаружить и предотвратить мошенничество с помощью передовых алгоритмов машинного обучения.
  • Анализ отзывов пользователей может быть использован для оценки лояльности клиентов к бренду и рекомендации продуктов для улучшения бизнеса.
  • Google search применяет технологию Data Science для поиска наиболее точных результатов в течение доли секунды.
  • Методы науки о данных позволяют разрабатывать рекомендательные системы для онлайн магазинов, стриминговых сервисов, социальных сетей и т.д.
  • Анализ данных лежит в основе систем распознавания речи и изображений, например, Siri, Google assistant, Alexa, и т.д.
  • EA Sports, Sony, Nintendo используют технологии Data Science для улучшения игрового опыта пользователя. В настоящее время игры также разрабатываются с применением техники машинного обучения.
  • PriceRunner, Junglee, Shopzilla внедряют механизмы Data Science для сравнения цен. Данные платформы получают с соответствующих веб-сайтов при помощи API.
<a href="https://feweek.co.uk/wp-content/uploads/2019/12/research-tech-books-feat.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

С чего начать обучение Data Science?

Статистика

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

Программирование

Наука о данных – захватывающая область для работы, поскольку она сочетает передовые статистические и количественные навыки с реальными навыками программирования. В зависимости от вашего бэкграунда и желаемой роли в Data Science, можно выбрать один или несколько языков программирования. Однако наиболее популярными в сообществе Data Science являются R, Python и SQL.

Визуализация

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

Машинное обучение и ИИ

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

Deep Learning

Методы Deep Learning – это относительно новое направление машинного обучения, в котором алгоритм самостоятельно выбирает модель анализа, которой нужно следовать.

<a href="https://crampete-staticfiles.s3.ap-south-1.amazonaws.com/images/blog/Data-Science.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник
Во вступительной серии публикаций мы подробно описали особенности профессии, а также рассказали, как научиться ей c нуля и какие навыки необходимы специалисту по Data Science.

Какова роль специалиста Data Science?

Существует несколько основных ролей специалистов по Data Science, каждая из которых направлена на решение определенных проблем с помощью данных:

Data Scientist

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

Языки и инструменты: R, SAS, Python, SQL, Hive, Matlab, Pig, Spark

Инженер

Роль: работает с большими объемами информации, разработка, конструирование, тестирование и поддержка архитектуры крупномасштабных систем обработки и баз данных.

Языки и инструменты: SQL, Hive, R, SAS, Matlab, Python, Java, Ruby, C++, Perl

Аналитик данных

Роль: отвечает за получение и обработку больших объемов информации. Аналитик будет искать в данных взаимосвязи, закономерности и тенденции. В его задачи также входит предоставление отчетности и визуализации анализа данных, которые будут использованы для принятия наиболее эффективных бизнес-решений.

Языки и инструменты: R, Python, HTML, JS, C, C++, SQL

Статистик

Роль: собирает и анализирует качественные и количественные данные, используя статистические теории и методы.

Языки и инструменты: SQL, R, Matlab, Tableau, Python, Perl, Spark, Hive

Администратор данных

Роль: администратор должен убедиться, что база данных доступна всем пользователям. Он также следит, чтобы она работала правильно и была защищена от взлома.

Языки и инструменты: Ruby on Rails, SQL, Java, C#, Python

Бизнес-аналитик

Роль: главная задача такого специалиста – улучшить существующие бизнес-процессы. Он является посредником между командой бизнес-менеджеров и IT-отделом.

Языки и инструменты: SQL, Tableau, Power BI and, Python

Как стать экспертом Data Science?

Чтобы стать экспертом в области науки о данных, сосредоточьте свое внимание на одной области и направьте усилия на изучение ее специфики. Вы также станете лучше разбираться в техниках, которые используете ежедневно в разных областях – все дело в практике. Попробуйте также получить навыки за пределами своей зоны комфорта. Если вы знаете язык программирования Python, перейдите на Django, R или Java. Если вы хотите повысить свой профессиональный уровень, обратите внимание на следующий список:

  • Критическое мышление: специалисты по Data Science должны применять объективный анализ фактов по теме или проблеме, прежде чем формулировать мнения или выносить суждения.
  • Инструменты: начинающие Data Scientists знают, как писать код, и с легкостью справляются с различными задачами программирования. Эксперт в этой области не будет ограничивать себя только Python или R. Нужно овладеть несколькими языками и библиотеками, а также уметь применять различные инструменты для визуализации и анализа данных.
  • Коммуникация: практически ничто в современных технологиях не выполняется в вакууме, поскольку существует интеграция между системами, приложениями, данными и людьми. Наука о данных ничем не отличается, и способность общаться с несколькими заинтересованными сторонами является ключевым атрибутом эксперта по Data Science.
  • Готовность учиться: Наука о данных – очень быстро развивающаяся отрасль. Одним из самых важных навыков для эксперта по Data Science является умение постоянно самостоятельно учится новому в быстром темпе.
<a href="https://mk0analyticsindf35n9.kinstacdn.com/wp-content/uploads/2020/01/top-10-DS-projects.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Как реализуется проект Data Science?

Многие считают, что Data Science – это только построение моделей. На самом деле, общий процесс разработки проекта разбивается на несколько этапов. Полный его жизненный цикл выглядит примерно так:

Постановка проблемы

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

Сбор данных

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

Данные могут быть получены из следующих источников:

  • Веб-серверов;
  • Коммерческих ресурсов;
  • Социальных сетей и других платформ взаимодействия пользователей;
  • Различных онлайн-ресурсов с использованием API и т.д.

Подготовка

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

Разработка модели

На этом этапе необходимо определить метод и технику построения связи между входными переменными. Планирование модели осуществляется с помощью различных статистических формул и средств визуализации. SQL Analysis Services, R и SAS – наиболее часто используемые для этих целей инструменты.

Построение модели

На этом этапе начинается процесс моделирования и проверки гипотез. Здесь Data Scientist разделяет наборы данных для обучения и тестирования. К первому набору применяются такие методы, как ассоциация, классификация и кластеризация. Эффективность модели далее определяется с помощью тестирования на тестовом наборе.

Операционализация

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

Презентация результатов

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

Самым частым проблемам в реализации проектов с большими данными посвящена отдельная статья.

***

Если вы хотите начать карьеру в Data Science, стоит обратить внимание на курс Факультета Искусственного интеллекта онлайн-университета GeekBrains. Его особенность заключается в проектно-ориентированном обучении, во время которого вы сможете на практике понять, как работает команда и как избежать ошибок. Программа курса включает основательную математическую подготовку, занятия по программированию и машинному обучению, а также работу над бизнес-проектами.

15
Дек
2020

∑ Пять вопросов в интервью по Data Science, на которые вы должны уметь отвечать

Чтобы начать карьеру в сфере науки о данных, требуются серьезные познания в математике и ИТ. Публикуем инсайдерское руководство по вопросам, которые задают кандидатам во время интервью при трудоустройстве в Amazon, Netflix и Google.

Инсайдерское руководство по вопросам о Data Science из интервью в Amazon/Netflix/Google.
Статья публикуется в переводе, автор оригинального текста Monika Sharma.

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

Вопрос 1: расскажите о функции потерь деревьев решений

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

Функция потерь для задач классификации

Прежде чем мы сможем понять функцию потерь, сначала нужно познакомиться с такой важной концепцией, как критерий Джини (Gini impurity), поэтому давайте сначала объясним ее.

Gi=1−∑k=1npi,k2

Здесь p – доля экземпляров класса k среди тренировочных экземпляров на i-м узле. Что это значит? Давайте разберемся на следующем примере. На рис. 1 показана простейшая визуализация дерева решений для классического примера классификации ирисов глубиной 2. Верхний уровень – это корневой узел. Концепция разделения тренировочного набора на набор решений алгоритмически довольно проста. Здесь, например, набор данных по ирисам разделен на два поднабора на основании единственного признака “ширина лепестков” на корневом узле. Если ширина лепестков меньше или равна 0.8, алгоритм идет на глубину 1, влево. В противном случае он идет на глубину 1, вправо. Там он делит поднабор дальше на основании дополнительного признака “ширины лепестков”. Правый узел на глубине 1 описывает 100 экземпляров и применяется к 0 экземпляров Iris Setosa, 50 экземпляров Iris Versicolor и оставшиеся 50 экземпляров Iris Virginica.

Рис. 1. Дерево решений для ирисов
Рис. 1. Дерево решений для ирисов

Таким образом, критерий Джини для этого узла равен 0.5:

Gk,tk=1−(0100)2−(50100)2−(50100)2

Точно так же, для узла глубиной 1 слева критерий Джини равен нулю, потому что все тренировочные экземпляры принадлежат к одному классу. Этот узел считается “чистым”.

Чтобы понять, что такое критерий Джини, давайте вернемся к основному вопросу. Деревья решений используют для обучения алгоритм Classification And Regression Tree (CART), основанный на простой концепции разделения набора данных на два поднабора, используя единственный признак (k) и порог (t). В наборе данных ирисов признаком была “ширина лепестков”, а порогом – 0.8. Как алгоритм выбирает t и k? Он ищет пару (t,k), производящую “самые чистые” подмножества. Поэтому функция потерь, которую алгоритм пытается минимизировать, описывается следующим уравнением:

J(k,tk)=mleftmGleft+mrightmGright

Здесь Gleft и Gright – критерии Джини для левого и правого узлов, а m представляет экземпляры подмножеств.

Функция потерь для задач регрессии

Функция потерь для деревьев регрессии просто интуитивна. Мы используем сумму разности квадратов (RSS). Она изображена следующей формулой, в которой Y – истинное значение, а Y с крышкой – предсказанное.

RSS=∑k=1n(Y−Y^)2

Вопрос 2: как коллинеарность влияет на ваши модели?

Ответ. Коллинеарность относится к ситуации, в которой две или более прогнозных переменных сильно зависят друг от друга. Рисунок 2 демонстрирует пример коллинеарных переменных. Переменная Variable 2 строго следует за Variable 1 с коэффициентом корреляции Пирсона, равным 1. Поэтому, очевидно, одна из этих переменных будет вести себя как “шум”, если их скормить моделям машинного обучения.

Рис. 2. Пример коллинеарных переменных
Рис. 2. Пример коллинеарных переменных

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

Простой способ обнаружения коллинеарности – посмотреть на матрицу корреляции прогнозных переменных. Каждый элемент этой матрицы, достаточно большой по модулю, обозначает пару признаков с высокой коллинеарностью, и, следовательно, проблемы в данных. К сожалению, не все проблемы с коллинеарностью можно выявить анализом матрицы корреляции: возможно существование коллинеарности между тремя и более переменными, даже при отсутствии высокой корреляции между любой парой этих переменных. Такая ситуация называется мульти-коллинеарностью. Для таких случаев вместо анализа матрицы корреляции намного лучший метод – анализ коэффициента повышения дисперсии (Variance Inflation Factor, VIF). Коэффициент повышения дисперсии для каждой переменной рассчитывается по такой формуле:

VIF=11−RXj|X−j2

Где R2 – регрессия переменной X по всем остальным прогнозным переменным. Если VIF близок к единице или больше нее, коллинеарность присутствует. Если обнаружилась проблема коллинеарности, есть два решения. Можно удалить избыточную переменную. Это можно сделать, не ухудшая сходимость регрессии. Другое решение – это объединить все коллинеарные переменные в единственную прогнозную переменную.

Вопрос 3: как бы вы объяснили работу глубоких нейронных сетей непрофессионалу?

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

Слово “глубокие” в определении глубоких нейронных сетей означает, что нейронная сеть состоит из множества слоев. Эти слои, в свою очередь, состоят из узлов, в которых и производятся вычисления. Аналогией такого узла является нейрон в человеческом мозге, который “включается” при получении достаточных стимулов. Узел комбинирует данные от входов с их коэффициентами (весами), которые усиливают либо ослабляют влияние каждого входа. Произведения данных на веса затем суммируется, как показано на рис. 3, и передается в функцию активации, которая определяет, должен ли этот сигнал пройти дальше по нейронной сети и влиять на итоговый результат. Слой – это набор таких нейроподобных переключателей, которые включаются и выключаются в зависимости от входных данных.

Рис. 3. Пример визуализации узла нейронной сети
Рис. 3. Пример визуализации узла нейронной сети

Глубокие нейронные сети отличаются от ранних версии нейронных сетей вроде перцептронов, потому что те содержали всего один внутренний слой нейронов, наряду с входным и выходным слоями.

Глубокие нейронные сети содержат несколько внутренних слоев
Глубокие нейронные сети содержат несколько внутренних слоев

Вопрос 4: какой должна быть 3-минутная презентация вашего тестового проекта по Data Science?

Ответ. Типовое интервью на позицию Data Scientist’а начинается с тестового задания в виде проекта, который вы должны сделать дома. Предоставляемое на это время может сильно варьироваться в зависимости от сложности задачи. Однажды мне дали два дня на решение задачи и подготовку отчета для руководства, но в другой раз на решение задачи дали две недели. Незачем и говорить, что это была намного более сложная задача, где набор данных содержал сильный дисбаланс классов. Поэтому 3-минутная презентация для “продажи” вашего решения позволяет вам продемонстрировать ваш уровень понимания предложенной задачи. Начните со своей интерпретации задачи, кратко опишите свой подход к ее решению, какие типы моделей машинного обучения вы использовали и почему. Заканчивайте презентацию хвастовством по поводу точности предсказания ваших моделей.

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

Вопрос 5: что значит “регуляризация модели”, и как добиться регуляризации для линейной модели?

Ответ. Регуляризация – это термин для ограничения (сокращения переобучения) вашей модели машинного обучения. Хороший способ ограничения модели машинного обучения – иметь меньше степеней свободы. Имея меньше степеней свободы, модели сложнее переобучиться под тренировочные данные. Например, простой способ регуляризации полиномиальной модели – сократить количество полиномиальных степеней свободы. Однако для линейных моделей регуляризация обычно достигается ограничением весов модели. По сравнению с обычной линейной регрессией модели L1-регуляризация (Lasso Regression), L2-регуляризация или регуляризация Тихонова (Ridge Regression) и упругая сетевая регуляризация (Elastic Net) предлагают собственные способы ограничения весов. Для полноты картины давайте начнем с определения линейной регрессии:

y^=θ0+θ1×1+θ2×2+…θnxn
  • y с крышкой – предсказанное значение.
  • n – количество признаков.
  • xi – i-й признак.
  • Тэта – параметры модели, также известные как веса признаков.

Функция потерь Средняя Квадратичная Ошибка (Mean Square Error) определяется как:

MSE(X,hθ)=1m∑i=1m(θT⋅x(i)−y(i))2

где тэтаT – транспонированная тэта (вектор-строка вместо вектора-столбца).

Регуляризация Тихонова (Ridge Regression) – это вариант линейной регрессии с регуляризацией, то есть в функцию потерь дополнительно добавлен элемент регуляризации, что заставляет алгоритм обучения не только подстраиваться под тренировочные данные, но и делать веса настолько маленькими, насколько это возможно. Заметим, что элемент регуляризации должен добавляться к функции потерь только в процессе обучения. Когда модель уже обучена, мы хотим измерять ее качество работы без регуляризации.

J(θ)=MSE(θ)+α12∑i=1nθ2

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

L1-регуляризация (Lasso Regression) – другой вид регуляризованной линейной регрессии, который также добавляет в функцию потерь элемент регуляризации, но на основе L1-нормы вектора весов в отличие от L2-нормы.

J(θ)=MSE(θ)+α∑i=1n|θi|

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

Упругая сетевая регуляризация (Elastic Net) – нечто среднее между регуляризацией Тихонова и L1-регуляризацией. Элемент регуляризации – это просто смесь двух видов регуляризации в пропорции, определяемой параметром r. При r=0 это чистая регуляризация Тихонова, а при r=1 – L1-регуляризация.

J(θ)=MSE(θ)+rα∑i=1n|θi|+α1−r2∑i=1nθ2

Желательно всегда иметь какую-нибудь регуляризацию, а использования чистой линейной регресии следует избегать. По умолчанию хороша регуляризация Тихонова, но если в некотором наборе данных значение имеет лишь небольшой процент признаков, тогда лучше использовать L1-регуляризацию. Упругая сетевая регуляризация в большинстве случаев лучше L1-регуляризации, потому что последняя может приводить к странным результатам, когда количество признаков больше количества тренировочных записей, или когда несколько признаков имеют сильную корреляцию друг с другом.

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

Удачного изучения!

  1. Hands-On Machine Learning with Scikit-Learn, Keras and Tensorflow.
  2. An Introduction to Statistical Learning.
07
Дек
2020

🎥 Создаём рекомендательный алгоритм для YouTube, чтобы не тратить время зря

YouTube API и Amazon AWS Lambda можно использовать для создания собственного алгоритма выбора видео, чтобы не тратить время на просмотр предложенного мусора. Рассказываем как.

Создаем собственный алгоритм YouTube (чтобы не тратить время зря)

Я люблю смотреть на YouTube видео, которые существенно улучшают мою жизнь. К сожалению, алгоритм YouTube на это не согласен: он обожает подсовывать мне “ловушки кликов” и прочий мусор.

Здесь нет ничего удивительного – алгоритм ставит на первое место количество кликов и время просмотров.

Поэтому я поставил перед собой задачу: смогу ли я написать код, который автоматически найдет полезные видео, покончив с зависимостью от алгоритма YouTube?

И вот чего я добился.

Самый лучший план

Я начал с попытки представить, что бы мне хотелось получить от собственного инструмента. Я хотел, чтобы он:

  1. Ранжировал видео по ожидаемой привлекательности для меня и
  2. Автоматически присылал мне избранные видео, из которых я мог бы выбирать.

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


Я знал, что мне потребуется YouTube API для получения информации о видео. Затем я создал бы процедуру, обрабатывающую эту информацию для ранжирования видео. В качестве последнего шага я планировал установить автоматическую рассылку списков самых лучших видео самому себе с помощью AWS Lambda.

Однако все закончилось не совсем так, как ожидалось. (Если вы хотите пропустить историю и сразу увидеть финальный код, вам сюда).

Путешествие по YouTube API

Я хотел найти метрики, которые можно было бы использовать для ранжирования видео в терминах их привлекательности для меня.

Я изучил документацию YouTube и узнал, что можно получить информацию на уровне видео (название, дата публикации, количество просмотров, уменьшенное изображение и т.д.) и на уровне канала (количество подписчиков, комментариев, просмотров, плейлисты канала и пр.)

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

Я получил код API через консоль разработчика и скопировал его в свой скрипт Python. Это позволяет инициализировать вызов API и получать результаты следующими строками кода:

        api_key = 'AIzpSyAq3L9DiPK0KxrGBbdY7wNN7kfPbm_hsPg'  # Введите свой ключ API вместо этого

youtube_api = build('youtube', 'v3', developerKey = api_key)

results = youtube_api.search().list(q=search_terms, part='snippet', type='video', 
                                order='viewCount', maxResults=50).execute()
    

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

        publishedAt = results['items'][0]['snippet']['publishedAt']
    

Здесь можно найти полезную серию видео, демонстрирующих весь процесс использования YouTube API.

Находим полезные видео: определение формулы

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

Это был сложный вопрос. Что делает видео хорошим? Количество просмотров? Количество комментариев? Количество подписчиков канала?

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

Однако, есть несколько моментов, которые общее количество просмотров не учитывает:

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

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

Мне нужно было встроить другие метрики. Следующей метрикой было количество подписчиков.

Я протестировал ранжирование, основанное исключительно на отношении просмотров к подписчикам (т.е. делим количество просмотров на количество подписчиков).

        # Функция для подсчета количества просмотров по отношению к подписчикам
def view_to_sub_ratio(viewcount, num_subscribers):
    if num_subscribers == 0:
        return 0
    else:
        ratio = viewcount / num_subscribers
        return ratio
    

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

Первое видео выглядит потенциально интересным, а вот второе и третье – совсем не то, что я искал
Первое видео выглядит потенциально интересным, а вот второе и третье – совсем не то, что я искал

Я предпринял кое-какие попытки устранить подобные крайние случаи:

  • Установил минимальное количество просмотров в 5000.
  • Установил максимальное значение соотношения количества просмотров к количеству подписчиков в 5.
        # Убираем крайние случаи (низкое количество просмотров или подписчиков
def custom_score(viewcount, ratio, days_since_published):
    ratio = min(ratio, 5)
    score = (viewcount * ratio)
    return score
    

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

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

Я планировал запускать этот код раз в неделю, так что я решил ограничить поиск видео теми, которые были опубликованы за последние 7 дней:

        def get_start_date_string(search_period_days):
    """Returns string for date at start of search period."""
    search_start_date = datetime.today() - timedelta(search_period_days)
    date_string = datetime(year=search_start_date.year,month=search_start_date.month,
                           day=search_start_date.day).strftime('%Y-%m-%dT%H:%M:%SZ')
    return date_string

date_string = vf.get_start_date_string(7)
results = youtube_api.search().list(q=search_terms, part='snippet',
                              type='video', order='viewCount', maxResults=50,
                              publishedAfter=date_string).execute()
    

Я также добавил “количество дней с момента публикации” в метрику ранжирования. Я решил разделить предыдущую метрику на это количество дней, чтобы итоговый результат не зависел от того, как долго видео было опубликовано.

        def custom_score(viewcount, ratio, days_since_published):
    ratio = min(ratio, 5)
    score = (viewcount * ratio) / days_since_published
    return score
    

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

videoValue=Views∗min(ViewToSubscriberRatio,5)DaysSincePublished

Тестирование моего нового инструмента

Сначала я протестировал его с запросом термина “medical school” и получил следующие результаты:


Затем я пошел на YouTube и вручную поискал там видео, относящиеся к медицине и обучению медицине. Оказалось, что мой инструмент захватил все видео, которые мне было бы интересно посмотреть. Особенно мне понравилось второе видео, от доктора Кевина Джаббала.

Я протестировал с другим условием поиска, “productivity”, и результаты снова меня порадовали.


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

Несколько месяцев назад OpenAI выложила действительно интересную новую нейронную сеть, называемую “GPT-3”. Я решил протестировать мой поисковик видео, передав в качестве критерия поиска “GPT-3”, и нашел вот это видео:

Источник: https://www.youtube.com/watch?v=wx4GQUXOHIQ

Это интересное видео от создателя, имеющего всего несколько тысяч подписчиков

Если бы я выполнил такой же поиск на YouTube, мне пришлось бы прокрутить все видео от крупных каналов, прежде чем я нашел бы это видео на 31-м месте.

Видео про GPT-3 от каналов с большой аудиторией
Видео про GPT-3 от каналов с большой аудиторией

С помощью кода Video Finder, который я написал, намного проще находить эти интересные видео, содержащие новые перспективы.

За последние несколько месяцев я перепробовал множество условий поиска видео, основанных на моих интересах – например, ‘artificial intelligence’, ‘medical AI’ и ‘Python programming’. Практически всегда в первой пятерке предложений Video Finder’а было хотя бы одно интересное видео.

Запускаем рабочий процесс

Я причесал весь свой код и выложил его на GitHub.

На высоком уровне, теперь мой код работал примерно так:

  1. Используем условия поиска, период поиска и ключ API для получения информации о видео с YouTube.
  2. Рассчитываем “метрику интересности” для видео.
  3. Используем “функцию ценности” для ранжирования этих видео по предполагаемой интересности.
  4. Сохраняем интересующую нас информацию в DataFrame.
  5. Печатаем информацию (включая ссылки) о 5 лучших видео в консоль.

Я хотел найти способ запускать этот скрипт автоматически, и решил использовать AWS Lambda (платформу без сервера). Lambda позволяет писать код, который не выполняется, пока не сработает триггер (например, раз в неделю, или при происхождении какого-либо события).

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

Однако этот план не сработал.

Это была моя первая попытка использовать Lambda, и как я ни старался, я не смог заставить все импортированные библиотеки работать одновременно. Чтобы выполняться, коду требовался почтовый клиент boto3, OAuth для вызова API, Pandas для хранения результатов, и множество модулей, от которых они зависят. Обычно установка этих пакетов довольно проста, но на Lambda возникли дополнительные сложности. Во-первых, там есть лимиты на загрузку файлов, так что мне пришлось упаковать библиотеки, а потом распаковать их после загрузки. Во-вторых, AWS Lambda использует собственную версию Linux, которая затруднила использование правильных библиотек с кросс-платформной совместимостью. В-третьих, мой Mac вел себя странно с ее виртуальными окружениями.

Потратив около 10-15 часов на поиск советов на StackOverflow, загрузку и повторную загрузку различных codebase и совещания с несколькими друзьями, я так и не смог заставить все это заработать. Так что, в конце концов я решил сдаться (если у вас есть какие-нибудь хорошие идеи, сообщите мне!)

Вместо этого, я реализовал план Б: запускать скрипт вручную на своем локальном компьютере раз в неделю (после автоматического напоминания через email). Честно говоря, это не конец света.

Итоговые мысли

В целом, это был действительно забавный проект. Я научился использовать YouTube API, познакомился с AWS Lambda и создал инструмент, который могу использовать в дальнейшем.

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

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

Если вы хотите присоединиться к моему путешествию, вы можете добавиться в мой почтовый список и на мой канал YouTube.

Возможные дальнейшие шаги

В целом, проект еще достаточно сырой, и здесь многое можно сделать:

  1. Метрика для ранжирования видео довольно груба, и я мог бы ее улучшить. Естественным следующим шагом было бы встроить соотношение лайков и дизлайков.
  2. При задании условий поиска также много условностей. Если строка поиска не содержится в названии видео или его описании, видео не будет выбрано. Я мог бы исследовать способы обойти эту проблему.
  3. Я мог также создать интерфейс, позволяющий пользователю просто вводить условия поиска и период поиска. Это сделало бы инструмент более доступным, а также позволило бы пользователям смотреть видео, не заходя на youtube.com.
  4. В настоящее время код работает довольно медленно. Я не приложил особых усилий к его оптимизации и ускорению, учитывая, что я собирался запускать этот код всего раз в неделю. Но есть несколько очевидных мест, где можно было бы повысить эффективность.

Полезные ссылки

Похожие проекты:

YouTube API:

AWS Lambda:

01
Дек
2020

Новогодняя распродажа онлайн-курсов и профессий в Skillbox

Заходите и выбирайте что-нибудь по душе: есть и для новичков, и для продолжающих. В списке направлений актуальные языки и сферы разработки, а также топовые технологии:
— Читать дальше «Новогодняя распродажа онлайн-курсов и профессий в Skillbox»

30
Ноя
2020

Интенсив «Напишите первую модель машинного обучения за 3 дня»

За три дня научитесь программировать на базовом уровне, работать с открытыми данными из интернета и предсказывать курс доллара.
— Читать дальше «Интенсив «Напишите первую модель машинного обучения за 3 дня»»

30
Ноя
2020

Конференция DevFest Siberia 2020

Пятая ежегодная конференция по Mobile, Frontend, Backend, DevOps, Security, Data Science и Hype. Более 40 спикеров со всего мира, 4 трека и воркшопы.
— Читать дальше «Конференция DevFest Siberia 2020»

30
Ноя
2020

🤖 Анализ тональности текста: прошлое, настоящее и будущее

Статья описывает методы решения одной из самых популярных задач машинного обучения – анализа тональности текста, на примере популярного датасета отзывов зрителей на фильмы IMDb.

Анализ тональности текста (sentiment analysis) – одна из классических задач обработки естественного языка (Natural Language Processing, NLP). Люди оставляют отзывы на какие-либо продукты или события, а наша модель должна определить, положительный это отзыв или отрицательный. Иногда набор данных содержит не только бинарную классификацию (положительный или отрицательный), но и числовые оценки, проставленные авторами отзывов.

Мы исследуем анализ тональности текста на классическом примере – большом наборе отзывов на фильмы из базы IMDb. Скачайте базу и распакуйте ее так, чтобы корневая папка acImdb находилась в той же папке, в которую вы поместите код. В этой папке находятся подпапки train и test, в каждой из которых – папки pos и neg (по 12500 примеров в каждой). Имена файлов содержат оценки, поставленные зрителями, но мы ограничимся распознаванием позитивности и негативности.

Стоит сразу же отметить, что в данной формулировке задача анализа тональности текста явно не имеет практического применения. Клиенту намного проще поставить числовую оценку, чем написать отзыв. Даже если предположить, что это не так, модель, предсказывающая оценку по тексту отзыва, вряд ли найдет коммерческое применение. Эта задача – “игрушечная”, отлично подходящая для демонстрации различных методов NLP, и при этом позволяющая добиться довольно высокого результата даже устаревшими методами.


Далекое прошлое

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

Несколько более сложный способ – реализовать простейшее обучение следующим образом. Сначала надо присвоить каждому слову какой-нибудь случайный вес. После этого проходим по всей базе и повышаем веса всех слов отзыва, если сумма весов отрицательна, а оценка должна быть положительной. Если же сумма весов всех слов отзыва положительна, а оценка должна быть отрицательной, тогда веса всех слов отзыва нужно уменьшать. Это уже самое настоящее машинное обучение, которое вы можете реализовать, не зная никаких библиотек Data Science и даже не на Python или R. Продолжайте этот процесс до тех пор, пока он повышает точность предсказаний модели.

Я не буду приводить примеров кода, поскольку они тривиальны, и сейчас представляют лишь исторический интерес. Полагаю, что на датасете IMDb таким образом можно получить точность предсказания не ниже 70%.

Прошлое

Мир машинного обучения и ИИ развивается настолько стремительно, что методы, повсеместно применяемые всего пару лет назад, сегодня уже считаются устаревшими. Многие компании до сих пор используют такие устаревшие методы, и даже требуют их знания от соискателей вакансий. Реализация анализа тональности устаревшими методами подробно рассмотрено в первой и второй статьях Аарона Куба (Aaron Kub), откуда я заимствую только основные идеи и финальное решение.

Любая модель анализа тональности (даже самая современная) состоит из трех шагов: очистка и предварительная обработка текста, векторизация и моделирование.


Очистка и обработка текста

Сырой текст всегда содержит лишние символы, которые только мешают его интерпретировать: табуляцию, переводы строки и так далее. Чаще всего удаляют и большинство знаков препинания: если мы собираемся загружать в нашу модель текст по одному предложению, нам якобы достаточно разделить текст на предложения. Если же мы загружаем текст по абзацам или сразу весь целиком, никакие знаки препинания вообще не нужны. Каким образом анализ тональности текста может игнорировать, например, восклицательные знаки? Таких вопросов почему-то никто не задает. На этом этапе часто производится удаление так называемых “стоп-слов” – предлогов, которые якобы не могут влиять на тональность текста, и только мешают его анализировать. При этом даже в английском языке “get up” – совсем не то же самое, что “get out“, и удаление “лишних” коротких слов может привести к потере критически важной информации.

Давайте начнем создание нашей устаревшей модели. Кода будет совсем немного, но если вам лень копировать даже его, можно взять код Аарона Куба в GitHub’е. Для начала импортируем необходимые модули:

        import numpy as np
import pandas as pd
import os
import re
import warnings
from sklearn.metrics import accuracy_score
warnings.filterwarnings('ignore')
    

После этого можно загрузить текстовую информацию с диска в память:

        import glob
reviews_train = []
for file_name in glob.glob("aclImdb/train/pos/*.txt"):
    with open(file_name, 'r', encoding='utf8') as f:
        reviews_train.append(f.read().strip())
for file_name in glob.glob("aclImdb/train/neg/*.txt"):
    with open(file_name, 'r', encoding='utf8') as f:
        reviews_train.append(f.read().strip())

reviews_test = []
for file_name in glob.glob("aclImdb/test/pos/*.txt"):
    with open(file_name, 'r', encoding='utf8') as f:
        reviews_test.append(f.read().strip())
for file_name in glob.glob("aclImdb/test/neg/*.txt"):
    with open(file_name, 'r', encoding='utf8') as f:
        reviews_test.append(f.read().strip())
    

Теперь настало время для очистки и предварительной обработки текста. Так выглядит пример исходного текста:

This isn’t the comedic Robin Williams, nor is it the quirky/insane Robin Williams of recent thriller fame. This is a hybrid of the classic drama without over-dramatization, mixed with Robin’s new love of the thriller. But this isn’t a thriller, per se. This is more a mystery/suspense vehicle through which Williams attempts to locate a sick boy and his keeper.Also starring Sandra Oh and Rory Culkin, this Suspense Drama plays pretty much like a news report, until William’s character gets close to achieving his goal.I must say that I was highly entertained, though this movie fails to teach, guide, inspect, or amuse. It felt more like I was watching a guy (Williams), as he was actually performing the actions, from a third person perspective. In other words, it felt real, and I was able to subscribe to the premise of the story.All in all, it’s worth a watch, though it’s definitely not Friday/Saturday night fare.It rates a 7.7/10 from…the Fiend :.

Очистка производится с помощью регулярных выражений (regex). Если вы не знаете, что это такое, с ними можно познакомиться здесь. Мы удаляем знаки препинания, цифры и теги HTML, а также приводим текст к нижнему регистру:

        # Удаляем знаки препинания и цифры
REPLACE_NO_SPACE = re.compile("(\.)|(\;)|(\:)|(\!)|(\')|(\?)|(\,)|(\")|(\()|(\))|(\[)|(\])|(\d+)")
# Заменяем последовательности <br/>, а также / и - пробелами
REPLACE_WITH_SPACE = re.compile("(<br\s*/><br\s*/>)|(\-)|(\/)")
NO_SPACE = ""
SPACE = " "

def preprocess_reviews(reviews):
    reviews = [REPLACE_NO_SPACE.sub(NO_SPACE, line.lower()) for line in reviews]
    reviews = [REPLACE_WITH_SPACE.sub(SPACE, line) for line in reviews]
    return reviews

reviews_train_clean = preprocess_reviews(reviews_train)
reviews_test_clean = preprocess_reviews(reviews_test)
    

Приведенный выше пример после очистки выглядит вот так:

this isnt the comedic robin williams nor is it the quirky insane robin williams of recent thriller fame this is a hybrid of the classic drama without over dramatization mixed with robins new love of the thriller but this isnt a thriller per se this is more a mystery suspense vehicle through which williams attempts to locate a sick boy and his keeper also starring sandra oh and rory culkin this suspense drama plays pretty much like a news report until williams character gets close to achieving his goal i must say that i was highly entertained though this movie fails to teach guide inspect or amuse it felt more like i was watching a guy williams as he was actually performing the actions from a third person perspective in other words it felt real and i was able to subscribe to the premise of the story all in all its worth a watch though its definitely not friday saturday night fare it rates a from the fiend

Векторизация

Модели машинного обучения (за небольшим исключением в виде деревьев и случайных лесов) не могут работать с текстовыми данными, поэтому тексты нужно преобразовать в числа. Как правило, в результате получаются одномерные массивы чисел – векторы. От того, как вы получаете эти векторы, во многом зависит максимальная точность модели. Практически все устаревшие подходы кодируют слова без учета контекста, то есть слово “bank” в выражениях “river bank” и “bank of Canada” кодируется одинаково. Методики векторизации включают:

  • Кодирование TF-IDF. Важность каждого слова определяется частотой его использования во всех текстах тренировочного набора. Эту методику не стоит применять для анализа тональности, поскольку значимость слова для определения тональности никак не зависит от частоты его использования.
  • Стемминг. Это обрезание слов, чтобы привести их к единым общим формам. Например, слова “люблю”, “любил”, “любит”, “любить” можно привести к единой форме “люб“, и при этом не потерять информацию. С другой стороны, слова “любимый” и “любимчик” несут совершенно разную эмоциональную окраску, и здесь обрезание до единой формы непременно приведет к потере информации.
  • Лемматизацию. Каждое слово приводится к его словарной основе, называемой леммой. Очевидно, что при правильно составленном словаре лемматизация способна добиться намного лучшей унификации слов, чем стемминг, с гораздо меньшим риском потери информации. Например, слово “шла” имеет в качестве леммы глагол “идти”, и никакая обрезка слова не позволяет ее получить. Разумеется, для лемматизации требуется огромный словарь, в котором должны присутствовать все слова анализируемого языка.
  • CountVectorizer. Один из самых простых способов векторизации текста – это сбор всех возможных слов и создание для текста единственного вектора, в котором для каждого слова будет указано количество его вхождений в текст (обычный режим) или факт наличия в тексте (двоичный режим). Очевидно, что при этом мы теряем всю информацию о порядке следования слов, но, как мы увидим ниже, оставшейся информации достаточно для получения достаточно высокой точности предсказания.
  • N-граммы. Если кодировать не только наличие слов, а еще и наличие последовательностей из двух и трех слов (биграмм и триграмм), это позволит частично компенсировать отсутствие информации о порядке их следования. Словарь при этом получается просто огромный, но поскольку большая часть кода каждого текста будет заполнена нулями, его можно представить в виде разреженной матрицы, с которыми отлично работает Python.

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

        from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split

stop_words = ['in', 'of', 'at', 'a', 'the']
ngram_vectorizer = CountVectorizer(binary=True, ngram_range=(1, 3), stop_words=stop_words)
ngram_vectorizer.fit(reviews_train_clean)
X = ngram_vectorizer.transform(reviews_train_clean)
X_test = ngram_vectorizer.transform(reviews_test_clean)

X_train, X_val, y_train, y_val = train_test_split( X, target, train_size = 0.75)
    

Моделирование

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

        from sklearn.metrics import accuracy_score
from sklearn.svm import LinearSVC

for c in [0.001, 0.005, 0.01, 0.05, 0.1]:
    svm = LinearSVC(C=c)
    svm.fit(X_train, y_train)
    print ("Accuracy for C=%s: %s" % (c, accuracy_score(y_val, svm.predict(X_val))))
        
final = LinearSVC(C=0.01)
final.fit(X, target)
print ("Final Accuracy: %s" % accuracy_score(target, final.predict(X_test)))
    
        Accuracy for C=0.001: 0.88336
Accuracy for C=0.005: 0.8896
Accuracy for C=0.01: 0.89088
Accuracy for C=0.05: 0.8896
Accuracy for C=0.1: 0.88912
Final Accuracy: 0.9
    

Мы добились точности 90% очень простыми средствами! Фактически наша модель всего лишь присвоила оптимальные веса всем комбинациям из одного, двух и трех слов, встречающимся в наших текстах

Интерпретация результатов и размышления


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

        feature_to_coef = { word: coef for word, coef in zip(ngram_vectorizer.get_feature_names(), final.coef_[0]) }

for best_positive in sorted( feature_to_coef.items(), key=lambda x: x[1], reverse=True)[:30]:
    print (best_positive)
    
print("\n\n")
for best_negative in sorted( feature_to_coef.items(), key=lambda x: x[1])[:30]:
    print (best_negative)
    
        ('excellent', 0.2304771384408031)
('perfect', 0.18507025403127336)
('great', 0.17881801385386237)
('wonderful', 0.1607892578415082)
('amazing', 0.1522695033939524)
('superb', 0.1469592250797414)
('enjoyable', 0.1443147342881976)
('best', 0.13064243531024478)
('enjoyed', 0.12732761468660905)
('fun', 0.12671723863644624)
('today', 0.12183576138878806)
('brilliant', 0.12065189281303865)
('must see', 0.11754736841763254)
('fantastic', 0.11538150792001459)
('loved', 0.11334100478792107)
('liked', 0.1120056345033787)
('funniest', 0.11168721465694686)
('incredible', 0.1086310023776505)
('wonderfully', 0.10755457584821745)
('better than', 0.10678237215285466)
('rare', 0.10401813549409697)
('beautiful', 0.10363770375592474)
('bit', 0.10192527354469774)
('love', 0.10181871928579253)
('well worth', 0.10117934642913716)
('highly', 0.10095355976123757)
('job', 0.10068803599089889)
('watch it', 0.09981111740351185)
('recommended', 0.09814962326635371)
('moving', 0.09695428281825534)


('worst', -0.3595863580038929)
('awful', -0.25540099226328966)
('boring', -0.24045424661934411)
('waste', -0.23777958511405578)
('bad', -0.22229431752398504)
('poor', -0.20207930198349183)
('terrible', -0.19911693144858356)
('dull', -0.18248451183118236)
('disappointment', -0.17575626539613495)
('poorly', -0.17370341213920307)
('disappointing', -0.16780672219139375)
('unfortunately', -0.15749774958555066)
('stupid', -0.15416425001189243)
('horrible', -0.15405101621568124)
('worse', -0.1530418029462235)
('mess', -0.14794757332891825)
('nothing', -0.14007349875633826)
('lame', -0.13806269565344811)
('save', -0.13592458133307603)
('lacks', -0.13560833588335394)
('oh', -0.13244139301509864)
('avoid', -0.131782242803332)
('ridiculous', -0.13161464051063154)
('weak', -0.12800395819730007)
('annoying', -0.12648218010297776)
('fails', -0.12462870513833782)
('badly', -0.12273300745443444)
('script', -0.12270962568114398)
('not good', -0.12008064261879525)
('not worth', -0.11956611283710153)
    

Этот список должен навести вас на мысль, что искусственным интеллектом здесь и не пахнет. Хотя большинство слов, как и ожидалось, непосредственно описывающие отношение зрителя прилагательные, некоторые из них просто удивляют. Слово “today” (“сегодня”) не несет совершенно никакой эмоциональной окраски, как и “bit” (“немного”), “job” (работа), “moving” (“двигаясь”), “oh” (“о!”), “avoid” (“избегать”) и “script” (“сценарий”). Они попали в список просто потому, что случайно присутствовали во многих обзорах одного класса. Можно легко изобрести ругательный отзыв, который наша модель посчитает очень позитивным:

I have watched the love comedy today, and I highly disagree that it was a true comedy. No fun at all! Don’t watch it!

Даже трехлетний ребенок не посчитает такой отзыв положительным, а вот наша модель посчитает. Потому что слова “love”, “today”, “highly”, “fun” и “watch it” у нее ассоциируются с положительными оценками, а отрицательную окраску тут несут только слова “disagree” и “don’t”.

Профессионал машинного обучения скажет, что наша модель обучалась не тем признакам (features), которые нужны для уверенного распознавания смысла или хотя бы тональности текста. Наличие в тексте определенного слова (или даже последовательности слов) само по себе не является верным признаком, поскольку смысл каждого слова зависит от контекста. В нашем простом примере слово “love” использовалось не для обозначения отношения зрителя к фильму, а просто для описания жанра фильма (“любовная комедия”). Причастие “highly” само по себе не несет никакого смысла, а просто усиливает оценку следующих слов. Наконец, существуют отрицание и сарказм, способные перевернуть смысл даже самых позитивных слов.

Удивительно, что практически ни один исследователь не придавал последним словам обзора больше веса, чем первым. Пытаясь продемонстрировать свою беспристрастность, многие зрители сначала описывают те особенности фильма, которые противоречат их финальной оценке, и только в конце выносят итоговый вердикт. Например, “у этого фильма потрясающий состав актеров, актриса X, как всегда, прекрасно справилась с ролью, но сценарий настолько ужасен, что даже это не спасает фильм”. (Кажется, я начинаю понимать, почему наша модель посчитала слово “сценарий” негативным! Зрители вспоминают о сценарии только для того, чтобы обругать его).

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

Bromwell High is a cartoon comedy. It ran at the same time as some other programs about school life, such as “Teachers”. My 35 years in the teaching profession lead me to believe that Bromwell High’s satire is much closer to reality than is “Teachers”. The scramble to survive financially, the insightful students who can see right through their pathetic teachers’ pomp, the pettiness of the whole situation, all remind me of the schools I knew and their students. When I saw the episode in which a student repeatedly tried to burn down the school, I immediately recalled ……… at ………. High. A classic line: INSPECTOR: I’m here to sack one of your teachers. STUDENT: Welcome to Bromwell High. I expect that many adults of my age think that Bromwell High is far fetched. What a pity that it isn’t!

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

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

Чтобы получить представление о признаках, выделяемых человеческим мозгом при анализе текста, достаточно вспомнить знаменитое предложение профессора Щербы: “Глокая куздра штеко кудланула бокра и курдячит бокрёнка“. Если вы ни разу его не слышали, вспомните хотя бы стишок про Бармаглота из “Алисы в Зазеркалье”:

Варкалось! Хливкие шорьки пырялись по наве,

И хрюкотали зелюки, как мюмзики в мове.

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

Человеческий мозг воспринимает “глокую куздру” примерно как: “ловкая пантера сильно толкнула кабана и терзает поросенка”. Почему возникает именно такая ассоциация? Да потому, что мозг выделяет из текста огромное количество признаков и использует их все! Среди этих признаков:

  • Морфологические. Строение фразы однозначно указывает, что <какое-то><существо><как-то воздействовало> на <взрослое существо другого вида> и <делает что-то> с <детенышем того же вида>.
  • Фонетические. Фраза ни в коем случае не воспринимается как “добрая Лошадка поприветствовала Ежика и поздравляет Ежонка” именно потому, что глагол “кудланула” фонетически воспринимается как совершенное физическое воздействие, а глагол “курдячит” – как жестокое физическое воздействие, производимое в данный момент.
  • Эмоциональные. Суффикс “-онок” (“-ёнок”) в русском языке не зря называется уменьшительно-ласкательным. Мы сразу же проникаемся жалостью к несчастному бокренку, которого курдячат. С другой стороны, слово “куздра” – женского рода, а женский род в русском языке имеют только симпатичные виды существ (лиса, белка, выдра, рысь и т.д.)
  • Жизненный опыт. Мы запоминаем огромное количество типовых языковых конструкций, с которыми сопоставляем новые тексты. Морфологические, фонетические и эмоциональные признаки заставляют нас выбрать из всего нашего жизненного опыта суровую картинку мира животных, на которой хищник убивает добычу.

Настоящее

2019 год не зря назвали годом NLP. Именно тогда появились модели на основе Трансформеров, которые навсегда вытеснили из обработки естественного языка модели, базирующиеся на RNN, простых нейронных сетях и тем более простые модели без нейронных сетей, вроде той, которую мы продемонстрировали. Описание принципов работы Трансформеров выходит за рамки статьи, поэтому я отправляю вас к публикации Джея Аламмара “Transformer в картинках” (оригинал и перевод на Хабре).

Трансформеры захватили мир NLP. Конечно, не эти...
Трансформеры захватили мир NLP. Конечно, не эти…

Инженеры Google создали BERT (Bidirectional Encoder Representations from Transformers) – модель, состоящую из большого количества слоев кодировщиков и декодировщиков на основе Трансформеров. Она была обучена на огромном массиве текста, содержащем практически все, что было когда-либо напечатано на английском языке. В результате BERT содержит практически полную модель языка, и, что наиболее важно, модели BERT выложены в открытый доступ. Каждый может встроить их в свои модели, не тратя огромных средств на обучение. Описание принципов работы BERT также выходит за рамки моей статьи, так что рекомендую прочитать статью Джея Аламмара “BERT, ELMo и прочие в картинках” (оригинал и перевод на Хабре).

Предварительно тренированные модели BERT можно использовать одним из трех способов:

  • Без обучения. Вы добавляете к обученной модели BERT несколько дополнительных слоев, и обучаете только их. При этом время обучения редко превышает несколько минут, но точность модели оставляет желать лучшего.
  • Дообучение (fine-tuning). Вы также добавляете несколько дополнительных слоев, но включаете слои BERT в обучаемые. Время дообучения обычно составляет несколько часов, и такие модели существенно превосходят модели без обучения.
  • Переобучение (pre-training). Вы полностью переобучаете BERT на своих данных. Процесс переобучения займет несколько суток, а подготовка данных для него – намного больше. Как правило, переобучение производится для нового языка или набора языков.

Что дает использование BERT для нашей задачи анализа тональности текста? Во-первых, полная модель языка уже не кодирует каждое слово отдельно от остальных, а только в контексте всего предложения или абзаца. Это значит, что слово “bank” в контексте “river bank” будет иметь совсем не ту кодировку, которую получит это же слово в контексте “bank of Canada”. Во-вторых, модель уже может распознать простейшие отрицания вроде “don’t watch it”. В-третьих, BERT при кодировании не удаляет ни стоп-слова, ни знаки препинания, то есть не теряет важную информацию – наоборот, некоторые слова при кодировании разбиваются на несколько частей!

Следующий пример использования BERT для нашей задачи анализа тональности взят из библиотеки ktrain – это ссылка на GitHub с полным кодом. Пример требует установленной библиотеки Tensorflow не ниже 2-й версии. Я запускал его в Jupyter Notebook и увеличил количество эпох обучения, поскольку предложенной по умолчанию одной эпохи было недостаточно.

        %matplotlib inline
import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID";
os.environ["CUDA_VISIBLE_DEVICES"]="0"; 

import ktrain
from ktrain import text
# -- using Keras version: 2.2.4-tf
    

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

        (x_train, y_train), (x_test, y_test), preproc = text.texts_from_folder('aclImdb', 
     maxlen=500, 
     preprocess_mode='bert',
     train_test_names=['train', 'test'],
     classes=['pos', 'neg'])
# -- detected encoding: utf-8
# -- preprocessing train...
# -- language: en
#
# -- done.
#
# -- preprocessing test...
# -- language: en
#
# -- done.
    

Теперь создадим нашу модель – текстовый классификатор на базе BERT. Для этого достаточно всего одной строки:

        model = text.text_classifier('bert', (x_train, y_train) , preproc=preproc)
# -- Is Multi-Label? False
# -- maxlen is 500
# -- done.

    

ktrain предоставляет класс learner, в котором собраны все методы, необходимые для тренировки моделей. Один из основных методов – это поиск оптимальной скорости обучения (learning rate).

        learner = ktrain.get_learner(model, 
                             train_data=(x_train, y_train), 
                             val_data=(x_test, y_test), 
                             batch_size=6)
learner.lr_find()
# ...
# -- Please invoke the Learner.lr_plot() method to visually inspect the loss plot to 
# -- help identify the maximal learning rate associated with falling loss.
    
        learner.lr_plot()
    
Мы видим, что оптимальная скорость обучения составляет примерно 2e-5
Мы видим, что оптимальная скорость обучения составляет примерно 2e-5

Осталось обучить нашу модель с найденной скоростью.

        learner.fit_onecycle(2e-5, 5)

# -- begin training using onecycle policy with max lr of 2e-05...
# -- Train on 25000 samples, validate on 25000 samples
# -- Epoch 1/5
# -- 25000/25000 [==============================] - 2619s 105ms/sample - loss: 0.2612 - accuracy: 0.8880 - val_loss: 0.2205 - val_accuracy: 0.9132
# -- Epoch 2/5
# -- 25000/25000 [==============================] - 2614s 105ms/sample - loss: 0.1596 - accuracy: 0.9403 - val_loss: 0.1769 - val_accuracy: 0.9334
# -- Epoch 3/5
# -- 25000/25000 [==============================] - 2646s 106ms/sample - loss: 0.1057 - accuracy: 0.9631 - val_loss: 0.1772 - val_accuracy: 0.9335
# -- Epoch 4/5
# -- 25000/25000 [==============================] - 2607s 104ms/sample - loss: 0.0444 - accuracy: 0.9862 - val_loss: 0.2576 - val_accuracy: 0.9366
# -- Epoch 5/5
# -- 25000/25000 [==============================] - 2610s 104ms/sample - loss: 0.0117 - accuracy: 0.9966 - val_loss: 0.2565 - val_accuracy: 0.9419

    

Как видно из отчета, каждая эпоха обучения на моей 2080 Ti заняла около 45 минут, а все пять эпох – почти четыре часа. Это значит, что ktrain дообучает BERT, что и обеспечивает гораздо более высокую точность предсказания: 94.2%. Если вам кажется, что это ненамного больше, чем 90%, попробуйте взглянуть на результаты с другой стороны: устаревшая модель ошибается в 10% случаев, а современная – только в 5.8%. Почти вдвое реже!

Будущее


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

Как же это изменит мир? Ответом послужат всего два слова: рекомендательные системы. Именно там крутятся огромные деньги (поскольку практически все товары и услуги очень важно рекомендовать именно тем, кто потенциально может их купить), и именно там любая информация о предпочтениях каждого человека чрезвычайно ценна. В ближайшем будущем каждого из нас будут подстерегать сложнейшие системы, которые точно рассчитают, что если нам понравились книга X, фильм Y и актриса Z – то нам, скорее всего, понравится и новая коллекция костюмов от Q, которая сильно на любителя.

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

29
Ноя
2020

📈 История успеха: как я стал специалистом по Data Science

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

В подготовленной при поддержке Факультета Искусственного интеллекта онлайн-университета GeekBrains статье мы расскажем историю успеха специалиста по Data Science.

Текст основан на сокращенном переводе статьи «How To Become A Data Scientist in 12 Months», написанной Фредди Одукомайя, Data Scientists из Royal Mail.

***

Моя история: почему и как я стал специалистом по данным

<a href="https://blog-academy.vertabelo.com/blog/new-course-python-data-structures-in-practice/New-Course-Launch-Python-Data-Structures-in-Practice_hu3f6cfe826708aae663478e89b4214989_118903_980x400_fill_box_center_2.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Когда я был ребенком, мое воображение не знало границ из-за количества научной фантастики, которую я смотрел: от Звездных войн и Могучих Рейнджеров до Ironman. Эти научно-фантастические фильмы демонстрировали самые передовые технологии и вдохновляли меня на их использование и создание. Мои герои в том возрасте были не знаменитости, а ученые, инженеры и техники, как Эйнштейн, Тони Старк, Стивен Хокинг и т. д. С этого начался мой большой интерес к математике и естественным наукам.

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

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

На протяжении многих лет я был очарован миром технологий, особенно программированием, но никогда не думал о карьере в данной сфере. В один прекрасный день я наткнулся на freecodecamp и решил научиться программированию. Путешествие началось с JavaScript, языка интернета. Я помню свое первое мини-приложение, и как я был очарован тем, что вводил команды в компьютер и сразу же видел результаты. Во мне загорелся инженер, так как я имел возможность быстро перейти от концепции к прототипу. Однако я не был до конца удовлетворен этими навыками и хотел карьеру, которая дала бы мне возможность не только кодировать, но и применять свои (потерянные и забытые) математические навыки. В то время Data Science была самой востребованной профессии, но я хотел убедиться, что это не просто шумиха. Я провел исследование: связался с Data Scientists, прочитал несколько книг/блогов и только после этого был убежден, что эта карьера для меня.

Моим первым шагом было оставить авиационную промышленность и занять должность аналитика в центре обработки данных. Это была не техническая роль, но работа мотивировала меня продолжать путь в Data Science. Поначалу я застрял в Excel, но по своей инициативе обсудил это со своим менеджером – мы пришли к соглашению, что я буду работать над проектами, в которых смогу использовать Python. Это позволило мне сразу же применить изученные навыки на практике, работая с реальными проектами Data Science, но обучение продвигалось не так быстро. Онлайн-курсы – это здорово, но если у вас нет обратной связи от лектора/преподавателя, оно становится намного сложнее.

Я решил участвовать в Cambridge Spark Data Science Part-Time Bootcamp. В течение 6 месяцев у меня не было общественной жизни, мои друзья устали от того, что по выходным я только учился и проходил курсы. После окончания Bootcamp я почувствовал, что готов к роли Data Scientist начального уровня. После увольнения я случайно наткнулся на рекламу благотворительного хакатона Royal Mail Data Science, участники которого не только могли помочь благотворительной организации, но и получить возможность пройти интервью в команду Royal Mail Data Science. Я ухватился за этот шанс и через 2 недели получил предложение стать младшим специалистом по обработке данных в Royal Mail.

Мои 8 ключевых уроков

<a href="https://sloanreview.mit.edu/wp-content/uploads/2020/09/EG2-Redman-Davenport-Serious-Data-Science-2400x1260-1-1200x630.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Определитесь с мотивацией

Изучение Data Science требует больших усилий, поэтому в путешествии легко потерять мотивацию. Если ваша мотивация ясна и сильна, это облегчает преодоление трудностей. Напишите, почему вы хотите заниматься Data Science большими буквами и наклейте на все стены вашей квартиры. Например, у меня есть журнал, и почти каждый день я писал в нем, что стану специалистом по данным. Попытайтесь визуализировать свою цель – это действительно помогает.

Практикуйтесь

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

Выберите небольшой набор ресурсов

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

Погрузитесь в сообщество

Окружите себя новостями, ресурсами Data Science и людьми, которые работают и заинтересованы в сфере. Подпишитесь на рассылкы, ежедневно читайте посты и статьи и книги, слушайте подкасты и смотрите видео на YouTube. Посещайте встречи и научные мероприятия сообщества Data Science, информацию о которых вы можете найти на таких сайтах как Meetup и Eventbrite. И наконец-то, присоединись к онлайн-сообществу Data Science (список сообществ приведен ниже).

Участвуйте в хакатонах

Не дожидайтесь, пока вы будете готовы, прежде чем участвовать в хакатонах, приобретенный опыт перевешивает любые трудности с которыми могут столкнуться новички. Хакатоны также могут быть и онлайн, например, Kaggle – это бесконечный онлайн-хакатон.

Найди себе наставника

Для меня это было одним из самых трудных этапов, так как я неправильно понимал, что такое наставничество и кто такой наставник. Наставник – это опытный и надежный учитель/консультант. У вас может быть несколько наставников, с которыми вам не обязательно взаимодействовать напрямую. Мои наставники в конечном итоге стали влиятельными учеными в области данных, на которых я был подписан в социальных сетях. Я также читал их книги и постоянно слушал выступления и выпуски подкастов. Когда я нуждался в совете, я обращался к некоторым из них напрямую по электронной почте и/или через социальные сети, не все из них отозвались, но те, кто ответили, действительно мне помогли.

Рекомендованные ресурсы

<a href="https://cdn.analyticsvidhya.com/wp-content/uploads/2020/09/Get-Certified-with-Free-Courses-in-Data-Science-and-Machine-Learning.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Курсы

  • Open Source Data Science Masters@clarecorthell сделала для нас всю тяжелую работу и составила охватывающую различные аспекты Data Science учебную программу со ссылками на соответствующие курсы, книги и т. д.
  • Class Central – ресурс, где вы можете найти любой онлайн-курс, а также его краткое описание и рейтинги пользователей.
  • DataCamp – EdTech компания, которая обучает data science через интерактивные онлайн курсы.

Практика

  • #100DaysOfCode – вызов для начинающих программистов, во время которого вам предстоит кодировать по крайней мере час каждый день в течение 100 дней.
  • Codewars – совершенствуйте свои навыки, тренируясь с другими на реальных задачах.
  • DrivenData – соревнования на тему социальных проблем в мире и организациях.
  • HackerRank – практикуйтесь в кодировании, соревнуйтесь, находите работу.

Рассылки и блоги

  • Data Elixir – рассылка новостей Data Science со всего интернета.
  • Data Science Roundup – самые полезные статьи Data Science в интернете от Тристана Хэнди.
  • FiveThirtyEight – блог Нейта Сильвера про использование статистического анализа для решения вопросов политики и спорта.
  • Variance Explained – блог Дэвида Робинсона, главного специалиста по данным в DataCamp.
  • Flowing Data – блог о том, как специалисты по статистике, дизайнеры, Data Scientists и другие используют анализ и визуализацию для понимания данных и самих себя.
  • The Pudding – блог, в котором объясняются идеи, обсуждаемые в культуре, с помощью визуальных эссе.
  • Datacamp – блог, который поможет вам стать Data Scientist.
  • Kaggle Blog – официальный блог Kaggle.com
  • Machine Learning Mastery – практикуйте машинное обучение с нуля.
  • Chris Albon – Data Scientist , который стоит за популярным блогом Machine Learning Flashcards и автор Machine Learning with Python Cookbook.
  • KD Nuggets – один из ведущих сайтов про бизнес аналитику, Big Data, Data Mining, Data Science, и машинное обучение.
  • Analytics Vidhya – все про Data Analytics.

Сообщества

***

Если вы только начинаете карьеру в Data Science, стоит обратить внимание на курс Факультета Искусственного интеллекта онлайн-университета GeekBrains. Его особенность заключается в проектно-ориентированном обучении, во время которого вы сможете на практике понять, как работает команда и как избежать ошибок. Программа курса включает основательную математическую подготовку, занятия по программированию и машинному обучению, а также работу над бизнес-проектами.

28
Ноя
2020

📈 Почему Big data так быстро развивается?

Чтобы пройти обучение и получить высокооплачиваемую профессию, необходимо понять тенденции развития отрасли. Рассказываем о Big Data – одном из самых перспективных направлений в сфере ИТ.

О работе специалистов по анализу больших данных и необходимых для освоения профессии навыках мы уже писали. В подготовленной при поддержке Факультета аналитики Big Data онлайн-университета GeekBrains статье расскажем о тенденциях развития отрасли и ее перспективах.

Тенденции развития

<a href="https://theappsolutions.com/images/articles/269/cloudhosting.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Объемы данных продолжают увеличиваться

Большинство экспертов сходятся во мнении, что в будущем объем генерируемых данных будет расти экспоненциально. В подготовленном для Seagate отчете “Data Age 2025” аналитики IDC прогнозируют его увеличение до 175 зеттабайт к 2025 году. Что заставляет экспертов верить в такой стремительный рост?

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

Предприятия, которые хранят и анализируют огромные объемы информации, станут управлять 60% больших данных в ближайшем будущем, однако отдельные потребители также играют значительную роль в этом процессе. В отчете IDC сообщается, что к 2025 году 6 миллиардов пользователей, или 75% населения мира, будут ежедневно взаимодействовать с онлайн-данными. Другими словами, каждый подключенный пользователь будет иметь по крайней мере одно взаимодействие каждые 18 секунд.

Столь большие объемы информации сложно хранить и обрабатывать. До недавнего времени эта проблема решалась экосистемами с открытым исходным кодом, вроде Hadoop и серверов NoSQL. Открытые продукты требуют серьезных затрат на внедрение и сопровождение, что оказалось сложным для многих компаний, и заказчики начали переносить большие данные в облака. AWS, Microsoft Azure и Google Cloud Platform полностью изменили отрасль. Раньше, когда компании намеревались запускать приложения с интенсивным использованием данных, им нужно было развивать собственные ЦОД, но облачная инфраструктура обеспечивает большую гибкость, масштабируемость и простоту использования.

Эти тенденции, безусловно, сохраняются и в 2020 году, но с некоторыми изменениями:

  1. Появление гибридных сред: многие компании не могут хранить конфиденциальную информацию на стороне, поэтому определенный объем данных размешается в собственных ЦОД, а остальное переносится в облако;
  2. Появление мульти-облачных сред: компании, которые стремятся максимально удовлетворить свои бизнес-потребности, предпочитают хранить данные с использованием комбинации нескольких публичных и частных облаков.

Конфиденциальность данных остается как никогда актуальной

<a href="https://learn.airoboticslaw.com/hubfs/Data%20Security.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

  1. Дефицит навыков в области кибербезопасности, вызванный отсутствием возможностей для образования и профессиональной подготовки. Этот разрыв постоянно растет и к 2021 году достигнет 3,5 миллиона незаполненных позиций в сфере кибербезопасности, сообщает Cybercrime Magazine;
  2. Эволюция кибератак – используемые хакерами угрозы развиваются и становятся все более сложными с каждым днем;
  3. Нерегулярное соблюдение стандартов безопасности. Хотя правительство разных стран принимают меры по стандартизации правил защиты данных, большинство организаций по-прежнему игнорируют стандарты безопасности.

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

Перспективы сферы больших данных

<a href="https://blog.commlabindia.com/wp-content/uploads/2019/03/artificial-intelligence-elearning.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Машинное обучение будет продолжать менять ландшафт

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

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

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

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

Услуги Data Scientists и CDO’s будут пользоваться все большим спросом

<a href="https://crampete-staticfiles.s3.ap-south-1.amazonaws.com/blogs/Blog-145/Feature.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Должности специалистов Data Science и Chief Data Officer (CDO) являются относительно новыми, и поэтому потребность в таких сотрудниках на рынке труда довольно высока. В 2019 году KPMG опросили 3600 ИТ-директоров и технологических руководителей из 108 стран и выяснили, что 67% из них столкнулись с нехваткой навыков в сфере аналитики больших данных, безопасности и искусственного интеллекта. Неудивительно, что Data Scientist входит в список самых быстрорастущих на рынке труда профессий, наряду с инженерами ML и аналитиками Big data. Большие данные бесполезны без анализа, и только специалисты могут превратить их в действенные идеи.

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

CDO — это руководители уровня C, отвечающие за доступность, целостность и безопасность данных в компании. По мере того, как все больше владельцев бизнеса осознают важность этой роли, найм CDO становится нормой: если верить опросу “Big Data and AI Executive Survey 2019” от NewVantage Partners, 67,9% крупных компаний уже заполнили данную позицию.

Однако позиция Chief Data Officer во многом остается неопределенной, особенно с точки зрения разделения обязанностей между CDO, Data Scientists и CIO. Это одна из ролей, которая зависит от бизнес-потребностей конкретных компаний, а также их цифровой зрелости. Следовательно, позиция CDO будет развиваться вместе с тем, как мир станет более ориентированным на данные.

Быстрые и действенные данные выйдут на передний план

<a href="https://cdn.searchenginejournal.com/wp-content/uploads/2020/01/how-to-leverage-first-party-data-to-boost-ppc-performance-5e1ea1f816ab8.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Еще одно предсказание о будущем связано с появлением так называемых «быстрых данных» и «действенных данных». В отличие от больших данных, требующих наличия сервисов Hadoop и NoSQL для анализа информации, быстрые данные можно обрабатывать в масштабе реального времени. Благодаря такой потоковой обработке информация может быть проанализирована буквально за считанные миллисекунды. Это приносит больше пользы организациям, которые могут принимать бизнес-решения и предпринимать действия сразу же после поступления данных. Быстрые данные также испортили пользователей, сделав их зависимыми от взаимодействия в реальном времени. По мере того, как бизнес становится все более цифровым, качество обслуживания клиентов повышается – пользователи ожидают, что получат доступ к данным на ходу. Более того, они хотят, чтобы это было персонализировано. В подготовленном для Seagate отчете IDC прогнозирует, что к 2025 году к почти 30% глобальных данных будет обеспечен доступ в режиме реального времени.

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

***

Если вы только начинаете свой путь в профессии аналитика Big Data, хотите получить диплом и помощь в трудоустройстве, обратите внимание на курс Факультета Аналитики Big Data онлайн-университета GeekBrains. Помимо основ математики, языка Python и управления базами данных, в программу включена работа с Apache Hadoop и Apache Spark. Обучение ориентировано на применение навыков машинного обучения в бизнесе и построено по принципам практической работы над проектами с ведущими специалистами отрасли и личным помощником-куратором.

24
Ноя
2020

😛❌😷👍Учим Raspberry Pi распознавать маску на лице

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

Одна из худших профессий в мире – стоять на входе в торговом центре и предлагать людям надеть маски. Вместо этого можно спроектировать использующую распознавание изображений систему обнаружения на базе Raspberry Pi.

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

Источник: Tom's Hardware
Источник: Tom’s Hardware

Принцип работы системы распознавания масок на Raspberry Pi

Когда человек приближается к веб-камере, код на Python определяет, надел он маску или нет, используя пакеты TensorFlow, OpenCV и imutils. Люди без масок будут обведены в красную рамку с надписью «Маска не обнаружена» (No Face Mask Detected), а лица в масках окажутся в зеленой рамке с текстом «Спасибо. Маска надета» (Thank You. Mask On.).

Сколько времени займет реализация системы обнаружения масок на Raspberry Pi?

Прохождение всех этапов проекта, начиная с момента установки ОС Raspberry Pi, займет минимум 5 часов. Если вы читали статью «Учим Raspberry Pi распознаванию лиц», можете вычесть полтора часа на установку OpenCV и использовать предварительно обученную модель, а значит перейти сразу к работающей системе распознавания масок на Raspberry Pi.

Что вам понадобится

  • Raspberry Pi 3 или 4 (использовать Raspberry Pi Zero W в этом проекте не рекомендуется);
  • Карта microSD на 16GB или выше с загруженной ОС Raspberry Pi;
  • Блок питания/клавиатура/мышь/монитор/HDMI кабель (для Raspberry Pi);
  • USB веб-камера;
  • По желанию: тачскрин 7” Raspberry Pi;
  • По желанию: чехол для тачскрина Pi.

Большая часть гайда основана на выполнении команд в терминале.

Часть 1: Установка зависимостей для детектора масок на Raspberry Pi

Сейчас мы установим OpenCV, imutils и TensorFlow.

  • OpenCV – это библиотека алгоритмов с открытым исходным кодом для обработки изображений и видео в реальном времени с возможностью машинного обучения;
  • Imutils – это серия удобных функций для ускорения вычислений OpenCV на Raspberry Pi;
  • TensorFlow – платформа машинного обучения с открытым исходным кодом.

1. Установка операционной системы Raspberry Pi с карты microSD.

2. Подключение веб-камеры через один из USB-портов на вашей плате. Если вы задействали камеру Raspberry Pi вместо вебки, используйте для подключения ленточный кабель. Запускайте Raspberry Pi.

Источник: Tom's Hardware
Источник: Tom’s Hardware

В конце статьи будет описано подключение светодиодов и зуммера. Делать это необязательно.

3. Если вместо веб-камеры вы используете камеру Pi, подключите ее в конфигурации Raspberry Pi (Camera: Enable). Нажмите OK и перезагрузите устройство.

Источник: Tom's Hardware
Источник: Tom’s Hardware

4. Откройте терминал сочетанием клавиш Ctrl+T.

5. Установите OpenCV. Это займет около 2-х часов. Процесс установки подробно описан в предыдущей статье «Учим Raspberry Pi распознаванию лиц». После установки пакета ваша командная строка будет выглядеть примерно так:

Источник: Tom's Hardware
Источник: Tom’s Hardware

6. Установите TensorFlow. Это заняло у меня 5-10 минут.

        sudo pip3 install

https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.1.0/tensorflow-2.1.0-cp37-none-linux_armv7l.whl
    

7. Установите imutils. Займет около минуты.

        sudo pip3 install imutils
    

Часть 2: Распознавание маски (ускоренный метод)

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

1. Откройте новую командную строку на устройстве сочетанием клавиш Ctrl+T.

2. Скачайте код с GitHub.

        git clone https://github.com/carolinedunn/face_mask_detection
    

3. Запустите предварительно обученную модель, через которую прошло больше 1000 фотографий. В терминале замените директорию (cd) на скопированную из GitHub.

        cd face_mask_detection
    

4. Выполните код Python 3, чтобы открыть веб-камеру и запустить алгоритм распознавания масок.

        python3 detect_mask_webcam.py 
Если вы используете камеру Pi: python3 detect_mask_picam.py
    

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

Источник: Tom's Hardware
Источник: Tom’s Hardware

Или с красной рамкой, если маска не надета.

Источник: Tom's Hardware
Источник: Tom’s Hardware

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

Нажмите Esc, чтобы остановить скрипт.

Часть 3: Обучение модели распознавания маски (Долгий метод)

Теперь, когда детектор маски на лице запущен, вы думаете: “А как он работает?”

Для обучения модели, которую использует detect_mask_webcam.py, было загружено свыше тысячи фотографий.

Чем больше фото, тем выше точность машинного обучения и наоборот.

Снимки были разбросаны по 2-м папкам внутри dataset, with_mask (в маске) и without_mask (без маски), а алгоритм обучения создал модель mask vs. no mask (есть маска / нет маски) на основе набора данных. Примеры фотографий в папке dataset, которую вы загрузили с GitHub, это мои фотографии.

А что, если вместо тысячи фото мы бы обучали нашу систему распознавания с использованием всего 20 снимков? У нас есть предварительно обученная модель для проверки.

Запустите код Python 3 из папки face_mask_detection в терминале, чтобы открыть веб-камеру с моделью из 20 фото.

        python3 detect_mask_webcam.py --model mask_detector-20.model 
Если вы используете камеру Pi: python3 detect_mask_picam.py --model mask_detector-20.model
    

Через несколько секунд появится всплывающее окно и вы увидите зеленую или красную рамку. Станет очевидно, что эта модель недостаточно точная.

Как обучить модель распознавания маски на Raspberry Pi самостоятельно

Ниже описан способ, как вы можете обучить модель на основе собственных фото.

На вашем устройстве в папке dataset внутри face_mask_detection найдите две подпапки: with_mask и without_mask.

Источник: Tom's Hardware
Источник: Tom’s Hardware

Чтобы натренировать модель на ваших снимках (селфи), просто сохраните фотографии соответственно папкам. Можете добавить туда свои фото и фото членов семьи.

Сделайте фото на Raspberry Pi

1. Откройте командную строку сочетанием клавиш Ctrl+T.

2. Измените каталог на папку face_mask_detection.

        cd face_mask_detection
    

3. Выполните код Python, чтобы сфотографироваться в маски и без.

        Если используете веб-камеру: python withMaskDataset.py или python withoutMaskDataset.py 
Если используете камеру Pi: python withMaskDataset-picam.py или python withoutMaskDataset-picam.py
    

4. Нажмите Пробел, чтобы сделать снимок.

5. Как закончите, нажмите q.

Источник: Tom's Hardware
Источник: Tom’s Hardware

Выполнение этих скриптов автоматически сохраняет фото в нужные папки: with_mask и without_mask. Чем больше снимков вы сделаете, тем более точной будет модель. Не забывайте, что мощность вашего микрокомпьютера не такая, как у стационарного. Raspberry Pi сможет проанализировать ограниченное количество фото из-за вычислительной мощности и объема ОЗУ. На Raspberry Pi 4 8GB получилось обработать около 1000 фотографий, но создание модели заняло больше 2-х часов.

Обучение модели для системы распознавания маски на Raspberry Pi

Приступаем к тренировке модели на основе фотографий из папки dataset, но перед этим надо установить несколько пакетов. Максимальное количество фото, которые сможет обработать скрипт train_mask_detector.py, зависит от модели платы и доступного объема памяти.

1. Откройте терминал через Ctrl+T.

2. Установите пакеты sklearn и matplotlib на устройство.

        sudo pip3 install sklearn 

sudo pip3 install matplotlib
    
Источник: Tom's Hardware
Источник: Tom’s Hardware

3. Обучайте модель. Помните, чем больше фото в папке dataset, тем дольше будет идти процесс. Если выскочит ошибка “out of memory” (недостаточно памяти), уменьшайте количество фотографий в папке, пока не сможете запустить код на Python.

        cd face_mask_detection 

python3 train_mask_detector.py --dataset dataset --plot mymodelplot.png --model my_mask_detector.model
    
Источник: Tom's Hardware
Источник: Tom’s Hardware

В нашем случае обучение модели с использованием 1000 снимков отняло больше 2-х часов

Источник: Tom's Hardware
Источник: Tom’s Hardware

В этом примере мы использовали для обучения только 20 фото, и уровень точности составил 67%.

После выполнения скрипта вы увидите новый файл в директории face_mask_detector: my_mask_detector.model.

4. Давайте сначала проверим, насколько точной она будет по мнению Pi. Откройте изображение mymodelplot.png

Источник: Tom's Hardware
Источник: Tom’s Hardware

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

Тестирование модели распознавания маски на Raspberry Pi

Теперь, когда модель обучена, приступаем к тесту!

Запустите тот же скрипт распознавания, но вместо модели по умолчанию укажите вашу.

В той же командной строке:

        python3 detect_mask_webcam.py --model my_mask_detector.model 
Если вы используете камеру Pi: python3 detect_mask_picam.py --model my_mask_detector.model
    

Часть 4: Подключение светодиодов и зуммера

Когда модель детектора маски на лице обучена, можно немного развлечься.

Сейчас мы добавим зуммер и 2 светодиода и проверим у кого-нибудь наличие маски.

Источник: Tom's Hardware
Источник: Tom’s Hardware

Для этого шага нам понадобится:

  • малая макетная плата;
  • 2 резистора 330 Ом;
  • 1 красный светодиод;
  • 2 зеленых светодиода;
  • 1 зуммер.

1. Проведите светодиоды и зуммер как показано на диаграмме ниже (всегда добавляйте резистор между положительным выводом светодиода и выводом GPIO на Pi).

a. Красный светодиод управляется GPIO14;

b. Зеленый светодиод управляется GPIO15;

c. Зуммер активируется GPIO 21;

d. Подсоедините GND к GND на вашей плате.

Источник: Tom's Hardware
Источник: Tom’s Hardware

2. Протестируйте настройку светодиодов и зуммера, запустив LED-buzzer.py. Откройте новый терминал и запустите код:

        cd face_mask_detection 

python LED-buzzer.py
    

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

Источник: Tom's Hardware
Источник: Tom’s Hardware

3. Если зуммер не замолчал после нажатия Ctrl+C, запустите LED-buzzer-OFF.py, чтобы отключить звук со светодиодами.

4. Протестируйте систему распознавания маски на Raspberry Pi в том же терминале:

        python3 detect_mask_webcam_buzzer.py

Если вы используете камеру Pi: python3 detect_mask_picam_buzzer.py 

Если вы используете свою модель, добавьте --model my_mask_detector.model как вы делали в предыдущем шаге.
    

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

Источник: Tom's Hardware
Источник: Tom’s Hardware

Варианты усовершенствования технологии безграничны. Вы можете продолжать обучение модели, загружая новые фото, или передать команду сервоприводу/шлюзу, когда на лице обнаружена маска. Можно объединить эту идею с автоматизированной отправкой электронных писем из статьи «Учим Raspberry Pi распознаванию лиц» и отправлять сообщение с фото, когда кто-то приходит без маски.

***

Если вы только осваиваете популярный язык программирования, обратите внимание на факультет Python-разработки GeekBrains. Под руководством опытных наставников вы научитесь писать подобные (и более сложные) приложения, а успешно завершившим обучение студентам онлайн-академия помогает с трудоустройством.

22
Ноя
2020

👨‍🎓️📈Как выбрать специализацию и начать обучение Data Science

Рассказываем об этапах обучения, которые необходимо пройти новичку для начала карьеры в Data Science. Путь от выбора специализации до выработки практических навыков будет непростым.

О необходимых специалисту по анализу данных ресурсах мы писали в статьях «Data Science с нуля: обзор книг и видеокурсов для начинающих» и «10 навыков, необходимых в профессии Data Scientist». Сегодня подробнее расскажем о необходимых для овладения профессией Data Scientist этапах.

Выберите специализацию

<a href="https://i2.wp.com/blog.udacity.com/wp-content/uploads/2014/11/Data-Science-Skills-Udacity-Matrix.png?zoom=1.25&amp;resize=640%2C521&amp;ssl=1" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

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

Об основных специализациях и обязанностях Data Scientist мы подробно рассказали в статье «Data Science и Big Data: сходства и различия».

Выберите инструменты и язык программирования

<a href="https://revolution-computing.typepad.com/.a/6a010534b1db25970b01b7c926d776970b-800wi" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Судя по описаниям вакансий, наиболее фундаментальными навыками и инструментами науки о данных являются следующие:

  • Программирование на Python или R (выбору языка посвящена статья «От “R против Python” к “R и Python”»);
  • Владение популярными инструментами для задач Data science. Если вы выбрали Python, придется изучить такие библиотеки, как Pandas, NumPy, Matplotlib или Plotly и scikit-learn;
  • Очистка и предобработка (data engineering), анализ и визуализация данных;
  • Написание SQL-запросов;
  • Основы статистики и прикладной математики;
  • Навыки машинного обучения и моделирования;
  • Тонкости рабочего процесса и навыки совместной работы (Git, командная строка/bash и т. д.).

Пройдите курсы

<a href="https://i.pinimg.com/originals/58/2d/ab/582dabc4a3bf8e09fdf2c8f69f5c1a2f.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

Статистика и математика:

Курсы Python:

Курсы R:

SQL

Предобработка данных

Алгоритмы:

Применяйте знания на практике

<a href="https://miro.medium.com/max/640/0*ftOal7fKVCNtJr4N.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

Другой способ закрепить полученные знания – участие в конкурсах, соревнованиях (например, Kaggle) и хакатонах по Data Science. Освоение технологий машинного обучения, нейронных сетей, распознавания образов и других передовых методов имеет значение, но большая часть работы над проектом заключается в очистке и подготовке данных к анализу. Участие в соревнованиях позволит закрепить навыки работы с различными типами данных и подготовиться к реальным проектам.

Присоединитесь к сообществу Data Science

<a href="https://image.slidesharecdn.com/alexeynatekin-171122132352/95/open-data-science-beyond-traditional-scientific-communities-by-alexey-natekin-1-638.jpg?cb=1511357048" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Когда вы освоили необходимые навыки и попробовали применить их на практике, следующий важный шаг – присоединение к сообществу Data Science. Освоение новой области может показаться немного пугающим, когда вы делаете это в одиночку, но единомышленники ответят на ваши вопросы и помогут решить возникающие проблемы.

Несколько примеров посвященных Data Science комьюнити, в которые стоит вступить:

Развивайте коммуникативные навыки

<a href="https://blog.vantagecircle.com/content/images/2019/04/7-Reasons-Why-Internal-Communication-is-Important-in-the-Workplace.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Умение донести идею – один из самых важных soft skills в профессии Data Scientist. Чтобы эффективно делиться идеями с коллегами или доказывать свою точку зрения на собраниях, вы должны знать, как донести сложные концепции до широкой аудитории. Это особенно важно в бизнес-сфере, где заказчики проекта могут не владеть техническими навыками и терминологией. Для презентации результатов потребуется умение донести идею простым языком.

Если вам сложно передавать сложные концепции, стоит сделать следующее:

  • Попытайтесь научить менее технически подкованных друзей базовым концепциям науки о данных. Обучая других, вы будете учиться сами;
  • Участвуя в хакатонах и митапах по Data Science, тренируйтесь задавать правильные вопросы и презентовать результаты проектов;
  • Используйте GitHub для размещения проектов и обмена идеями;
  • Будьте активны в сообществах Data Science, задавайте вопросы и оставляйте комментарии.

Не переставайте учиться

<a href="https://www.valamis.com/documents/10197/783138/life-long-learning.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Работа в Data Science требует постоянного изучения новых технологий и методов работы с данными. Наиболее полезными источниками актуальной информации являются блоги и посты в социальных сетях (обратите внимание на лидеров комьюнити Data Science в LinkedIn), которые ведут влиятельные специалисты. Они постоянно публикуют посты о последних веяниях в этой области, своем опыте, достижениях и ошибках на карьерном пути. Уделяйте время прочтению новостей каждый день.

Найдите наставника

<a href="https://content.thriveglobal.com/wp-content/uploads/2019/05/Top-7-qualities-of-the-best-mentors-in-a-business.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

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

Составьте резюме и подготовьтесь к собеседованию

<a href="https://business.caw.ac.uk/wp-content/uploads/2020/03/How-to-Write-a-CV-Blog-Facebook-Image.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Качественное резюме – первый шаг на пути к работе мечты. При его составлении необходимо выполнить ряд требований:

  • Указать освоенные навыки в соответствии с желаемой вакансией и ролью;
  • Написать про участие в проектах и соревнованиях (это важнее формальных сертификатов);
  • Указать языки программирования, а также пакеты и инструменты, которыми вы владеете;
  • Указать профили на GitHub и Kaggle;
  • Проверить общее качество резюме: убедитесь, что шрифты и формат являются стандартными, стремитесь классическому деловому стилю;
  • Убрать лишнее. По мнению большинства рекрутеров, небольшое по объему, но емкое по содержанию резюме повышает шансы соискателя получить приглашение на собеседование.

Вы можете создать свое уникальное резюме с нуля, но проще использовать стандартные шаблоны. Несколько примеров c бесплатным доступом: Creddle, VisualCV, CVMKR и SlashCV.

После поиска вакансий и отправки резюме, основательно подготовьтесь к собеседованию. В статьях «Профессия Data Scientist и 20 вопросов на собеседовании» и «Собеседование для Data Scientists: вопросы и ответы» мы рассказали, какие подводные камни будут ждать вас на этом этапе.

Заключение

Популярность Data Science продолжает расти, а навыки работы в этой сфере остаются одними из самых востребованных у работодателей. Если вы только начинаете путь в профессии, стоит обратить внимание на курс Факультета Искусственного интеллекта онлайн-академии GeekBrains.

Программа курса включает не только технические знания, но и их применение в бизнесе. Много внимания уделяется развитию навыков взаимодействия в команде и участию в соревнованиях Kaggle. Основа учебного процесса – практическая работа над проектами с ведущими специалистами сферы и личным помощником-куратором.

21
Ноя
2020

🤖💬 Автодополнение длиной в тысячу слов. Что известно о нейросетевой модели GPT-3

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

28 мая 2020 г. на сайте arXiv.org была опубликована статья Language Models are Few-Shot Learners исследователей из американской компании OpenAI. На 75 страницах специалисты по анализу данных продемонстрировали, как их алгоритм GPT-3 генерирует эссе и стихи по паре вступительных предложений, ведет беседу, разгадывает анаграммы, выдает решение словесно описанных арифметических операций. Подходящие вводные фразы подстраивали результат под целевую аудиторию или решение определенной проблемы. Для введения новых слов в вокабуляр модели хватало единственного «прочтения».

Аналогично тому, как алгоритм автодополнения в клавиатуре смартфона подсказывает тройку возможных следующих слов, так GPT-3 создает по одной-двум вступительным фразам вереницу из десятков предложений. Мечта горе-копирайтера — набросал тему и подзаголовок, а программа вывела статью с вразумительным содержанием. Но как мы увидим далее, это не единственное применение алгоритма, и для такого его приложения есть ограничения.

GPT-3 относится к третьему поколению моделей-трансформеров, умеющих генерировать тексты (Generative Pre-trained Transformer). Стремительное улучшение способности к обобщению в первую очередь приписывают увеличению количества параметров модели, настраиваемых в результате обучения: от 100 млн для GPT (2018) и 1.5 млрд для GPT-2 (2019) до 175 млрд для новой GPT-3.

Сравнение вычислительных ресурсов, потребовавшихся для обучения моделей BERT, RoBERTa, T5 и восьми версий GPT-3 (источник — <a href="https://arxiv.org/abs/2005.14165" target="_blank" rel="noopener noreferrer nofollow">Language Models are Few-Shot Learners</a>)
Сравнение вычислительных ресурсов, потребовавшихся для обучения моделей BERT, RoBERTa, T5 и восьми версий GPT-3 (источник — Language Models are Few-Shot Learners)

Вырос и набор обучающих данных: для первых двух моделей объем датасета составлял 5 и 40 Гб соответственно, а в GPT-3 это уже 570 Гб веб-страниц проектов Common Crawl и WebText2, двух подборок книг, а также английской Википедии. Рекламу и спам отбросили, включив в датасет только материалы сайтов с высокой оценкой на Reddit. Нейросеть обучалась на построенном специально для OpenAI суперкомпьютере Microsoft Azure AI c 285 тыс. CPU и 10 тыс. GPU.

💬🗯️ Почему о GPT-3 так много разговоров?

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

Пример новостной колонки, сгенерированной GPT-3, которую людям было труднее всего отличить от написанной человеком.
        Title: United Methodists Agree to Historic Split
Subtitle: Those who oppose gay marriage will form their own denomination

Article: After two days of intense debate, the United Methodist Church
has agreed to a historic split - one that is expected to end in the
creation of a new denomination, one that will be "theologically and
socially conservative," according to The Washington Post. The majority of
delegates attending the church's annual General Conference in May voted to
strengthen a ban on the ordination of LGBTQ clergy and to write new rules
that will "discipline" clergy who officiate at same-sex weddings. But
those who opposed these measures have a new plan: They say they will form a
separate denomination by 2020, calling their church the Christian Methodist
denomination.

The Post notes that the denomination, which claims 12.5 million members, was
in the early 20th century the "largest Protestant denomination in the U.S.,"
but that it has been shrinking in recent decades. The new split will be the
second in the church's history. The first occurred in 1968, when roughly
10 percent of the denomination left to form the Evangelical United Brethren
Church. The Post notes that the proposed split "comes at a critical time
for the church, which has been losing members for years," which has been
"pushed toward the brink of a schism over the role of LGBTQ people in the
church." Gay marriage is not the only issue that has divided the church. In
2016, the denomination was split over ordination of transgender clergy, with
the North Pacific regional conference voting to ban them from serving as
clergy, and the South Pacific regional conference voting to allow them.

    

Особую роль в поиске обобщающего решения сыграла вышедшая в 2017 г. статья специалистов Google об архитектуре Transformer и механизме внимания (аttention) — способе вычисления вероятности появления одного слова в цепочке других. Основанные на этом механизме модели-трансформеры BERT, RoBERTa, XLNet, T5 и семейство авторегрессионных моделей GPT добились качественного прогресса одновременно в генерации текста и обобщении результатов обучения.

🤖 Нейросетевой привет!
О том, что уже умеют делать нейросети, мы писали в статье о 10 крутых примерах из недавних новостей. Проверить интуицию относительно нейросетей можно в нашей викторине «правда или ложь».

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

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

🗣️ Можно ли самому запустить GPT-3?

11 июля 2020 г. OpenAI анонсировала закрытое API на базе GPT-3. В ответ на введенный пользователем текст API составляет продолжение. Доступны несколько сценариев: генерация текста определенного размера, чат, получение ответа на вопрос, парсинг неструктурированных данных, перефразирование сложных понятий и суждений простым языком. API можно «настроить», представив несколько образцов желаемого результата.

Компания пояснила, что есть три причины, почему они предлагают API, не выкладывая модель в открытый доступ (в архиве GitHub лишь часть датасета и пара примеров работы):

  1. Заработанные деньги позволят OpenAI продолжить исследования.
  2. Только крупные компании располагают инфраструктурой для запуска модели. Интерфейс же сделает технологию доступнее небольшим коллективам.
  3. Разработчики опасаются, что GPT-3 может использоваться для распространения спама, экстремистских текстов и дезинформации. Посредством интерфейса OpenAI будет контролировать применение технологии и ограничит злоупотребления.

Изначально API предоставлялось бесплатно, и авторы успели получить десятки тысяч заявок на подключение. Но 1 октября 2020 г. редким пользователям бета-версии уже пришлось выбирать между четырьмя тарифными планами.

Тариф Лимит Стоимость
1 100 тыс. Трехмесячный бесплатный тест
2 2 млн $100 в месяц + 8 центов за каждые тыс. токенов свыше лимита
3 10 млн $400 в месяц + 6 центов за каждую тыс. токенов свыше лимита
4 > 10 млн Оговаривается отдельно

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

22 сентября 2020 г. Microsoft получила эксклюзивную лицензию на использование модели GPT-3 в своих продуктах и доступ к исходному коду технологии. Сделку раскритиковал сооснователь OpenAI Илон Маск — запуск OpenAI в 2015 г. подразумевал создание открытой компании, работающей на благо общества, а не государства или отдельной корпорации, в руках которой локализовалась бы власть, которую дают такие технологии.

22 октября 2020 г. разработчики из Сбера объявили о создании русскоязычного аналога GPT-3. Взяв исходный код GPT-2, аналитики внедрили в него идеи из статьи о GPT-3 и обучили модель на корпусе из 600 ГБ текстов, 90% из которых на русском языке. В датасет включили русскую и английскую версии Википедии, корпус русскоязычной литературы, некоторые сайты, материалы GitHub и Stack Overflow. Модель, названная ruGPT-3 Large, имеет 760 млн параметров, что приближает ее по этому показателю скорее ко второй версии GPT, чем к третьей. Поиграть с моделью можно на Colab. С 21 ноября также доступен Colab-блокнот, позволяющий проводить тонкую настройку.

🧰 Кто-то уже использует API? Есть результаты?

Хотя API не общедоступно, по сети разошлись разнообразные примеры использования GPT-3, в том числе и потенциально коммерческие.

📝 Генерация контента

Статьи для блогов. 20 июля 2020 г. магистрант Университета Беркли Лиам Порр опубликовал пост, рожденный при помощи OpenAI API. Лиам придумал заголовок и первые предложения — остальное дописал алгоритм. Читатели (кроме одного) не заметили подвоха и одобрительно отнеслись к публикации. Стоит отметить, что GPT-3 умеет решать и обратную задачу — выделять краткое содержание.

Написание эссе. 8 сентября 2020 г. британское издание The Guardian выпустило заметку, подготовленную при участии GPT-3. Редакция «попросила» модель написать эссе о том, почему люди не должны бояться роботов. Тот же Лиам Порр отправил редакции восемь сгенерированных GPT-3 вариантов эссе, из удачных кусков которых редакторы составили итоговый текст (Дамир Камалетдинов перевел ее на русский язык).

Текстовая составляющая игр. Другой пример использования GPT-3, — внедрение алгоритма в игру AI Dungeon.

Пример использования GPT-3 в AI Dungeon
Пример использования GPT-3 в AI Dungeon

AI Dungeon представляет собой текстовый квест — многопользовательское подземелье, в котором игроки перемещаются с помощью текста. На приведенном скриншоте ввод словосочетания look around (осмотреться) приводит к генерации текста об окружении.

Показаны примеры сочинения стихов, интерпретации эмоджи, генерации бизнес-идей и текстов мемов, сеансы наивной психотерапии. Особого внимания заслуживает детальная работа Гверна Бранвена по генерации околохудожественных текстов: стихов, диалогов, литературных пародий и рассказов. Гверн подтверждает, что в сравнении с GPT-2 новая модель поддерживает высокий уровень абстракции — среди прочего эту мысль подтверждает возможность переноса стиля автора.

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

Ответы на e-mail. Компания OthersideAI использует GPT-3 для автоматизации написания развернутых ответов на электронные письма по затравке из ключевых слов.

Пример использования GPT-3 для быстрых ответов на электронные письма
Пример использования GPT-3 для быстрых ответов на электронные письма

👩‍🎓 Поисковые системы, личные помощники и образование

Ответы на вопросы по тексту и общие вопросы. В октябре 2020 г. в разделе сайта Reddit, где люди задают друг другу вопросы, появился пользователь, который в течение недели отправлял развёрнутые ответы спустя лишь несколько секунд после публикации вопроса. Позднее выяснилось, что это бот на основе GPT-3.

Поиск информации и источника. Разработчик Парас Чопра обнаружил, что GPT-3 выудила из обучающего набора не только текстуальную информацию, но и URL-адреса. Получился текстовый помощник, дополненный поисковой системой и интерактивными ссылками.

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

Чат-бот для изучения языков на основе GPT-3 может не только вести диалог на выбранном языке, но и корректировать собеседника, если тот допускает грамматическую ошибку или стилистический промах. Тексты на иностранных языках составляли лишь 7% обучающего набора данных, однако пользователи указывают на неожиданно высокое качество генерации материалов на немецком, русском и японском языках.

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

👨‍💻 NoCode-решения: описательная генерация разметки и программного кода

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

HTML и CSS-разметка. Веб-разработчик Шариф Шамим продемонстрировал, как модель по текстовым запросам генерирует HTML-разметку.


Румынский веб-разработчик Золтан Согьеньи сделал аналогичное решение-генератор для CSS.

Дизайн и код несложных веб-приложений. С помощью GPT-3 Шариф Шамим также создал генератор простых React-приложений. Достаточно написать, что должна делать программа, и алгоритм переводит запрос в программный код.

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

Код на Python. Аналитики Microsoft вместе с OpenAI показали, что GPT-3 может писать код на Python, получая только комментарии на естественном языке.

Регулярные выражения. Парти Логанатан написал веб-приложение, в котором GPT-3 используется, чтобы простым языком описать, что должно делать регулярное выражение, и получить соответствующий regex-шаблон.

AutoML. Мэтт Шумер адаптировал подход к ML — краткое описание модели машинного обучения переводится в код для Keras.

💡 А это идея!
Действительно, было бы здорово, если модель машинного обучения можно было просто перетащить иконкой в проект, drag-and-drop. Стоп… но ведь такое уже есть! В статье «Сможет ли программа заменить Data Scientist» мы рассказали о восьми сервисах автоматизации задач Data Science.

Аналогично решаются задачи для SQL-запросов, девопс-инстансов, LaTeX-разметки, bash-команд и рисования незамысловатых SVG-объектов. Нетрудно заметить общую тенденцию — GPT-3 дает хорошие результаты для генерации кода по текстовым описаниям.

На сайтах GPT-3 Examples и GPT-3 Hunt агрегируются примеры внедрения модели.

🦜 Чего GPT-3 не может? Какие есть ограничения?

Несмотря на яркие количественные и качественные улучшения GPT-3 в сравнении с GPT-2, модель обладает заметными ограничениями в составлении текстов и ряде задач обработки естественного языка. Порой GPT-3 теряет связность в длинных отрывках, противоречит себе и непоследовательно развивает идею мысль. Как отметил исследователь искусственного интеллекта Джулиан Тогелиус, «местами GPT-3 ведёт себя как студент, который не подготовился к экзамену заранее и теперь несёт всякую чушь в надежде, что ему повезёт».

Всякий ответ GPT-3 является вероятностным, у нее нет памяти. Модель действует в рамках контекста в 500-1000 слов — начало крупного текста вскоре исчезает за горизонтом. Это не так проблематично для диалога, но критично для длинных текстов и последовательного обучения. Другая неприятная особенность, характерная для авторегресионных моделей — тенденция рано или поздно скатываться в повторение фрагмента текста.

Алгоритм может промахиваться в простых вопросах, не отличать факты от вымысла, принимать всё, что сообщает собеседник, за чистую монету — например, отвечать на вымышленные факты о китах. Однако, как пишет Гвен Бранвен, «наивность» алгоритма можно настроить, подсказав GPT-3 быть менее категоричной. Неудивительно и то, что GPT-3 временами выдает существующие в обществе — а значит, и в текстах — сексистские и расистские предубеждения.

Искусственный интеллект изменит мир, но GPT-3 это лишь очень ранний проблеск. Нам ещё многое нужно понять.
Сэм Альтман,сооснователь OpenAI

Выше мы упоминали аналогию обучения модели и ребенка. Есть и значимое различие. «Знания» модели основаны только на текстах о процессах, явлениях, событиях и предметах. Дети же сопоставляют слова с понятиями, которые получили не только при чтении текста, но и через чувственное исследование мира. Задачки вроде «растает ли сыр, если я положу его в холодильник?» обычно вызывают у модели недоумение.

🍬 Заключение

Нейронная сеть GPT-3 — это настолько большая модель с точки зрения мощности и набора данных, что она демонстрирует качественно новое поведение. Мы не переучиваем алгоритм специально для каждой задачи, а выражаем саму задачу через примеры на естественном языке. Настраиваем подсказку так, чтобы модель восприняла проблему через высокоуровневые абстракции, извлеченные в ходе предобучения. Такой способ применения модели глубокого обучения подразумевает новый вид программирования, где «программой» теперь оказывается подсказка, которая настраивает модель для выполнения нужной задачи.

GPT-3 — это не разум, не сознание, но и не совсем машина. Это кое-что другое: статистическое абстрактное представление содержания миллионов умов, выраженное в их письменной речи.

Другими словами, в случае классического программного обеспечения было нужно продумать, как шаг за шагом получить результат; на этапе классических моделей глубокого обучения нужно понять, как составить набор данных, который в скрытом виде содержит требуемый ответ. А в случае с GPT-3 и родственными моделями мы решаем, как правильно описать то, что мы хотим получить.


Самое удивительное, что бывает достаточно попросить выполнить то или иное действие. В других случаях достаточно подумать: «Если бы человек уже написал то, что я хотел, что бы содержали первые предложения? Как бы звучало введение? Если бы я сам рассказывал историю, с чего бы она начиналась?».

Конечно, не менее любопытно, чем эта история закончится.

20
Ноя
2020

Профессия Data Scientist: учимся обработке и анализу данных за 3 дня

Поработаете с одним из самых популярных языков программирования и научитесь решать реальные задачи, с которыми сталкивается Data Scientist.
— Читать дальше «Профессия Data Scientist: учимся обработке и анализу данных за 3 дня»

18
Ноя
2020

Чёрная пятница в SkillFactory

В SkillFactory стартует «Чёрная пятница», на все курсы скидка 50%. Можно выбрать, что вам ближе и интересней: Data Sceince, программирование, аналитика.
— Читать дальше «Чёрная пятница в SkillFactory»

18
Ноя
2020

🥇👨‍🎓️📈Хакатоны и соревнования для специалистов по Data Science

Мы собрали для вас все ближайшие мероприятия для карьерного роста и получения новых знаний в сфере Data Science. На фоне пандемии коронавируса многие из них проходят в онлайн-формате.

В статье «Научиться Data Science онлайн» мы рассказали, как овладеть стать специалистам по анализу данных с нуля. В подготовленной при поддержке Факультета Искусственного интеллекта онлайн-университета GeekBrains публикации мы собрали все ближайшие хакатоны и соревнования, которые помогут освоить навыки Data Scientist на практике.

Хакатоны

<a href="https://latimeshighschool.files.wordpress.com/2020/08/bytes-of-tech.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Хакатон FIT-M 2020

Когда: c 16 по 18 декабря 2020 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: русский

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

Подробнее: https://fit-m.org/hack

Hack Life

Когда: c 21 по 22 декабря 2020 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: русский

Призовой фонд: 100000 рублей

Самое интересное: хакатон для начинающих аналитиков, посвященный комфортной городской среде.

Подробнее: https://hacklife.fun/

SharkHacks

Когда: c 4 по 6 декабря 2020 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: цифровой хакатон открыт для всех уровней квалификации, от новичков до самых опытных разработчиков.

Подробнее: https://organize.mlh.io/participants/events/6046-sharkhacks

TechTogether New York 2020

Когда: c 4 по 6 декабря 2020 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: открытый хакатон для всех, кто интересуется STEM – от новичков до опытных хакеров.

Подробнее: https://newyork.techtogether.io/

Who Done It Hacks?

Когда: c 11 по 13 декабря 2020 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: хакатон в стиле Шерлока Холмса, во время которого вам предстоит следовать подсказкам для разгадки тайн.

Подробнее:https://organize.mlh.io/participants/events/6047-who-done-it-hacks

Hack Off

Когда: c 12 по 13 декабря 2020 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: 48-часовой хакатон на темы Data Science, AI, OIT, robotics, blockchain, AR и VR, open innovations.

Подробнее: https://www.hackoff.tech/

RoseHack

Когда: c 16 по 17 января 2021 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

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

Подробнее: https://rosehack.com/

HoyaHacks

Когда: c 29 по 31 января 2021 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: хакатон для студентов, заинтересованных в создании чего-то нового. В качества бонуса – возможность пообщаться с профессионалами отрасли и выиграть призы.

Подробнее: http://hoyahacks.georgetown.domains/

Hacklytics

Когда: c 5 по 7 февраля 2021 г.

Где: онлайн

Стоимость участия: бесплатно

Язык мероприятия: английский

Самое интересное: хакатон на тему “Building a Data-Driven World” для студентов и специалистов Data Science.

Подробнее: https://hacklytics.io/

Соревнования

<a href="https://mysterium.network/wp-content/uploads/2019/10/Artboard-7-100.jpg" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Riiid! Answer Correctness Prediction

Дедлайн для регистрации команд: 31 декабря 2020 г.

Дата окончания: 7 января 2021 г.

Призы: 1 место – $50 000 , 2 место – $30 000, 3 место – $10 000, 4 и 5 место – $5 000. Команды-победители также будут приглашены представить свои модели на семинаре AAAI-2021 по образованию в области искусственного интеллекта (Imaginating Post-COVID Education with AI).

В этом конкурсе ваша задача создать алгоритмы для “Knowledge Tracing”, моделирования знаний студентов. Цель состоит в том, чтобы точно предсказать, как студенты будут действовать в определенных ситуациях. Для решения задачи нужно будет совместить навыки в области машинного обучения с данными EdNet Riiid.

Подробнее: https://www.kaggle.com/c/riiid-test-answer-prediction

NFL Big Data Bowl 2021

Дедлайн для регистрации команд: 7 января 2021 г.

Дата окончания: 7 января 2021 г.

Призы: 1-5 место – $15 000. Победители соревнования представят свои результаты в NLF, где одна команда сможет выиграть дополнительные 10 000 долларов.

В этом соревновании используется NFL’s Next Gen Stats data, которая включает в себя позицию и скорость каждого игрока на поле. Вам предстоит использовать данные игроков для всех выпадающих пасов регулярного сезона 2018 года. Цель соревнования – определить уникальные и эффективные подходы к измерению защитных стратегий этих игр.

Подробнее: https://www.kaggle.com/c/nfl-big-data-bowl-2021

Rock, Paper, Scissors

Дедлайн для регистрации команд: 1 февраля 2021 г.

Дата окончания: 8 февраля 2021 г.

Призы: мерч Kaggle достанется пяти лучшим проектам соревнования.

В этом соревновании-симуляторе вы создадите AI, который сможет играть против других в раундах Rock, Paper, Scissors. Сможете ли вы найти закономерности, чтобы выигрывать чаще? Можно ли значительно превзойти случайного игрока, когда в матчах участвуют неслучайные агенты?

Подробнее: https://www.kaggle.com/c/rock-paper-scissors

Predict Future Sales

Дата окончания: декабрь 2020 г.

Заключительный проект курса “How to win a data science competition”. В конкурсе вы будете работать со сложным набором временных рядов, состоящим из ежедневных данных о продажах 1C Company. Вам предстоит спрогнозировать общий объем продаж для каждого продукта и магазина в следующем месяце.

Подробнее: https://www.kaggle.com/c/competitive-data-science-predict-future-sales/overview

INGV – Volcanic Eruption Prediction

Дедлайн для регистрации команд: 30 декабря 2020 г.

Дата окончания: 30 декабря 2020 г.

Призы: мерч Kaggle достанется трем лучшим проектам соревнования.

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

Подробнее: https://www.kaggle.com/c/predict-volcanic-eruptions-ingv-oe

House Prices: Advanced Regression Techniques

Дата окончания: неизвестно

Это соревнование подходит имеющим опыт программирования на R или Python и знакомым с основами машинного обучения студентам, которые хотят расширить навыки перед участием в соревнованиях с денежными призами. С помощью 79 описывающих характеристики жилых домов в Эймсе (штат Айова, США) переменных участникам нужно предсказать окончательную цену каждого объекта. Практические навыки, которые вы сможете развить: Creative feature engineering и продвинутые методы регрессии, вроде random forest and gradient boosting.

Подробнее: https://www.kaggle.com/c/house-prices-advanced-regression-techniques

Digit Recognizer

Дата окончания: неизвестно

MNIST (“Modified National Institute of Standards and Technology”) — это “hello world” компьютерного зрения. В соревновании нужно правильно идентифицировать цифры из десятков тысяч рукописных изображений. Вам предстоит поэкспериментировать с различными алгоритмами, чтобы лучше понять их работу. Практические навыки, которые вы сможете развить: основы компьютерного зрения, включая простые нейронные сети, а также методы классификации, вроде SVM и K-nearest neighbors.

Подробнее: https://www.kaggle.com/c/digit-recognizer

I’m Something of a Painter Myself

Дата окончания: неизвестно

Призы: победители получат один из 3 призов “TPU Star” – 20 часов TPU в неделю на Kaggle в течение четырех недель.

GANs – генеративные состязательные сети, которые состоят их двух нейронных сетей: модели генератора и модели дискриминатора. Они будут работать друг против друга, причем генератор попытается обмануть дискриминатор, а дискриминатору нужно точно классифицировать реальные и сгенерированные изображения. Ваша задача – построить GANs, которые генерируют от 7000 до 10 000 изображений в стиле Моне.

Подробнее: https://www.kaggle.com/c/gan-getting-started

Contradictory, My Dear Watson

Дата окончания: неизвестно

Если у вас есть два предложения, одно может следовать из другого, противоречить ему, или они могут быть не связанными. Natural Language Inferencing (NLI) является одной из проблем NLP, которая заключается в определении связи между парой предложений. Задача соревнования — создать модель NLI, которая присваивает метки, соответствующие влечению, нейтральности и противоречию парам предпосылок и гипотез. Тренировочный и тестовый набор данных включают тексты на пятнадцати различных языках.

Подробнее: https://www.kaggle.com/c/contradictory-my-dear-watson

EMO 2021 HUAWEI Logistics Competition

Дата окончания: 1 марта 2021 г.

Призы: победители будут награждены денежными призами и трофеями, их также пригласят выступить с докладами на EMO 2021.

Соревнование от компании Huawei Technologies Ltd, посвященное оптимизации маршрутизации транспорта.

Подробнее: https://competitions.codalab.org/competitions/27329

***

Если вы только начинаете свой путь в Data Science, хотите получить диплом и помощь в трудоустройстве, стоит обратить внимание на курс Факультета Искусственного интеллекта онлайн-университета GeekBrains. Он включает основательную математическую подготовку, изучение программирования и статистического анализа, а также работу с базами данных реальных проектов.

10
Ноя
2020

📈 🧠 💰 Станьте экспертом по машинному обучению с нуля и бесплатно!

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

Полное руководство о том, как начат…